Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

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."

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?

We may not be able to brand him a flip flopper (and the Nazi ref is just tasteless and pointless) but we CAN label him a dumbass and obviously not the right man for the job when he doesn't even bother with a single survey of his actual CUSTOMERS before pulling such a bonehead stunt. Moz may be "free as in beer" but if they don't have users they can't get Google or anybody else to pay for their search results so they had damned well better listen to their users. As we saw here recently the figures show FF has been in a solid death spiral since Version 4, with it shedding more and more users by the month as they get tired of the bullshit. I myself started looking for alternative at V 4 when it started sucking on AMD CPUs and bailed on V 6 for Comodo Dragon. I still have FF installed and keep it updated as well as try each new version but so far its still sucking on AMD CPUs and the CPU spiking and RAM usage, especially on the Zacate dual cores and the older low power singles and multicores like the Phenom e series really sucks.

So instead of wasting their resources and time trying to replace a project that frankly nobody really used in the first place, how about listening to your damned customers and fixing the fricking browser, how about that? Remember the ORIGINAL mission statement, the one you used to get us off the suite, to "build the fastest and lightest standards complaint browser" remember that? Ever since Google released Chrome its been a "ohh me too!" fest at Moz and frankly it sucks. the UI sucks, the performance sucks, and I'd argue its because they are trying to jam shit on there Gecko was never made for, like flash plugin isolation, which at least on AMD causes FF to suck as much as twice the resources playing an SD video as any of the Chromium based.

And finally please fanbois, or those that have "perception bubbles" as I've been told to call you by someone who was offended at the word fanboi, please don't trot out some benchmark because i can trot out one that says the GeForce FX was actually a great Dx9 chip. Of course we all know now that they were writing to the bench which made the benches worthless but IRL all you have to do is use what I call the "Hairyfeet normal folks test" where you fire up a tool like process explorer that will give you the complete resources of a program then send the browser through the basic sites everyone goes to, YouTube, FB, Yahoo Mail/Gmail, and check the resource usage and you'll see for yourself that FF don't stack up so good.

So please moz devs, quit trying to be the saviors of the web and fix your shit first, okay? there are a hell of a lot of us that would be happy to come back to the fold if you'd just quit trying to make a bad Chrome ripoff and go back to making a small fast standards compliant browser we can DIY customize with extensions. Nobody has an extension framework as good as yours, nobody. some come back moz, quit all this crap that has nothing to do with your core business and get back in the business of making browsers because as the numbers show the way you are going now is NOT the correct way to go. kinda sad you are talking about "hiding" the LTS on some back page somewhere just because you are afraid that everyone will dump the main branch for LTS, doesn't that smack you witrh a cluebat that you are on the wrong path?

https://www.browserid.org/aboutNo 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.

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

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.

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.

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 userIn 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.

- 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.

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.

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.

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).

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

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

- 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

- 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).

Are you sure your are correct in saying Browser ID "doesn't give the authorities full power to access your accounts"? Your email authority has your email password, which is what you use to setup the certificate and keys. What information does it lack to prevent it from setting up its own keys and establishing a connection and logging into to one of your accounts?

It all depends on the user experience. From the users point of view, they click a link, and may be prompted to enter their email provider, username and password. How can you guarantee that the web page you clicked on to start this process isn't providing their own form to fool the user and capture their password?

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.

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

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?)

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

Cool, so now it impossible to access the websites from any other computer. With OpenID you can set up sms, e-mail, password, browser certificate (same as browserID appears to do), or even having a special usb button next to your home server connected to a serial port to authenticate you.

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.

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.

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

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).

It's easy to provide a different email address to each one. Lots of people do for spam filtering and there are even third-party sites that will give you a randomly generated email address that forwards to a real one.

NOTE: You may choose to validate assertions on your own server. While a bit more complicated you can reduce your dependencies on others. Refer to the specification and the source for the reference validator.

It seems to me that there is currently a centralised server, but that that is just for temporary convenience. Did I misunderstand?

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.

Seriously, what are they thinking? HTML5 support in FF is absymal (how hard is it to implement sliders a.k.a. input type=range?), memory consumption is ridiculously high (despite all claims to the contrary), who cares about the Nth alternative for a solved problem? After they retardedly jumped 5 major version numbers in 6 months without any important changes and lost a big chunk of the market, they should slowly get their act together...

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?

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).

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.