<< Previous | Next >>

Universal Authentication

For a long time I have had the idea that browsers and webservers should support another authentication scheme: public-private key authentication. That way, when registering to yet another website, instead of giving my password, I can give it my public key.

On the lowest levels we can reuse the WWW-Authenticate: Digest with some small modifications. On the browser side it would require some public / private key management that even non technical users can understand.

If implemented, it will give secure, but password-less logins for web based services. Even better then single sign-on ideas like Passport.net or Liberty Alliance.

But problems do arise when we want to login from any other terminal that doesn't have our private keys installed. This can be solved by introducing relays.

When the browser doesn't know how to authenticate to this website, it can ask the user if it knows any relay service. The relay will respond on behalf of the browser, but it will require a username / password to work. The relay can be done over http or https and can use Basic or Digest authentication, with an addition header: Relay-Authenticate. If the relay finds the credentials given valid, it will respond to the challenge with the right header in Relay-Authorization. Then the browser can forward this to the webserver.

Note that a relay can be a mobile device with WLAN capabilities, or a personal server reachable over the internet (included in your home broadband-router for instance), a service provided by your boss, or any public server that you trust with your private key. The point is, your personal data is not on Microsofts Passport service, or any other companies server that you might not like, and no-one has a single point of control.

Strong points

Weak points

References

Last modified: 2007-11-19 20:15 GMT