New Online MD5 Hash Database
Gravix writes with a shameless plug for his new site "Sporting over 12 million entries, project GDataOnline is one of the largest non-RainbowTable based MD5 crackers on the internet. The database spans over 7 languages, 35 topics, and contains common mutations to words that include numbers and capitalization. Average crack time for 5 hashes: .04 seconds. No more waiting weeks for your results!" Shameless plug aside, the site still seems worth a closer look.
Does anyone know how to get a hold of a database such as this? As part of our IT auditing I'd like to be able to do a join of our md5-encoded user passwords (no salts or anything) with this to see whose password is insecure... yeah, that's it...
Linux distros these days use MD5 by default -- but they use it in a way that's not so horribly stupid as to be broken by this attack.
/etc/shadow. A few lines of perl, /usr/share/dict and 30 seconds later and I had the root password, the same password as other more important machines. Naturally I mentioned this to the tutors (aftre some subtle brainfucking)
In an "intro to linux" course I had to take a while back as part of a general engineer course, I noticed that one of the test machines wasn't using
A friend of mine got his account terminated for a manoeuver like this -- he ran crack over an unshadowed /etc/passwd on one of the machines at his school and sent the output to the sysadmin:-)
More often then not people are dumb and easily scared. Every time you do something they don't expect you to do, they might treat you as a criminal, no matter what your intentions. If I'd come across someone else's root password, I'd think twice before telling them. That is, unless I wasn't their boss, or hired by their boss to do this.
BTW, I bet the root password you got was "god", "the plague", or something from the same wavelength:-).
You jest, but I seem to recall "pepper" being used to describe a related scheme under which the salt is secret and has a relatively small domain (but large enough to make dictionary attacks much harder). The idea was that if you provide the right password, the computer can exhaust the possible pepper values until it gets a match, but the correct value never needs to be stored.
Sound familiar to anyone else? Anyone know if it's used in practice?
Consistency requires you to be as ignorant today as you were a year ago. -Bernard Berenson
Actually I have seen many applications that fail to salt passwords before hashing them; it's depressing. Salt should be long enough to be globally unique when randomly generated. Old-style Unix passwords used a 12-bit salt, which was pathetic; 128 bits would be plenty.
In addition, it's best to iterate the hash many times, which slows down dictionary attacks. See Kelsey, Schneier et al, "Secure Applications of Low-Entropy Keys":
http://www.schneier.com/paper-low-entropy.html
The proofs in that paper are based on the assumption that the hash function is collision free, which of course MD5 isn't; another hash function might be preferable.
Xenu loves you!
Interestingly, do a MD5 hash of 1
The result is c4ca4238a0b923820dcc509a6f75849b
Do a google search for that string.
That results in roughly 2000 hits. That's 2000 people running un-salted hashes...
The Mini Repository - more links
It's kind of strange how the moderation of a post can change its meaning. I was reading the parent post when it was modded "+5 interesting". I thought it was a crock, as everyone knows that since hashes have collisions, they cannot be used for lossless (or practical lossy) compression.
Anyway, I pressed Reload to see if there were any new posts, and stumbled upon the parent again, now moderated "+5 funny". My first thoughts were "what a subtle parody....wait a minute, this looks familiar".
function pepperMatch(password, hash) {
var pepper = ['po', '3g', '37', 'ax'];
var p;
for p in pepper {
if (md5(pepper[p] + password) == hash)
return true;
}
return false;
}
Beyond the obvious downside to this (4 times the CPU time for legitimate matches) the advantage is obviously that the cracker has 4 times the bruteforcing to do. But if your security has been comprimised enough to allow someone to find out this hash then you probably have bigger things to worry about.
Maybe tricks like these will come into their own once people realise just increasing hash length or changing the function isn't going to make them any more secure when users still aren't using 'good' passwords.
If you think about it hashing your passwords in a database is almost an admittance either that 1) you're database will probably be comprimised or 2) you're users shouldn't trust you. I wonder if it's possible to grep the likes of MySQL's storage files for MD5 hashes (thereby bypassing the databases authentication)?