Recent Blog Entries
Another Reason to dis-like DRM Nov. 17 2012
IPsec vs. TLS/SSL (https) May 22 2012
Ron was wrong, Whit is right, really? Feb. 22 2012
I wanted more battery life on my phone... Jan. 15 2012
Bonsai Kitten Dec. 9 2011
I have been involved in Internet Security for more then 20 or so years. One of the holy grails that we have pursued is the global Internet Authentication system. In the 1980's we developed Kerberos at MIT. Kerberos was one of the first practical cryptographic based authentication systems on the Internet. Prior to the advent of Kerberos you authenticated yourself by providing a user name and a password, in the clear over the network where they could be intercepted by anyone with the wherewithal to eavesdrop on the network. Kerberos permits you to prove who you are without revealing anything to a network eavesdropper that would permit them to impersonate you.
However Kerberos is an enterprise solution. It assumes a common management domain which issues user names and (Kerberos protected) passwords. Although Kerberos supports connections between “realms,” this is setup via bi-lateral arrangements. This works, but it doesn't scale to the size of the global Internet.
In the early 1990's when the Netscape browser first became popular, the folks at Netscape realized that the web could not be used for commerce unless there was some way of providing authentication and encryption of sensitive information in flight. The solution was Public Key Encryption. With Public Key Encryption you have two keys, one public and the other private. You can prove who you are by signing a datum with the private key. This “signature” can then be verified using the public key. As long as you know that you have the correct public key, you can validate the signature.
The trick is how you know you have someone's public key. The idea in the 1990's is that we would have a global X.509 based “certificate” infrastructure. A certificate is a data item, itself signed, that associates a public key with a person's identity. Using certificates we can build a hierarchy that permits any browser to validate any server and any web server to validate any web user that has a certificate.
But it didn't work out that way. In part this was because of greed, policy wonking and lawyers. Add to this technology that was complicated to understand and use and the seeds of failure were well planted.
Greed: Some folks wanted to setup the system so that they would profit from every certificate issued. Imagine the income if every Internet user paid you $25/year!
Policy Wonking and Lawyering: Some folks assumed that getting authentication credentials would be such an important process, that people would put up with significant hassle to obtain credentials (say, visit a notary public, show two forms of ID, mail off a paper application (with your $25 check) and then wait days or weeks for the credential to be issued!
In the end, server certificates succeeded, particularly since the infrastructure evolved so that there was competition in certificate issuers (competition = customer service!). But client certificates, those issued to individuals to prove their identity, have totally flopped.
In the meantime, a global identity system has evolved behind the scenes on the Internet. What is it? Its your e-mail address. Ultimately you prove yourself by demonstrating that you can read e-mail sent to your purported e-mail address. Most websites today that desire authenticating their users have some system where you establish an account on the site and provide your e-mail address. If you forget your password (common on a site you may only use occasionally) the site can mail it (or a new one) to you. So being able to read your e-mail translates into proving your identity. Problem solved, QED.
Why does this work:
Of course this works because of the domain name system (DNS). The DNS provides for a globally unique way of identifying resources on the Internet and its management has evolved in a reasonable fashion (this may be controversial because people do have issues with ICANN, the organization that in theory is responsible for managing the DNS. However this is beyond the scope of this post. Perhaps I will address it in a future post).
But perhaps the most important point is that e-mail addresses just work. There is no need for sites to enter into bilateral agreements to send mail to people. I.e. If I have an e-mail address at MIT (aka @mit.edu) and I use that to register at frobs.com. There doesn't need to be any technical arrangement or legal agreement between frobs.com and MIT in order for me to have frobs.com e-mail me a new password!
Which brings me to my final point. Check out http://openid.net. OpenID may well become an important authentication technology on the Internet (if not the authentication on the Internet). Why? Because like using e-mail addresses, there is no need for complicated bilateral technical arrangements nor legal agreements. It just works.
The Internet came to be because of technology that could be deployed and used. The most important property of that technology is that it “just worked.” OpenID just works... check it out.
Copyright © 2009-2012 Jeffrey I. Schiller