Some ballpark numbers, rounded to one significant figure:
10 characters chosen truly randomly from an alphabet of 70 characters (e.g., [a-zA-Z0-9#$&_() =+/%]) is ~61 bits of entropy and will take just about 90 years to brute-force at 1e9 guesses per second, or 30 days at 1e12/s.
The Bitcoin swarm is currently estimated to perform 60e18 hash guesses per second , so the 10-character password would be safe from the swarm for about 50 milliseconds, give or take a few orders of magnitude (depending on algorithm differences; mostly irrelevant for this discussion).
14 characters (85 bits) would be safe from the (current) swarm for about 10 days, 16 characters (98 bits) for about 200 years.
6 words chosen randomly (not a grammatically valid sentence!) from a list of 1000 words (59 bits) would take about 30 years to break at 1e9/s, and 10 days at 1e12/s. 9 words (89 bits) gives you half a year against the swarm, and 10 words (99 bits) gives you 500 years.
So, somewhere between 10 and 16 random characters should probably be good enough, depending on how defensive you want to be.
I personally use `pass` for password management and keep my PGP key on a YubiKey (full disclosure: I work for Yubico) with a 6-digit PIN, so my private key is not stored on disk and is protected against brute force attacks by blocking the key (effectively destroying the key) after too many incorrect PIN attempts (I also have an airgapped backup of the key, of course).
On Mon, 24 Jun 2019, 22:37 Eli Schwartz via arch-general, < email@example.com> wrote:
On 6/24/19 4:31 PM, Manuel Reimer wrote:
On 24.06.19 18:00, mpan wrote:
If you’re using a password manager, you should not care about the password being “too long”. After all it’s not you who type it. Go for 16 or 20 random chars.
If the key is too complicated to remember or to type in manually, then I have to use a password manager which now saves my password to local disk again. Maybe encrypted with a master password.
Then we are back at the starting problem.
If someone can take my private key file, then he can also take my password manager database.
How strong would you make this master password and where to save this one? A second password manager?
I think if really someone takes over control over my PC, then I have to expect the password to be gone, too. I someone is really able to take my private key file, then I think he should also be able to install some kind of key logger.
And I really think that finally someone *has* to come up with some replacement for this password nightmare. Some kind of hardware key maybe.
I could protect the private signing key with an UUID (just call uuidgen on console). This should be pretty hard to crack but is impossible to remember so I would have to keep this written down somewhere and need this piece of paper every time I unlock the key for signing.
I'm not sure where you're going with any of this.
The purpose of a PGP signing key is that it does interesting crypto things that prove your identity in a way that passwords don't (passwords can be guessed).
The purpose of password-protecting your PGP private key is to prevent someone who gains access to the filesystem, from gaining access to the key.
Password managers, like PGP keys, are things that "should be encrypted with a password to prevent an attacker with disk access from gaining your secret material".
How you protect the master password for a password manager, has nothing to do with whether it's intelligent to use a password in the first place. Personally, I find it very easy to remember *one* master password (or even, to be honest, two or three), which exists only in my own head and unlocks the secrets that are stored on disk -- like PGP keys and password databases.
As for hardware keys, there is no need to come up with a replacement for the password nightmare. Hardware keys have existed for some time now, and they were already intended as a replacement for the password "nightmare", something they do an excellent job at. Did you try getting one?
-- Eli Schwartz Bug Wrangler and Trusted User