需先手动下载 releases 中的 KeePassWinHelloPlugin.plgx 文件,README 未提供直接下载链接内容;插件依赖 Windows Hello,系统不支持时无法使用快速解锁;启用持久存储后需警惕非本人发起的 Windows Hello 提示,可能是钓鱼。
KeePassWinHello
sirAndrosMIT更新放缓给 KeePass 2 加个 Windows Hello 生物识别解锁插件,用指纹或人脸快速打开密码库,省去反复输入主密码。
Quick unlock KeePass 2 database using biometrics with Windows Hello
将 KeePassWinHelloPlugin.plgx 放入 KeePass 安装目录的 Plugins 文件夹(默认 C:\Program Files (x86)\KeePass Password Safe 2)
或执行:choco install keepass-plugin-winhello依赖 Windows Hello API 及其系统要求,需支持 Windows Hello 的 Windows 10 设备(如带生物识别或 PIN 的机器);README 未提及显存或 GPU 要求。
给 KeePass 2 加 Windows Hello 生物识别或 PIN 快速解锁的插件
给 KeePass 2 加个 Windows Hello 生物识别解锁插件,用指纹或人脸快速打开密码库,省去反复输入主密码。
核心能力
- 首次用主密钥解锁后,后续可用 Windows Hello 快速解锁
- 支持将加密主密码存入 Windows Credential Manager 持久保存
- 可设置保存密钥的有效期,默认 24 小时
- 在 KeePass 设置对话框中集成选项,可撤销所有已存密钥
- 主密码不以明文存储,由 Windows Hello API 加解密
容易踩的坑
- v3.3.1最新正式版2024-04-07 · 2024-04-07 19:36 UTC
Hotfix for v3.3
Broken compatibility due to new development tools: fix #105
What's Changed in v3.3
Feature/settings improvement
- Force keys revoking confirmation: now all settings able to be approved by "OK" or canceled.
- New moto: "No changes before "OK" is pressed."
- Show visually when keys will be removed.
Retry in case of WINBIO_E_DATA_PROTECTION_FAILURE
- fix #93 - [NCryptDecrypt — 0x80098046]
Bugfix
- lower probability of #25 - Windows Hello Prompt Hidden
- lower probability of #86 - Windows Hello window not in focus when KeePass opened through a shortcut
- fix #92 - KeePass Error with KeePassWinHelloPlugin.plgx and after Upgrade to Windows 11 22H2-22621
- fix #97 - Debugging KeePassWinHello in Visual Studio 2022 throws exception
Stack of UI contexts
- fix #48 - Windows-Hello not opening on current screen and not locking again using AutoFill
- fix #54 - Windows Hello dialog position at top-left of the screen if main window is hidden
Full Changelog: https://github.com/sirAndros/KeePassWinHello/compare/v3.2...v3.3
- v3.32024-04-07 · 2024-04-07 18:04 UTC
查看更新说明
What's Changed
Feature/settings improvement
- Force keys revoking confirmation: now all settings able to be approved by "OK" or canceled.
- New moto: "No changes before "OK" is pressed."
- Show visually when keys will be removed.
Retry in case of WINBIO_E_DATA_PROTECTION_FAILURE
- fix #93 - [NCryptDecrypt — 0x80098046]
Bugfix
- lower probability of #25 - Windows Hello Prompt Hidden
- lower probability of #86 - Windows Hello window not in focus when KeePass opened through a shortcut
- fix #92 - KeePass Error with KeePassWinHelloPlugin.plgx and after Upgrade to Windows 11 22H2-22621
- fix #97 - Debugging KeePassWinHello in Visual Studio 2022 throws exception
Stack of UI contexts
- fix #48 - Windows-Hello not opening on current screen and not locking again using AutoFill
- fix #54 - Windows Hello dialog position at top-left of the screen if main window is hidden
Full Changelog: https://github.com/sirAndros/KeePassWinHello/compare/v3.2...v3.3
- v3.2KeePassWinHello 3.22021-08-19 · 2021-08-19 19:47 UTC
查看更新说明
Fixed following issues:
- #42 - Handle inner TPM error;
- #51 - Fallback to default unlock on remote desktop (Windows Hello is not available for remote sessions);
- #56 - Access denied for
AllowSetForegroundWindow; - #60 - Fallback to using local key if the persistent one is absent;
- #63 - Address
NTE_INVALID_HANDLEerror; - #68 - Fix TPM issue related to hibernation;
- #69 - Address
NTE_BAD_KEYSETerror; - #71 - Address
NTE_BAD_DATAerror; - #72 - Handle inner
NCryptEncrypterror; - #77 - Address
TPM_20_E_SIZEerror;
And also simplified bugs reporting through dedicated button in error message dialog.
- v3.1.1KeePassWinHello 3.1.12019-09-10 · 2019-09-10 21:01 UTC
查看更新说明
Fixed the security issue found by Angelelz #38. It allowed to execute a spoofing attack by replacing the permanent key used to sign master passwords while storing in the Windows Credential Manager. Big thanks to Angelelz!
- v3.1KeePassWinHello 3.12019-09-01 · 2019-09-01 19:33 UTC
查看更新说明
This release is dedicated to minor but still important improvements which cut corners is some scenarios of using the plugin.
- Revoking the key if Windows Hello prompt was cancelled is now optional (#30, thanks to GoldenHashtag)
- New algorithm for handling secure desktop which is compatible with AutoType and Open From URL dialogs (#18, thanks to kinglike1337)
- Fixed an error when creating a permanent key on Windows 10 earlier 1809 (#33, thanks to mullenat and tvannuland).
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Quick unlock with Windows Hello for KeePass 2
This plugin for KeePass 2 password manager is intended for fast authorization with pin or biometrics to a database after its first unlock using Windows Hello technology.
Usage
With this plugin you may:
-
Unlock your database with your masterkey/keyfile/other provider;
-
Lock the database (for example, applying autolock on minimize);
-
When you try to unlock it again, if Windows Hello is available on your system and active for the database, a Windows Hello prompt will be shown over a classic KeePass unlock prompt;
-
Profit!
Systems Requirements
This plugin relies on Windows Hello API and its requirements.
There are some known issues with Windows Hello reported by community. Please, check here before write issue.
Tested on Microsoft Surface Pro 2017 with KeePass 2.39.1 and 2.42.1.
How to Install
Place KeePassWinHelloPlugin.plgx into Plugins folder in your KeePass installation
(by default is C:\Program Files (x86)\KeePass Password Safe 2).
Or you can use Chocolatey to install it in a more automated manner:
choco install keepass-plugin-winhello
Key storage
By default this plugin holds an encrypted master password in memory and removes it upon KeePass closing. In order to be able to unlock your database via Windows Hello authentication in between KeePass launches you may check "Store keys in the Windows Credential Manager" on in the Options dialog. This will prompts you for creating a persistent key signed with your biometry via Windows Hello. The key is used to encrypt master passwords for securely storing them in the Windows Credential Manager.
Options
The plugin integrates itself into the KeePass settings dialog.
Available settings:
- Valid time period (default: 24 hours): Choose how long a saved key will be available. Once this period has expired you need to provide your full password to unlock the database again.
- Storage location: Choose where to hold encrypted master passwords - in the KeePass process memory (by default) or in the Windows Credential Manager.
- Revoke all: Allows you to delete all stored keys.
All changes will be applied only after OK button press.
You can cancel the modifications using Cancel button instead.
Security Notice
As you should never approve any process elevation (run as admin) if you don't trust an application (because otherwise they can do almost anything), you should never sign Windows Hello prompt if you did not request it, especially when using the persistent storage. In those cases your both passwords and PC are at risk.
Our plugin prompts you to authorize Windows Hello only in the following cases:
- You prompted to decrypt KeePass database.
- You changed the in-memory storage to the persistent one.
- If one of the operations above failed due to a known recoverable internal Windows Hello problem we could retry the prompt with an appropriate message. Warning: if an action being requested by you was actually succeeded, this one can be phishing "retry" and you should also cancel it if you're not sure.
So it works like a rule of thumb: just like you cancel an unintended UAC dialog, you should cancel an unintended Windows Hello prompt.
Notes
No sensitive information including master passwords for databases are stored by the plugin in a plain text. A database key is encrypted and decrypted using Windows Hello API in order to unlock the database.
Development
Create junction/copy folder with KeePass.exe to root of the repository as folder named "lib".
Debug "KeePassWinHello.Debug" project with "Linked KeePass" launch profile.
If you add some file - don't forget to add it to KeePassWinHello.csproj, otherwise it won't be included in plgx on publish.
Credits
- Microsoft for Windows Hello technology
- JanisEst and his KeePassQuickUnlock for inspiration