Does a "salted hash" really help?

# Thread: Does a "salted hash" really help?

1. ## Does a "salted hash" really help?

I've been trying to research more about salts to further understand the purpose and I'm having a difficuilt time getting anywhere. Here's my problem - I understand a salt can prevent two hashed passwords from appearing the same (because their salts are unique) in a database if the system is compromised, but what I don't get is how this makes dictionary attacks hard?

A salt is always stored in a database along with the hash(password,salt) value. If I wanted, I could retrieve a list of passwords and their associated salts. I can then take my dictionary attacking app, and run through converting each "common password" to the salted hash equivalent for a particular record, then continue that process for all records in the passwords table. Sure, it would take a little longer, but not *that* long, right?

A 2 GHz machine can do 2 billion cycles / second and an MD5 on a simple string takes roughly 64 cycles - so you're talking 3/10 of a second to hash 1,000,000 passwords with a particular salt. If you have 1,000 users to crack, you could get that done in, oh, a minute or less right?

I *know* I'm missing something here, I just can't figure out what. Please help me understand how salts really help here.

Thanks!

-Maestr0

3. Ok, I agree with what you are saying but lets say we're still doing a dictionary attack - a moderm computer could still crack passwords at an astoundingly fast rate, correct? When I started doing the math I was expecting something to be an exponential, making it exponentially more time consuming to crack with a salt, but it's not - it's completely linear so one could just throw more hardware at a pw database and crack as fast as he/she wanted to.

I agree about the strong passwords, that would help prevent this a great deal because it would eliminate dictionary attack as a possibility - even brute force would be impossible in that situation because you would have nothing to compare it with to determine if it was cracked (a good system will lock you out or luck itself up after several, let alone millions, of attempts).

I'm still eager (and hopeful!) to here if I've missed something in my logic

4. The unique salt will not prevent a dictionary attack from succeeding on a weak password. What it does do is attempt to protect strong passwords from being cracked by preventing the attacker from creating a codebook from the weak passwords discovered via the dictionary attack or just using every possible hash. Without the unique salt you can create a list of all possible hashes and then decrypt the ENTIRE password list.

-Maestr0

Heres a bit about

http://www.securityfocus.com/archive...6/2003-12-22/0

5. I don't understand how a code book of cracked weak passwords would be of any help in cracking a strong passwords (with or without a salt). Can you explain how a codebook would be helpful in cracking a strong password (without salts)?

I could see if we were using symmetric encryption how it might be helpful, but I'm not sure I get how this would be helpful for decrypting a 1-way hash.

6. You're right you cant build a codebook from the weak passwords (Sorry, I've been on an airplane for the last 5 hours and I think its melted my brain ) But you could say create just a bruteforce list of digests and then compare it to the password list and reveal them all, or a dictionary list may reveal multiple accounts with one digest. Once you use a salt there is no 'master' list that can be used to reveal all the passwords because the space of all possible combinations gets much larger.

-Maestr0

7. Ah, hah! Now we're getting somewhere. A brute-force list of digests would be like a very big dictionary - too time consuming to construct multiple times. Thanks!!

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•