0

Keeper used to be free so I had stored most of passwords on that app a few years ago from a past device. When I tried to access the passwords after five years, the app had turned into a subscription model and held my passwords as hostage. I had no choice, but to pay for their yearly subscription. I am in the process of moving my passwords out and looking for another app to use. (Currently leaning towards Samsung Pass)

However this had me thinking... For the apps to be able to recover my passwords saved from another device, they have to have the passwords in a two-way encryption model, which gives the company access to my passwords if they wanted to.

Usually passwords are stored via a one-way hash. However password management apps need to be able to show the passwords in plain-text to the user. So I'm guessing they use a local enc. key saved on the device or an enc. key saved on the cloud(via hash ofc) to encrypt the passwords. This way only I will be able to see those encrypted passwords via my local key or password key(which the server hashes).

However, here is the catch. If in the case I lose my device or forget my account password, I would still want to have access to my passwords. Google Password Manger & Keeper both have this functionality. In the case of local key, this scenario cannot work. So these products must have the encryption key hashed somewhere in their cloud. Then let's look at how the cloud version would work.

For simplicity let's say the enc. key is my Keeper password. And say I forgot my Keeper password. To be able to recover my password wallet that is encrypted with my forgotten Keeper password, you need the original Keeper password. There seems to be no way around it. However with Keeper, it lets you reconfigure your account's password and gives you access to my password wallet. This means Keeper stores that enc. key somewhere in their database via two-way hash(or god forbid plain-text).

The ability to retrieve your password wallet even after losing your device or losing your account's password only works if the company has access to your enc. key. That means the company can access all my passwords since they have the enc. key.

Am I missing something? Is there an encryption method that does not rely on a two-way encryption method for this to work?

5
  • 6
    Passwords managers don't hash passwords. They can't. They would be useless.
    – schroeder
    Apr 24, 2023 at 8:24
  • 1
    Have you looked up the large volumes of info on how these password managers encrypt your data and manage user keys?
    – schroeder
    Apr 24, 2023 at 8:26
  • I have to admit I only did like a 30minute research before asking here and didn't read in-depth white papers or security research papers. They use more or less the Web based model described here with their own extra encryption tricks here and there: cybernews.com/best-password-managers/… My problem is that some of these products still give you a password/master_key recovery functionality. Which cannot be possible without the provider having access to my keys as described above. So are the companies lying or did I not delve into the subject far enough.
    – Jason Song
    Apr 24, 2023 at 8:41
  • 1
    Or different companies do it differently. There is not just one way to do all this. Lastpass, 1Pass, bitwarden, etc. all have very detailed papers on how they do it.
    – schroeder
    Apr 24, 2023 at 8:45
  • Lastpass does not recover your master key, 1Password does not recover your master key(but seems to have inner loopholes that they do not disclose), and Bitwarden does not recover your master key. On the other hand Google does not use zero-knowledge encryption and has access to all my passwords. Keeper seems to have an "account recovery" that is turned on by default for old users, which lets you reset your master key which means they had access to these old users' passwords. This all prove my point. You can't have master key recovery functionality without provider having access to my passwords.
    – Jason Song
    Apr 24, 2023 at 9:02

3 Answers 3

0

If a service can give you access to your passwords without you providing any secret -- be it directly through a master password or indirectly through some data stored locally on your device --, then, yes, that service could also access the passwords itself. No matter how sophisticated the encryption scheme is, it still relies on secrets, so there are only two cases.

  • Either you manage at least parts of the secrets. Then it's quite possible to completely hide the passwords from the services, but it's also your responsibility to back up your secrets. There's no way to recover the passwords if you've forgotten and lost everything.
  • Or you let the service manage all secrets. Then you can have a recovery feature, but it's not possible to technically prevent the service from ever accessing (or accidentally leaking) your passwords. You'll have to trust the service.
0

However with Keeper, it lets you reconfigure your account's password and gives you access to my password wallet. This means Keeper stores that enc. key somewhere in their database via two-way hash(or god forbid plain-text).

No. It does not mean it stores the encryption key anywhere. It can potentially (to know that exactly, you can check the source code), but there is no need. It is sufficient to ask for the old key and for the new one. Using the old key, the encrypted data will be decrypted. Using the new key, these plain data will be encrypted again.

The ability to retrieve ... even after losing ... your account's password only works if the company has access to your enc. key. That means the company can access all my passwords since they have the enc. key.

Not necessarily. If the password manager can tell you what your password is without any input from your side, then yes, they know encryption key and yes, they can access all your passwords. But if they ask you for some input like Keeper, they may or may not restore your encryption key without you.

The Keeper says they encrypt/decrypt passwords locally only. You can check the source code, if they implemented it as they say. Then you can build it and compare to what is installed on your device. If they really encrypt/decrypt passwords locally only, then they cannot decrypt what is stored on their server and thus they don't have access to your passwords.

1
  • According to their documentation, something must have changed on August 2015 which is around the time I mostly used their services. Their "Account Recovery" function lets you set up a security question to be able to reset your keys without the old key. I am guessing this somehow uploads my local key to their cloud and two-way encrypts it via my security question. For users who used their services before August 2015, this functionality was turned on by default, which is why I was able to reset my master key after five years from a different device.
    – Jason Song
    Apr 24, 2023 at 12:53
-2

This is not an endorsement. SuperGenPass is not regarded as a good security model.

SuperGenPass is the only password manager I know of that does not store passwords at all:

SuperGenPass is a different kind of password solution. Instead of storing your passwords on your hard disk or online—where they are vulnerable to theft and data loss—SuperGenPass uses a hash algorithm to transform a master password into unique, complex passwords for the Web sites you visit.

SuperGenPass is a bookmarklet and runs right in your Web browser. It never stores or transmits your passwords, so it’s ideal for use on multiple and public computers. It’s also completely free and open-sourced on GitHub.

All this really does is transform your master password with the host site as a seed into a hash that you use as a password. It's very elegant, at least until you find a site whose password requirements do not fit the prescribed scheme—then you have to remember the iteration you need to satisfy the complexity requirement.

I'm not sure of the exact algorithm, but it's at least very similar to this: append the domain name to your master password, then hash the results, like:

md5_base64("jostlexQ%Z!2spiCe8$" + "stackexchange.com")AtXU1RzS+L23FpNObIA/0w

Even if this were altered to use a more secure hash like Argon2, there is no ability to change passwords without changing your master password for that site, suggesting that this system would only work with a traditional password manager (to store the SGP "master" input). If that password manager's data were compromised, SGP would provide an extra layer of security … through obscurity.

Any other password manager is going to have to encrypt and store your passwords. If you don't want them in the cloud, do not use a cloud-based password manager (but make sure you back up that database somehow!). KeePassXC is a great non-cloud solution.

3
  • 3
    The implementation of SuperGenPass is extremely weak. By default, each password is generated from the master password by simply applying 10 iterations of MD5. The target website gets the derived password as plaintext and could then use brute force to attack the master password. Besides that, the tool has homemade crypto all over the place. I'm generally not sure if I'd want to hand out anything derived from my master password to random websites.
    – Ja1024
    Apr 25, 2023 at 5:17
  • And such a model breaks down when you need to change it due to a breach. Then you have to change every password on every site...
    – vidarlo
    May 25, 2023 at 8:12
  • Wow, lots of negative love for something I didn't even endorse. I merely mentioned that it exists and doesn't store passwords. I'll revise my answer to make that more obvious.
    – Adam Katz
    May 25, 2023 at 14:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .