Password1, Password2 and so on.
But why do they put so much restrictions to create a long password to avoid the brute-force or dictionary attacks if they can use the system they use here on straightdope that blocks your log ins for x minutes after y failed attempts to log in?
The attacks being talked about involve actually getting a copy of the account data including encrypted passwords as a file. Once that is obtained (by nefarious means that would be another discussion topic) the password cracker can take his time cracking the passwords; he doesn’t actually repeatedly attempt to log on to the system that the passwords belong to.
For the accounts that require a password, but that I don’t really care about the security of (for example, those that use 2factor identification, or things that just don’t matter - like this message board) I use variations of names of my family plus a number
For accounts that I want to keep secure I use a short pass phrase with capitlisation and a number…
eg: MyGirlfriendIsPretty266 then when I changed it, the new password became mYolDgirlfrienDgoTfaT622 (no these are not the actual passwords)
May not by all that secure against a brute force dictionary account - but seriously - I don’t keep nuclear secrets either. If someone goes to enough effort to break that password for my work facebook account - hell, they’re welcome to the rewards.
What about using stronger cryptography on the passwords list and adding a lot of fake ones to make it harder to find the correct ones?
If this is really stupid please ignore. Black Friday sold me cheap jack daniels (cheap here in Brazil).
Basically any password that’s not dictionary-hackable* is equally secure based on the possible search space.
That is, if one site allows (not requires) special characters, caps, numbers, etc, then aefbnkjt is roughly** equally secure compared to AeFbnkJt or aef–0*n. However, aefbnkjt suddenly becomes less secure on a site that only allows lowercase alphanumeric characters, simply because there are fewer things to try.
One caveat is that longer passwords will take longer to crack in a given space (aefbnkjt will take less time to crack than aefbnkjti), but at a certain threshold you’re basically just needlessly increasing complexity from “won’t be found until 3000 years from now” to “won’t be found until the heat death of the universe” to “won’t be found until the heat death of the universe * 2” and so on. This is assuming pure brute force and there’s no heuristics used to try the most common password lengths first, or using info on how humans suck at being truly random or whatever else, but I suspect such heuristics wouldn’t make a noticeable dent in a decently long password.
I can’t remember who said it upthread (Chronos?), but it’s definitely true that constraining the state space at all (such as requiring at least n special characters, or forcing the first one to be alphanumeric or whatever else) will theoretically decrease the time it takes to crack it.
Of course, as always, the best way to hack any computer is to call the dumbest employee and pretend to be from the password safety and inspection committee, requesting their password in order to ensure compliance with good safety standards.
- “Dictionary-hackable” used loosely to include common permutations like passw0rd or common non-words like asdfghj or 12345
** I say “roughly” because brute force algorithms would likely use a relatively predictable test order, aaaaaaa would probably be guessed before aaaaaab because of natural ordering and such, but for all intents and purposes they’re equally secure.
“Stronger cryptography” doesn’t really mean much. We use pretty strong algorithms already, and inventing new ones is really, really, really hard. Even then, there’s a speed/space/safety tradeoff. Using a password algorithm that takes 20 minutes to run and hashes each password to a 20GB sized footprint may be really secure, but not very practical.
As for fake passwords, if you give each “user” a list of fake passwords, there are several problems I can think of with it, but it depends on exactly what you mean.
My university actually had some heuristics or something that could determine “similarity” between old passwords based on the hashes. (I’m not clear exactly how it was done, but I know for sure passwords weren’t stored in plaintext anywhere) It would also compare it to various dictionary words and common passwords before accepting it. So every year when you had to change your password you couldn’t use any dictionary words (okay, whatever), and you had to be very careful to not tickle a password it deemed “similar” to any of your last 4-5 passwords.
I suppose it’s relatively secure in theory, but it took me forever to write a new password. The “similarity detection” was perhaps a bit more sensitive than it needed to be. Sometimes just two characters in similar places would tickle it. The biggest problem is that while I forced myself to memorize my password ASAP, I imagine there were a lot of sticky notes with passwords floating around the school.
Quoth Jragon:
That’s definitely bad security. One of the requirements for a good hashing algorithm is that it be impossible to do exactly that. Think about it: If the school can test the hashes that way to see that the new password is “close”, then an attacker guessing the password can also tell when he’s getting close. And that’s if they were actually using hashes at all: The most likely method for doing that is just to store the past five passwords in plaintext somewhere (maybe in addition to a properly-secured hashed file, but that doesn’t matter if the plaintext exists).
This is not true. If an attacker has a brute-force cracker that’s fast enough to find all passwords of, say, 8 characters restricted to lower-case letters, and he finds a site that allows passwords to contain upper-case characters, numbers, and symbols, he’s not going to just give up and say “Eh, the search space is too big”. He’s going to run his brute-force program anyway. It won’t get him all the passwords, but it will still get him the password of everyone who didn’t bother to use any of those special characters.
He’ll only be foiled if the site actually requires at least one of the characters he’s not using… And even then, a lot of folks are just going to include one single character to meet the requirements, and that character is often going to be at the beginning or end of the word, and the search space for “passwords with exactly one special character” isn’t all that much larger than the search space for “passwords with no special characters”, so an attacker can just use a slightly more sophisticated brute-forcer and still get in.
I read recently, maybe in Wired Magazine, that hackers have analyzed the passwords which they have stolen from various sources to see which are used most often. That way they can put passwords such as “Pa$$w0rd” or even “password1” at the top of a dictionary attack.
That’s only because we have a bunch of priors about passwords. In black-box terms, the set of the alphabet is no more or less arbitrary than testing all passwords with any permutation of the characters {a,x,n,t,-,7,B}. We just know from experience that the lowercase alphabet is a common set to draw passwords from. In absolute counting terms, introducing constraints lowers the total number of possibilities.
Maybe it’s not practical advice since any hacker will be drawing from those priors when writing their attack, but it is true that introducing no extra constraints has less possible candidates than one with extra constraints.
You would think so and you would be wrong (maybe). What makes a password secure is how unexpected each element is. In your example there is no surprise. “ScroogeMcDuck”, “McDuckHas”, “Has$80”, “$80Billion” are all common word pairs. What you need to do is take a phrase like that and change some words so that it’s still easy to remember but has uncommon pairs. “Lil’sisMcDuckHas531Burritos,” where “531” is a meaningful number for you is far, far harder to crack because neither “Lil’sisMcDuck” nor “531Burritos” are common pairs.
Yeah if you’re going to do word passwords, make sure they don’t make any grammatical sense in english. Noun Adverb Verb Adjective Noun [BoyQuicklyEatsHotSoup] is an expected structure in English. But Verb Adjective Adverb Noun Noun [EatsHotQuicklyBoySoup], not so much, and isn’t that much harder to remember. HasScrooge$80McDuckBillion, for example, would be better and not that much harder to remember.
My bank requires me to enter a 9 digit number, followed by a password, followed by three digits from a 'memorable phrase.
I looked up their suggestions for a secure password:
I took their advice.
My question is - What’s the risk?
Is it that someone will hack the bank and get all the passwords - unlikely I hope.
Is it that someone will hack my computer, or my internet connection? How and why?
Is it that someone will steal my computer and try to get into my bank account? This seems the most likely and I make sure to wipe all links off before I go on holiday for instance.
The risk is that someone targets your bank account and tries to guess the password. If they succeed, they take your money.
How did they know about your account? Lots of possibilities, no doubt. For example, somehow the bank got hacked enough for them to get the password file. The password file does NOT allow someone to log in as you. But it does give them (a) the list of user account IDs, and (b) most of the info needed to try passwords on any computers (including thousands of home computers they took over using a virus) until they get some hits.
So, they attack all the account IDs they have in hand. The accounts with the least safe passwords are the ones that’ll get drained first. Don’t be the owner of one of those!
I am at a loss to explain how brute force cracking of a single account is likely to work for anything but the most common passwords like “password” or “123456”. Every data entry routine used today, AFAIK, limits the number of successive tries to just a few per hour, like 5. Guess wrong 5 times, you’re locked out for another hour.
And these same systems often do more than just that – try again for 5 times, you may be permanently locked out until an administrator is summoned. Too many hacking tries, your account is flagged for special security treatment. Wouldn’t that pretty much eliminate brute force hacking?
Or is the brute force attack expected to be used on an encrypted list? If so, that’s an extra layer of protection – you’ve got to get the list first. And even if you crack the first one in the list, you have to start fresh for the second. It would be pretty time-consuming to process a million names.
You always want multiple layers of security. Obviously, the bank wants to take steps to prevent anyone from stealing the password file… but it still happens occasionally. Even if it does, though, so long as the bank set up the password system properly, and you chose a good password, your account is still safe. One layer of security failed, but the second still holds.
This was already answered above: many attacks happen when the password file is compromised, so the tests can be done without using the actual service.
There are other cases where failures don’t cause blocks. I confess I don’t quite understand that, but I know I’ve seen it, and I got the impression that it was necessary for some reason, and not just lax security policy.
That depends on how good the users were about password security, and how many passwords the attackers want to crack. Given 24 hours and a typical home computer, you could probably get over half of those million names.
They would use pre-computed attacks - dictionaries of hashes of common passwords, or rainbow tables. However, those attacks don’t work against a properly hashed and salted password database. In that case, brute force is the only option [ETA - or rather, trying the entire dictionary against every password, one by one] (or trying to find a flaw in the hashing algorithm - some older algorithms that are still in use have been found to be flawed). I suppose that they would only use brute force on individual passwords thought to be valuable. I have not heard of any real-life incident where that has happened.
I think that the difference is so minor that the original password is plenty good enough. While it is true that ScroogeMcDuckHas$80Billion" could eventually be randomly guessed (via brute force dictionary attack) we’re still talking 100’s of years. A dictionary that includes common character names has got to have 100k’s of entries. “ScroogeMcDuck” is probably a single entry so the number of possible dictionary combinations is ~3^100k before we factor in “$80”. Unless Blaster Master is specifically targeted by the NSA he should be safe. If I was going to make a suggestion I’d recommend changing a single letter in Scrooge’s name, like “MxDuck”.