Linux上的DPAPI等效?

信息安全 加密 密钥管理
2021-08-25 03:04:12

我有一个应用服务器和一个数据库服务器。我想使用 DEK(数据加密密钥)将某些数据发送到加密的数据库。理想情况下,此 DEK 在 linux 文件系统上受到读取保护,并使用 KEK(密钥加密密钥)进行加密。在 Windows 上,我会使用 DPAPI 来保护 KEK,但在 Linux 上,我不确定保持此密钥安全的最佳方法(没有 HSM)。

我对人们用来解决这个问题的替代常见架构或范例持开放态度。

1个回答

如果恶意代码可以在用户的​​上下文中运行,则 DPAPI 不提供保护,因为所述恶意代码可以简单地要求 DPAPI 对其进行解密。

它可以防止的唯一情况是数据或磁盘被盗,但密码未知。密码可以轻松重置,但这会使受 DPAPI 保护的数据无法访问。攻击者必须从 Windows 凭据缓存中破解密码哈希,但请注意,这通常是一项非常可行的任务。如果您知道这是您必须做的事情,那么您可能在大多数情况下都可以做到。

您真正的问题是“如何轻松管理 KEK”。

DPAPI 通过捎带 Windows 密码来处理密钥管理。您需要一个 PAM 模块才能在 Linux 上执行此操作,但没有。

您应该考虑捎带用户已经在使用的任何东西,例如 OSX 钥匙串、KDE ​​的 KWallet、Gnome 的 GnomeKeyring 等,我相信这些都有 API。

如果你使用的是 Python,你应该考虑这样的事情: