I’m really feeling justified in my refusal to use these things. Develop a personal algorithm for unique, memorable and strong passwords, and keep it to yourself. Write them down if you must (develop coded shorthand for it). It’s the only real way to do this.
That is probably on par with inventing your own crypto system. I’m fine with a little security through obscurity thrown into the mix, but I’ll take encrypted randomly generated passwords over a hand-made cipher any day of the week.
It’s really not. If you use phrases (which have a large amount of entropy), and a way of deriving them that requires your own knowledge plus something you have, you’re not exposing yourself to any mathematical attack. In my algorithm there are at least 4 “things I know” and one “thing I have,” but it’s easy to remember.
I’ve started making heavy use of password reset flows. When I want to log in, I click on “forgot my password” and enter my email. When prompted for a new password, I generate a random password and paste it in, but don’t store it anywhere. I’m now either logged in, or can immediately log in by pasting the password again.
I’m looking in to automating this process somewhat, but have been discouraged by OAuth2 authentication for accessing the Gmail API.
so it’s like you use gmail as your keepass but actually don’t keep any passwords there! :-D
do you also use 2FA for gmail access ?
Yes, Gmail is behind a strong password and 2FA. I also only use this method for sites that don’t support 2FA on their own.
medium.com sort of works that way when logging in with an e-mail address. You can’t even pick a password, it just e-mails you a link that you have to click on to login, every time you want to login. Hope their e-mail servers aren’t greylisted…
Email is not a secure verification mechanism, in my opinion.
It’s trusting that your email provider has not been attacked; that there is nobody listening in in the middle of my connection to the website, my connection to my email provider, and their connection to my email provider; et cetera.
It seems to me that using a password offers fewer places to attack/intercept access to the website than using email does.
Definitely adding email to the mix increases the attack surface, and strongly disincentivizes using email providers who are small or otherwise probably-insecure. It is also intensely frustrating trying to convince people who are not technically inclined but want security advice, that their email password is very important and deserves special treatment. At the very least, I wish that more sites offered an option to turn off email as a reset mechanism on a per-account basis.
In this talk, Manuel Blum describes a pretty simple password generation algorithm with information-theoretic security guarantees. The basic idea is that given a private key (PK: char -> [char]) mapping from letters to strings (e.g. human names), a simple key generation algorithm that takes a site (“challenge”) and outputs a password defined by password[i] = PK(challenge[i])[i+1] is secure as long as the number of passwords that an adversary has access to is under a constant (~20 in one example).
I’ve done this in the past, but it’s very likely you’ll stumble upon the same pass as everybody else. I don’t know what your personal algorithm is, but if you compare unique passwords from the linkedin breach to gawker, there’s a lot of convergence on “eyeW4ntGoodJobbb”.
That’s really unlikely with my algoritm…
So we appear to be down to KeePassX and 1Password as the last two theoretically unbroken password managers. I’m betting KeePassX is going to fall first due to increased scrutiny, but I wouldn’t exactly be shocked to see both fail.
How about something like this, where your passwords are not stored in memory?
The real security model for password managers is that the master password is still a single sufficient factor for access, and OTP-based extra factors aren’t really helpful because they can’t directly be used in decryption, and ultimately wherever the validity check for them is performed, an attacker can short-circuit it and get the key it protects directly.
The generative model doesn’t add a factor; a client-side attack can still capture the master password by logging keystrokes. It has the additional problem that there’s no way to do password rotation on a single site (for example, if that site is compromised by other means).
I agree that a client-side attack that, for example, logs keystrokes will make any password manager null and void, but then so will a client-side attack of a $5 wrench. All the generative model adds is a lack of storing the information on disk, and therefore ability to “share” passwords amongst multiple devices without any synchronization, removing a possible way with which to gain the list of passwords.
For rotation, one could do something similar to this:
Changing passwords periodically: If your company requires you to change your password every month, you can append a date to the second line, for example instead of xyz, use “xyz may 2008”.
Of course, in a perfect world, we could all remember random strings characters that would increase slightly in length ever-so-often. I wish I could.
I suppose, regarding threats.
Regarding rotation, personally, I doubt I could even remember when I had last changed a given password. My password manager has about 200 items in it… The ones I don’t use for a year or two and then do need again tend to simultaneously be the most important and also the easiest to completely forget everything about. I really like the model of remembering one master password. But I acknowledge that situations differ.