I've read KeePass kinda sorta tries as much as is possible to limit keyloggers (at least on PC).

But since you type in your master database password on many devices many times, there's a huge chance that someone can at one point obtain a snapshot of your key and your database file.

So why not use a combination of a strong passphrase and a one time password algorithm like your bank does, or steam guard, or other OTP keys? (and if you loose your OTP device you would have a printed few otp backup keys)

No? People seem to say "it won't help protect you any better".

Should I install the OTPKeyProv plugin? Does it work on mobile? Does it still also use your passphrase?


1 Answer 1


Nobody has figured out how to involve OTP with encryption that materially improves security.

It's important to remember that KeePass's master password is used to derive encryption key, so it is actively involved in file modification transactions; unlike web service credentials which are only used for authentication, which is simply attached to the transaction. OTP that changes all the time wouldn't be useful for deriving encryption/decryption key.

A place where OTP could be useful is if you use it as a quick unlock solution, where you only need to type master password once at startup, and then you can unlock with shorter password afterwards. But for OTP quick unlock to make sense, it need to be easier to type than just retyping the master password. Also, since quick unlock requires that Keepass caches the master key, for it to be secure, you probably would need an HSM of some sort so other programs can't read off the master key off the Keepass process.

  • What I was more thinking about was the functionality that gmail has: if someone guesses my password, they still can't get to my email without my phone (or a stingray interceptor etc). Jul 1, 2017 at 12:45
  • 1
    Isn't it possible to insert OTP betwen the master key and your passwords or to somehow make it part of the master key? I guess nobody figured out how. Jul 1, 2017 at 13:17
  • @Spectraljump: it isn't impossible to add OTP to encryption, there are many ways to do that, however it just wouldn't add any meaningful security, while making it incredibly inconvenient for users. In fact most schemes for adding OTP to file encryption might actually reduce security rather than improving it.
    – Lie Ryan
    Jul 3, 2017 at 3:43
  • 1
    Not true. What you write is correct for TOTP (time-based one-time password) algorithms whose codes cannot be predicted in advance, but it is not for OTP in general. HOTP in particular, which is used by the OTPKeyProv plugin, generates codes which change based on a counter value. This counter is generally only incremented after using one code, to obtain the next code. IIUC the plugin pre-generates the next code or next few codes and encrypts some key information which must be used as part of the composite master key; thus without a valid HOTP code you cannot decrypt the database at all.
    – Ben
    Jul 4, 2017 at 15:06
  • 1
    See security.stackexchange.com/a/73802/93625
    – Ben
    Jul 4, 2017 at 15:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.