Password, 2fa, and their backups management, need critique!

Below is my overall strategy, still needs polishing. I want for things to remain simple, and recoverable in case something happens to my device.

First passwords. Setup two passwords manager, Proton Pass for services, and Bitwarden for emails. Not much gained security wise, but it keeps me at peace.
PP password will be stored in BW, and BW password will be memorized.

After setup, export unencrypted .json files and import them to KeePassXC, within an encrypted storage device, updated every 3 months. The password will remain same as that of BW. Backup purposes only.

Now 2fa. Setup Ente Auth, with webview enabled, and store 2fa there, on a separate device which doesn’t have password manager. The seeds (+ente plain text export) will be backed up in an SN account, with no 2fa whatsoever. This is the second password that needs to be memorized, both Ente and SN will have same passwords. Will be updated alongside BW.

To reduce friction, I’m also thinking of just straight up exporting encrypted backups of BW and Ente, but then I will be bound to the respective apps. Not sure.

Issues:

  1. Backups are insecure in case of breach. How to manage?
  2. Password can be forgotten, and I detest writing things on paper due to my inability to secure it.
  3. What about recovery codes that bypasses everything? How do I store them?

Thanks.

First of all, everyone’s threat model and security model (at least perception) is diff. So, don’t get me wrong but what you described : BW + PP + Ente Auth + SN, is very unnecessary from security point of view. Keeping high security standards, you could definitely simply things (memorize less things yourself) and reduce friction for every time you access your logins by using only 2 things, instead of 3 or 4 : Password manager and Authenticator of your choice.

