-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Security with Elevated Process #4
Comments
Hello, thank you for your feedback. Your point of view is very interesting. Indeed, using keepass with an elevated account enables you to benefit natively from Windows security features (UAC, process protection). |
Good points for a corporate environment. In my home-use case, my user is a member of the admins group, and I rely on UAC to block admin-level actions (the typical Windows default user approach.) I also use the 'full installer' MSI for KeePass to install to the admin-restricted 'Program Files', since protecting the binaries and core config is a critical part of securing it. Since I elevated the installer, I've already accepted the risk of a malicious .exe/.dll or script in the installer, so it doesn't matter too much for subsequent runs of the KeePass.exe I have been playing around with encryption using TPM-stored keys (certificates with the private key in TPM) with 'password', and something like that would be ideal. I'm not sure if the plugins allow it, but ideally on open, you'd need to decrypt the DB or keyfile with a TPM-backed certificate with passphrase where it would be loaded into memory. That would ensure only my device could decrypt, and be better than DPAPI, because it requires user-presence for the TPM interaction. Anti-hammering in the TPM means the passphrase could be short, like what Windows Hello does. |
Hello, TPM encryption is strong but the big problem for me is that if you lose your device, you lose your passwords ! I think using a certificate file additionally to the password is the best choice as it provides a very good encryption and acts like a second factor. There is also some plugins which add OTP or Security Key but then you need to enable plugins. Anyway any of those methods are protecting the database file from offline attacks, but not from a memory dump or process injection when it's in unlocked state. There we are reaching the limits of any password vault. |
Thanks for the excellent list of security optimizations. I've approached this slightly differently, and I wanted to get some feedback/discussion:
Implementation:
Rationale:
To me, the most likely threat is always some rouge/malware program/script running as a standard user. If malware was somehow able to elevate, it would be game over anyway. This procedure effectively gives the password manager the highest possible security, and it doesn't affect standard usage (it may break some plugins, but I don't use them)
The text was updated successfully, but these errors were encountered: