this post was submitted on 02 Aug 2023
31 points (100.0% liked)

Interesting

555 readers
1 users here now

founded 1 year ago
MODERATORS
 
top 20 comments
sorted by: hot top controversial new old
[–] [email protected] 12 points 1 year ago

So any decent pass phrase would last hundreds, even thousands of years.

Relevant xkcd

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (3 children)

Why is any amount of years in thousands not green? The matrix is skewed towards orange and red to make it seem riskier. This is a biased graph.

Not to mention the computer specs needed to crack these passwords are not mentioned. A "hacker" still needs libraries of their own to crack anything, which might find the password or might not, and no method is instant.

The ways to crack, at least with brute force, mean it's iterative. You either start with the most common combinations of all numbers or all letters, and then move incrementally. Then start mixing. There are so many combinations that nothing is ever instant.

[–] [email protected] 4 points 1 year ago

For everything longer than a couple of years, it becomes more relevant what future hardware can do, I think. Would be interesting to see such a table from 20 or 40 years ago.

[–] [email protected] 1 points 1 year ago

14 numbers [ = 10^14^ combinations]: 41 min [ = 2460 s]

This works out to 40 billion guesses per second. Can you calculate 8 password hashes in one 5GHz clock cycle?! If the hash&salt algorithm is any good, rainbow tables will not work, either. You would need the undivided power of some serious botnet to get these times. Not to mention the service would need to be breached for hashes first.

[–] [email protected] 1 points 1 year ago (1 children)

Yeah imagine saying 69000 years is only 3/5 secure

[–] [email protected] 1 points 1 year ago

Everytime I see this graph I focus on the fact that 1 second and 10 months are the same color, but 1 sec and "instant" are different colors.

Like I guess if "instant" is a billionth of a second than it's a greater difference of magnitudes. However, in reality a second feels like an instant.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (2 children)

~~Unfortunately, this chart is already out of date, the 2023 version looks like this:~~ It is now the up to date chart.

This uses 12 RTX 4090 GPUs and MD5.

For the old chart you would need 40 billion guesses per second, and that is what the RTX 2080 was at five years ago. With a RTX 4090 you can guess 164 billion hashes per second.

Using 8 AWS A100 GPUs at $32.77/h you can guess over 520 billion times a second and then the chart looks like this:

All the charts and benchmark numbers are from here. There is way more on that page that I'm just going to leave out here, but I recommend you read through it.

Of course this isn't quite accurate, this assumes the hashing algorithm MD5 which is no longer recommended, because it's so fast. It also ignores salting. But it assumes the worst case, a complete brute force with no dictionary/rainbow table, so I think it's not a bad estimate.

Edit: spelling

Edit again: The comment I was referring to is gone, so I removed the refrence. The numbers are still correct though.

[–] [email protected] 0 points 1 year ago (1 children)

thanks for this, OP forgot to mention that it's MD5 and i think that's absolutely crucial

[–] [email protected] 2 points 1 year ago

Yes, this is what it looks like using bcrypt, and the same AWS GPUs:

But they also mention that most low priority logins that people don't care about like forums, restaurants, etc. still use MD5, and password reuse becomes a huge problem here.

[–] [email protected] -5 points 1 year ago

Ohh, thanks. I updated it.

[–] [email protected] 2 points 1 year ago (2 children)

Don’t most systems lock out accounts after a few failed attempts?

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (2 children)

That's not how it typically works. Accounts are usually obtained from a hash file (like what's in your /etc/shadow or whatever the equivalent is in Windows).

In there your typical password looks like a strong string of gibberish characters, but is actually the result of a one way function that processed the original password. When you enter you password, the function is applied to it and the result is compared to the stored one.

To break a password, you have to run stuff through that function (which is slightly computationally expensive, although using GPUs now helps quite a bit) until you find whatever matches the stored string (because it''s a one way function). Then you have the original password. This is known as a dictionary attack (because you basically have to run through the whole dictionary).

And this concludes hacking 101 for today.

[–] [email protected] 3 points 1 year ago (1 children)

No, a dictionary attack uses a specific collection of known passwords (usually from leaks/compromised websites etc.) and regular words. Then you apply common substitutions, like a 3 for an e or appending an !. This collection is then called a dictionary.

What you described and is referred to in the infographic is called a brute force attack.

[–] [email protected] 1 points 1 year ago

Good point, I might have written that a bit fast.

[–] [email protected] 1 points 1 year ago

Still need to know what the salt is, assuming the website is somewhat competent about password storage.

[–] [email protected] 2 points 1 year ago (1 children)

This assumes you can obtain the hashed & salted version of the password from the server, or it's a local PDF/ZIP/etc file password. Still, you have 2FA to go through once you guess the plaintext password.

[–] [email protected] 1 points 1 year ago (1 children)

So it becomes a concern when someone steals a bunch of passwords from a server?

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

No legitimate websites will store passwords as plaintext, instead their salted (mathematically modified) hashes. They do not have your plaintext password but there is a mechanism of checking your password attempt. If the hacker interrupts this mechanism, they can steal plaintext passwords every time they are used. However, most of the time they "just" gain access to the database and get the hashed & salted versions, and can often find out what the hash & salt algorithm is by reverse-engineering their own entries. Then, they obtain a list of top 1B+ common passwords (includes all 4-digit numbers, "password" and curse words in all languages, pretty much every English word imaginable, most given names in the world, every date from the last 100 years in various formats, correct horse battery staple and entries from previous breaches) and for every hash & salt they compute, they check if it matches any known hash & salt of any user they're interested in (could be just a few or all) matches. This dictionary attack will match the weakest passwords, and any matches give the hacker confidence that their method is correct. After that, they either start extending the dictionary (combining words with other words, letters and numbers), or brute forcing every combination of numbers, letters and symbols (with some heuristics: most passwords use way fewer symbols than letters).

So "password breaches" are concerning because the hacker gets any number of retries for anyone's password if they have the time and computing power. Therefore, it is very advisable to change your password after such a breach is discovered. This takes anywhere between 1 day to a month so if your password cannot be cracked in that time, you should be reasonably safe.

[–] [email protected] 1 points 1 year ago

Very good explanation. I think this kind of clarification is important when we see charts like these.

[–] [email protected] 0 points 1 year ago* (last edited 1 year ago)

neat, what I take from this and the discussion below is that with a pw containing upper- and lowercase letters, numbers as well as symbols that 12 characters is just long enough.