如何安全地将公钥和私钥保存在二进制文件中?

时间:2013-10-17 06:11:52

标签: cryptography key

我正在制作一个使用公钥和私钥进行大量加密和解密的共享对象。我想将这些密钥存储在二进制文件中,有没有办法安全地保存这些密钥,以便没有人可以使用它。那么如何在二进制文件中嵌入加密密钥?

3 个答案:

答案 0 :(得分:1)

如果代码可以访问密钥,那么运行代码的用户也可以访问密钥。这是无可争议的 - 除非你控制硬件,否则无法绕过它。

答案 1 :(得分:1)

  

有没有办法安全地保存这些密钥,以便没有人可以使用它。

正如millimoose所说,不,你不能。或者更准确地说:你不能将数据,任何数据保存在二进制文件中,以便它对你的二进制文件有用,而不是其他任何人。虽然通常不会讨论这种用例的通用性,但这是数字版权管理的核心 - 希望拥有一些只能以受控方式使用的数据(无论是加密还是其他)。

您可以做到的最好,即使是资金充足且积极主动的组织,这也是很多工作,将使用TPM代表您执行加密操作,并以与系统状态相关的方式执行。我猜这个解决方案不是你想要的。

答案 2 :(得分:0)

如果您无法控制硬件和操作系统,则无法执行此操作。如果您有完全控制权,那么几乎不需要为密钥添加额外的保护。安全存储密钥的最佳方法是将它们保留在二进制文件之外。例如,您可以使用安全令牌。这可能是TPM,智能卡甚至是HSM。这些安全令牌对令牌本身进行加密计算,因此您永远不需要将其加载到内存中。

如果您想在二进制文件中拥有非常安全的存储空间,那么您可以查看this HSM。您可以在 HSM中运行代码。即使使用这样的HSM,您也只应在HSM中生成密钥并将其保留在那里。哦,是的,这需要你在HSM上花几千美元......