让 Keepass 数据库接受(但不要求)两种解锁方法

让 Keepass 数据库接受(但不要求)两种解锁方法

我使用 Keepass 来管理我的密码,并使用家用电脑(Windows 7)、工作电脑(Ubuntu)和我的 Android 手机上的 Dropbox 进行同步。

目前,我只使用主密码来保护它,但我更愿意在家里使用我的 Windows 用户帐户,这样我就不必每天输入长密码。另​​一方面,如果我改用我的 WUA 来保护它,那么我就无法通过手机或工作电脑访问它。

有什么方法可以设置我的 keepass 数据库以接受但不要求两种解锁方法?这样,我就可以在家里使用我的 WUA,而在其他地方使用我的主密码。

答案1

您可以将密码放入家用电脑上的文本文件中(确保您的文本编辑器不会添加换行符),然后将其作为密钥文件提供给 KeePass。(您可以使用 Windows 的 EFS 加密密钥文件。)

现在您可以在家中使用密钥文件,并在其他地方手动输入密码。

答案2

最简单的方法(如果您不经常更改密码,如果您使用 Keepass,您可能会这样做)是使用 2.x 版本复制数据库。

没有太多其他方法。如果你真正了解加密过程,你会发现,如果使用一个密钥加密整个内容,就无法使用另一个密钥解密,因为这就是加密的真正意义所在。

如果您尝试以任何方式使用多个密钥,则只会简化为验证密钥,然后使用存储的密钥解锁数据库,这是非常不安全的。

即使程序在同一个文件中存储了具有两个不同加密密钥的两个副本,这也使得暴力破解变得更加容易,因为获取一个密钥可以轻松找到另一个密钥,并且这样做也很笨拙,因为每次编辑密码时都必须拥有另一个密钥。

Tl;dr:可能有多个密钥但只需要一个密钥在数学上几乎是不可能的。

另一个解决方案是获取一个较短的密码。阅读本文关于 AES(Keepass 所使用的),fluffy is puffy尽管这些单词非常简单,但像这样简单的密码也可能需要 3900 万年才能破解。

相比之下,Keepass 默认对密码进行 6,000 次哈希处理(如果你将其设置为 200 万次,它仍然不会费吹灰之力),这使得任何数学技巧都无济于事。你可以在密码生成一个容易学习和记忆但难以暴力破解或猜测的密码,例如tahter.3usandu。哎呀,你甚至可能最终学习日语 :-)。

答案3

从 2.10 版本开始,KeePass 支持命令行参数-pw-enc。有关详细信息,请参阅KeePass 在线帮助. 它以加密形式接受 KeePass 数据库的主密码。

使用如下 cmd 脚本博客使用-pw-enc参数自动打开/解锁数据库,无需输入密码。将此脚本作为任务添加到 Windows 任务计划程序中。为“登录时”定义一个触发器。

这样,您的 KeePass 数据库只需要一个主密码。您只需输入主密码即可在其他计算机上打开它。但是,在您自己的计算机上,您可以通过一种安全的方式依靠您的 Windows 用户帐户自动解锁您的数据库。

补充说明

  • 要创建加密表示,您必须使用占位符 {密码}包含数据库主密码的 KeePass 条目。每次创建时,加密表示都会有所不同。不过,它还是可以工作的。

    您可以将其用作自动类型序列或类似输入 URL cmd://"cmd.exe" /k echo {PASSWORD_ENC}

  • 为了避免弹出 cmd 窗口,你可以用 VBS 脚本包装 cmd 脚本,如下所示服务器故障答案

  • 如果您将 KeePass 配置为自动锁定数据库,则可以为本地和远程计算机添加“工作站解锁时”和“连接到用户会话时”的附加触发器。

  • 不要在任务计划程序中为任务勾选“无论用户是否登录都运行”。否则,任务无法调出 KeePass UI。

  • 加密依赖于Windows 数据保护 API (DPAPI)。只有同一台机器/域上的当前用户可以解密。

相关内容