this post was submitted on 19 Mar 2024
77 points (94.3% liked)
Asklemmy
43893 readers
954 users here now
A loosely moderated place to ask open-ended questions
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Because a hash doesn’t work like a password cracker in a movie. It can try horse, but unless it gets the whole thing correct it doesn’t know any individual part of it.
Dictionary attacks have been around for a long time, but It's still quite strong especially if you throw in a number.
A fully random 8 character password has about 10^14 brute force combinations (assuming upper and lower case + the normal special characters). 4 words choosen at random from the top 3000 words (which is a very small vocabulary really) is 10^13 dictionary attack combinations, add a single number or account for variations in word style (I.e maybe don't always use camel case) and you've matched the difficulty. If you use 5 words it's 10^17 combinations.
(This is basicly copy pasted from a comment I made earlier)
If your services are storing passwords properly with a salt, dictionary attacks (including rainbow tables) are just as time-consuming to perform, since the salt renders each password hash unique; even for the same passwords.
So the same principle still stands; the longer your password, the longer to guess - as long as the encryption-at-rest is done correctly.
In the linked comic, Munroe assumes an attacker knows your method. The attacker isn't brute forcing character-by-character, but word-by-word, with an attacker who already knows you're using 4 random words.
i also dont really get it. the bitwarden pw tester says it will take 14 years to crack "its.a.beautiful.day", write beautiful with 2 t`s and it will take "centuries"? 🧐
but yes i still use them. but always with numbers and random characters in between and words from multiple languages or fantasy words.
That would be because the pattern on the first password are correctly spelled words and the way passwords are cracked offline (when there's a leak of data being sold somewhere) is that they use dictionary attacks.
This means that a big file containing all known words, and can also include known used passwords from past leaks, is used to try a lot of combinations. A combination of good words that appear 1:1 in these word lists will score way lower in terms of difficulty for a computer to crack. A simple script can add spaces and periods (like your example) between words and they WOULD get your password. By adding only one random character that doesn't fit a pattern (just like your second 't'), you basically force the cracker to try all possible combinations of all characters for the length of your password, which is WAY more difficult.
TLDR: There are more combinations of aaaaaaa, aaaaaab, aaaaaac then there are of matching words together for the same length of password (one.one, one.two, one.three)
In other words, don’t use “correct horse battery staple” because that’s probably in every word list by now
but even 14 years seems long for a pharase that is said and written millions of times per day. and if those crackers can make billions of guesses per second how can they not guess both variants within minutes?
related question. how to make a good password bettter? adding a few extra special symbols like "µ£₹" or one long word like "freshwatercrocodiletesticles"?
It doesn't matter in the slightest if you use 2FA.