[dundee] Awesome Password Tricks
Gavin Carr
gavin at openfusion.com.au
Fri Feb 26 12:03:38 UTC 2010
Hi Rick,
On Fri, Feb 26, 2010 at 11:00:01AM +0000, Rick Moynihan wrote:
> Ok, I was asked last night to post to the list about how I manage my
> passwords...
>
> This is a solution to the password security problem, where we want a
> different password for every website because if any one site gets
> compromised (and they're storing passwords as plaintext) then we've
> lost the security on all our accounts!
>
> The big problem doing this is that you have to remember which username
> and password you have on each site which can be hard.
>
> So I have adopted a lightweight easy solution to this problem....
> Essentially you have a single master password that you remember, but
> you assign each account a password which is the SHA1/MD5 sum of the
> websites domain name + your master-password. E.g. assuming the
> terrible master-password of 'foobarbaz' and the site www.google.com we
> take the MD5 SUM of the string:
>
> foobarbaz:www.google.com
>
> Yielding an MD5 of:
>
> d6194ec9e6037da48c2e4276a01325c1
>
> Unfortunately most sites wont let you have such long passwords, so we
> take the first 8 characters of this producing a password of:
>
> d6194ec9
Really nice scheme - thanks for the post. I do something similar but not
as sophisticated. Might have to try something like this out.
One criticism though: the crypto here is weak. See this post for lots of
gory details:
http://benlog.com/articles/2008/06/19/dont-hash-secrets/
But the short version is that generic hashing functions like MD5 have nasty
concatenation properties for uses like this. Specifically, if you give me a
hash for 'foobarbaz:12345' I can generate a valid hash for
'foobarbaz:12345:plusotherstuff' without having to know your master password.
In practice, you're probably mostly safe with domain names, which is why I
guess no one's complained too much before. But attacks are still feasible.
If I can get hold of a prefix version of some important domain, for instance,
and can get you to login in to it, then I can generate your passwords for
the important domain. I could compromise your important.net.uk account, for
instance, if I could get you to register at my important.net site. Or
attacking www.anz.com.au (an Aussie bank) via anz.com, etc.
So bottom line is you/they should really be using an HMAC version of MD5 for
this, not the generic hash function. Like hmac-md5 in ruby.
My 2p.
Cheers,
Gavin
More information about the dundee
mailing list