All timestamps are based on your local time of:

Posted by: stak
Posted on: 2006-10-19 23:40:28

it seems pretty obvious to me that the whole password model of authenticating people is broken. first there were just usernames, which also served as passwords. then there were usernames AND passwords. then they added security questions to which you had to give the right answer. now some sites even have user-provided security questions, so you have to give your question and your answer. all they're doing is increasing the number of things the user has to provide, which is effectively the same as bumping up the minimum password length. (i.e. if you concatenated your username, password, security question, and security answer, that would be your new password). it's stupid. passwords can be broken by any number of techniques, from a simple brute-force search to dumpster diving to social engineering. i could go on for a while describing how the password model is broken, but you probably already know that.

next up is two-factor authentication. you need to provide something you have and something you know. usually this involves a password, combined with some sort of biometric dealie, whether it's a fingerprint, retinal scan, voiceprint, or even keystroke pattern recognition. this is better, but it really shouldn't be called two-factor authentication because the password half of it is still broken. it's basically just a biometric authentication. this is (as of now) stronger, and the people selling these solutions would have you believe that they are nigh-unbreakable. don't believe everything you hear. eventually this will be broken too. it's possible for attackers to get your fingerprint from anything you touch, or get your voiceprint from a recording. retinal scan might be harder, but hey, they did it entrapment, so it can't be that hard. eventually anything that just captures some physical characteristic will also be as broken as passwords are today. even RFID implants suffer from the same problem as biometric: the response from an RFID tag can be recorded and replayed (assuming my understanding of how they work is correct - I could be wrong on this one).

one thing all of the above methods have in common is that they're not dynamic or interactive. each of these basically prompts you exactly once for something (either a password, fingerprint, ...) and if you provide it successfully, you're good to go. this means that any sort of man-in-the-middle attack (which is effectively what's happening when you steal someone's fingerprint) can break it. what we need is an authentication method that changes every time it's used. something that's interactive, something that requires a "conversation" between the authenticator and authenticatee rather than just a one-time exchange, has the ability to be dynamic in such a way. the first step in the conversation could be the same (providing a username or some pointer to the identity you wish to authenticate against), but the rest of the conversation should change.

i don't have any specific ideas on how to actually make the conversation change such that the authenticatee can provide the correct responses to the authenticator without having any previously-agreed upon passwords/keys, but there must be some way to do it. ideas?

Posted by Jen at 2006-10-20 08:51:19
Of course... nothing they do in movies can be *that* hard... :)
[ Reply to this ]
Posted by gdbaer at 2006-10-20 10:54:07
What about those little RSA tokens that have a number that rotates every minute or so?

Like this...
[ Reply to this ]
Posted by stak at 2006-10-21 00:00:37
Funny you should mention that.. I have one of those on my desk right now :)

Yes, they do provide the type of dynamic conversation I was suggesting since the response to the auth challenge changes every time. However, tying it to a token that can be (relatively) easily stolen makes it weaker. It is now effectively back to two-factor authentication, except non-biometric. Stealing an RSA token is probably easier than getting a fingerprint, but more likely to be noticed. The other half of the authentication is the fixed prefix that goes with the token's number (same as a password), and therefore broken. But yeah, let's consider the token itself in more detail...

The token is a physical implementation of a function that returns a number when given a time value. We can make this more generic by considering the different input times to be "attributes" and the different output numbers to be corresponding "values". The token can then be described as a set of attribute-value pairs (i.e. t=0 ==> 123456, t=1 ==> 234567, ...). The thing that makes the token relatively strong and allows it to have the dynamic conversation is the size of the attribute set. The more attributes it has, the more unique queries you can make of it. In the case of the token, the attribute-value pairs are based on a fixed algorithm. This means that, given enough values, it is possible (although perhaps computationally infeasible) to figure out the algorithm that generates the numbers.

So what we need is something with a really large attribute set, such that obtaining a few (or even many) of the attribute-value pairs does not allow the attacker to guess the rest. Also, the attribute set should not be contained in something that can be stolen or copied from you. (Keep in mind that this is just one way to achieve a dynamic conversation - there may be others).

Something else that I didn't mention in the original post is scalability - how many different passwords do you need to know right now? Imagine having that many RSA tokens. Not fun :) Most of this can be gotten around by OpenID-style delegation (woo! OpenID!), where you have an authentication provider that you trust (that is also presumably certified to some standard) that you can authenticate against, and which will verify your identity to other entities. So in effect, scalability is kind of a moot point.
[ Reply to this ]
Posted by Greg at 2006-10-26 19:28:39
Biometric auth terrifies me. I'd rather have a low-tech thug threaten me for my PIN number than snip off my index finger or gouge out my eyeball.
[ Reply to this ]

[ Add a new comment ]

(c) Kartikaya Gupta, 2004-2024. User comments owned by their respective posters. All rights reserved.
You are accessing this website via IPv4. Consider upgrading to IPv6!