[Discuss] KeePassX

Kent Borg kentborg at borg.org
Wed Jul 24 08:27:01 EDT 2013


On 07/23/2013 11:16 PM, Bill Horne wrote:
> the hashes allow a "Dictionary attack", where they just run every word 
> in the dictionary through a hash function, and see what matches.

It depends. Unsalted hashes are vulnerable to dictionary attacks with 
rainbow tables.  But the right (non-Microsoft) way to do it is to 
prepend a random salt to every password before hashing it.  Save the 
salt in the clear along with the hash.

When you want to authenticate, take the offered password, prepend the 
salt, hash it, and check against the saved hash.

Now if two different people have "password" as their matching passwords, 
the hashed versions still won't match because the salts will still be 
different.

If the salt (or nonce) is, say, 32-bits, you have just multiplied the 
needed size of the rainbow table by 4-billion.  Use a bigger salt and 
the needed rainbow table can be universes-bigger.


-kb




More information about the Discuss mailing list