1

我想知道这是否可能。我已经实现了一个使用 PSK 的 SSL 连接,但我想以某种方式保护 PSK,以便它只能由当前用户访问。我认为 Windows 密钥库是最安全的。

有没有人有我可以做到这一点的提示?SSL 部分已经使用 OpenSSL 完成,但我不确定密钥存储。我一直在尝试 Windows CNG api,但很难弄清楚如何使用存储的随机密钥作为 PSK。

4

1 回答 1

1

我已经实现了一个使用 PSK 的 SSL 连接,但我想以某种方式保护 PSK,以便它只能由当前用户访问。我认为 Windows 密钥库将是最安全的...

您想要的是“受保护的存储”。根据您使用的平台,它有不同的名称。例如,它在 Apple平台上称为Keychain ,在 Android 平台上称为 KeyChain

Microsoft 已保护存储,并根据您使用的技术进行了一些实施。早期,微软称其为Protected Storage,由Protected Storage Service提供。

Microsoft 弃用了 Windows Server 2003 和 Windows XP 的受保护存储,并为这些操作系统提供保护存储 (Pstore) 。请参阅MSDN 上的受保护存储 (Pstore)。Microsoft 还建议使用数据保护 API (DPAPI)在用户登录下加密机密。这在 Windows 8 附近的某个时候结束了。

Microsoft为 Windows 7 及更高版本提供凭据管理器。它允许您存储用户登录的密码,以及 PSK 密钥等位。

如果您需要更强大的密钥层次结构,则可以使用Cryptography APICrypto API Next Generation如果你使用 CryptoAPI 或 CNG,那么我相信你需要创建一个公钥/私钥对,然后在公钥下加密 PSK。您可以在需要时使用私钥对其进行解密。您可以将加密的 PSK 存储在您喜欢的任何地方,从文件系统到注册表或在线。另请参阅如何使用 CNG 处理明文密钥的 Softwariness 的回答?

于 2016-05-02T00:40:41.173 回答