For Logins :

  1. I think you are using separate password manager to store emails and password to keep things away from each other so that the attacker, in highly unlikely scenario, will have to break two things before having full access. But, this is redundant in my opinion, you PP password and email is stored in BW - so ultimately, attacker would have to break only 1 thing - your BW password vault. Mind that password managers are hard to get into, if you use strong passwords.
  2. Instead of using both BW + PP, use only one. If you are paranoid that someone may hit you in the head and access your password manager with your fingerprint or steal your device unlocked, you could salt your passwords - store long unique password in the password manager and complete them every time with something only you know in your head (e.g. : kmw#gsvcpVo^gF3jRfNc@TK7DR&E@oz3c5tSyXaSApVzFDyq + SOMETHING SIMPLE IN YOUR MIND (5XZU5gbnL4Vu) = kmw#gsvcpVo^gF3jRfNc@TK7DR&E@oz3c5tSyXaSApVzFDyq5XZU5gbnL4Vu). Keep the first (long) part of password for each login in the password manager unique, and don’t add any info about second part in password manager. Every time you want to access the login, you will have to do some manual work of typing out the last part yourself.
  3. You could pair any offline or e2ee online authenticator with it. I like ente auth. Again, if you are paranoid of someone having physical access to your device in unlocked state, have a system that only you can use. I am using a system of not storing any visible or deducible link of passwords and authenticator codes, in either of the apps that I use. Someone may call it dumb but here it is.
    1. Service Name : __________
    2. Login : mail-id@mailid.id
    3. Password : RandomShit + SomethingOnlyYouKnow
    4. TOTP : A number (like 29)
  4. Ente Auth has many codes and none of them have any notes or service name attached to them. They are identified using just a number (like 0-100). Modify original number (here 29) in a way that only you know (like this example: 29 * 2 - 15 = 43) and store the TOTP for that service in the resultant (here 43) numbered code. Do not mention the scheme used to modify the original number to get the resultant number in the password manager. It is not hard to remember it and to do a little math calculation each time.
  5. Ente auth account creds could be stored in password manager or could be memorized. I don’t want to memorize a whole lot of things, so I store them in password manager. Online accounts of password manager and ente auth should have TOTP enabled but they complicate things as you need to store TOTP seeds somewhere in plain text or encrypted (one more password to remember now). I have ente auth account creds stored in my password manager, without password manager ente auth is useless. This solves email and password problem but, TOTP codes is still a problem. I have stored them in my ente auth account and also my wife’s authenticator app under false numbers so that I could access them quickly (when I am already logged in). But, if I got signed out from every device I own, it could lock myself out forever. To avoid it, the TOTP seeds (with emails, passwords and recovery codes) of password manager and ente auth are also stored in plain text where I keep my backups for password manager and ente auth.

For Backup :

  1. First of all write down everything you do so that in some emergency someone you trust could to access the system you created. Store your password manager & ente auth login info + their TOTP seed + Recovery codes in the same note. Also, attach the info on how you have created your backups, where are they stored and detailed info on how to access them in plain text. Manually encrypt the note (kryptor + openSSL) with ASCII armored so that you could send it to some you trust (spouse or family member). To encrypt this note, you could use a password they already know. I do this with my sister who lives almost thousand miles away and with my wife. We three have shared similar notes with each-other which could only be accessed by us three in some emergencies. Its highly unlikely that we three die on the same day on two different location.
  2. Create manual backups of password manager and ente auth each month or at a frequency you are comfortable with, encrypted or unencrypted. Store them locally on a encrypted volume. I like to encrypt the zip of it using picocrypt, but again 1 more password to remember. I have stored it in password manager under a false name and that too, it is not complete there. Also, I have shared this password with my loved ones. You could use picocrypt encryption with just a keyfile. But, sharing a password is easy than keyfiles. Also keyfiles, if altered or deleted, could lock you out.
  3. For storage of backups, I use macOS sparsebundle image where I don’t delete past backup when I create new. This image grows in size as I add more things and is easy to upload on a cloud, as only the changed bits are uploaded under the cloud sync. Use 3-2-1 system to store your backups.
  • Doing so you need to memorize only 2 things : password manager credentials + short password to complete logins.
  • But each time you want to login somewhere, you have to do 2 things manually : type out extra short password yourself + a small mathematical calculation.
    • This increases the friction. But for me, I think I could handle that friction. I have now become familiarized with it.

Rest info is either in password manager or in notes which I could access when I am at home and is also shared with someone I trust to avoid ‘got locked out’ situation. Just sharing my process a little bit, this is working for me and few others IK, no guarantee it will definitely work for others.

1 Like

In my experience, overly complicated set up’s just for the sake of privacy or just because you can do it doesn’t mean it’s a good idea.

Based on your very first sentence, simply stick with one highly reputable cloud based password manager like Proton Pass. It’s the best and easiest way to manage your credentials and more. Your 2FA info can also be within it and so can any other important data. But if you really want to keep 2FA difference, use Ente Auth.

I personally find it silly when people have overly complicated solutions for problems that don’t exist.

The only key is here to remember one or two credentials to get into your password manager and your Auth account with randomly generated strong passwords that you’re not using anywhere else and is not at all related to anything about you or your life. That’s it.

Credential management is not supposed to be this difficult and convoluted.

Those are my two cents. I hope you see and understand how I do.

2 Likes

That’s an additional thing to memorize, unfortunately. But I do realize the redundancy of two password managers.

My strategy also aimed at avoiding circular dependency, and as you mentioned without backups you would be locked out. The chicken-egg problem bothered me quite a bit as you should 2fa protect your password manager, but where would you store your backup seeds without memorizing a third password?

A much better approach I found which I should’ve mentioned is that instead one could setup another Bitwarden account and designate that as a trusted emergency contact. One could store its login details on paper and set a long wait time for it to be able to access my vault. This way a family member can access your stuff in case something happens. 2fa still remains but you could store your local backup password in BW as well, but I guess if you don’t have trust issues this is just additional friction.

But then how do I access my password manager without 2fa? Avoiding circular dependency is important in one’s setup so that you don’t get locked out.

One credential, and the whole 2fa setup becomes redundant because you just need to get compromised once. Backups are necessary as well.

You don’t set up 2FA on your password manager. You make a strong password you remember.

If you want 2FA on every account including your 2FA app, there’s no end to it.

I don’t understand what part of needing to remember a strong randomly generated password for your password manager is the friction here with my exposition or your understanding of what’s necessary or enough.

Listen, you do you as your threat model dictates. But on one of the accounts, you will have to let go of your 2FA and only safeguard it with your master password that’s strong and only you know that you have memorized.

–

All this talk for overly complicated of a “problem”. It’s supposed to be simple.

I very firmly disagree here. If your single password gets phished, keylogged or compromised in any way, it’s game over.

Even Bitwarden forced email 2fa on all of its customers despite the circularity it creates (as most have their email password saved on BW itself), and took on the additional customer service burden to disable that 2fa if turned on automatically in case one gets locked out. Even this flawed implementation was better than no 2fa at all.

1 Like

Okay. Let’s say you add your 2FA to your password manager. And then you have to use your Auth account. And then you want to add 2FA to your auth account. To what end will you want to keep securing your accounts?

Will you then want to use your security key as your 2FA for your Auth account? And what if your security keys are compromised? What is this, what if that
 to what end?

Where do you want to draw the line? How do you want to draw the line?

You speak on simplicity in your first sentence of your OP and here you are debating on overly convoluted OPSEC.

I don’t know what you’re looking for but I don’t think any answer you get here is going to satisfy your needs. And if your threat model really is this high, nothing this forum or even Privacy Guides can tell you to ensure your safety because it would be highly subjective and personal of an OPSEC. I then recommend you install KeePassXC on a USB and only use that on any device you want to use your password manager on then.

I have nothing more to add. You have my views and answers. Good luck to you.

1 Like

And why would I do that? Don’t be disingenuous.

And had you read beyond that first line, we wouldn’t be debating this.

So PG and rest of the forum recommends not adding any 2fa to one’s password manager? I think I struck a nerve here, so I’ll let’s just agree to disagree.

1 Like

I believe ente auth stores totp seeds in plaintext .json in your home folder on linux. please correct me if im wrong, though thazs why i opted not to use ente auth

Update: I double checked now and reinstalled io.ente.auth appImg. It serms like the issue might have been fixed since I last checked. it used to be that ~/.local/share/io.ente.auth/shared_preferences.json would store unencrypted token seed, now It stores - I believe - encrypted keys. However I understand way too little of cryptography to assess wether it is sufficiently secured now. maybe someone who uses ente auth desktop on linux can confirm.

I also found an issue (from 2024) where also ios and windows user where complaining about unencrypted storing.

There is no way this is true as all of Ente went through a proper security audit very recently.

that audit just concerend the server, apps where out of scope.

again i might be wrong, but I did find that .json both when using appimg and flatpak ente auth on linux. and it persistet even when the app was closed.

but I’m not competent enough to asses. there are some issues open on their github regarding this i believe, though though their github has an insane amount of open issues and discussions, alot due to people asking for a account restore lol

Update above

My 2cts, simple and to the point:

  • offline password manager, KeepassXC
    • sync it however you like, via a self-hosted VPN, cloud-provider or old-school drag&drop via a USB drive
    • no need to trust or pay a company that way, you’re 200% in control and it’s an evergreen format with a bizillion of nice apps supporting it
  • bullet proof the master password with some LOOOONG diceware to maximize that nice entropy
    • how hard you go on it is open to you :slight_smile:
    • some more context/alternative to diceware-like
  • crank up the security levels of your Keepass
    • increase the encryption time
    • add a key file
    • add a hardware key

Then, once in your Password Manager:

  • create yourself some nice aliases usernames/emails for every website
  • impossible to type passwords like ìÒ¾@_ZÆĂȘüÕ"ĂšEñAÌ^m«0o©ÙN.Ăż|OÄdt]ÊN¶HÓ`ññ¾ÁÖ¼^Z¿Ô<Ï'ĂȘ+0gL^!]È_Ò}_]Ă±Â»ĂłĂŸÂąpÂ©Ă©ÂŹÂŒĂąycĂœvĂŸÂ»;CQ[ĂŹ;°å!ÔĂȘښ¿g{<ÈîË('¯ÒÐñ³t`Ă©?zsĂ­Ăș'ÂżB2ÚÂș?Ï>4 (you might not be able to submit that long and complex everywhere but there are some good websites still supporting that sometimes)
    • consider not always doing that tho, because you might need to type your router’s wifi password once in a while :blush:
  • set yourself some reminders to rotate your passwords every X months (expiration)
  • add automatic backups there
  • store all recovery codes inside of your password manager
  • use FIDO2/Webauthn as an MFA-only (if possible) to login to all the websites
    • when I say MFA-only, I do recommend to avoid SMS, TOTP or any other “weaker” authentication factor if they are not additive to (email + pwd + FIDO2 + biometrics is fine)
    • process of adding your Hardware Security keys (notice the plural) might be annoying to each website, but that one is the important backup that will give you peace of mind in case you lose one or alike
    • based on a higher threat model, consider carrying only a Biometric Yubikey with you (or at least one that requires some extra action rather than just touching it)
    • you can always hold the key to add a hardcoded salt somewhere in the middle of your password too
  • do not add fancy 3rd party extensions to your browser or password manager, go the old way :hear_no_evil_monkey: of copy pasting from one app to the other (to reduce risks of clickjacking etc)
  • for when websites allow only some TOTP:
    • I do also recommend to have those codes on the Hardware Security itself rather than in an app on your phone
    • add some password before your TOTP code is shown (Yubico Authenticator allows for that for extra security but others might too :hot_pepper:)

Want to go even further? Require a Hardware Key to be required before accessing your laptop.
Best part? Some websites literally won’t bother you further than pressing the key to login. But if you want, you can add an additional PIN (can be letters/numbers) to those when logging in (on top of the press).


Realized that it was a bit longer than 2cts, got carried away.
TLDR: offline DB + hardware key + remember a long sentence (or/and share some hint to a family member in case you have an accident and lose memory). :+1:t2:

For backups, do that when you can, encrypt it and try those backups to be sure that they are still working.
Delete old ones? Backup offsite? Plenty of things to say there too haha. Maybe buy a (sturdy) safe?

Keep it simple. :watermelon:

Interesing approach. certainly very sophisticated and I like the master keepass db approach. however I fail to see the need for cycling passwords every x month when you use alias mail and different pw for each. sounds cumbersome. i think good opsec should not only be proportionate but also convenient enough that you actually want to do it.

it is my view that biometrics are not suitable for high threat models. both state actors and criminals have shown in the pas that they can and will use force to get your biometrics. especially your fingerprint is trivial to get for a state actor. it might be better to use a decent hardware key with pin.

It’s funny to me when you say all that and yet end it with keep it simple.

Can you explain the simplicity you think it is?

1 Like

Thanks. :smiley:
I agree that cycling is optional, depends on how critical some of your services are (mostly suggesting that because some websites only allow for some 16 characters max or alike, while being government/bank stuff).

The password will probably not be weakest link in all of this haha.
And yes, for the best convenience :backhand_index_pointing_right:t2: hardware key all day but
not everybody has one or has the chance of using a website that allows for it. :sob:

Biometrics are a nice add-on on top of other MFA IMO, not the only go-to yes, so credentials + pin + biometrics yes. :+1:t2:

I’m not so sure on this one.

You may be assisting clipboard attacks - rogue software on your device monitoring your clipboard events.

Password manager addons will reduce phishing attempts by not autofilling on the wrong pages.

KeepassXC does have that Auto Type feature in the docs (edit: link doesn’t work due to escape sequences) but AutoType could be a lot to manage if one wants to enable all their accounts in this way.

1 Like

There is a lot to my paragraph because it’s detailed but it’s not a complex setup in itself because:

  • no maintenance of any sort, no Vaultwarden Docker, DB or any sort of dependency, single file to worry, resilient af.
  • no need to remember to do things to keep it running, forgot a backup? it’s not critical you can still use your workflow as you did yesterday.
  • it’s a “set it up once and forget” kind of setup, no endless config files, company drama to catch up or migrations updates to schedule. See a website? Open the DB, paste credentials, press your hardware key, done :white_check_mark:
    • Or: just press the passkey and you’re in (rare but few services allow that)
    • Sprinkle with a PIN, if you feel like you need extra safety
  • it’s also centralized into 1 password manager, yet spread across your devices but without the need to worry where to create a new input and how (unlike OP’s question with PP/BW)
    • as a good practice, maybe consider creating/updating passwords only on 1 main safe device and let the updates flow to other devices (read-only) :+1:t2:
  • simple mental model to understand too, you have a key for extra security just like to open your house’s door
    • it’s in a safe place, with no need to worry about the battery
    • depending on your threat model, can also be plugged 24/7 into your device

There is a lot (because it’s the delicate topic of passwords) but it’s very friction-less and streamlined once you’re used to it. :grin:
There are definitely trade-offs I’d say (eg: no easy passwords sharing), but not over-engineered IMO.

Fair point.
I mostly see the browser as an entry point to quite a lot of attack vectors, and browser extensions are pretty much a no-man’s land when it comes down to security. So, the less the better IMO.
Also better for anti-fingerprinting etc
 but mostly 0 trust into that kind of store. I wish Obtainium could be used there to directly pull from Github. And even then, you can always get supply-chain attacks etc
so yeah, I just opt out from it whatsoever. :sweat_smile:

How do I do to avoid phishing?

  1. I have the URL already in my browser history, no need to follow a link or search engine it.
    Search shortcuts are also a blessing IMO like https://github.com/search?utf8=%E2%9C%93&q=%s&type=Users
  2. I start my journey from my Keepass: forgot the name of that store that I visit every 6 months
 :thinking: I search with the description of it, click on the URL link saved into my DB and login from there
  3. Use websites that requires a Hardware Security key, in case of me putting my email + password combo on some well-crafted website [1], I will still not be able to proceed further because it’s not linked to that specific website. If I get tricked, reset with a brand fresh email + password combo and move on. đŸš¶đŸ»â€â™€ïžâ€âžĄïž
  4. If none of the above, check the URL carefully and feel free to copy-paste it into some local monospaced editor that will highlight any weird looking look-alike (Unicode) characters like lI (or more advanced tricks)
  5. Remember where you are logged in. Most of the time, I know how long a given website will keep me logged and I have it always open as a group tab.

If something is getting through all of this and didn’t trigger any suspicions from my side at all: WP, I’ll admit my loss willingly. :grinning_face_with_smiling_eyes:


And yes, setting up URLs for every website is cumbersome and annoying. But you don’t do that every week + is also a good start of a journey where you limit your digital footprint to only the websites that you care about/need.


  1. like it happened a few times with Github OAuth, even tho most of the time they all look obvious and are super off if you have a small sense of UI ↩

I still feel my OPSEC with at least password management is better for almost all threat models. I’ve thought about it for years and I always end up coming back to this way of going about it and hence my recommendation above.