适用于 Linux 或 BSD 的 DPAPI / MacOS 风格密钥环?

适用于 Linux 或 BSD 的 DPAPI / MacOS 风格密钥环?

Windows 和 Mac 都有一种使用用户登录凭据来保护数据的便捷方法。

  • Windows 上的数据保护 API 使用从不以纯文本形式存储的对称密钥,并使用从用户密码派生的密钥进行加密。如果用户成功登录,则以该用户身份运行的任何程序都可以加密或解密任意数据缓冲区;执行此操作的函数是标准 Windows API 的一部分。如果其他用户(甚至管理员)尝试解密相同的数据,或者如果用户的会话是在没有登录凭据的情况下创建的,则 DPAPI 将不起作用。如果从 Windows 内部、通过 Active Directory (LDAP) 或通过编辑磁盘强制重置用户密码,DPAPI 密钥也会永久丢失。
  • MacOS 上的钥匙串功能为密码和其他机密提供了结构化数据存储机制(Windows 有类似的凭据存储,构建在 DPAPI 之上)。钥匙串应用程序本身在技术上有自己的身份验证与用户登录凭据分开,但默认情况下,MacOS 会同步用户的登录密码和钥匙串密码,并在用户登录时自动解锁钥匙串访问权限。如果用户的密码被强制重置,则旧密码需要解锁钥匙串。

许多软件都使用此功能,包括随操作系统(即发行版的一部分)以及大大小小的第三方软件包一起提供的软件。这非常方便,我希望 Linux 上也有类似的东西。

Linux 或非 Mac Unix(类似)系统上有等效的功能吗?我见过的所有建议都涉及诸如 GnomeKeychain 或 KWallet(需要在登录后手动解锁,并且是特定于桌面的)、第三方密码管理器及其自己的主密码,并且通常不与除浏览器之外的任何内容集成(例如 LastPass) ),或者在 GPG 之上构建一些东西(这需要用户输入密码,并且没有简单的方法以编程方式保护或取消保护数据)。这个问题Security.SE 提出了同样的问题,但答案(“否”)已经有五年了。

答案1

GNOME 钥匙圈通过 PAM 可以做到这一点。

GNOME 密钥环与用户的登录集成在一起,以便当用户登录其会话时可以解锁其秘密存储。

答案2

不,没有集成的解决方案。您的意思是可以将 Luks 文件加密、系统登录和桌面密钥环解决方案(Gnome Keyring、KWallet 等)完全链接起来。不幸的是这个解决方案不存在。

相关内容