Passwords: Too Much and Not Enough
An anonymous reader writes: Sophos has a blog post up saying, "attempts to get users to choose passwords that will resist offline guessing, e.g., by composition policies, advice and strength meters, must largely be judged failures." They say a password must withstand 1,000,000 guesses to survive an online attack but 100,000,000,000,000 to have any hope against an offline one. "Not only is the difference between those two numbers mind-bogglingly large, there is no middle ground." "Passwords falling between the two thresholds offer no improvement in real-world security, they're just harder to remember." System administrators "should stop worrying about getting users to create strong passwords and should focus instead on properly securing password databases and detecting leaks when they happen."
Bennett Haselton? I'm sure he has an opinion on how we can solve this problem, now that he's solved the world's ice selling problems.
Smartcards. Please.
Why would it ever be even close to that high. Every decent system I have ever encountered raised some serious flags after 3-5 wrong guesses. If you flag an account after 10 wrong guesses, start requiring a CAPTCHA after the first one, and ban ip addresses when you detect massive multiple account attempts, you can offer security fool proof security, with, lets say, around 100 guesses.
Troll is not a replacement for I disagree.
Le'ts just get to Two Factor Authentication everywhere and be done with this conversation!
Am I wrong for thinking this means you just need a string of totally random numbers from 0-9? (or even a-Z, 0-9)
PS: I don't reply to ACs.
log2(1,000,000) is only 19.9 bits.
log2(100,000,000,000,000) is 46.5 bits.
An 8-character random password with upper/lower+numbers only has log2(62^8) = 47.6 bits.
If you're serious about security, use something longer. A 16-character password has 95.3 bits.
tl;dr: Memorize a random 16-character password, and use it to to access your password vault of other 16-character random passwords.
Two-factor auth is a big win, of course. For anything financial, and for work accounts, the whole idea of strong passwords should be abandoned in favor of well-designed two-factor solutions.
How many people do per-user salting of the password hash? It's an important best practice to defeat rainbow tables. If you have thousand of passwords stolen, despite your best efforts, the least you can do is make it non-trivial to guess each one.
Mostly, though, encrypt your stored credentials in some way that requires an attacker to compromise two unrelated machines to get anything of value. Even a simple AES encryption with a hard-coded key is a win, as it's actually pretty tough (for a non-insider) to figure out he needs to either hack the source code repo, or somehow find the key in the object, on disk or in-memory. That's not impossible, but practically it limits the threat to malicious insiders, and malicious governments.
Socialism: a lie told by totalitarians and believed by fools.
Here:
$ pwgen -N 3 20
OSohG7ohbee0yu1CohPh vohR7gah4ip3ti4so3in aj5eiPaiqu6ohpeoh2ku
That's all the harder it is. Don't remember passwords: keep them on a physically secure device protected by ONE password you remember. Then someone has to do two things: steal your secure device, and break the master pw. Yes, could happen, but very unlikely.
If a big three letter agency is after you personally you're fucked no matter what. You only need to protect yourself from the common crook - be more secure than the 99.9%, and that's what you need.
I've given up trying to get other people to use decent passwords. I don't care how you get enough length or complexity. Personally, I CAN remember long strings of garbage, so running pwgen with symbols, letters, numbers, and mixed case, then yoinking out a random 16-24 characters works for me. Thats something like a 94^16 through 94^24 space to search for my password.
I write it on a *small* piece of paper which stays on my person for the next week. By the end of the week, I have it memorized (largely as muscle memory). Then I burn the paper and flush it. Done. I have throwaway passwords which get used for most stuff that doesn't matter, and each separate service which is important gets its own password. They change about twice a year. For example, my Slashdot password is the same as my password for Reddit. You can't get into anything important from them. However, my email and my bank account have their own, individual passwords.
Good luck cracking it. No, I'm not trolling, and I realize that most people can't remember garbage like that, especially not in any reasonably short amount of time--but that's their problem. I don't have a good answer for everyone else. Tough cookies. Maybe use a password manager?
Well if you hash the passwords 10.000 times over so it takes around a second to login, both offline and online bruteforcing is 10.000 times harder. Easy fix.
There are infinite varieties of ways to inject a delay between login attempts, or lock out the console/IP entirely, after N failed attempts. N should be on the order of 10, not 1,000,000 or 100,000,000,000,000.
This has been well-understood by the entirety of the competent developer world for years, and implemented extensively as such. I hope security "analysts" catch on to reality soon.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Why are we still using passwords?
Pass phrases are far more secure, and easier to remember.
http://xkcd.com/936/
When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl.
And that does nothing for an offline attack. Salting your passwords individually is a good start. As is using a hash function with a parameter for delay, instead of a hash function designed for speed.
Try entering multiple incorrect passwords into your offline *nix box of choice. See how it responds.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Something is so very wrong with a web site or software program that allows any kinda brute force password cracking attempts. How many times can I type in a guess to a web site I might have forgotten the password too? Its way less then 10 in 1 minutes time I can tell you that.
Jack of all trades,master of none
Encrypting the password with a small salt is enough to slow down simple password guessing with rainbow tables. If you make the salt non-trivial, such as encrypting with a 64-bit additional site password, tables wouldn't work. Of course, the same password could have been used to encrypt the entire password file in the first place, but this technique allows the password to be stored in the usual way. You have to keep that additional site password a deep-deep-deep-dark-secret, even more secure than you thought you were keeping your password file. It can't just be included in the source file - or appended to the end of the password file - best if the password verifier reads it from a separate secure location. In that way, 2-factor encoding works for the password data itself.
Quick someone mention the horse password thingy
Set the basic value LEGALLY of unauthorized obtaining any ONE persons personal information/accessing their financial accounts to be a sufficient minimum to make the crime Grand Theft (a felony) with multiple incidents to be additive for conviction penalty.
Will need strengthening the response to criminals who think they are safe when they commit the crime across a national border.
I believe they don't want to stop it that will stop them from doing things they already know they shouldn't be. Im with you take the toys from the scriptkiddies tool box
Jack of all trades,master of none
*gasp* the database can be stolen and brute forced offline
You don't need long passwords, just reasonably good ones, to defeat online guessing. Estimates of how quickly billions of guesses can be performed assume that all your encrypted passwords have been downloaded and can be subjected to brute force, offline. That means your security has already been compromised.
Yeah, that's not an offline attack, though. An online attack is one made against a running service - like your *nix box login screen. An offline attack is when you have the password hash in front of you and get to crack it at your leisure.
Do you know what an OFFLINE attack is? Hint: it's one where you're NOT sitting at a login prompt.
Wow.. the stupid in this one is strong. Let me explain it: an offline attack is where you have the password database itself and don't need to wait for a login program. You're free to hash things as fast as you like.
of comprehending his which is why their solutions of beating criminals will never work. It is the passwords that are the problem. They can't understand that. They are so stupid.
LOL, my CAPTCHA is ovaries which is something the Republicans hate.
Implement two factor authentication. It's not hard program nowadays and it makes your login system far more resilient to password related fuckups from your users.
I really want to see Mozilla Persona succeed.
It is the correct (technical) way to do "simple" web authentication, especially when your provider does multi-factor auth or something equally safe.
Passwords are outdated, and even half-assed systems like Facebook Connect or OpenID are better in my opinion.
Personally I use something I call "Login by Email" that almost every site supports, only they call is "Forgot password" and require me to enter a random string every time.
No need to. "Offline" means precisely how I used it. That you have a more qualified usage in mind is something I'd address when it was stated.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
No, it doesn't mean what you think it means. It has a specific meaning in relation to security. It has absolutely nothing to do with whether or not a box is connected to a network.
You're showcasing your complete incompetence by talking out of your ass. Just shut up already.
Show any source that says an offline attack is what you think it means.
Two factor authentication for most applications - something you have, something you know will do nicely. Three factor authentication for the sensative stuff - something you have, something you know and something you are.
If the database can be stolen, then that, in itself, IS the problem.
https://en.wikipedia.org/wiki/...
Under the direct control of another device
Under the direct control of the system with which it is associated
Available for immediate use on demand by the system without human intervention
Apparently a more specific usage was intended, though. Fair enough.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Linked below.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
The phrase "offline attack" is not the word "offline". Tough concept, I know. The AC above said "offline attack", not "offline".
You need to shove it, because you have NO IDEA what you're talking about.
Again, the phrase "offline attack", which is what the AC used is NOT the same as the word "offline" used all by itself.
How hard is that to grasp for you? You're here spouting off suggestions for cryptography/security without knowing the most basic terms.
Sorry, I can in fact parse the sentence as an attack that occurs "offline", as well as a more selective usage parsing it as "offline attack".
Good luck with your emotional self-control.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
The fact that you would choose to parse it that way shows that you have no idea what you're talking about. The topic at hand is passwords and security. The phrase "offline attack" has a specific meaning within that context. More to the point, only you used the word "offline" all by itself.
You must be trolling. This is an incredible level of stupid or purposeful ignorance. I'm done trying to fix that much stupid.
Again, my parsing of the sentence is fine, and was the one pertinent to the suggestion that 10,000,000 online attempts is a reasonable possibility to be addressed.
Which is what I intended to convey.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Fine, be done.
Particularly envious of dev salaries today, or what?
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
And that had exactly what to do with the summary which mentioned, "100,000,000,000,000 to have any hope against an offline one" (where the word "attack" was implied, assuming the reader wasn't a complete moron)?
You didn't even read the AC you replied to either. They also said that your suggestion would do nothing against an offline attack. And yet you persist in trying to parse their statement in the most ridiculous way possible--a way that is absolutely incorrect in this context.
What you intended to convey is your total ignorance of the matter at hand.
So, back to my original statement:
Correct, absolutely, as stated, that the ability to inject delays into the supposed 1,000,000 online attempts makes the notion superfluous as a theoretical security concern.
Here, I am using "online" to me specifically the use of "online" clearly called for by the premise of the topic.
Again, no problem. I am using it in the way relevant to the question.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Offline attacks don't exist! /sarcasm
At least, according to Empiric up there.
What about 2 step security, biometrics or smartcard over the internet(encrypted and tunneled temporarily by VPN) in conjunction with the regular password you setup already with your bank or email provider. Windows 10 will have biometric support so hopefully we will see cheap biometric devices(or built into AIO and tablet computers) coming soon for all consumers.
At the moment password DB thefts seam to be all the rage. From the pastebin entries I've seen the attacks at the moment appear to be using a dictionary attack, with a dictionary size in the 10s of millions. They are attacking 1000's of password hashes. So the one in a million password is far too week, the one in a 100 trillion password is also pointless, because the bad guys don't want your specific password that much. There are easier passwords to break.
So their lower boundary is too low, and their upper one is too high. So what strength password do we need to be safe from this kind of attack, but not be totally bonkers? Well it turns out you need about 8 characters with suitable entropy to meet this requirement, which is what the security industry has recommended all along...
Here, I am using "online" to me specifically the use of "online" clearly called for by the premise of the topic.
Troll score: 0/10.
This is Slashdot, not Digg.
You make up for your slightly uninformed comment completely, by the way you handle the troll calling you a troll :-)
If I had mod-points you would get some.
Offline, the attacker can if all else fails brute-force the password. No password is complex enough to survive a brute-force attack. With the growth in computing power, including the ability to apply GPUs and specialized hardware to the task, search space size alone isn't enough protection. The only protection, as noted, is detecting the leak of the password database early so users can change passwords before the offline attack has yielded usable results. Alternatively, the authentication system can employ two-factor authentication so that the password alone isn't enough to compromise the account.
For on-line attacks, I'd argue the number given's too large. A properly-designed on-line system should be designed with rate-throttling and account-locking mechanisms, and with those in place a password should only need to survive at most maybe 10 attempts before even the correct password won't access the account. Those mechanisms can be applied to all current systems right now.
The biggest hole isn't the password itself, it's the password-recovery system. Why bother with either an offline or on-line attack on the password when you can initiate password recovery and change the password on the target account to one you know?
...except for everything else.
Posting AC to pump up your own ego, Empiric?
That's pretty sad.
So now I have trolls accusing me of trolling and ACs deriding me for supposedly posting AC...
But no, wasn't me. My emoticons are dashless. ;)
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Most passwords aren't cracked in an online attack, but in an offline attack where the entire password database is stolen. Adding a delay and locking out an account after multiple failures is already standard practice to defend against online attacks.
The article was talking about the need to defend against online attacks and offline attacks. The 100,000,000,000,000 figure given referred to offline attacks. Who in their right mind would try to run an online attack against a service with even a 1-second delay or a service that locked you out after 10 tries? It's far simpler to find an exploit, steal the password database, perform an offline attack, and use the gleaned passwords to attack more lucrative targets (such as bank accounts).
Did you read TFS?
Yes, it is. And I've been here a long time.
People getting emotionally irate at reading "offline" as "not online" rather than "offline " is reasonably rare here, fortunately.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Speaking of parsing...
Before Slashdot's got ahold of it, that read "offline [subqualifier]". Need to watch my > and < too, apparently...
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Because you seem able to handle feedback (as opposed to the people giving it, in this thread), I'll share why I think your idea has little merit.
There are indeed many ways to delay attacks on a service, but it is imho not something that really adds to the security. A determined attacker can likely use a botnet to distribute the attack or even simply buy credits for cloud services. If the delays/blocks are IP based they won't work and if the delays/blocks are based on the login ID, any attack in effect becomes a DDOS. ;-)
Besides, your approach also does nothing against off-line attacks, but I think that is discussed already
Don't roll your own password system. If you're a public site, use OAuth Connect to let them sign in with their account from Google, Yahoo, or some other company that specializes in this sort of thing. If it's a business-to-business site, use Kerberos or LDAP to let them sign them in with their own company's username and password. This also cuts down on the number of usernames and passwords users must remember.
Are they kidding? 47 bits of entropy in passwords are strong enough? You can get that with eight characters in base 64.
And here I upgraded to random 14 character passwords a few years ago, because eight seemed too short to be comfortable. Today, I'm using random 22 character passwords, just to be sure.
1,000,000 would be about 20 bits, which would mean four characters of base 64 are good enough against online attacks. Weird.
Well, I wouldn't argue that on a theoretical level that a password of any size or complexity can't be compromised by a botnet of arbitrarily large size. The article opens with what is "enough", and with an arbitrary number of IPs over an arbitrarily large amount of time, no password complexity would be "enough".
However, I think simply doing this:
1. Delay 5 seconds after an incorrect login ...would be very difficult to brute-force even given a very large IP pool, and that size is ultimately limited by cost.
2. Double the delay after every subsequent login attempt
3. Block the IP after 10 sequential failed logins
4. Lock out the account after 100 sequential failed logins, and require a CAPTCHA or e-mail process to re-enable the account
As you say, though, it doesn't stop someone from executing a DDOS attack, but the potential exposure and damage there is quite different.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Your online password could turn to be an offline one if the crypted version of it was in a server with a vulnerability/been hacked/given to authorities.
Did you read TFS?
Yes.
They say a password must withstand 1,000,000 guesses to survive an online attack...
Feel free to state if you think this phrase, which my post addresses, is or is not present in TFS. If we agree it is, that is what I was responding to, on the basis that one can respond to something in any way they wish, in whole or in part. If you feel I am required to have responded to some other part of the summary, or in some other way per your preferences, feel free to explain why. Otherwise, your own independent post making your own points seems appropriate.
Slashdot is getting really OCD-strange lately...
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
One martini is not enough
Two martinis is too much
Three martinis is not enough
“He’s not deformed, he’s just drunk!”
As a user, I would hate such a website (I am passionately opposed to passwords of any kind, more so with "annoying" login prompts). Especially because there are many decent (and even a few good) alternatives.
Things like Facebook Connect, OpenID Connect and Mozilla Persona (BrowserID) are better than passwords (But only Persona is 'good' IMHO).
If a service can't or won't outsource the identity management, there is multi-factor auth or private/public keys.
All of these are easy on the user when implemented right.
You are correct about things being fine when they are "good enough". My personal opinion is that the easiest way to obtain "good enough" is simply to avoid user-typeable authentication stuffs. Lets go outside during all the time saved from implementing and recovering from password security policies/breaches.
I won't do banking over the internet.
Some banks have started charging a $60 per year fee to send paper statements instead of e-mail. What will you do once all banks with ATMs in your home town do this? Switch to an online bank that can't accept cash deposits?
Things like Facebook Connect, OpenID Connect and Mozilla Persona (BrowserID) are better than passwords [and] easy on the user when implemented right
The problem comes when well-known sites don't implement it right, such as by implementing only Facebook Connect and nothing else. The Huffington Post, for example, requires each commenter to have a valid subscription to mobile phone service and give a globally unique number capable of receiving SMS to Facebook.
There are infinite varieties of ways to inject a delay between login attempts, or lock out the console/IP entirely, after N failed attempts. N should be on the order of 10
At which point you may be on the wrong side of the tradeoff between security and convenience. If you have 100 subscribers behind a proxy with a single public IPv4 address, and ten of them forget one password, good luck fielding customer support calls for all of them.
a CPU that can manage a trillion hashes per second (easy)
A trillion (10^12) hashes per second can still check only 100 million (10^8) passwords per second if checking each requires 5000 rounds of PBKDF2. In the common PBKDF2 built on HMAC, each round is two hashes, making a 5000-round PBKDF2 take 10,000 (10^4) hashes.
You did not understand what an offline attack is, he informed you. You got moronically defensive. I'm still not sure you know what an offline attack is.
A web login checks a string, the hashed password. It stands between you and the hashed string, checking it upon your request and only so many times that it determines. If you have JUST that string (from a stolen database) you can bruteforce and your only limit is your compute power available. THIS IS AN OFFLINE ATTACK. It's you and the string, the hashed password nothing in between
Please do not feed the troll.
Thank you.
- Management
CAPTCHA: diners
I'm so sick of these goddamned articles, insisting I need FDGHN$@%YFSDG#$T#62532@..1..sdg..FGT34#$% as a password or horsebatterystaplegoatsehamburgerlolsixtynineomelette?
Tell me internet, tell me, how many compromised accounts over the past decade have been from poor passwords, OR how many have been compromised due to the site / service in question having a security hole / unpatched exploit run on it and tell me even further how many are due to social engineering?
I'm more than willing to bet that over 95% of all compromised accounts on any system(s) in the entire world is due to those 2 things and not the complexity of the password and frankly, I'm sick of having to have monstorously complex or awkward passwords in some environments which are almost deliberately difficulty to remember.
You just went full retard.
I really wish I could convey how much I appreciate the poseur irony of this post, particularly with the "coincidental" CAPTCHA.
Maybe a song will help.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
I understand different places have differing levels of "complexity" requirements for passwords, by why would there ever be a limit on the characters you can use?
One site might want 8 characters, with one number and one uppercase, and one special character, but they only allow "certain" special characters!
Some sites are ok with dashes, others, underscores... WHO CARES!
Oh, and don't get me started on credit card input "please enter just the number, no spaces or dashes" - Well, if you don't want the spaces and dashes in the user input, JUST FUCKING REMOVE them, and say "thank you" to the customer, who used to always be right, but now is apparently just a schmuck.
Was that too harsh?
This issue is a bit more complicated than you think.
No, it is KNOWN and ACCEPTED problem that there will be 0days and new attack vectors that allow the user table to be stolen. that is the whole fucking point here. your user table can be stolen but you have strong passwords for all users, salted, etc... just like you encrypt an archive to send it over the clear, you assume you can't 100% prevent sniffing. SAME CONCEPT
Do you know the difference between STUPID and simply UNINFORMED? Also the difference between bold and SHOUTING?
Someone had to do it.
You must have encountered one of the few systems where people actually pay attention to such "details". There are plenty of locations where you can brute all you want and where the entire DB of passwords or hashes is relatively easy to obtain for a hacker. Since people re-use passwords a lot, that's often enough to get into the few locations where brute-forcing is made more difficult.
I was promised a flying car. Where is my flying car?
You just created one tiny extra step for people stealing the database. If a system is so flawed that an attacker can get your database, they will most likely only take a few extra minutes to get their paws on your salt.
Granted, they need to write their own module for oclhashcat to get this cracked at a decent speed, but once that's done, your proposal isn't functional.
I was promised a flying car. Where is my flying car?
Because biometrics can often be cloned, copied or otherwise be "fooled" when used for authentication. Finger print scanners are worthless since so many attacks exist to current finger print readers when someone copies your print. You can't get new finger prints once someone made a copy of yours, so as an authntication method they are worthless.
Some other authentication methods using biometrics exist, but they are generally too expensive to implement in most cases. They may not be "affordably" circumvented yet, but I have no doubt that once it's worth it to put time and effort in it, people will find ways to fool those systems too. I'd hate to have to get new eyeballs because someone copied a scan of mine onto a synthetic ball.....
Apart from this, remote authentication using biometrics replaces the biometrics with some sort of device sending some sort of signal to the remote location with either a signature of the biometric information, or just a version of "I've check this person out and they're okay". You once again transfer the problem from biometrics to some form of digital communication which obviously is just as weak to hack as the technology you are trying to augment for being weak.
I was promised a flying car. Where is my flying car?
Disclosure: I work as a penetration tester In my line of work, we often go for passwords, encrypted or not. Especially on office networks, we go for the LANMAN (yes, we do get to see those on a regular basis still) or NTLM password hashes. Even NTLMv2 are useful to us, although cracking those requires more time.
The reason that LANMAN and NTLM are so useful to us, is that we can just use the hashes to authenticate against remote servers. That's right, knowing the password isn't required, just having the hash is enough for the remote server to authorize us as the person that the hash belongs to. This is "fixed" in NTLMv2 and if you properly implement Kerberos for your AD authentication. However, since legacy systems are abundant, in practically every office network we encounter, the older systems are still in place because of "backwards compatibility requirements".
No amount of password complexity helps against the above problem. Several commercial 2-factor vendors solutions aren't even a solution. Why? Because they replace the password prompt for a prompt for a token generated by their device and once that reply is satisfactory, they simply send the hash themselves. Their solution replaces the password, but not the real weakness, the hash itself.
This may not be a significant problem on the internet, but once an attacker has gained access to your corporate network, this problem usually means doom for anything password protected. This sort of thing happens on a larger scale than most internet users realize. Advanced Persistent Threats (APTs) aren't named that for no reason and they are just a few of the many organizations and individuals attacking companies these days.
I was promised a flying car. Where is my flying car?
System administrators should stop...
Protip: We don't give a fuck.
We're just saddled with corporate bullshit from above.
They're talking about a different problem. If hackers get ahold of the password hashes, then restricting the rate of login attempts on the server itself won't help. That's where that "100,000,000,000,000" number comes from. I believe it's saying that's how strong the password needs to be to withstand a brute force attack when an attacker has gotten ahold of the table containing encrypted passwords. That's why it says:
System administrators "should stop worrying about getting users to create strong passwords and should focus instead on properly securing password databases and detecting leaks when they happen."
However, that seems like a short-term solution when there's a better long-term solution that's pretty obvious, which doesn't require relying on system administrators to secure password databases. If we stopped using passwords and used public key encryption instead, then websites wouldn't have your password, so they wouldn't be able to leak it.
It's an obvious solution. We know how to do it; the technology isn't new. We won't do it, though, because we don't care about security and we're unwilling to develop new standards. The companies who could push new standards forward are more interested in maintaining walled gardens.
Me and other security experts have been saying such things for years.
Basically, our password handling systems and policies are completely broken. It's not just what xkcd pointed out - it's worse. Those policies are based on making brute-force attacks more difficult. But to sum up a complex topic in a soundbite: If your system allows for brute-force attacks, your system is fatally broken.
Assorted stuff I do sometimes: Lemuria.org
or lock out the console/IP entirely, after N failed attempts.
Which opens the door to DOS attacks on target accounts, but there are several smart ways to work around that (send an unlock link to the e-mail address for that user, for example).
I hope security "analysts" catch on to reality soon.
There are two kinds of security people in the business world. Those with a real interest in advancing the field and making computing more secure, and those working for large consulting and IT "Security" companies. I am exaggerating some, of course, and there are great people in those companies as well, but unfortunately the business concept of too many of them is based on solving problems in such ways that you can sell the solution to many other customers, not on finding a solution that takes care of the actual problem.
It's the same with consulting companies and the insource/outsourcing cycles. There are good arguments for both of them, but if you've watched the business world for a decade or two you understand that they are hyped in cycles so the same consultants who sold outsourcing to a company last period can sell insourcing to the same company next period or after the next CTO change.
Assorted stuff I do sometimes: Lemuria.org
Forget subscribers. Anyone can DoS your administrative accounts.
Just for the record, the strength of a random 16-character password with random combinations of upper and lower case letters and decimal digits is:
62^16 = 47,672,401,706,823,533,450,263,330,816
Well, that's the number of combinations, and one would need to check half of them to have a 50% chance of cracking such a password. (Well, that's not precisely the strict probability theory language for it, but it's something like that.) In other words, anyone who uses a simple password manager should be fine.
So just using the 36 characters of the alphabet and the 10 numerical characters a password need only be
10 characters long to pass the upper threshold. Is that right?
It should be treated as a binary authentication token. I don't care how the user enters it - hell if they can get "untypable" characters in there, more power to them, and all the harder for someone to guess.
2FA
Instead of allowing users to pick passwords, if password authentication is still necessary, simply impose a password. Allow them to generate a new one whenever necessary, but do not allow them to choose what the password will be, therefore, the password will be random, and the password is unlikely to be shared with any other site.
Why bother securing password databases and fixing leaks at all? If a user's password is compromised, then most of the data is stolen(depending on access permissions).
This is a reply not just to the comment from amxcode but the GPpost from ColdWetDog.
A random-seeming password doesn't really have to be random, and thus you don't have to rely on someone else's software to keep track. You can generate a long password by hashing a short, easy-to-remember "pre-password" that only you could guess.
For example, you can decide that your personal password-salt is "ColdWetDog", and the pre-password for your Amazon login is simply "amazonColdWetDog". (And the pre-password for your bank would be "bankColdWetDog".) Then you hash it with MD5 (or SHA-1 or RIPEMD-160 if you don't like the collision vulnerability of MD5, though in tis case it doesn't make a difference). The result is a long string, and you can take the first n bits and use that as your password. (Yes, MD5 only generates hex digits, so accumulate it into base64 to make them ASCII characters.)
And, boom!, there's your big long pseudorandom password that you can use no matter which operating system you switch to, without having to worry about any password app from some app store.
My own password manager is a text file encrypted with open-ssl. It's not just that I am paranoid about password apps someone else wrote; I also need it to work on multiple platforms. Write your own; it's not that hard.
404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
[GPG key in journal]
What ultimately matters is the entropy. I feel prefixing something with "amazon" when to be used on Amazon.com is just going to add 2 bits of entropy for that position. For the cracker to try it with and without amazon. Even combined with MD5 and the like, those are also bits of entropy.
I don't believe Windows has MD5 built into it. So, in order to get that what you want, something would have to be downloaded first, if on someone else's computer. Or am I missing something here?
I really question whether your suggestion is a good idea. Maybe you used the username as an example, and meant just any other favorite string. Still, entropy is what matters.
I haven't tried this, but there's always: http://www.passwordcard.org/en
But if I were to do that, I'd want to do it offline with my own printer.
The weakest thing may not be the password... it may be the password recovery system. So, enough with all these secret questions and whatnot. One idea might be a combination of things (which may include secret questions). Allow an OPTION to scan your ID into the system. For password recovery when this option is chosen, a live video chat (maybe for a nominal fee of $1.99) would be required in which a live person verifies whether you are who you claim to be... based on on the ID uploaded to the system. Maybe it's not full proof, but it's an idea.
We have hundreds of accounts scattered across the net, and each's security relies on a secret that is supposed to be unguessable and shared only between you and that site. Such is the primary assumption of passwords, and yet such a system can never work for people.
The only solution is to stop using passwords as passwords and instead consider them as "symmetric keys". Master Password is a password generator that takes the name of your site and generates a unique key for you and it which you use as the password for the site. The awesome thing is that it's a generated key and thus doesn't rely on any form of storage, be it cloud or require backups and sync, nor can it ever be lost. It uses the scrypt KDF to protect itself against off-line reversal attacks.
``OK, so ten out of ten for style, but minus several million for good thinking, yeah?''