Web single sign on idea in a slashdot post

Chris Hammond-Thrasher chris.hammond-thrasher at hushmail.com
Fri May 27 08:49:59 PDT 2005


Perhaps some of you have been following the slashdot discussion on 
the recent Berkeley paper on "Security Skins" and single sign on 
using the human ability to distinguish between faces. (See 
http://it.slashdot.org/article.pl?sid=05/05/26/1725228&tid=172)

Burried in the discussion, as user named baadger proposes a web 
single sign on idea that might interest this group. You can read 
the post at 
http://it.slashdot.org/comments.pl?sid=150801&cid=12648451 , but 
here is the meat of it:

<slashdot_quote>
Registration process
--------------------

* Your client side script or extension takes your master password 
and appends 'thewebsiteyouresigningupto.tld' or 
'generic.webhostorisp.tld/website/path/' to the end, perhaps with a 
nice seperator
* MD5 (or some other) hash this string using javascript or client 
side code. This becomes the website 'registration hash'.
* The server stores this directly into it's user database without 
any further manipulation.

Login process
-------------

* Server generates a random string (the current time since the 
linux epoc would do) and sends it in a hidden form field. Call this 
the session string.
* The client takes master password appends the website dependant 
domain or uri etc and reproduces the registration hash for that 
specific website.
* Take the registration hash and append the session string sent by 
the server and hash it again. This becomes the 'login hash' that is 
used only once, for this login only.
* The server retreives the registration hash from it's database, 
appends the same session string that it sent to, and kept 
associated with, the visitor and hashes it to produce the same 
'login hash'.
* The server compares this expected login hash to the login hash 
from the user and authenticates the user if they match.

Pros
----

* No information that can result in successful authentication for 
different session is sent across the wire.
* The user gets to hash their password client side so doesn't have 
to worry about whether the server side to storing it securely.
* The webmaster has no control over the client side hashing and 
can't modify anything their end to get your password to another 
website.
* The password for the website is unique to the websites domain/URI 
but the master password entered by the user can be used on any 
number of websites, this makes it easy to remember and conveinient.

Cons
----

* The registration transaction is open to a man in the middle 
attack - but at worst someone will only be able to comprimise that 
specific website because the registration hash is made unique to 
each website.
* The server side needs to be able to keep track of what session 
string it sent to the client - can be done by means of ip address, 
user-agent and cookie association etc. The server side also needs 
to ensure noone can authenticate for the current session by similar 
means.
* The worst one - if a website changes URL's then all the user 
passwords become invalid. But what the hell - send them all new 
ones by e-mail.

</slashdot_quote>



More information about the yadis mailing list