I'm the creator of visionary[0], a deterministic password generator that the article links to. When I thought of the idea (quite a while ago), I thought it was a good idea, and I thought I was the first one there. I was wrong on both accounts.<p>The points that the article makes are right, and people should use conventional passwords over deterministic ones.<p>But I guess it appeals to a certain small subset of people. For some servers and things that I own I find myself using it sometimes: it turns a relatively strong password into a monster of a password.<p>Another useful use is that it's good at sharing passwords for things with friends, and for that, it's surprisingly handy.<p>For the average person however, the disadvantages and the things that could go wrong outweigh the advantages. Keepass is what you should be using.<p>[0] <a href="https://libeclipse.me/visionary/" rel="nofollow">https://libeclipse.me/visionary/</a>
Two extra advantages of vault based password managers:<p>1. The manager can automatically change old passwords for you. LastPass support a big set of websites, when Dropbox was hacked this was very handy. I like to change social media passwords every few months and this makes it very easy.<p>2. You can store passwords that you can remember if necessary. Sometimes I need to access a password for a service or a site in an environment where I don't have an easy access to my password manager, for example when I'm using a friend's phone or when I SSHd into another machine. In those cases is handy to have some passwords that you remember, but are stored in the vault just in case you forget them. I only do this for a few passwords, but it's a nice feature to have.
I've been surprised by how negative the opinions of deterministic password managers have been since I've been using one for over two years and it has been a much better experience overall than using KeePass on Dropbox, and I also think that it's more secure than cloud-based systems (see point 4).<p>My take on the points in the post:<p>1. Out of the 100 or so sites that I use, only a few have password policies that require tweaks, and it usually just requires disabling symbols and or adjusting the length. These tweaks are cached in my browser, so this hasn't been much of an inconvenience.<p>2. My passwords are rarely revoked, and when they are it is just a counter bump. This is state, but again it is cached in the browser.<p>3. It's true that they can't store existing secrets, but this can be viewed as out of scope for a password manager.<p>4. For the application I use, it's not true that exposing just the master password exposes all of your site passwords. There is a 512bit private key that is synchronized once between devices using a QR code. An attacker would need both the master password and the private key file to generate any passwords. Because the private key only exists on devices I physically own, this should be harder to obtain than an encrypted database that lives in the cloud, so I view this system as more secure than KeePass on Dropbox, Lastpass, or 1Password.<p>My experience over the past two years has been that the advantages are more significant than the disadvantages.
Today I learned that many people on Hacker News have really insecure web security practices. :(<p>I don't understand the resistance to using a vault-based password manager. Is it inertia? I mean, if you're using the same one or two passwords on every site, then sure, it may not seem worthwhile to us 1Password. But then, enough password hashes have been leaked this year alone to suggest that you need to do something better.
I have an irrational(?) fear of vault password managers. I see it as a single point of failure.<p>Furthermore, the more "useful" they become, with browser extensions etc., the greater the attack surface becomes.<p>Because of this fear, I generate random passwords and memorise them, which is not ideal.
I thought I'd make an account on contribute on this issue as the author of a (probably pretty bad) password manager <a href="https://slaymaker1907.github.io/password/" rel="nofollow">https://slaymaker1907.github.io/password/</a>, source code at <a href="https://github.com/slaymaker1907/password-hasher" rel="nofollow">https://github.com/slaymaker1907/password-hasher</a>.<p>There definitely is an issue with some websites having strange requirements, but the way I get around it is keeping an drive sheet with all information used to generate the password (except for the master password of course). This does add some state, but I find that for common passwords I memorize the method of generation very quickly.<p>There is a central point of failure if the master password is compromised. However, this can be mitigated by first choosing and memorizing a very strong master password as well as versioning passwords by storing the name of the master password used with the rest of the info (though obviously not the master password itself). Additionally, I find the threat model under which such compromises to not be very convincing assuming you choose a strong master password compared to the common case of simply needing to change a password key on the site from linkedin1 to linkedin2 in case of a password database breach.<p>One weakness of password vaults is that they don't have the advantage of working without access to the vault. While my method can store state as mentioned above, it is very easy to memorize this state, particularly for common/important passwords and has actually saved my bacon before.<p>Finally, something that I think is a significant strength to a manager but a weakness for managers is that I can and do use my manager for passwords that I need to type out, most often using a feature that translates the password into a password similar to a diceware password (I use a significantly shorter dictionary since dictionary length does not affect the entropy density of a password very much and it makes them easier to type/remember if only using common words). Using this feature, I've been able to create separate passwords for my desktop, laptop, and phone that are both easy to remember as well as having good entropy (when I compute entropy I do assume that an attacker knows the method of generation).
I don't agree with the author on many of his points. 1 and 2 are "merely" convenience features. Sure, those things make a truly stateless password manager harder to use and a very niche tool, but they're by no means fatal flaws. 3 is a good argument, but storing existing secrets is by definition out of scope for password generators. It is a usability problem, which makes using a truly stateless password generator as the only password manager harder, but still not a fatal flaw. The fourth one is in my opinion the only one which could be called a fatal flaw. It's probably the thing that has to be considered the most before using a master secret password generator.
The hyperbolical title annoys me, but what annoys me probably even more is that the author then recommends (not directly, mentions as his personal choice, but that counts as a "seal of approval" for me) a closed-source cloud password manager, which could possibly be less secure than a password generator.
I use a deterministic password generator so all I have to remember is my master password and default password scheme to get access to all my critical accounts (critical ones generally don’t have silly password requirements). If I were using something that stored passwords and lost my database somehow, I’d lose access to all of those.
I agree with the author's opinion with the master password being compromised, you're done. I have found an elegant solution for managing my passwords with <a href="http://masterpasswordapp.com/" rel="nofollow">http://masterpasswordapp.com/</a> the iOS app is a breeze and I also use the export feature to backup my login names, hashed passwords, custom passwords, and stored secrets. This app in particular solves the author's third point. For the second point, I save the iteration X of a password as a stored secret when I need to revoke a password. It doesn't sacrifice the user experience in my opinion.
Another flaw: deterministic password managers are inherently vulnerable to brute forcing-- it's basically like sending your password database to every site you log into. Ideally they use a very expensive KDF, but I've seen implementations that use weak derivations like 10,000 round PBKDF2.
Do people really complain that size is an issue in syncing password data? The author of this article's file was 512 KB, personally mine is 10 KB. That's basically none.
This is a good one (from what I've heard) <a href="https://github.com/habnabit/passacre" rel="nofollow">https://github.com/habnabit/passacre</a>
The only deterministic password manager you need is your own mind. Come up with a set of password rules that are generic enough to accommodate all these issues. For example my deterministic password manager might be:<p>1. random english wordx2 + first 4 letters of registered domain, all caps + remaining lowercase + number of letters in domain (integer) + symbols associated with digits of the integer digits<p>2. If site doesn't allow special characters, remove them<p>3. If site requires a shorter password than the generated one, trim the minimum number of characters from the front of the password until the criteria is met.<p>So, using my above rules my password for Ycombinator would be:<p>coppercopperYCOMbinator11!!<p>If the site restricts passwords to max 12 characters, it would become:<p>Mbinator11!!