优点
有许多适用于 Android 的 KeePass 端口。其中大多数都是开源的,可以打开和操作常规 KeePass 文件。我使用 K2A 是因为:
- 与其他 Keepass 端口相比,它具有更好的 Android 集成。或者,事实上,比我们审查过的大多数商业产品。
- 它不依赖Android不安全的剪贴板功能来工作。这两个优点都与 K2A 的自定义键盘功能有关(见下文)。
缺点
K2A 的主要缺点是它只能通过 Google Play 商店获得,因此通过 Google Play 服务进行更新。这意味着,从理论上讲,谷歌可以随时将恶意代码放入更新中。
我们对这种风险和上述优势之间的权衡感到满意。对于任何对 Google 保持警惕的人,我建议使用 KeePass DX 或 KeePass Droid。
这两个应用程序均可从 F-Droid 获得,并通过剪贴板超时缓解剪贴板问题。这不像 K2A 键盘解决方案那么安全,但确实可以最大限度地减少问题。
K2A 键盘
大多数 Android 密码管理器(包括大多数 KeePass 端口)都使用 Android 的内置剪贴板功能。这允许您将用户名和密码从打开的 KeePass 数据库复制并粘贴到需要的应用程序或网页。
“许多[密码]应用程序完全忽略了剪贴板嗅探问题,这意味着在将凭据复制到剪贴板后,不会清理剪贴板。[...]我们发现,例如,应用程序的自动填充功能可能会被滥用,通过‘隐藏的网络钓鱼’攻击从密码管理器应用程序中窃取存储的机密。”
K2A通过提供自己的键盘解决了这个问题。这可以直接访问 KeePass 数据库并在表单中输入用户名和密码,而无需在 Android 的剪贴板上存储数据。
该键盘也非常适合 Android 集成,因为它适用于所有应用程序。不需要任何形式的自定义集成或浏览器插件。它可以与其他键盘一起安装,可以轻松地与其他键盘交换。
我们发现 K2A 键盘作为 Android 键盘对于日常使用来说有点基础。它不具有文本预测功能,例如,没有个性化自动更正或花哨的滑动输入。

但这不一定是坏事。这些功能可能会带来严重的隐私风险。另一方面,K2A 键盘是完全独立的,不会向任何人发送任何信息。
然而,我们愿意为了方便而牺牲一点隐私,因此只使用 K2A 键盘来输入密码。抱歉,我只是懒!然而,对于注重隐私的人来说,K2A 键盘将是一个很好的日常驱动器。
云同步 KeePass 文件
使用任何云服务可以轻松地在设备之间安全地同步密码。这包括 Dropbox 和 Google Drive 等。在您反对之前,我很清楚此类服务是隐私噩梦。但问题是,这并不重要。
每个 .kbdx 文件均由您自己使用坚如磐石的加密技术进行加密。默认情况下,K2A 使用AES-256具有 SHA-256 哈希身份验证的密码。这是非常安全的,但还有更强大的选择。
这仅有的访问该文件的方法是使用只有您自己知道的主密码。所以选一个好的吧!还可以选择通过要求打开 .kbdx 文件时存在密钥文件(由您自己创建)来进一步提高安全性。
换句话说,没有人将打开一个正确保护的 .kbdx 文件,无论它的存储方式如何公开。
然而,真正偏执的人可以在其 Android 设备上本地存储 .kbdx 文件,并使用 USB 电缆等手动将其与存储在其他设备上的 .kdbx 文件同步。如果您不打算使用 K2A 的在线同步功能,那么您可以使用仅离线安装的 Keepass2Android Offline 来代替。
每当您将更改保存到数据库时,密码都会在线同步。这是因为您所有设备上的所有 KeePass 程序都可以访问 .kbdx 文件。
使用K2A
设置并打开 K2A 数据库
请注意,K2A 的安全策略不再允许对开放数据库进行屏幕截图。为了说明 KeePass2Android 的工作原理,我使用了 Google Play 商店的一些屏幕截图。
安装来自 Google Play 商店。唯一需要的权限是:
- SD卡访问
- 互联网访问(如果您不想授予此权限,请离线安装 K2A)
- 颤动
第一次打开 K2A 时,您可以选择打开现有 KeePass 数据库(.kbdx 文件)或创建新数据库。

如果打开现有的 .kbdx 文件,KeePass2Android 支持多种流行的云服务,以及各种自托管解决方案(包括本地存储)。如有必要,只需登录您选择的服务/个人解决方案,然后浏览到您存储的 .kbdx 文件。

