Mozilla Offers Alternative To OpenID 105
Orome1 writes "Mozilla has been working for a while now on a new browser-based system for identifying and authenticating users it calls BrowserID, but it's only this month that all of its sites have finally been outfitted with the technology. Mozilla aims for BrowserID to become a more secure alternative to OpenID, the decentralized authentication system offered to users of popular sites such as Google, Yahoo!, PayPal, MySpace and others."
Enigform (Score:2, Interesting)
Simplicity (Score:5, Informative)
BrowserID is pretty simple. It's basically a single Javascript function that a website can call in the browser. This example on github [github.com] shows the function that is called. The clientside code is then free to make requests to the server for a specific authentication mechanism, making it very flexible. The Server code [github.com] just validates the username/password.
Personally, I think it's simpler to understand than things like OpenID which are convoluted and not standardized from the user point of view. Where is the standard account management protocol for OpenID?
An older Slashdot article on BrowserID for reference: http://www.yro.slashdot.org/story/11/07/15/1216222/Mozilla-BrowserID-Decentralized-Federated-Login [slashdot.org]
Not heard of Enigform but will look into it!
Re: (Score:3)
How is Mozilla trying to force anything?
Re: (Score:2)
Asa's not a politician.
If he doesn't understand company politics, he shouldn't be making pronouncements about company policy. Particularly stupid ones like writing off the entire commercial market for your product.
Comment removed (Score:4, Insightful)
Re: (Score:3)
Don't hold back. How do you really feel about firefox?
Re: (Score:2)
It's a handy tool written by Mark Russinovich. Formerly Sysinternals, now Microsoft.
Re:Simplicity (Score:4, Funny)
Oh I don't know, how about when Asa Hitler...sorry, Dotzler, declared that business users didn't matter and they changed the release schedules for Firefox even despite the public outcry against it?
How dare they not let users make marketing decisions for them!
In fact it was so publically derided that Mozilla have back-pedalled and announced an "LTS" version of Firefox specifically for that purpose.
How dare they.. uh.. listen to their users.. Wait what are we angry about again?
Re:Simplicity = BAD (Score:4, Informative)
https://www.browserid.org/about
No password?? Are you kidding me??
The moment I saw that 3rd step, I just.... I'm speechless. What the fuck?
When you dig into the details past all the JS crap, it's actually just a variation on client-authenticated SSL. I'm not 100% sure what exactly is being asserted in the client's identity (before checking back with the issuer) but it most certainly does work, and it should be fine provided the private keys remain locked outside of the grasp of even the browser JS. That is, the private key must provably not ever leave the browser; if anything can make that happen, it's insecure whatever the developers think.
Re: (Score:2)
Personally, I'd be more inclined to write it off because browserid.org... does not support BrowserID.
Re: (Score:2)
Ugh, I hate replying to myself. Reading further, it's just a plain crappy system. Yet another third party service that wants me to hand them my entire member base.
Re: (Score:2)
Then you would be wrong.
It is a system to verify your email address, but only ones.
It is a protocol, which means it can be implemented inside the browser UI, unlike OpenID (Mozilla tried that, that wouldn't work).
Browserid.org is only used because email providers and browsers don't yet support it directly.
Re: (Score:2)
So, basically, what you're saying is that I'm right at this point in time. Gotcha.
Re: (Score:2)
Am I understanding this correctly? The client sends a login request to the server. The server sends an email to another server. If there is a response to the email the user is then approved?
Re: (Score:2)
If there is a response to the email the user is then approved?
That's the technique for the "interim"period, in which browserid.org will implement user control verification through an e-mailed link. For each e-mail address that you wish to use as an identifying token you'd have to prove that you control it through that mechanism, until your e-mail provider ( which may also be you ) implements BrowserID.
Unfortunately the end-state to which we are all supposed to move is to have our e-mail providers act as the Primary Identifying Authorities for us. browserid.org would
Re: (Score:2)
I hope they are planing PGP (pretty freakin rare) or SMTPS (really freakin rare) to protect the content of emails. It wouldn't be very difficult to snarf "mailto:" out of an email for an ISP, or anyone [cough]NSA[/cough] else managing to get a SPAN port on an ISP's router.
Microshill post (Score:1, Funny)
You should be using Microsoft certified Passport/Windows Live ID for all your cloud authentication needs.
What, me worry? (Score:4, Funny)
I have an RSA SecureID token for logging in to my company VPN and we all know how rock-solid RSA is.
Re: (Score:1)
What you need to understand, no security is absolutely perfect. There is no such thing, unless you disconnect the computer from all outside sources and influences, and allow no access to the computer, what that breaks down to is, unplug the computer, disconnect it from the internet, and lock it in a vault. And even that's not 100% secure.
Bottom Line:
Locks only keep honest people honest.
Re:What, me worry? (Score:5, Insightful)
Locks, and security in general, are intended to raise the cost of unauthorized access beyond the utility of that access. Success by that measure is effective security.
Useful Links (Score:5, Informative)
This submission looks like typical content farm / blogspam junk so here's some useful links instead:
Re:Useful Links (Score:5, Informative)
I think the JS part is true, but the centralization is only temporary until there are Primary Identity Authorities (which would be mostly email providers, from what I can tell).
http://lloyd.io/how-browserid-works [lloyd.io]
Re:Useful Links (Score:5, Informative)
The way it is supposed to work (eventually)
1. User clicks sing-in link on website.
2. Website calls a Javascript function that is implemented by the browser. They pass in a callback function that takes one argument (described later).
3. The user selects an email address from a list in the browser, or chooses to add a new email address.
4. The browser checks a with the email provider (via http, and a well known location (like robots.txt or favicon.ico)) to verify that they support BrowserID. We will assume the email provider does support BrowserID. The response includes a public key for the Provider, and a provisioning url.
5. The browser opens the provisioning URL in a hidden iframe.
6. The provisioning page requests the email address from the browser.
7. If the user is already signed in goto step 10.
8. The provider indicates that the user is not signed in, and tell the browser the URL of the sign in-page, which the browser shows to the user.
9. The user signs in as normal.
10. The provisioning page asks the browser to generate a cryptographic key pair.
11. The browser passes the public key to the provisioning page, which passes it to the provider's server, which signs it (with a short expiration time) , replies with the signature , which is passed back to the browser.
12. The browser creates an assertion, which is the domain name of the site the user is trying to sign into, the email address, and a short expiration time, signed with the browser-generated private key. The assertion also includes the signed public key.
13. The browser passes the assertion into the callback, which passes it to the website's server.
14. The website's server extracts the email, fetches the provider's public key, much like the browser did. The server validates the assertion includes its domain name, and is not expired, and was signed by the included public key. It also verifies that the public key is not expired. If so, it extracts the email address, and uses it to fetch the email provider's public key. It uses that to verify that the email provider signed the public key found in the assertion.
15. The user is considered signed in by the website.
How this looks to the user
In the most common case, the user is already signed in with their email provider, so the user sees themselves clicking on the login link, picking their email adress, and that's it. They are signed in.
How this currently works
Currently there is no browser support. There is a centralized location that provides a JavaScript polyfill and associated website allowing the system to be used without browser support. Both the provider's provisioning page, and the Relying website's page must use this polyfill, and this must be one one centralized location, since both would need to use the script from the same site in order for this to work.
Currently there are also no email providers that provide this support, so a central provider is used as a fallback. This provider must be in a centralized location, since both the browser/polyfill-site and the relying party must agree on the fallback provider. This provider does the only thing it can to verify ownership of a third party email address, which is sending a standard challange email to the address, which the user will access and reply to.
Re: (Score:1)
I was going to post something similar but you beat me to it. Many thanks!
What is wrong with OpenID? (Score:5, Insightful)
- It is widely adopted among many providers
- It does not share any of your information cross-site unless you allow it
- It works
Why do we need yet another standard? I do not see anything in this article, on browserid.org, or anywhere else that breaks down why Browser ID is superior.
Also, I don't see Google Chrome adopting this, since Google backs OpenID, and I don't see Microsoft adopting it either. So really this is going to end up a Firefox only scheme that will never gain enough penetration to make sites want to go to the effort to implement it.
Different problems (Score:5, Insightful)
I think BrowserID and OpenID solve slightly different problems. BrowserID standardized the process of you logging in through your web browser while OpenID is about authenticating yourself through some authority (be it a server controlled by you or some third party). So that's a user-website interaction for BrowserID or website-website for OpenID.
They could actually be used together, any service that accepts OpenID logins could expose a BrowserID interface too.
Re: (Score:3)
OpenID is for logging in too, and BrowserID also authenticates through an authority (the Primary Identity Authorities).
Re: (Score:1)
Why not use XMPP? See my two-year old sig below.Unfortunately, OWS, a working social network, was run over by Diaspora, which was vaporware at the time. XMPP+ extensions would give you federated social for free.
Re:What is wrong with OpenID? (Score:5, Informative)
I think the main differences are that it uses email addresses instead of an URL (which people don't "get" as being your identity token) and it doesn't give the authorities full power to access your accounts (since the private key for authentication is stored on the browser).
Re: (Score:3, Interesting)
An email address is exactly what I do NOT want to provide to every second website where I just need some simple customization/profile. And where I do provide an email address, I always use a unique address (essentially allows me both automatic organization into folders but also to get less than 1-2 spam mail per year, simplify by blacklisting aliases which either leaked or obviously have been sold to some spammer (happens usually about a year after some web service/sites shuts down)). This works very well w
Re: (Score:2)
The email address is most definitely transmitted to the relying party. Indeed the fetching your email adress along with proof of you owning it is the whole point. That is why the function the site calls to kick the whole process off was originally called "navigator.id.getVerifiedEmail" (although it is now renamed "navigator.id.get").
The system can work two ways. Either the browser requests a long-lasting certificate from the email provider, which means no re-authenticating until that certificate expires, or
Re: (Score:2)
since the private key for authentication is stored on the browser
Sounds like a safe place to keep my one password to everything. [/snark]
Re: (Score:2)
I think the main differences are that it uses email addresses instead of an URL (which people don't "get" as being your identity token)
Once it's ready (supporting primary IdP's), the ID doesn't need to be an email address (just an ID with an email-like structure).
and it doesn't give the authorities full power to access your accounts (since the private key for authentication is stored on the browser).
I don't think so. That key is only accepted because it's signed by your IdP, which can just as easily sign another one if the authorities request it. The main advantages I see are:
- Verifying a login doesn't tell you're IdP who signed in to the site. The site only requests the IdP certificate, not your personal one.
- It's designed for browser support, which is necessary to pre
Re: (Score:2)
- It's designed for browser support, which is necessary to prevent phishing attacks and improve ease of use. It's hard for your browser to log in to OpenID sites (e.g. the Firefox OpenID plugin(s) fail on several sites which use fancy login UIs).
Auto-login is always problematic in security terms, even if it is exceptionally convenient.
- Putting more of the logic in the browser simplifies the protocol (although they seem to be adding extra complexities quite fast).
It simplifies the code in the part of the implementation of the protocol that is written in Javascript and sent by sites to the browser. The protocol itself is rather complex, as is the parts that are intended to be implemented in the browser's own code. It's also not clear just how much effort has been put into making things easy for the other parties in the action: if it's not easy for sites to implement, it won't g
Re: (Score:2)
- It's designed for browser support, which is necessary to prevent phishing attacks and improve ease of use. It's hard for your browser to log in to OpenID sites (e.g. the Firefox OpenID plugin(s) fail on several sites which use fancy login UIs).
Auto-login is always problematic in security terms, even if it is exceptionally convenient.
I don't think anyone is suggesting auto-login (the browser logs the user in without action from the user). The issue is whether the browser can provide a login button in the chrome which, when clicked, allows the browser to handle the rest of the process securely (e.g. not displaying any random phishing site that the web-page tries to send you to). If you need to authenticate, the browser needs to ask for the password in a way that clearly shows it's OK to enter it (e.g. in a clearly-marked popup).
Re: (Score:2)
Here are some old mockups:
http://www.flickr.com/photos/azaraskin/4128966575/sizes/l/ [flickr.com]
It is just mockups ofcourse.
Re: (Score:1)
Re: (Score:2)
I think you spotted what's wrong with openId with item #2, at least as far as big corporations like mozilla are concerned.
Re: (Score:2)
We don't have a standard for signing in, yet. OpenID is certainly not universal. BrowserID is yet another option, and a pretty good one, IMHO. Let them compete.
Re: (Score:2)
Re: (Score:3)
Two things wrong with OpenID --
1) It was a pain to implement. It is not widely adopted among sites I want to log in to.
2) It tells my OpenID provider (say, Google) every site I log in to. This is unacceptable to me as a solution. BrowserID only let's Google know that SOME Google user is logging in.
Re: (Score:2)
Google and Microsoft don't have to adopt this. The system is designed such that browsers that have no native support can still work with it via a JS polyfill. So sites can deploy this right this second, even though no browser (and that includes Firefox) has native support yet.
Mozilla eh? (Score:5, Funny)
I'll wait for BrowserID v9 in 6 months
Re: (Score:2)
That must be a typo. Surely you meant 6 weeks.
Mixed feelings (Score:2)
It is easy to implement, with your own provider if you want.
It is not cross browser nor noscript friendly so the usual login methods will have to be kept, but that's not a big problem, one is offering a shortcut, just like openID or logins through FB, openID...
OTOH the browser acquires new functionality and an internet world ruled by a bunch of www browsers, instead of the multitude of clients of the internet 1.0, means that security issues will turn into catastrophes, like it happened with a windows monoc
and how does it work? (Score:2)
The official site just says "you choose your email-adress to use and you're logged in". So, now assume i am a attacker, and i choose YOUR e-mail address ... i am logged in?!
so please some good links to the techniques behind it, especially:
- why it is decentral (is it?)
- how it is secure (is it?)
- how to set up my own server to use for myself (can i?)
- why not use openid (why?)
Re:and how does it work? (Score:4, Informative)
It stores a private key in your browser that you need to auth yourself (transparently to the user).
Re: (Score:1)
okay, so its one of the solutions, i cannot use when using multiple computers/devices/browsers. Lets wait for the next solution, if its any better.
Re: (Score:2)
Actually it works fine with multiple devices/compters/browsers.
One finished it will work like this:
You click login. The website calls a javascript function provided by your browser. If you pick/enter an email adress.
If you have not used the adress before the browser generates a cryptographic key pair. It contacts your email provider. If you are already signed in the provider simply signs the browser's generated public key (which includes the email address). A signed public key is also known as a certificate
Re: (Score:2)
Wrong problem! (Score:2)
The bigger issue today is how not to be ID'd on the internet. This is where I feel Google crossed the line to the darkside with their insistent request for phone numbers and attempts to force their "new and improved" UIs on people. Everybody and their brothers are working on getting identifying information from users. Google used to be different before they switched from focusing on aggregating "anonomys" data to gathering personal information.
Re: (Score:2)
Everybody and their brothers are working on getting identifying information from users.
This is probably related to the US government starting to monitor [theblaze.com] what you are saying on the Internet.
In such conditions the only prudent thing to do is to use many different logins, and use one login for one site only. This still allows an observer to use your unique writing style to suspect authorship - but that would be far weaker than the certain knowledge that all these @posts are written by the same individual.
Re: (Score:3)
It's only centralized until there are other providers. http://lloyd.io/how-browserid-works [lloyd.io]
Re: (Score:2)
Re: (Score:2)
Just like every sign up that asks for your email, which is almost all of them.
Re: (Score:1)
Almost all allow you to specify a different email address on every website though. I personally do that, for all kind of reasons. This also works fine with OpenID, as long as your provider allows you to configure it such that it does not provide any email address (afaik doesn't work with Google) - you're then usually asked for your email address after the first login to complete the profile, if needed.
Although BrowserID allows multiple email address, it looks like this workflow wouldn't work well in practic
Re: (Score:2)
When it is part of Firefox, someone just needs to write an extenstion to change the UI to allow for easily generating lots of browserids (verifiable email-address like things you own: let's you have you your own domain).
Re: (Score:2)
Re: (Score:3)
It seems to me that there is currently a centralised server, but that that is just for temporary convenience. Did I misunderstand?
Re: (Score:2)
The centralized server does 2 things.
One it provides support for using BrowserID with browsers that do not have built-in BrowserID support. It does this by providing a JavaScript polyfill used by relying sites. This script uses the central server to provide a UI for login. This needs to be centralized, since the providers also use javascript function in the browser, and they must use the same fallback service as browsers without built-in support.
Two it provides a service to validate the assertions. This doe
Re: (Score:2)
Obligatory xkcd (Score:1, Insightful)
Duplicate story from 6 months ago (Score:1)
There really isn't any new news about this. [slashdot.org]
I would have thought the more appropriate Mozilla news is that they have released Rust 0.1 [mozilla.com] or general browser news that natively supported WebM browser share exceeds natively supported H.264 share [hsivonen.iki.fi]
Re: (Score:2)
natively supported WebM browser share exceeds natively supported H.264 share
Which matters not one bit, as long as Flash exists and supports H.264.
fix the damn browser first (Score:2, Interesting)
Browser based... ugh D: (Score:5, Interesting)
a new browser-based system
The only problem I have with OpenID is that it's so web-centric it's a pain in the ass to implement for native apps. Could we please have a distributed ID system that *can* use a web browser, but doesn't *require* one?
Re: (Score:2)
If only Mozilla Foundation had some sway with browser makers... wait... they are a browser maker.
BrowserID is being user tested as a standalone, but incorporating it directly into Firefox is explicitly their end game. Once there, others will follow.
Re: (Score:2)
I completely misunderstood the parent. Native apps. Derp derp derp.
Re: (Score:2)
I'm pretty sure SAML can be used in native apps - just that almost no-one does. Ditto for OAuth (the problem with OAuth is that although it can be used for native apps, the OAuth-using services all seem to demand you open a web page so they can display their pretty auth UI).
Re: (Score:2)
Mozilla actually wants to solve that problem I hear. They are exploring ideas and haven't created a framework for it.
Re: (Score:1)
The fundamental problem is that the user needs a trusted channel between themselves and the authentication provider. The only common & cross platform communication channel is a web browser. Native apps work around this by embedding a web browser, which is insecure in that they might be stealing your password. But the user experience is sucky, and most opinions seem to be that the existing systems have sacrificed too much usability for security.
Now it is supported by Google & Facebook, XMPP might be
Re: (Score:2)
The good thing about this is, Firefox has a 25%+ marketshare and this will be part of the browserUI to make it really easy.
Here is an old mockup:
http://www.flickr.com/photos/azaraskin/4128966575/sizes/l/ [flickr.com]