我有一组预定义的明文密钥,用于对称加密/解密。这些密钥用于与连接到 PC 的硬件设备进行加密通信。
我想使用 CNG 密钥存储提供商来安全地存储这些密钥。加密和解密必须在 CNG 之外完成。我只需要一个安全的地方来存储和检索我的预定义明文密钥。
最近几天,我研究了 CNG 函数参考,但找不到任何方法将由名称标识的明文对称密钥导入/导出到 CNG 密钥容器中。
我知道 CryptoAPI 提供了导入/导出会话密钥的功能。但这个旧的 API 不提供持久(会话)密钥,也无法在密钥容器中按名称选择/识别密钥。
非常感谢任何帮助。提前致谢。
恐怕您无法获得直接的解决方案,因为 CNG 密钥存储提供商目前支持非对称密钥,但不支持对称密钥。只有原始提供者支持对称密钥。
该模型面向的是必须长期保护的非对称密钥,而对称密钥仅用于一个会话,然后就被丢弃。这些对称密钥可能源自非对称密钥,例如 Diffie-Hellman 或 ECDH。
您说您希望安全地存储密钥,但加密/解密是在 CNG 外部完成的。根据您要防御的威胁,这可能不是正确的方法。通常,如果您将密钥存储在密钥存储提供程序中,您希望在密钥存储提供程序内部完成加密操作,并且不希望密钥离开它(除非由另一个密钥加密),因为这会将密钥材料暴露给攻击者。
但是,如果您确定这就是您想要的,一种选择是在密钥存储提供程序中生成 RSA 密钥,并使用它来加密和解密对称密钥。您可以将加密的对称密钥 blob 存储在其他地方,例如在文件系统中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)