[url=http://meincmagazine.com/civis/viewtopic.php?p=28140531#p28140531:197g7ac3 said:pk![/url]":197g7ac3]MD5, really? After having printed several articles on password cracking I'd have hoped you'd at least have leveraged a stronger hashing algorithm.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28140525#p28140525:197g7ac3 said:Abhi Beckert[/url]":197g7ac3]
2,048 iterations is not enough to prevent a brute force attack on MD5.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28140725#p28140725:197g7ac3 said:d0x[/url]":197g7ac3]
Seriously? Ars themselves have posted many articles about this very method of encrypted password storage to be easily breakable either via brute force or with rainbow tables.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28140735#p28140735:197g7ac3 said:Threz_[/url]":197g7ac3]One the one hand, Ars calls the use of MD5 hashes for storing passwords as "unfortunate and irresponsible", and on the other (above) uses it as a way to argue that the passwords were well-"encrypted." Which is it?
[url=http://meincmagazine.com/civis/viewtopic.php?p=28140883#p28140883:197g7ac3 said:FF22[/url]":197g7ac3]
No wonder your server was hacked if you really thought running MD5 multiple thousand times over the password would harden the hashes by any means. If anything, it weakened them.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28140869#p28140869:2gatdqci said:Powerlord[/url]":2gatdqci]
To put this into perspective, Linux distros were using 1000 iterations of salted MD5 15 or so years ago. And had switched away from it 10+ years ago.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28140877#p28140877:2gatdqci said:Threz_[/url]":2gatdqci]Considering the article I quoted was talking about a single user putting a rig together to reach 350 billion hash/sec rates... an additional couple thousand hashes isn't really all that much longer. These passwords leaked from Ars will be cracked pretty quickly.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28141657#p28141657:2gatdqci said:pqr[/url]":2gatdqci]Sure. Why assume salt is unknown? Typically it is in same DB as hash itself. (In other words effective speed is order Mhash/sec in targeted attack.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28141807#p28141807:32eidf13 said:Bengie25[/url]":32eidf13]
Technically, the he did mention that "salting" makes cracking take longer. pqr may have assumed the poster meant it took longer because now you have to guess the salt, because it's ridiculous to think the salt adds a reasonable amount of extra work.
pqr needed to read through the minor mistake, because it was meant that salting stops rainbow tables and iterations make hashing talk longer. The rest of the post was spot on, just the minor "salt" mistake.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28141849#p28141849:7c4tdeqi said:Gern Blaanston[/url]":7c4tdeqi]So far, all the discussion has revolved around the good/bad points of MD5. And while it's all quite interesting, I find the first sentence of the article more troubling:
"an Internet intruder gained access to one of the Ars Web servers"
These intrusions seem to be becoming more common and there really seems to be a systemic problem of people not taking security seriously (despite paying lots of lip service). Don't get me wrong, strong encryption on your database of user passwords is a very good thing. But not letting people get to that database in the first place is, in my opinion, even more important.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142053#p28142053:3neybash said:pqr[/url]":3neybash]
Figured out how this detour could have been avoided. Units of that rate should be 3 hashes/sec/accountWhereas I thought you were solving different problem (unknown salt-assignment) which means 3 hashes/sec/salt for given account.
Session.Name...: oclHashcat
Status.........: Aborted
Input.Mode.....: File (/home/epixoip/rockyou-sorted.txt)
Hash.Target....: File (/home/epixoip/forbes-php.hash)
Hash.Type......: phpass, MD5(Wordpress), MD5(phpBB3), MD5(Joomla)
Time.Started...: Tue Dec 16 16:50:26 2014 (15 secs)
Time.Estimated.: Wed Aug 5 00:59:31 2015 (231 days, 7 hours)
Speed.GPU.#1...: 1 H/s
Recovered......: 3/1071734 (0.00%) Digests, 3/1071734 (0.00%) Salts
Progress.......: 11714560/15347819261966 (0.00%)
Skipped........: 180224/11714560 (1.54%)
Rejected.......: 0/11714560 (0.00%)
HWMon.GPU.#1...: 0% Util, 54c Temp, 100% Fan
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142167#p28142167:mkwl97hn said:pqr[/url]":mkwl97hn]So be not afraid, I am very much getting it (perhaps you are not getting this last statement, or not wanting to, but that I leave to you to deal with).
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142343#p28142343:2wg2oz9m said:Jedakiah[/url]":2wg2oz9m][url=http://meincmagazine.com/civis/viewtopic.php?p=28142035#p28142035:2wg2oz9m said:epixoip[/url]":2wg2oz9m]
There was no mistake made, and you obviously don't understand how salting works. It does indeed add a reasonable amount of extra work. You incur a factor of N slowdown for each unique salt. 1M unique salts == 1M times slower.
Evidently I don't understand how it works either, which is quite embarrassing. I was under the impression that a salt is a random string added to the end of the password before it is run through a hashing algorithm. So you generate a random string like "Ar2cjWo3rc", append it to the end of your password "hunter2Ar2cjWo3rc", then you store the hash and the salt in your database. Of course typically your hashing algorithm stores the salt and hash together in the same output string saving you a column in the database. Where does the 1 million figure come in? The only way I can picture a hacker having to run a million attempts on each hash * your iterations is if you are using a precomputed list of a million hashes stored elsewhere, and randomly select one each time a user registers. The you store no info about which one you selected. If so then Ars too has run a million attempts on each hash every time a user tries to log in. That whole system seems odd, mostly because I have never seen it implemented before. Why store precomputed hashes instead of just bumping the iterations? It would add complexity and tax the database. I am assuming I am way off here, hence my question about how this works.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142499#p28142499:5jymbft4 said:dillweed81[/url]":5jymbft4]Can someone please explain to me how 2048 iterations of MD5 plus a salt supposedly reduces hashes per second to the 3 digits? To me this seems like 2048 MD5 operations and 2048 string concatenations. This means the cracking rate should be the number of MD5 ops per second divided by 2048, roughly. Why is it not? What is making it slower than that? Each salt has to be unique, that's the definition of a salt, but the salt, as I understand, is stored inside each user row. So the salt effectively shouldn't significantly affect the runtime, it merely prevents precomputed cracking. Am I misunderstanding his metric? Is he trying to calculate the hashes per second on average to crack *every* hash rather than a single hash? If so, that seems very misleading; hashes per second is assumed to be the rate to crack a single hash.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142673#p28142673:16w7fjri said:drukov[/url]":16w7fjri]That's completely wrong. Salts do not slow down bruteforce cracking beyond obscuring users who use the same password. The effective speed is still 3 MH/s.[url=http://meincmagazine.com/civis/viewtopic.php?p=28141599#p28141599:16w7fjri said:epixoip[/url]":16w7fjri]
If you want to put this into "OL Hashcat" terms, a single R9 290X can pull ~ 12.2 GH/s on raw MD5, but only 3 MH/s against PHPass. Divide that by 1,071,734 unique salts, and that means our effective speed is only 2.86 H/s. That's beyond properly slow. Multiply that by 100 GPUs and that's still only 286 H/s. We can't do very much with that, and that's why this list is only 16.19% cracked.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142643#p28142643:2z7sqc8g said:dillweed81[/url]":2z7sqc8g]epixoip is a professional password cracker, not a professional penetration tester. He cares about cracking massive data sets, which does not always align with black hat goals. I work in infosec and have participated in some red team exercises.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142643#p28142643:2z7sqc8g said:dillweed81[/url]":2z7sqc8g]
With 2,048 iterations, it is roughly 4,000x slower than a single round of MD5. This is much better than MD5 but is still much faster than what industry standards recommend. The rounds would have to be set to 130-200k to get closer to industry standards. Obviously it could be configured to use that many rounds, but Ars did not configure it that way (possibly due to performance concerns).
[url=http://meincmagazine.com/civis/viewtopic.php?p=28142643#p28142643:q5qeho6n said:dillweed81[/url]":q5qeho6n]OWASP's recommendations for PBKDF2 are 128,000 iterations in 2014
[url=http://meincmagazine.com/civis/viewtopic.php?p=28143499#p28143499:wqiq2bta said:Sc00bz[/url]":wqiq2bta]I wouldn't take OWASP as an authority on password hashes when they suggest PBKDF2-HMAC-SHA1 with an output of 192 bits...[url=http://meincmagazine.com/civis/viewtopic.php?p=28143049#p28143049:wqiq2bta said:epixoip[/url]":wqiq2bta][url=http://meincmagazine.com/civis/viewtopic.php?p=28142643#p28142643:wqiq2bta said:dillweed81[/url]":wqiq2bta]OWASP's recommendations for PBKDF2 are 128,000 iterations in 2014
I am unable to find where OWASP recommends 128,000 iterations in neither their article on password hashing, nor their article specifically pertaining to PBKDF2.
So where did this number come from?
That said PBKDF2's minimum suggested iteration count in 2000 was 1,000 and should probably double ever 2 years so 2^((2014-2000)/2)*1,000=128,000. This is where that number comes from I know I've said similar a few years ago.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28143671#p28143671:dbvzcf73 said:Sc00bz[/url]":dbvzcf73]Yes, I would not really recommend PBKDF2 with 128k iterations because it's slow as shit. Since it can't take advantage of SSE2, AVX2, or AVX512 (soon). The problem with PBKDF2 is that Moore's law went parallel and PBKDF2 is sequential. Thus over time, hurting the defender.[url=http://meincmagazine.com/civis/viewtopic.php?p=28143625#p28143625:dbvzcf73 said:epixoip[/url]":dbvzcf73]
Anyway, 128k iterations is probably fine for key derivation, but I'm not sure I'd ever recommend anything near that for password hashing. But then again also I'd never recommend just blindly following someone's advice on iteration count. Should always be chosen based on benchmarks and metrics.
Also PBKDF2 with 1,000 iterations back in 2000 was for optimized compiled code not PHP. So really as a defender you need to lower your iteration count because your code runs slower. This sucks but otherwise it will take too long.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28144181#p28144181:2iuy43yd said:locolocol[/url]":2iuy43yd][url=http://meincmagazine.com/civis/viewtopic.php?p=28141599#p28141599:2iuy43yd said:
Ha, when I read this, I immediately thought of:
Hi! I'm Troy McClure, you may remember me from such films as...
[url=http://meincmagazine.com/civis/viewtopic.php?p=28149395#p28149395:19z4bzb1 said:seajack0[/url]":19z4bzb1]Why isn't this pinned to the front page? You guys always vilify other companies for allowing themselves to be hacked and smear it all over the front page, only to bury your own site getting hacked in the sidebar. What gives? Also, MD5? What is this, 2004?
[url=http://meincmagazine.com/civis/viewtopic.php?p=28153601#p28153601:353uo48y said:mehaase[/url]":353uo48y][url=http://meincmagazine.com/civis/viewtopic.php?p=28140605#p28140605:353uo48y said:DeadMG[/url]":353uo48y]Even with an algorithm as weak as MD5, 2048 iterations plus salt isn't too bad.
Some obscure news organization covered a GPU cluster two years ago that could compute 180 billion MD5 hashes per second. The Ars minimum password length is 6 characters (yikes) and I can't remember if it has any password complexity requirements. I'll assume mixed case and alphanumeric just to be charitable. That cluster cracks such a password in about 5 minutes.
An "Ars hash" takes ~2000x longer to compute than a single round of MD5. That GPU cluster can still compute ~90 million "Ars hashes" per second. This stretches 5 minutes into about 7 days.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28154567#p28154567:1hd0l5tc said:mehaase[/url]":1hd0l5tc]
Yes, I am looking at single hashes, and I explicitly said that in the first paragraph of my post
[url=http://meincmagazine.com/civis/viewtopic.php?p=28154567#p28154567:1hd0l5tc said:mehaase[/url]":1hd0l5tc]
If there were any factual or mathematical errors in my post that you wish to dispute, please do.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28155807#p28155807:3h0kkidg said:mehaase[/url]":3h0kkidg]This is an interesting claim. I had never looked at PHPass source code before today, so I just took a gander. It's about what I expected: a tight loop around the core MD5 algorithm. I don't doubt your claim that this is ~4000x slower than a single MD5 (which means my estimate was off by a factor of 2), but this implies that the PHP implementation has an overhead cost of 100% (compared to an unrolled loop in native code). I'm guessing that memory allocation and string concatenation are probably the most expensive operations. If the same algorithm was implemented in a more efficient language, then the overhead could be reduced drastically. Out of curiosity, do you know if oclhashcat calls into PHP to crack PHPass or does it have its own native implementation?
* Precompute-Init
* Precompute-Merkle-Demgard
* Meet-In-The-Middle
* Early-Skip
* Not-Salted
* Not-Iterated
* Scalar-Mode
* Raw-Hash
[url=http://meincmagazine.com/civis/viewtopic.php?p=28155807#p28155807:3h0kkidg said:mehaase[/url]":3h0kkidg]And this is where I defer to your expertise. I assume that the 290X must be one of the best cards out there for cracking? So how much do you think this technology has improved in the 2 years since you built your cluster, in terms of MH/s/$? And where do you think it will be 2 years from now? Or 10?
[url=http://meincmagazine.com/civis/viewtopic.php?p=28155807#p28155807:3h0kkidg said:mehaase[/url]":3h0kkidg]
That was really my original point. Hardware will get continue to get faster and cheaper and more attacks against MD5 will be announced. PHPass+MD5 isn't tenable in the long run. Replace PHPass+MD5 with bcrypt (and select a suitable work factor), and then the 25 GPU cluster plummets from 30 MH/s to 30 hashes/s.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28156823#p28156823:1fnjgfvw said:Sc00bz[/url]":1fnjgfvw]I'll cut you off there because you go into crazy town.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28157505#p28157505:1h6ab70j said:Rainbird[/url]":1h6ab70j]You did get an e-mail.[url=http://meincmagazine.com/civis/viewtopic.php?p=28157425#p28157425:1h6ab70j said:sraboy[/url]":1h6ab70j]Maybe it's just me, but I'd appreciate it if a notice about the breach were posted at the top of the front page, or if I got an email.
[url=http://meincmagazine.com/civis/viewtopic.php?p=28157651#p28157651:1ox8homz said:mehaase[/url]":1ox8homz]I'm not "hung up" on any particular algorithm. Let's just say that there are several simple ways that Ars could have turned 14 days into 14 years (or more). If this was any other site, I'd shrug and say, "oh well." But Ars covers password cracking! I can't believe that you and your buddy fail to see the irony here.