8

我工作并完成了一个 PKI 项目,该项目使用 HSM 生成 - 存储密钥和执行加密功能。我使用 PKCS#11 与我们的应用程序交互以进行签名/验证和加密/解密。我们的平台是windows。

现在,我们正在寻求通过将 HSM 替换为软件安全模块来提供低成本的替代解决方案。我必须在这里指出,我知道不使用 HSM 的缺点。它是安全与成本之间的权衡。

我发现微软提供了下一代 CryptoAPI (CNG)、密钥库和证书服务。我的高级管理层不倾向于使用开源软件。我还发现了 RSA 和密码学提供工具包来执行基于软件的解决方案。

有没有人遇到过任何商业软件安全模块工具包来执行密钥生成、密钥存储和加密功能?

编程语言 - c/c++

谢谢

拉吉

4

5 回答 5

9

您可以使用SoftHSM,这是一个纯软件 PKCS #11 实现。OpenDNSSEC 项目正在使用它,以便在没有真正的 HSM 的情况下将其替换掉,因此它也可能对您有用。但是,它是 BSD 许可的,所以我猜您的管理层可能不喜欢它。

如果您正在寻找低成本但商业的(我不确定您是专门寻找专有的东西,CryptoAPI 是,还是商业支持的东西,CryptoAPI 不是,除非您与Microsoft),重写您的应用程序以使用 Win32 CryptoAPI 对我来说似乎是唯一可行的选择。以我的经验,RSA 的工具包并不便宜。

于 2009-09-10T13:05:43.137 回答
2

您最好的选择应该是找到一个软件 PKCS#11 库。市场上应该有几种实现——我知道我工作的公司销售一种。这样,您仍然可以切换回符合 PKCS#11 的 HSM,并且对应用程序的必要修改应该是最少的。

您的其他选项是来自 Microsoft 的 CryptoAPI 或 CNG,或者来自 RSA、Cryptomathic 或其他供应商的工具包。这可能需要更多的工作来重写应用程序——我真的看不出这个选项有什么好处,除了 CryptoAPI 和 CNG 是免费的。

于 2009-09-09T10:39:43.797 回答
2

我有一个客户使用 Mozilla 的 NSS 附带的软件 PKCS#11 实现作为 HSM 的替代品。他们在 Linux 上使用 ruby​​-pkcs11,所以你的里程可能会有所不同。

于 2011-03-02T17:27:46.747 回答
1

查看http://www.openssl.org/related/kits.html了解 LSM-PKCS11。那可能是一个解决方案。

于 2009-09-30T16:13:29.223 回答
1

我正在测试Hashicorp 的一个名为 Vault的解决方案,它类似于 SSM(软件安全模块),可以保护密钥并进行加密操作。它有一个可以在“开发者模式”(用于测试和编程)下使用的服务器和一个可以在最终环境中使用的非常严格的“生产模式”。基本解决方案是开源的,如果您需要更多的东西,可以使用“企业解决方案”,提供更多的灾难恢复、备份、复制等方法。

他们提供的解决方案是这样的:“管理机密并保护敏感数据安全,存储并严格控制对令牌、密码、证书、加密密钥的访问,以使用 UI、CLI 或 HTTP API 保护机密和其他敏感数据。 "

下载并测试它。

于 2020-04-23T12:45:22.340 回答