Salting a password is meant, primarily, to help prevent what's known as rainbow attack. Networks of pc's have spent a bunch of computing time creating a database of MD5 hashes of all character strings of a certain length. So you can download a db of MD5 hashes of all 6 character strings with a character space of A-Za-z0-9 for instance. The simplest db's are just all lower case a-z character strings from 4 to 8 characters. Others are more complicated sets. When you snag someones one-way hashed password you simply do a lookup on your rainbow table and try to find the matching plain text string that created the hash.
The more complicated the space you are searching (upper and lower case plus numbers and special characters for instance) and password length (4 versus 6 versus 8) determine how difficult it is to create a db of hashes that cover that space. It also determines how big and cumbersome those dbs will be. Some hash tables are already in the many gb in size. Salting a password before it is hashed is a cheap way to greatly increase the length of the password and potentially the space it covers as well. If you have a salt of 20 characters with random bits of the odd part of the 8859-1 character set then the hash of even a simple password is going to be sufficiently complex enough to defeat most rainbow attacks. If a hacker does get your salt value it doesn't actually help them all that much. I could see scenarios where a smart set of hackers working on a high value target would be able to use the known salt value to decrease the search space some. But if you knew the 20 character string and knew it was tacked onto a 6 character user password you'd still have to go about calculating hashes of all 6 character + 20 known character strings which would take quite some time and you wouldn't be able to take advantage of any precompiled rainbow attack dbs. One other note on this bit is that people should start transitioning from MD5 to other one-way hashes such as SHA-1 as it turns out that there is a cryptographic weakness in the MD5 algorithm that renders it more predictable than originally thought. Judah On Wed, Jan 14, 2009 at 6:41 PM, <[email protected]> wrote: > does salting a hashed password really make a difference? Is the goal such > that if a hacker gets to the database they won't have the salt used to hash > the pw making it more difficult to crack the pw? Just curious... > > Thanks, > mike > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;207172674;29440083;f Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:317976 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

