我想知道这是否可能。我已经实现了使用PSK的SSL连接,但是我想以某种方式保护PSK,以便它只能由当前用户访问。我认为Windows密钥存储区将是最安全的。
有没有人提示我可以这样做?SSL部分已经使用OpenSSL完成,但是我不确定密钥存储。我一直在尝试Windows CNG API,但是很难弄清楚如何将存储的随机密钥用作PSK。
我已经实现了使用PSK的SSL连接,但是我想以某种方式保护PSK,以便它只能由当前用户访问。我认为Windows密钥存储区将是最安全的...
您想要的就是“受保护的存储”。根据您使用的平台,它的名称不同。例如,在Apple平台上称为Keychain,在Android平台上称为KeyChain。
Microsoft已保护了存储,并根据您使用的技术提供了一些实现。在早期,Microsoft将其称为“受保护的存储”,它是由“受保护的存储服务”提供的。
Microsoft在Windows Server 2003和Windows XP中弃用了Protected Storage,并为那些操作系统提供了Protected Storage(Pstore)。请参阅MSDN上的受保护的存储(Pstore)。Microsoft还建议使用数据保护API(DPAPI)对用户登录名下的机密进行加密。到Windows 8结束了。
Microsoft提供了Windows 7及更高版本的凭据管理器。它允许您存储用于用户登录的密码以及诸如PSK密钥之类的位。
如果您需要更强的键层次结构,则可以使用密码学API或下一代加密API。如果您使用CryptoAPI或CNG,那么我相信您需要创建一个公共/私有密钥对,然后在公共密钥下加密PSK。您可以在需要时使用私钥对其进行解密。您可以将加密的PSK存储在任意位置,从文件系统到注册表,也可以在线存储。另请参阅“如何使用CNG处理纯文本密钥”中Softwariness的答案?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句