Somebody asked whether dictionary-word passphrases (“correct horse battery staple”, like the ones generated by 1Password) are any good. Short answer: good means different things. Shorter answer: yes!
I’ll talk about why in a thread below.
Somebody asked whether dictionary-word passphrases (“correct horse battery staple”, like the ones generated by 1Password) are any good. Short answer: good means different things. Shorter answer: yes!
I’ll talk about why in a thread below.
The basic idea of these passphrases is that you have a dictionary of D words. You pick N words at random. That’s the whole idea. Example: “overlook-hooey-valance-flood-useless-ladyship”.
Cryptocurrency BIP32 passwords use a 2048 (2^11) list, and use 12-24 words per passphrase. 1Password seems to use a larger list, between 18000-18500 words (2^14.15) and you can pick your length (6-8 is common.) https://github.com/1Password/spg/blob/master/agilewords.go
Someone in my timeline asked for papers saying these were good passwords. From a purely mathematical perspective we don’t need a paper, just a toot. But there’s more than math here.
Password quality is about three things: strength (how long til Mallory guesses it, perhaps with a powerful computer), memorability (can you keep it in your head) and usability (can you enter it into a website or device.) Only the first one involves any math.
The math for dictionary passphrases is pretty simple. Assuming you choose words uniformly at random: if your dictionary has D words and your oassphrase is N words long, then there are D^N total passphrases.
The total matters because for a random passphrase the best strategy for guessing is to try all (or most) of them. This D^N determines password cracking time.
A simpler way to do this math is with powers of 2. The 1 password dictionary is about 2^14 in size, so for a 6 word password we get 2^{14*6} = 2^84.
Cryptographers tend to treat anything over 2^80 as “probably good enough to secure your Bank of America account” and anything over 2^128 as “probably good enough to secure really important stuff”. I told you there’d be science.
For comparison, last I checked the Bitcoin network was computing about 2^64 hashes every 10 minutes and using as much electricity as Argentina.
Bitcoin doesn’t crack passwords, but if it could & the entire Bitcoin network was cracking your 6-word 1Password phrase, it would take about 9.5 years on average.
But what about human memorability? Can people memorize such complex passwords? The answer is “yes”, because I just memorized one.
If you don’t accept N=1 studies, then there are a few studies. This one looks at 3-4 word passphrases: https://cups.cs.cmu.edu/soups/2012/proceedings/a7_Shay.pdf
If you’re looking for a recommendation here, I would urge you to do the following:
1. Use a good password manager with a strong random 6-8 word master passphrase.
2. Write it down (one safe place) and practice entering it from memory on a regular basis. You will eventually remember it.
3. Let the password manager generate passwords for individual sites.
There are no guarantees, but this is probably the safest way to keep passwords online.
And finally, as someone reminds me in replies (need quote toot here!): use 2FA/MFA wherever possible. Preferably 2FA/MFA based on an app/YubiKey rather than SMS codes.
(Do not ask me about backing up app 2FA, I don’t have a great answer.)
Also re-reading the early part of this thread I was a little fuzzy on how passphrases are generated, argh.
You have a dictionary of D words. You pick one word at random. And then you repeat this process N times. The clarification is: specific words can repeat more than once within a single passphrase. In practice this rarely happens (for large dictionaries) but it would certainly change the math.
@matthew_d_green Thank you. This is very interesting, and clear.
But I'm manually picking words at 'random' (from my Fediverse timeline, actually). I wonder how I can tell how big my D is?
@matthew_d_green You can use diceware for a low-tech way to generate truly random, word-based passphrases with pen, paper and 6-side dice.
See https://theworld.com/~reinhold/diceware.html for the original implementation. There are many more pages on that topic on the Web nowadays.
One point worth noting:
In situations where it's possible to do so, adding MFA is likely going to be dramatically more impactful than worrying about the difference between words and random characters.
@jpgoldberg @matthew_d_green Speaking of usability, I find typing those long passwords pretty painful, especially on smartphones. Using spaces as separator rather than hyphens/underscore helps, as you don’t have to switch keyboard mode. Maybe that should be the default for 1Password? 😇
I guess it looks less passwordly though.
No separator at all is nice too, even if it costs a little entropy (in-put-clammy = input-clam-my). Intuitively, I don’t think those collisions put a significant dent in the entropy 🤔
@zhenech @matthew_d_green Biggest account takeover threat is phishing. Biggest mistake is password abuse: reused or guessable.
U2F/FIDO protects you from takeover via phishing, SIM swap, and password abuse.
HOTP/TOTP protects you from takeover via SIM swap and password abuse.
SMS protects you from takeover via password abuse. Vulnerable to SIM swap if enabled at all, even if unused.
(Password manager also protects you from account takeover via SIM swap and password abuse, without 2FA.)
@zhenech @matthew_d_green Footnote: 1FA vs 2FA is a bit of a red herring.
Passkey is 1FA but protects against the same threats as U2F/FIDO. Likewise ssh keys or TLS client certificates, in their domains (with privacy caveats).
Password from manager is 1FA but protects against largely the same threats as HOTP/TOTP 2FA (with minor exceptions).
SMS is 2FA, but having it enabled at all renders you vulnerable to phishing, if the attacker can pull off a SIM swap—even if you always use U2F/FIDO!
@jernej__s @matthew_d_green yes, tap add account, other, scan code.
That said, I just saw they are dropping Apple Watch support, so I would avoid it
@matthew_d_green The best Yubikey backup strategy is for the auth server to allow registering multiple security keys. This has been the canonical solution since the dawn of time, i.e. when security keys existed only inside Google and Yubico.
Also, the auth server needs to allow revoking individual security keys in case of loss, so be sure to give them names at time of registration.
@matthew_d_green ummmm... I connect my iPhone to my mac, I click "Backup", and when I get a new phone, I do "Restore".
Same with Android, I do full system Backup, and then just restore.
Haven't use Android in a while, but works like a charm (well, except when Apple decides I have to enter my passcode 245567656455 times) with my iOS and iPadOS devices running... *checks notes* an app named Tofu!
@matthew_d_green Some password managers, namely #KeepassXC can handle 2FA.
That does technically reduce it to single-factor but anyway, still an option. Adding isolation #Qubes style is probably a good idea to prevent easy compromise .
Regarding #SMS2FA, I've taken to reposting this when someone mentions it: https://pages.nist.gov/800-63-3/sp800-63b.html#-5133-authentication-using-the-public-switched-telephone-network
@matthew_d_green that's exactly what I did, and after a couple of weeks I was confident enough to burn my written-down master passphrase.
Pity I'm using LastPass though...
@matthew_d_green 8 WORDS is enough NOT CHARACTERS for master password. 😃😂💪
For those reading this and still confused.
@matthew_d_green For most people:
1. Your browser has a great password manager (Chrome, Edge, Firefox)
2. The company that makes your browser may also run your email (Chrome & Gmail, Edge & Hotmail)
3. Most of your passwords can be reset by anyone who controls your email account anyway, so...
4. There's little marginal risk to using the manager built into your browser that syncs using your email credentials.
(They don't advertise, so too many people think they need a 3rd party product.)
@matthew_d_green The great majority of people using a password manager are using the one built into their browser, so speaking generally about "master' passwords for password managers without making clear that we're actually talking about their Google/Apple/Microsoft Account password.
(One can't help but wonder if affiliate links and marketing teams are the reason that so much discussion focuses on 3rd party products.)
Yay! I'm already following these suggestions. I stored my 6-8 word passphrase on my Yubikey, but have it stored in my memory too.
I use 1Password (finally) with Watchtower enabled to tell me to regenerate some passwords regularly. It also knows which sites support hardware keys.