This is a staging forum for AgileBits, not an official support forum. Visit http://discussions.agilebits.com instead.
Choosing a Good Master Password
Comments
-
I know I'm late coming to this discussion, but I wanted to share a method of password generation that I didn't see mentioned earlier in the thread (apologies if it was and I overlooked it).
I use 1Password to generate all the passwords that I do not have to manually type in on a regular basis. There are some passwords that I need to type multiple times per day which I'm not prepared to earn a 20 character string for, especially as I have to change them regularly. For example, my Windows domain login at work, or my 1Password master password.
For these passwords I use a method based on song lyrics. Generally, when I'm asked to change my Windows domain password (every 3 months), I think back to the songs I was listening to in the car that morning. I choose a song that I am familiar with (though I make sure not to use a favourite song). I then take a line from the lyrics, and write down the first letter of each word in that line. E.g. I once used the line "I still haven't found what I'm looking for" from the U2 song of the same name.
This gave me a base password of:
ishfwilf
I then perform *some* substitutions, of numbers/symbols for letters.
i$hfw1l4
I then do *some* capitalisation:
i$hFw1L4
I know that this example is not particularly good at only 8 characters in length but my more recent passwords have been much longer. I only do *some* changes to numbers/symbols/capitals as I don't want them to be too predictable.
I find this a useful method as I can get into the habit of singing the password to myself as I am entering it making it much easier to remember. It's not ideal, but for short term passwords I find it a useful tradeoff between memorability and frequent changes.
Anyone care to debate pros and cons, or suggest improvements to this?
The first con is that I sometimes find that I hum the melody to myself as I'm typing it in which would make it easier for an eavesdropper who knows my system to crack the password <img src='http://forum.agile.ws/public/style_emoticons/<#EMO_DIR#>/wink.gif' class='bbc_emoticon' alt=';)' />
Cheers,
MauriceFlag 0 -
Hi Maurice,
Interesting technique. As you already pointed out, it can take quite a bit of effort to generate sufficiently long passwords. After experimenting with lots of the suggestions here, I find DiceWare to be the most effective. The DiceWare pages and other contributors to this thread point out that making the password long is far more effective than doing symbol substitution. Since DiceWare yields lowercase pass phrases with a single random special character, they are far easier to type, particularly on iOS devices. This makes them ideal for your requirement. I strongly recommend you give it a try.
Cheers,
PPFlag 0 -
[quote name='Penelope Pitstop' timestamp='1305394902' post='26968']
Since DiceWare yields lowercase pass phrases with a single random special character, they are far easier to type, particularly on iOS devices. This makes them ideal for your requirement. I strongly recommend you give it a try. [/quote]
I will certainly give the Diceware technique a go for my 1Password master password.
Unfortunately it's not suitable for things like my Windows domain passwords. Our corporate policy is that we have to include at least 1 capital letter, at least one numeral, and we can't have any repeating characters (which you can get through Diceware).
Cheers,
MauriceFlag 0 -
Those kinds of password policies always ruffle my feathers — er, stylish locks? <img src='http://forum.agile.ws/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':lol:' />
If I had to make a password policy right now it would only require a certain length, say 20 or 30 characters and nothing else. Make it long enough and the "fancy" stuff is all but pointless.
I feel your pain, though. Been there. Dealt with that. I work for an awesome company in this and many other regards, but I know most people do not have that luxury.
One day people will realize.Flag 0 -
I realize there has been some spirited discussion on how to construct a strong password in this thread, but let the debate end now! Our wait is over!
Finally, the [i]true[/i] security experts have given us the one tool to rule them all: [url="http://mcafeepasswordanalyzer.com/password-analyzer-en/"]McAfee Speaks![/url]
No longer do we need to rely on the feeble opinion given us by AgileBits' [i]Strong Password Generator[/i]! Test your passwords and get the [i]real [/i]truth regarding password strength. <img src='http://forum.agile.ws/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />
FYI: the first 50 character password I tested came back all "X"s. The second similar password came back all "✓"s. Great little tester they've developed.Flag 0 -
[font="Menlo"]enhztytgabmqjkqfxkoveaxgpmducsvpixwlhjubrfxrynwcdz[/font] is "medium."
[font="Menlo"]jordan23[/font] is "medium."
[font="Menlo"]1Dog&1Cat![/font] is "super strong."
I think they need to improve their algorithm. <img src='http://forum.agile.ws/public/style_emoticons/<#EMO_DIR#>/skype_wink.png' class='bbc_emoticon' alt=';-)' />Flag 0 -
[quote name='khad' timestamp='1305585955' post='27145']
[font="Menlo"]enhztytgabmqjkqfxkoveaxgpmducsvpixwlhjubrfxrynwcdz[/font] is "medium."
[font="Menlo"]1Dog&1Cat!![/font] is "super strong."
I think they need to improve their algorithm. <img src='http://forum.agile.ws/public/style_emoticons/<#EMO_DIR#>/skype_wink.png' class='bbc_emoticon' alt=';-)' />
[/quote]
IMHO, they need to [i]improve[/i] a lot of things. <img src='http://forum.agile.ws/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />
[font="Menlo"][i]1Dog&1Cat? [/i][/font]Oh Lord, take me now!
BTW:
"ILove1Password!" and "Y0urAlgorithmReally$ucks!" were both [i]Super Strong [/i]too.
Maybe they're on to something...a [i]Truth [/i]Meter? [img]http://forum.agile.ws/public/style_emoticons/default/biggrin.gif[/img]
P.S. Love the MJ reference. Go Heels!Flag 0 -
[quote name='Maurice Kelly' timestamp='1305402492' post='26982']
I will certainly give the Diceware technique a go for my 1Password master password.
Unfortunately it's not suitable for things like my Windows domain passwords. Our corporate policy is that we have to include at least 1 capital letter, at least one numeral, and we can't have any repeating characters (which you can get through Diceware).
Cheers,
Maurice
[/quote]
Yep, those Windows constraints can be a nuisance! However DiceWare can still help. There is a [url="http://world.std.com/~reinhold/dicewarefaq.html#login"]special section[/url] devoted to that issue.Flag 0 -
Thanks, Jeff! You had a lot of good points.
[quote name='jpgoldberg' timestamp='1304785060' post='26517']
One limitation of this kind of software is that the question "what is the entropy of this particular password" is not actually answerable. We have to know the how large the "space" of alternative passwords is.
...
But a randomly generated 8 character password from the full set may not contain any digits at all. (I'm to lazy to calculate the odds of that happening, but I'm confident that it is a realistic possibility.)
[/quote]
I'm not quite sure I understand what you mean by this. Do you mean that you could choose a password randomly from a characterset of letters and numbers and possibly get only letters? In that case, it's better to look at the actual password because that is what is being attacked. If you don't have numbers in your password, then it will be easier to crack, even though you chose from a larger characterset. Sorry if I misunderstood that.
[quote name='jpgoldberg' timestamp='1304785060' post='26517']
I'm not sure about the straight division by 4 for user generated passwords. I think it is safe to say that the longer a user generated password is, the fewer bits of entropy per character there will be. So I think the amount you divide by needs to be an increasing function of the password length. So instead of
[code]
@combinations = @charset**@length
@combinations /= 4 if user_gen
[/code]
It should be something like
[code]
@combinations = (@charset/@user_gen_factor)**@length
[/code]
As long as @user_gen_factor is greater than 1, this will have an increasing penalty with the length of a under generated password.
[/quote]
You're absolutely right. I originally put in the factor of 4 just to err on the safe side, but I've changed my code to accurately reflect the estimates made in the NIST report as length increases.
[quote name='jpgoldberg' timestamp='1304785060' post='26517']
I think that this is the biggest issue. We do a simple dictionary check in our password strength tester, but of course it is limited to only a few languages and doesn't check for spelling errors.
[/quote]
This is true, and I've since added a dictionary component as well. I just released a simple web app [url=http://pwchecker.mattwean.com]here[/url] (sometimes it's a little slow to load) that tests passwords against a 289,000-word English dictionary (including misspellings and common passwords) and a 176,000-word dictionary of names. It also checks for common letter substitutions and prepending or appending symbols. It also will make a brute-force calculation and display the chance of your password being cracked in a given time period. There's also several options you can play around with to try different situations. You can read more about it [url=http://mattwean.com/home/2011/5/26/a-password-strength-tester-on-rails.html]here[/url], where you will also find a link to the source code on Github and a link to a download of my English dictionary in case anyone wants to run it on their own computer. I have many more dictionaries to add, so let me know if there's interest in posting them. I had a ton of fun on this project, and I hope people find it interesting and informative.
[quote name='jpgoldberg' timestamp='1304785060' post='26517']
Unless you have a very long lists of verbs, adjectives, and nouns this might be a real problem. The diceware list has 6[sup]5[/sup] (7776) words, so a three word diceware password has 6[sup]15[/sup] (about 470 billion) possible passwords (about 40 bits of entropy). If you want to match that with VERB ADJECTIVE NOUN then you will need 6[sup]5[/sup] of each type of word. Finding 7000 English verbs may be a challenge.
[/quote]
This is definitely something I'm looking at. I've found that you would need about 5 words from the diceware list to give sufficient security, which I think is a little too much. I'm trying to expand the word-list so that you would need fewer words. You're right that there might not be enough verbs; I've been working on creating the lists for different types of speech, but it's been pretty slow. I'm hoping that the combination of verbs, adjectives and nouns will give enough strength, but I might have to add an adverb or something... I'll post again when I have something put together.
Thanks so much for the feedback, it really pushed me to improve my system!
-MattFlag 0 -
[quote name='invictus26' timestamp='1306381683' post='27783']
Thanks, Jeff! You had a lot of good points.[/quote]
Thanks! I had fun with it. I'm glad I was helpful.
[quote]
Do you mean that you could choose a password randomly from a characterset of letters and numbers and possibly get only letters? In that case, it's better to look at the actual password because that is what is being attacked. If you don't have numbers in your password, then it will be easier to crack, even though you chose from a larger characterset. Sorry if I misunderstood that.
[/quote]
The problem that I raised is a fundamental one that really can't be addressed in a tool like yours or in our password strength checker. We are logically in the position of asking a question like: "Is 6030219 a random number and if so, how random is it?"
If you have a random password generator that pulls from [a-zA-Z0-9] but happens, on a particular run, to give you "1234567", your all digit password is, in one sense, just as secure as any other seven character password generated by that system. It is only less secure if an attacker would try checking for all digit passwords early.
The randomness of a password is not a function of the password itself but of the pool of potential passwords it was pulled from. But the *security* of a password is a function of what kinds of things an attacker checks first. Because half the planet (ok, I'm exaggerating a bit) use "1234567" as a password, then crackers will try this very early.
All I was trying to say is that the only real way to judge the strength of a password is the actually run a cracker against it and see how long it takes to find. Everything else we do (and that includes us) is guess work. This wasn't intended to put you off the project; but just something to think about as we form our guesses.
[quote]
I've since added a dictionary component as well. I just released a simple web app [url=http://pwchecker.mattwean.com]here[/url] (sometimes it's a little slow to load) that tests passwords against a 289,000-word English dictionary (including misspellings and common passwords) and a 176,000-word dictionary of names. It also checks for common letter substitutions and prepending or appending symbols. It also will make a brute-force calculation and display the chance of your password being cracked in a given time period.[/quote]
That's great! That is really what is needed. It goes a long way toward addressing the problem I described above.
[quote] There's also several options you can play around with to try different situations. You can read more about it [url=http://mattwean.com/home/2011/5/26/a-password-strength-tester-on-rails.html]here[/url], where you will also find a link to the source code on Github and a link to a download of my English dictionary in case anyone wants to run it on their own computer. I have many more dictionaries to add, so let me know if there's interest in posting them. I had a ton of fun on this project, and I hope people find it interesting and informative.[/quote]
I look forward to playing around with it.
[quote]You're right that there might not be enough verbs[/quote]
I'm pleased to know that my degree in Linguistics hasn't gone completely to waste.
Thanks again! I'll look at the current state of the code when I get a chance.
Cheers,
-jFlag 0 -
Jeff's blog post “[url="http://blog.agilebits.com/2011/06/toward-better-master-passwords/"]Toward Better Master Passwords[/url]” just landed for those of you interested. <img src='http://forum.agile.ws/public/style_emoticons/<#EMO_DIR#>/skype_smile.png' class='bbc_emoticon' alt=':-)' />
Cheers,Flag 0