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



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

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

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

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

您可以完成的最好工作(即使对于资金充足且积极主动的组织来说也是一项艰巨的工作)是使用 TPM 代表您以与系统状态相关联的方式执行加密操作。 我猜该解决方案不是您要找的。

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

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

最新更新