Hacker Newsnew | past | comments | ask | show | jobs | submit | pass_throwaway's commentslogin

I don’t use a password manager. Instead, I have a formula in my head to generate a unique complex password for each site or online service based on its domain name and some other optional parameters, if the site has password constraints (eg. no special characters, short maximum length).

I have an encrypted plain text file (just a .txt in an encrypted macOS disk image) containing all of the parameters (if any) to generate the passwords for each site, which I keep on Dropbox, accessible at public URL I have memorized. This lets me easily update my password parameters file (open the disk image on my computer, update the .txt file, close the disk image).


This is the way to go imo, password managers sound cool and may prevent password reuse leak problems but what they also are is a single point of failure for all your accounts.

It's swapping a problem that doesn't affect you (especially with 2fa being a thing for everything now) for a much larger critical problem that can seriously screw you.


The problem with this technique is that if it's generated algorithmically with no "randomness" to it, someone else can figure it out.

You might be doing everything right, but perhaps your vendor's database gets breached, and your plaintext password for Adobe gets posted on the darkweb. So if someone sees that your plaintext password is "1a2s3d4fAdobe5g6h!", they might then infer how you "construct" your password, and then go try logging into your Amazon account with the same email address and "1a2s3d4fAmazon5g6h!" as the password.


The algorithm is considerably more complicated than that. Somebody would have to get ahold of several of my passwords (and the names of the services they lead to) to figure out my algorithm. For that to happen, someone would have to invest a large amount of resources to specifically target me, in which case I probably have bigger problems to worry about than some relatively low-stakes online accounts getting compromised. For extremely sensitive accounts (eg. bank, primary email) my passwords do not follow this scheme.

Remember, the vast majority of password reuse attacks are automatic credential stuffing, not deliberate, individual targeting.


Nobody is going to bother with reverse engineering your algorithm, or even bother targeting you individually, when it is orders of magnitudes more likely your passwords will be revealed via a garden variety database breach/leak. That low stakes online account you have? That's also the one likely to have their user account/password database stolen, which was stored plaintext.

Basically the threat model I am worried about is: random website gets hacked and loses its password database. So if criminals hack two such sites and correlate email addresses, they will see two essentially fully random passwords for me. If that happens to you, they might notice a pattern in website url and prefix/postfix characters.


  Once that happens, a criminal could notice your password is more of a pattern than a full random password (of typable characters).
But in order to do anything beyond hacking the single compromised account, the criminal would have to reverse engineer my algorithm, which, as you said, nobody would bother doing.

In addition, the algorithm is complex enough that it would be hard for a casual observer to distinguish the embedded domain name from general password randomness.

  Your scheme ideally would rely on not tying all your accounts together with the same email address
That is true, but this only becomes relevant when an attacker is manually searching for my email across multiple password dumps (as opposed to an automated credential stuffing attack), which means I’m being specifically targeted.


>which means I’m being specifically targeted

I don't know about that. Various episodes of Darknet Diaries make it clear stolen password databases are searched for any matching email accounts, which of course depends on the motivation level of the attackers. I suspect a simple "check all emails in this one database for a match in the other database" isn't that large of a hurdle. Your average CS101 class might include an extract emails, sort, merge-compare type of assignment.

And yes, like so many others here, you apparently have the goldilocks algorithm. Easy/simple enough for you to generate on the fly yet secure enough to resist all but nation-state attackers.

To that I say - congrats. But the GENERAL advice to the public at large is that the rest of humanity isn't as awesome as you are, and THEIR password generating algorithms of generated characters plus domain name are easily deduced from a single sample, thus making password managers far far superior to protecting against actual real world threats ("crappy website has lousy security and got breached through zero fault of mine") and not the frequently imagined threats ("I am the target of a concerted effort by extremely sophisticated attackers with infinite time/budget").


Why not just use a password manager, store the emergency recovery kit in Dropbox or at a public url (encrypt the kit with a password you know)?


In addition to the fact that password managers can be single points of failure for reasons other than credential loss, sometimes I need a password on a device where my password manager is not available (eg. a friend’s device).


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: