According to these links:http://www.zdnet.com/blog/hardware/cheap-gpus-are-rendering-strong-passwords-useless/13125andhttp://www.pcpro.co.uk/blogs/2011/06/01/how-a-cheap-graphics-card-could-crack-your-password-in-under-a-second/pretty fuckin scary.[Edited on June 8, 2011 at 1:17 PM. Reason : .]
6/8/2011 1:17:05 PM
wow
6/8/2011 1:25:31 PM
So you can quickly crack an unsalted MD5 hash of a plaintext password. Not that concerned.
6/8/2011 1:39:45 PM
If it's unsalted, I'll certainly need lots of pepper.
6/8/2011 1:42:21 PM
pretty potent stuff.
6/8/2011 1:56:57 PM
salting is the basic answer here - but there are an incredibly huge contingency of dev's who don't bother to salt their password storage. I know for a fact the content management system here (written before I arrived) does not salt - just a straight MD5. To me people have too much faith in security by obscurity. I'll admit at times I even suffer from it - half my DVD collection is on a simple password protected directory live on the interwebs. But I'm dang sure not storing something important in there.
6/8/2011 1:57:32 PM
That said, the program does support salted, hashed passwords if you supply the salt. But if the salt is known, why do you need the passwords? You probably have sufficient access to change them yourself.
6/8/2011 2:01:25 PM
So I am completely out of the current (and for that matter, past) security know-how...But wouldn't this be completely voided by systems that only allow a certain number of log in attempts before lockout?or even systems that might have a built in wait for each password request (and only allow one request at a time)?
6/8/2011 2:28:04 PM
^ yes
6/8/2011 2:30:28 PM
^^ The idea is that they've already compromised your databases and they've stolen the hashed password values which they'll combine with usernames to attack accounts that recycle usernames and passwords on common sites ranging from Facebook to online banking.I still think this is non-news. Sure, a GPU can crack the hash for a 7 digit password in 7 hours. You deserve it for having a password that short. That said, salt passwords before hashing them and don't use md5. I like the idea of hashing hashes with different hashing algorithms.
6/8/2011 2:43:03 PM
6/8/2011 2:52:14 PM
6/8/2011 10:07:06 PM
How exactly does a salt work?my understanding is that it throws random bits in there, but some system has to know which bits to remove, which doesn’t seem like it should be too hard to figure out.
6/8/2011 10:13:00 PM
6/8/2011 10:28:31 PM
^^I mean, it's basically a key to unlock the rest of the password from what I understand of it. The thing is, the salt could be anything... so in essence it's a password to unlock the MD5 encrypted password, if that makes sense. Since MD5 is pretty easy to crack if you've got a rainbow table, they add this extra layer of protection by using the salt to make any rainbow table useless.here's a good writeup on it:http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/^ I too, am a big fan of ruckus. But there's no issues for the GPUs to crack that sort of passphrase. They cover that in the second link.[Edited on June 8, 2011 at 10:33 PM. Reason : .]
6/8/2011 10:32:42 PM
Long example, but I try to explain salt and rainbow tables in an easy mannerSalting is not too complicated. Here's the problem: There are only a handful of schemes to protect passwords (MD5/SHA, etc). So if you wanted to crack, say, a 5 character password with no salting. Yes, it may take a computer 50 years to do it, but you wouldn't get just the single 5 character password you were looking for - you'd get every possible 5 character password. Take all that information and save it and viola - basic brute force attack.So the fact that it can generate and check every possible 7 character string in a matter of minutes is scary - because every password (without salt) of 7 characters or less is now compromised on any server not using salt. If you know the hash (say from a database glitch/hack/etc.) you simply look up the password like a giant excel sheet (in simple terms.)This is where salt comes into play. Lets say you're using a simple MD5. You'd run the MD5, but you'd toss in junk data. For instance you could add the characters "asdf" to a password before running the MD5 - arbitrarily increasing the passwords complexity. Then after the MD5 you take the MD5 string, add "fdsa" to the end of it and MD5 the new string. In the salted scenario a hacker would have to know the final MD5 hash, and ALL the hash steps in between to backtrack - which would normally mean breaking the security of an operating system (in most cases MUCH more difficult than finding a database vulnerability.) But if you have the admin pass you can see what they're salting with, recreate it, then in minutes convert all those hash strings back into credit card numbers (for example). (((This is where it's really crazy. Before even knowing the salt would take some time to decrypt it into useful data. Now if you have the salt you can sell a million lines from it processing overnight)))Next you have Rainbow tables - which are basically charts explaining weaknesses in the system (where patterns emerge). Just a really simple example lets say your hashing algorithm generates a "1" for every password that starts with the character "a". So if you salt with "asdf" at the beginning of a password, it would be a tell-tale sign for every hash you store to have a 1 at the beginning. Same idea, much more complex.
6/9/2011 1:46:45 AM
Due to the salting and dehashifying of the lunar wainshaft, GPU floating GIPS can easily override non-salted, perpendicular check-marks. Even if you confirm the silent, bivariable conditions of the previous array, it won't translate into increased security of your hash-sums. On the topic of security of hash-sums Marzel vein reticulation maybe necessary to prevent murder-cyber-crime. This thread sounds like people are just making shit up. So here's my take on it.
6/9/2011 6:21:22 AM
6/9/2011 7:27:59 AM
Lot of misinformation in this thread.wwwebsurfer said:
6/9/2011 8:36:47 AM
I was responding to these statements:
6/9/2011 8:48:17 AM
The salt is the only thing that really makes a hash viable for "encryption." I am totally on-board with using distinct salts for each hash, but storing them in the same location as the hashes they're associated with is just reckless. It's like writing the combination on the back of your lock.
6/9/2011 9:03:39 AM
Where the hell else would you store them? If you have millions of users, you're going to do what exactly? Put a few million salts in a config file?Anyway, what if that is compromised?My understanding is that the purpose of the salt is to require you to attack each password separately, not to make an individual password harder to attack.
6/9/2011 9:11:08 AM
That's the whole problem. If you store them in a separate table of data, you're increasing the amount of overhead involved in hashing the supplied password for comparison to the stored hash. It's a classic trade-off.Salting a password prior to hashing it with a value known only to the application makes it harder and maybe impossible to find a value that will produce the hash, mostly because if you don't know the salt, it won't be practical to test each value until you get one that succeeds.Salting every password with the same salt prior to hashing it means that once your hashing algorithm is compromised and the salt is known, all passwords become much more vulnerable to attack.Salting every password with a different salt prior to hashing means that all salts and the hashing algorithm and the hashed passwords need to be known before an attack is feasible. But the whole point of the salt is that it should be known only to the legitimate parties involved in the secure exchange of the message. If you're storing the salt right next to the hash, you're leaving the key in the lock.
6/9/2011 9:16:15 AM
Based on that article, it seems like the most secure method is to use Sha1 hash function with unique salts that pull from database specific values that are not just unique, but unique to the application itself as well. Also, with a cost parameter like PHP blowfish, you can drastically increase the time it takes to brute force a hash. This would require the hacker to create separate and individual rainbow tables for each hash in order to crack anything, which is a waste of time.
6/9/2011 10:00:43 AM
6/9/2011 10:03:12 AM
If the salt is secret—if you don't even know whether there is a salt, let alone its length, let alone its value—it's that much harder to plan and execute your attack.To use your example, let's say you map the hashed password to the plaintext "passwordsalt." If you know the salt was "salt," then you know the password is "password." But what if the salt were actually "rdsa"?[Edited on June 9, 2011 at 10:14 AM. Reason : subjunctive]
6/9/2011 10:14:02 AM
Maybe I wasn't clear. In my example, all the lengths and values are unknown. Let's take your example of "rdsa."I've found a plaintext of abcdefgrsda. I'm just 5 attempts away from figuring out the password by actually trying to log in with it. Hell, if it was an english phrase, the actual password would be immediately obvious.And unless your salt lengths are random too, once I figure out one password, the length presents no further difficulty.[Edited on June 9, 2011 at 10:24 AM. Reason : asdfasdf]
6/9/2011 10:23:08 AM
geez this thread blew up this morning.First, "protect passwords" is not the same as "password-protect". Everyone I know uses hashing functions so we're not storing passwords as plain text. Encryption, well honestly, would take more code that doesn't really provide appreciable benefit.Also, I've never heard of someone trying to use individual salt for every user. That's a crazy amount of overhead good thread though
6/9/2011 10:38:27 AM
Forgive my probably simplistic view of this issue. But it seems like a single value salt is useless if you've brute forced the plaintext, as noted above. So if no one uses individual salts per user, due to overhead--and if it is uncommon to obscure the salt/store it separately from the hashes, due to (3. ??? 4. Profit)--what good does the salt actually do? Sure, it makes the password longer, so you have to generate more values to find the match (or a collision). But it seems like the whole point of these articles is that password length is providing diminishing returns, even on strong passwords, with the advent of these GPU-based crackers.Or perhaps I'm missing something entirely. I mean, I took a Network Security course once, but I notably did not pass it.
6/9/2011 11:20:32 AM
6/9/2011 11:27:59 AM
^I think the point being made is not just to the users, but more to the programmers. We/They need to make sure we're taking adequate steps to store this information safely. In the case of individual salts (if I was to implement it) I would store the salt information on a different server, and program the firewall to only allow access to and fro to the separate server over an encrypted connection. That would at least reduce the probability of everything being stolen. In every system I've seen the salt is programmed directly into a process. So you just pass the password to the process and it regurgitates a hash - the hundreds/thousands/however many steps in the process are all contained within the process. To get them you'd either need the source code (only on a dev machine) or get an accurate enough decompile of the process to see whats going on. Most hashing functions have some kind of reducing function already or can be pretty easily written. You just loop hashing, reducing, and salting until you're satisfied it's at least extremely hard to crack.
6/9/2011 11:40:10 AM
lots of sense and good info ITT. I think I have learned a lot about MD5.
6/9/2011 12:01:21 PM
EuroTitToss said:
6/9/2011 12:58:51 PM
Just like with any "secure" technology, we can make our system's secure enough to be more difficult than another target, hence making it "relatively secure" in an every changing hacker's paradise. If someone wants to take 7 years to bust in, they may be able to even with the previous scenario I outlined, but by that time, the tech will have moved on, making your system... not impossible to penetrate, but undesirable, and thus secure by current standards. Any attempt to make a technology secure, consequently opens the doorway to reverse engineer it to be penetrated.[Edited on June 9, 2011 at 1:16 PM. Reason : -]
6/9/2011 1:13:31 PM
I really suggest ya'll read this: http://kestas.kuliukas.com/RainbowTables/I keep hearing people ITT suggest that, if you were forced to, you would generate a rainbow table per password. I really don't think this makes any sense.You only generate a rainbow table because you think you'll be able to use it multiple times. Generating a table once offers no advantage that I can see over a simple brute force attack. And in fact, the table isn't guaranteed to contain all plaintexts. If you were trying to break just one password, you would probably just brute force it.Also, unique salts per user aren't a lot of overhead... they're probably smaller than the resulting hash. It's my understanding that unique salts are a widespread practice.[Edited on June 9, 2011 at 6:46 PM. Reason : asfasdfasdf]
6/9/2011 6:43:39 PM
6/9/2011 8:06:38 PM
6/9/2011 8:29:24 PM
Btw, another option for enhanced security is to let the user set their own salt.IE: User, at account creation time creates a password, but also sets a pin number. The password is hashed and salted with the pin number. Now there's no way to ever figure out the hash since the salt is secret and unstored.You'll find some financial institutions using this today.Another option is to use an algorithm of subsets of a user's information as the salt. IE: Their first name, signup date, address, sex etc. Using pieces of multiple bits of personal data would generate randomized and unique salts for every user.Then to unwind the salts, a hacker would have to compromise the codebase and reverse engineer the code itself, then rebuild the entire user profile db, then write their own code to unwind the hash.
6/9/2011 11:11:37 PM
6/10/2011 12:10:03 AM
I may not have the strongest password in the world, but it is safe from chinese hackers. it's just a series of 8 L's.[Edited on June 10, 2011 at 7:23 AM. Reason : .]
6/10/2011 7:23:23 AM
That's Japan.
6/10/2011 9:02:24 AM
I'd argue it's both(watch the end of A Christmas Story --chinese restaurant scene for example).[Edited on June 10, 2011 at 9:40 AM. Reason : my chinese coworkers can't do Ls either. ][Edited on June 10, 2011 at 10:04 AM. Reason : http://youtu.be/xTq20prt0K8]
6/10/2011 9:40:05 AM
I think we both know I'm not watching A Christmas Story
6/10/2011 9:48:39 AM
So does this have anything to do with these stories ya think?Codemasters hacked: http://games.ign.com/articles/117/1175310p1.htmlEpic games hacked: http://pc.ign.com/articles/117/1175351p1.htmltwo major gaming companies hacked the same day, soon after this info came out.
6/10/2011 9:15:50 PM
wonder why they're targeting video game entities...
6/11/2011 1:34:30 AM
for the lulzOr corporate espionageOr chinaBig companies have been getting hit hard lately...lockheed martin was assaulted recently, though nothing was gotten out
6/11/2011 9:45:31 AM
so they say publicly anyway
6/11/2011 10:52:25 PM
Shouldn't they have a time limit put in place after a wrong password? It should double in time after each incorrect entry. It'll eliminate cracking.
6/18/2011 4:46:25 PM
1. all that would do is frustrate users who mistype their passwords2. people cracking passwords generally don't brute force attempts on the login. which was discussed in this very thread if you had bothered to read it
6/18/2011 4:50:17 PM
set 'em up
6/18/2011 6:58:14 PM