In an extra from Edward Snowden's interview with John Oliver, Snowdon advises that a good password to use is one such as
Also, on the Errata Security blog, Robert Graham says on the matter:
NSA leaker Edward Snowden recent suggested that a strong password would look like "MargaretThatcheris110%SEXY". he's been criticized for this, but actually, it indeed pretty strong. Yes, there are lots dictionary and Markov weakness, but they are compensated for by length. All else being equal, longer is better. Indeed, whatever password you have now, simply adding "xxxxxxxxxxx" onto the end of it it likely to make it unbreakable, and it's extremely easy for you to remember. A password like "MaThis110%SX" is a 12 character password such that even the NSA is unlikely to be able to break it if it were your Lastpass password -- Snowden's longer form doesn't make it worse. (Note, some people claim this Snowden example isn't so secure, but they are wrong).
Now, on previous discussions on here we have learnt that the human brain is bad at being random. We also know that password entropy isn't based on what's in the actual password, but how the password was generated. For example, the following password may be considered strong on first glance:
However, say that Bob always generates his passwords by combining the following words in his password generation text file together in a random order, and the attacker knows that, then the password is not so strong.
One of the comments on the Wired article is:
if I was trying to crack a hash I wouldn't just assume from the beginning that all passwords follow a
female_names+surnames+english_word+english_word+known_passwordspattern and then wait up to 7 days to see if I was correct. If I knew it was that pattern, then Snowden's password would have 33.041 bits of entropy. Otherwise, the entropy would be considerably higher (>100 bits).
This describes the crux of my question. If I made such a password like
MargaretThatcheris110%SEXY., a "strength meter" such as zxcvbn gives the entropy as 39.6 (including the full stop). However, nobody knows that I generated the way
zxcvbn breaks it down. And even if they did know I'd used that method in the past, I might use a different method for my next password (e.g.
As tylerl notes in another answer:
We can guess at what dictionaries will be available to the attacker, but we can't know for certain. Therefore, as a proxy for dictionary size, we instead use entropy. It's a poor substitute because it doesn't reflect the actual attack mechanics, but it's potentially better than nothing.
If an attacker knows that I might use "human brain made up" sequence definitions, possibly with "human brain made up" values to fill in those sequences, does this actually help them in any practical sense? What I mean is the entropy value of 39.6 doesn't really mean it can be attacked by a brute force attack filling that keyspace, because the attacker does not know the structure. I realise in security the only things that should be secret are passwords and secret keys, the mechanisms themselves should be considered known and public. However, the way the password is generated could be considered private because know one else knows the exact method. Obviously Snowden has revealed this publically, but for his next password he'll do it slightly differently. Is this why Graham disagrees that Snowden's example is more secure than the entropy analysis suggests?
Also related: Has human-generated entropy ever been a real problem?