或者,您可以创建新的 KeePass 数据库。默认情况下,它使用 AES-265 密码,但您可以将其更改为 ChaCha20 或 Twofish-256。默认情况下使用的密钥派生是 AES-KDF,加密轮数为 500000,但如果您愿意,可以更改为 Argon2。
您还可以创建密钥文件以提高安全性。该文件必须存在才能打开数据库。该文件不应在线存储。相反,您应该将其副本本地存储在您想要打开 .kbdx 文件的任何设备上(或者对于真正偏执的人,可以在 USB 卡或类似设备上随身携带一份该文件的副本)。
有关创建 KeePass 数据库的更多信息,请参阅我的完整内容KeePass 评论。

找到或创建 .kbdx 文件后,您可以通过两种或三种方式打开它:
- 密码解锁 - 只需输入您在设置数据库时创建的完整密码或密码短语即可。
- 快速解锁(可选) - 如果已使用完整密码/密码短语打开数据库,则只需使用密码/密码短语的最后几个字母(默认为三个)即可快速重新打开它。当然,这不如每次使用完整密码那么安全。但很方便。
- 指纹解锁(可选)。如果您的设备有指纹扫描仪,则可以使用它来解锁 .kbdx 文件。这取代了输入完整密码或仅输入快速解锁密码的需要。
在所有情况下,如果 .kbdx 数据库需要密钥文件,则密钥文件必须存在。
数据库
密码可以组织成组。

您可以创建新密码、检查和编辑密码详细信息。

安卓集成
您可以从数据库中剪切并粘贴用户名和密码,但如前所述,这不是很安全。这个问题可以通过剪贴板超时(默认为 5 分钟,但可以更改)来缓解,但也相当麻烦。
然而,KeePass2Android 远远领先于其竞争对手的地方在于其 Android 集成。
Android 自动填充服务
从 Android 8.0 Oreo 开始,K2A 可以与新的 Android 自动填充服务集成。理论上,无论您在设备上遇到用户名和密码,无论是在浏览器中还是在应用程序中,它都会自动填充用户名和密码。

实际上,目前的支持仍然有些不完整。例如,谷歌浏览器提供了自己的密码管理器,但顽固地拒绝玩这个游戏。然而,该功能在许多应用程序中都可以完美运行,并且在使用 Android 版 Firefox 浏览器登录帐户时,我发现它是天赐之物。
当 Android 自动填充服务工作时(在大多数情况下,并且在 Firefox 中特别有用),K2A 的使用变得异常简单。
键盘输入
对于旧设备的用户以及当应用程序不采用 Android 自动填充服务时,K2A 与 Android 集成的主要方式是通过其键盘。它与主应用程序一起安装,如果需要,可以与常规键盘热插拔。这是输入凭据的最安全的方式并且相当方便。它还适用于任何应用程序中的任何密码字段。
在我的三星手机上,安装键盘后,在键盘之间切换非常容易。

要在任何网页或 Android 应用程序中输入用户名和密码,请选择键盘的特殊 KeePass 图标。这将显示一个选项,用于从您的 KeePass 数据库中选择一个条目,或者让 K2A 尝试为您搜索正确的条目。
我必须承认,我发现搜索功能非常随意,所以通常只是选择自己选择一个条目。如果 .kbdx 数据库尚未打开,则您需要使用上述方法之一打开它。

一旦找到或选择了正确的条目,K2A 就会进入自动填充模式。只需选择正确的输入字段并选择用户或密码,键盘就会输入信息。简单的!

您可以通过触摸 ABC 按钮切换回传统键盘。
浏览器集成
正如已经指出的,K2A 在支持 Android 自动填充服务的浏览器中的新型手机上使用起来非常简单。然而,即使没有这个,它在任何浏览器中都可以顺利运行。
在登录的网页上,只需使用浏览器的共享功能即可与 K2A 共享。

解锁您的 KeePass 数据库,K2A 应该已经找到正确的条目。我发现以这种方式搜索条目比使用键盘搜索功能更有效。
您仍然需要在自动填充模式下使用 K2A 键盘来输入详细信息,除非您安装并正确配置了 KeyboardSwap for K2A 插件。
结论
由于其开源端到端特性,KeePass 是我真正推荐的唯一密码管理器*。 KeePass2Android 是它的一个很好的移植。它与常规 KeePass 2.x 数据库文件完全兼容,跨设备无缝同步,并且与 Android 的集成比我厌倦的任何其他 KeePass 端口都要好。
它对 Google Play 服务的依赖是这是一个缺点,如果能看到该应用程序的 F-Droid 版本那就太好了。然而,在我看来,这个问题可以通过专用键盘输入方法提供的额外安全性来弥补。
*自从写这篇评论以来,我还推荐开源 Bitwarden 密码管理器。
