Enforcing Crytographically Strong Passwords
Saqib Ali writes "The WebAppSec mailing list at SecurityFocus is currently having an interesting discussion on how to force users to use cryptographically strong passwords. The original poster suggested displaying a list of randomly generated password for the user to choose from. Two issues pointed with this concept, were Shoulder surfing and the fact that a bunch of randomly generated passwords are hard to remember. A counter proposal was to use pronounceable but randomly generated password. A full summary of this discussion is available. Any thoughts from slashdotters?"
No-one will ever guess my super-secret password: GOD
To Terminate, or not to Terminate, that's the question - SCSIROB
We faced the same problem when generating random passwords for users and decided that the best method was to generate two short (4-6 characters) english words with a number at the end. This creates passwords such as swimeasy12, turnright62, sidedoor81, etc. These proved to be very easy to rememeber and we only had one complaint: A secretary had her random password set to fatgirl13 and was really not happy, even after we expained the random process.
Input error. Replace user and press any key to continue.
I'm just a *nix and Windows luser. After struggling with tens of passwords for years, keeping them (relatively) secure, difficult to guess, etc., my employer is starting to press hard on even more regulations and ended up changing my password cycles. I can't keep up any more. I've had to get passwords reset monthly for about 6 months so far because I get locked out due to bad password entries. I just had to ask for advice on keeping them straight.
Per advice, I have begun to keep a plaintext file on my desktop computer with all my passwords in it and when they expire. My corporate IT guidelines are too secure for me, a legit user. So, I'll have to compromise security in order to comply with guidelines.
Yes, I have a suggestion. Don't force people to use stronger passwords. If they choose to use a weak one then when it is cracked, that'll be their fault. In either case, how many of us actually have to worry about someone breaking our passwords?
The whole point of passwords are to deter regular joe from from gaining access. Yet anyone with enough time and commitment can and will break any password or encryption method ever created.
Stop posting my password on Slashdot, Zonk!
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
Either use single sign on or an honest assessment of whether or not every f-ing application and web site in the intranet needs it's own f-ing password. Some things are just not so important that they need a password especially if they are already relatively safe within the corporate intranet.
To use the example above, I'd be more than willing to think up and use a long, randomized password if it was the only one I had to remember to do my job and I only had to change it once every 90 days or so.
Waltz, nymph, for quick jigs vex Bud.
I use password safe to keep all my passwords. I used to have password overload and ended up using the same password for tons of sites. I eventually came to the decision this was a really dumb idea and shopped around for a solution. Now I just use password safe to generate proper random passwords for all my web sites and accounts. All you have to remember is one master password.
The only problem is that it is not very portable in that if I am not on my own computer I don't have access to the password data base.
The bikini - security through obscurity since 1943
For the more important stuff (like my credit card details) I use a random generated password 10 characters long, mixing normal letters, capitals and numbers. But if I had to use several of these, I would have to start writing them down (I am in my mid twenties, recently graduated from a medical school, so I like to think my memory is quite good).
:)
Forcing an average user to use a difficult random password is like asking them to write it down on their monitor (I've seen this done more often than I can remember - and don't forget my memory is good
Wouldn't a non-random but still difficult to guess password be more secure?
Using the method mentioned in the article (e.g. t7p4i0t1 for combining a phrase a and a number) is OK until you are forced to change the password too often. Was it "pearl in the river" and my birthay or was that last time and now it is "lorem ipsum dolor" and my wife's birthday?
Seems to me that forcing too secure passwords unto yours users is bound to be insecure in the end.
If you make passwords the users can't remember they will just write them down. If they're pronounceable that helps, but only so much. Lists like this help, but ultimately you just have to tell your users to use the best passwords they can and hope that's good enough. Making them use passwords too "secure" will hurt you more.
I am trolling
I thought this discussion is long over. Everybode knows that there are two possible solutions to theis problem.
A) Either use a passsentence instead of just a word, most modern systems allow for rather long passwords. Since the sentence makes sense it is easy to remember. Since the sentence has many characters, it is pretty hard to crack with current tools. Dictionary tools may change this, put place a few strange names or made-up words in the sentence and you are much saver as any 8 char password today.
B) If stuck with old systems, I usually recommend the secretaries to write their passwords down. YES! Comparing the risk that one of the ~250 daily stupid attemps to guess passwords from random idiots succeeds is MUCH larger if people are told to remember their passwords. They'll automatically choose simple ones. I guess about two or three passwords in our own system per week. If they choose a very complicated passwd and write it down, then an attacker needs to be physically in the office to steel it. If the guy is physically in the secretaries office, he has no problem getting everywehere anyway and we have much bigger problems.
Cheers
KdenLive/PIAVE - non-linear video editing
AFAIK, the current thinking among those to have to enforce strict security is to use phrases
Most modern password systems allow an almost arbitrary length password, and randomly generated passwords are not working - people simply write them down in order to remember them.
Take a phrase that is meaningful to the user, say, 'My car is a red Ford' and add some simpleobfuscation 'My c@r is a red-F0rd!', and you have a phrase that is not only easy to remember, but is going to take a lot of effort to brute-force.
I like to pick a pattern on the keyboard, and then use that, alternating shift. If you were to ask me what my password is, I really wouldnt know unless I'm sitting at the keyboard.
:LKPOI)(*890iopkl;
Now, this is NOT my password, but it may have been at some point, but for example
As you can see, that password would be difficult to guess and crack, since it contains number, symbols, upper and lower case, 18 characters, and has no dictionary words in it.
Try and type that password and you'll see how easy it is to remember.
Don't Tread on Me
1. Wasn't there a thread about two factor authentication replacing passwords a short while back?
2. Microsoft Research came up with an inkblot authentication scheme which appears to have solved this problem.
"It's not your information. It's information about you" - John Ford, Vice President, Equifax
Mag strips!
Put 32 random bytes on a magstrip and hand it to your user. Oh but Tom, what if they lose the card or it's stolen? Yeah simple plan for that.
USER: "Yeah hello sysadmin? I lost my card."
ADMIN: "Ok. Your account has been temporarily deactivated please pick up a new card."
If you're a company/group/etc that is worried about security you can afford a keyboard with a magstrip reader (they're not that expensive).
Tom
Someday, I'll have a real sig.
This subject comes up a lot. It's been on /. in various forms in the past. In fact, I think I'll just cut n paste a previous comment of mine :)
----
I'm sure I'm not the only one who occassionally uses keyboard patterns for passwords. I'm not talking qwertyuiop or asdfg (obvious, no randomization/separation of key sequences) but things like !@()ZX>? or QW./>?wq
Hell, half the time I remember friend's phone numbers by the way you punch in the numbers. Sometimes when asked what a number is I'll even do the "phantom phone dial finger wiggle" so I can recite the damned thing.
Looking at the above example it appears to be a password which follows the "strong password" methodology but have there been any studies on the effectiveness of using such a method? I know there are dictionary-based attacks which have some of the obvious patterns (qwerty, poiuy etc) but is such a method random *enough* to be feasible?
It seems to me that it would be much easier to train users to use a muscle-memory-like password than picking some word out of their ass. The human brain has one seriously developed pattern recognition/matching capability... why not use it?
Do not taunt Happy-Fun Ball
My passwords are typically 10-12 characters (a-z,A-Z,0-9) long randomly generated strings. I don't learn or remember them in the sense that I could write them on paper or spell them out. Instead, my fingers learn them. Each password has a specific feel, rhythm or a sequence of finger movements to it and as long as I can remember which sequence belonged to which account, there's no problem.
The owls are not what they seem
isn't it about time we realize that if users do things like sequencing or recycling, the password is no more secure than if users were allowed to keep using the same original "secure" password to begin with?
I find that test/test works fine for my root login...
They would if they took their job/security seriously.
This is like having your credit card stolen. It's in your best interest to get on top of that as soon as possible.
Tom
Someday, I'll have a real sig.
Are there any projects / discussions regarding password expirations linked to password complexities?
If I chose a password of "random", the computer could reject it and now allow me to use it.
If I chose a password of "r4nd0m11" it may allow me to use it for a month due to it being complex.
If a chose a password of "1tst00b4dth4t1c4ntyp3l33tsp3aks0w311", it may allow me to use it for 3 months.
All of this could be controlled by a policy created/configured by the system administrator and could include things like:
- Does the password have letters and numbers
- Does the password contain non-numerical/alpha numbers (!@#$%^& etc)
- Does the password contain more than X characters
So on and so forth. Based on that criteria, it would then set the expiration on that password to the sysadmin configured timeframe.
Just a though.
Weak passwords are a reality. In my current job, I've got eleven different systems that require a password. If you think I'm going to selct and memorize a cryptograhically correct password for each and every one of them every three months when the passwords are set to expire, you're insane.
The more important and sensitive systems get strong passwords. The web-based tool I use to diagnore hardware issues in equipment that isn't even online? It gets something easy to remember.
For non-technical users, the situation is worse. If you get too psychotic in your password policies, they're just going to write them down on a post-it they stick to the underside of their mousepad if they're bing circumspect, and right to the monitor if they're not.
If you're dumb enough to run a system so braindamaged that it allows brute-force attacks and so insecure that running a decrypt on a password file gives the bad guys the keys to your palace, you need a strong password policy. You will also deserve to be mocked when a soceng hack allows someone into the building to look closely at any monitors bearing post-it notes.
Password security is the last refuge of the incompetent sysadmin or web developer. Careful separation of user roles and discouraging escalation of priveleges is more important than someone using gpe~9u?bi4 as their password for this week.
SoupIsGood Food
I still say that using one's spouse's name as the password is best.
If you think it's a weak policy for your organization, then your employees aren't changing their spouses fast enough....
Just use RSA SecurID and forget about it. Only problem is changing codes every thirty seconds is just too much time. I mean I can almost get all 20 numbers in just before it changes. Thats way too convenient.
UNIX: A set of Linux-like operating systems that grew out of an original version written by some guys at a phone company
Here's a little trick I've been using recently, I don't remember a password, I remember a phrase. Such as Ten and twenty blackbirds baked in a pie, boiled down to create 10&20bbb1@p. It looks pretty random to the average person, but a lot easier to remember than pure randomness.
Perhaps instead of offering people simply randomly generated numbers and letters, or even pronounceable versions thereof, why not offer a variety of phrases along with the resulting hash after filtering it through 'leet' speek?
By the way, I did not RTFA, so I apologize if this is -1 Redundant
bend like the reed
No wonder people write down their passwords on postit notes stuck on their monitors.
Engineering is the art of compromise.
As an SF fan I just make up some race.
ex: Kanarian
Then add a few touches to "alien it up a bit"
ex: !K@N@rI@n!
Then when I need to change the password, I just make up a member to the race, and do the same changes to it.
ex: !B@ThooS@n!
Fairly easy to remember, and doesn't matter if the names are stupid, nobody's supposed to see them anyway.
The U.S. really needs an English to Wisdom dictionary.
I always recommend users consider a password comprised largely of profanity. This has proven to have several benefits: 1. It's makes passwords "sticky" and easier to remember, so you can make them arbitrarily long. It's easy for your password to be 1Mg\/\/v when it stands for "lick my gibbering whale vulva." 2. Because these passwords are potentially embarassing, users are much less likely to write them down in any conspicuous place (like the sticky note on the monitor). 3. An additional benefit of the embarassment factor, users are less likely to give their password out to others, thus protecting against social engineering attacks.
Single sign on and single login are very important if you are going to attempt to enforce strong passwords. People will simply write their multiple strong passwords down along with helpful hints on what they are for.
The corollary of this is that if you do have single sign on and/or single login then you should be enforcing strong passwords as a weak password provides access to everything.
BTW, at the moment, the closest thing to single sign on is Kerberos.
Deleted
It works like this:This has been in VMS since the mid 80-ies. The sysadmin can also mandate SET PASS/GEN and set a maximum password lifetime (after which the user has to set a new password before logging in).
This concept could be easily modernized with non-alphabetical characters and longer passwords.
)9TSS
That's such a good idea, it's already been done. One example is:
Password Helper
Use the Password Helper panel to pick a secure password.
From mac os X 10.4.
"Cryptographically strong" refers to properties of functions (usually one-way functions) and makes a statement about how difficult certain computations involving them; it has nothing to do with the quality of passwords.
You can try to force users to use "strong passwords" or "good passwords", but passwords can't be "cryptographically strong".
Okay. I'm a Security Engineer by day. I've seen a lot of ways to come up with strong passwords, but one of my favorite methods to come up with relatively strong passwords that are unlikely to be shared. Try the following algorithm...
;-)
1. Come up with a phrase that is meaningful only to you -- not a quote from a book or movie. For example, lets say that your first dog's name was Samael and that you have never told anyone that you thought Samael was a reincarnation the infamous hell-hound Kerberos. Yes, he was a bastard!
2. So a sample phrase might be:
"Samael, Vigilant Guardian of the Gates of Hell"
Take the first character of each word.
'svgotgoh'
Not a bad start. You have eight characters there.
3. Now you want to make sure that you never share this password with anyone, or if you do it should look sufficiently random that they couldn't remember it after using it once. Only you remember it because you have the generating phrase.
How do we do that? Take the previous phrase and make it obscene nonsense. That means introduce some strange and fantastically improbable obscene twist to it. Something that you would never tell your friend or cubemate. Try this on for size.
"Samael, Vigilant Guardian F***s Me Silly At The Gates of Hell!"
That gives us:
SVGFMSATGOH, an 11 character passphrase, much better.
4. Okay, so I used all caps there for a reason. Feel free to intermix capitals, that will increase entropy by selecting from a larger character set. Come up with an easy rule like capitalizing the first letter in the subject and object of the sentence. So 'S' in Samael and the the 'F' from, well, this is a family geek site
That leaves us with 'SvgFmsatgoh'. Looking pretty entropic.
5. Feel free to add entropy by including special symbols in your password. An easy way to do that is to convert the obvious characters to hacker symbols. 5's for S's. 0's for O's. etc...
5vgFmsatg0h
6. Now you have a damnned fine password of relatively high entropy. '5vgFmsatg0h'
Please, please don't use this example password on your site. Everyone who reads Slashdot may try it.
7. Do a sanity check on your password. Avoid strings of words that begin with the same character. Avoid obvious patterns like abcdefghi etc.
8. A real problem with most institutions these days is that they force you to change your password every 30 days. Good for security, but bad for passwords. Many don't allow you to recycle the last ten passwords or use a password sufficiently like the previous one (or ten).
So after designing a really nice password like this you are forced to toss it after 30 days. What's a good geek to do?
I'd come up with a high-quality password like this and only use it as a 'passphrase'. Something that protects your SSH keys or the contents of your flash drive.
9. I'm a big proponent of SSH RSA/DH login instead of anything that uses passwords anymore. Passwords suck. Use the above algorithm as a passphrase that encrypts your flash drive collection of private ssh keys. Use ssh-agent.
10. If you must use passwords, have a little proggy on your flash drive that generates relatively secure ones quickly and easily. Something like . It's not great, but then I believe I said passwords suck.
Good Luck.
This tape will self-destruct in 5 seconds.
If you have a process that locks an account when it is not logged into sucessfully more than n times.
...) We are not supposed to use words in the dictionary, because even if we put @ for a - leet dictionaries have this combination. Insert numbers. No use two words combined with a number. No use the first letter from each word in a pass phrase...
The arguement for having strong passwords almost always goes: "There are 200,000 words in the english language. A computer can test all of those words within seconds: Therefore it is necessary to have strong passwords."
Then we get recommendations on how to make a password secure (and yet, it's not to use a secure ID token with it). To avoid a brute force attack make the minimum size of passwords over 7. (No, wait, computers are now faster - make that over 8, 9, 10,
I'll Pass. My users get locked out for 15 minutes if they do not log in correctly three times within a few minutes. Now instead of being able to check all the words in the english language in minutes, it takes only. ((200,000 / 3) * 15 minutes * 1/60* 1/24 ~= 694 days. Have fun;)
Disclaimer: This is not true for the Admin account, which cannot be locked out.
that builds grammatical sentences by taking a valid syntax and plugging in random verbs, nouns and adjectives in the right places.
Or I could just send you the documentation we got back with the last project we outsourced to India.
Glonoinha the MebiByte Slayer
They can be written down.
The same password can be used on a secure system, and some trojan web site.
They can be collected with keyloggers.
They can be told to other people.
They are less memorable, which means more password resets. Password resets will always be a weak point in the system.
For high security AND a large number of users, you HAVE to have two factor authentication.
Strong passwords will be a necessary evil for the forseeable future. How many phones, public/coffee terminals, and home computers have biometric authentication gadgets? How many of these gimicks work together? My users need the ability to access nearly everything on our systems, from anywhere. This includes our WAP portal, email from their phone, our various web-apps, SSH/terminal servers, and their IMAP/SMTP email clients. How many of these systems could even possibly function with anything but passwords. Take the IMAP/SMTP system for example, how would you tie biometic authentication into standard SMTP AUTH? How about a web app - how is a fingerprint entered there? Or consider our WAP gateway, how are users going to enter a fingerprint on their phones?
We cant just mandate users access our systems from "approved" sources - that flys in the face of what management is asking for: A system accessible anywhere, with reasonable security percautions in effect.
Though centralized authentiation schemes like LDAP are working well for us, "legacy systems" (ie: accounting, payroll, and factory/inventory management) dont integrate with central authentication systems. Meaning that's yet another password to remember...
With users accessing our systems from so many sources, strong and frequently changed (90-180 days) passwords are a necessity. Though they need the ability to save them:
1) How important is the data in your wallet/purse. Why not just write the passwords down, store them in your wallet/purse, and then manage that. After-all, if your wallet/purse has been stolen or rumaged through, there's a good chance you'll know.
2) Consider this two-factor authentication system:
Something you have: cell phone
Something you know: password to program
How many folks now have MIDP/Java enabled phones. Why not provide them with an app to securely save their passwords on their phone? With a tool like FreeSafe They could not only store all their passwords on their cell phone, they can generate both random new passwords, and One Time Password hashes.
Now if FreeSafe could only store notes, and have some sort of backup capability (which the developer says he's working on)...
For instance, take this random number:
47105259
Substitute syllables for the digits, and you have:
ra(4)fit(7)on(1)ze(0)pa(5)ki(2)pa(5)ma(9)
rafitonzepakipama
This is an over-simplification of how to do this, but one can easily see that the pronouncable password can be every bit as secure as the random string.
Ruby Neural Evolution of Augmenting Topologies
And what do you propose to use for the 10 different login systems I have to work with? And some of them need passwords >= 6 chars length and others = 8. Some need to change after 6 weeks and others not. Also I we have to use 2 different RSA code keys (for different systems). One with pin and one without. Would you blame me for writing down my passwords?