Security 软件安全模块/工具包取代HSM开发加密功能

Security 软件安全模块/工具包取代HSM开发加密功能,security,encryption,cryptography,hsm,Security,Encryption,Cryptography,Hsm,我工作并完成了一个PKI项目,该项目使用HSM生成、存储密钥和执行加密功能。我使用PKCS#11与我们的应用程序接口,用于签名/验证和加密/解密。我们的平台是windows 现在,我们正在寻找一种低成本的替代解决方案,用软件安全模块取代HSM。我必须注意,我知道不使用HSM的缺点。这是安全与成本之间的权衡 我发现微软提供了下一代加密API(CNG)、密钥存储和证书服务。我的高级管理层不倾向于使用开源软件。我还发现RSA和cryptomathic提供工具包来执行基于软件的解决方案 是否有人见过任何

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

现在,我们正在寻找一种低成本的替代解决方案,用软件安全模块取代HSM。我必须注意,我知道不使用HSM的缺点。这是安全与成本之间的权衡

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

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

程序设计语言c/c++

谢谢


Raj

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

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

您可以使用,这是一个纯软件PKCS 11实现。OpenDNSSEC项目正在使用它,以便在实际的HSM不可用的情况下进行交换,因此它也可能适用于您。然而,它是BSD授权的,所以我想你的管理层可能不喜欢它


如果您正在寻找低成本但商业化的产品(我不确定您是否在寻找专有产品,哪个CryptoAPI是,或者是商业支持的产品,哪个CryptoAPI不是,除非您与Microsoft签订了合同),对我来说,重写应用程序以使用Win32 CryptoAPI似乎是唯一可行的选择。根据我的经验,RSA的工具包并不便宜。

看看LSM-PKCS11。这可能是一个解决方案。

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

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

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


下载并测试它。

您是否将“软件PKCS#11库”作为PKCS#11 cryptoki库的包装?如果是这种情况,您认为这与我为sigining/encryption等编写的函数有什么不同?您能告诉我一些“软件PKCS#11库”上的供应商吗。这些供应商是否也提供密钥管理功能,或者我是否需要依赖操作系统和另一个库来存储/访问密钥?你的答案第1段与第2段在哪些方面不同。我在这里其实很困惑。抱歉,如果我听起来太无知的话。PKCS#11指定了一个API(Cryptoki)。您一直在针对该API编程,可能有一个DLL实现了该API,并由一个HSM执行操作。有几家公司(包括我的雇主Cryptomathic)出售“软件PKCS#11库”。软件PKCS#11库是实现PKCS#11库的DLL,但将函数映射到纯软件实现(并将密钥存储在(加密的)文件中)。密钥管理可以通过PKCS#11 API完成,但您可能也会得到一个单独的工具(取决于供应商)。我的第二段刚刚重新列出了选项,您已经知道:其他加密API。环顾四周,除了Cryptomathic之外,我实际上找不到任何软件PKCS#11库的供应商(这隐藏在PrimeInk工具包的产品手册中…),但我相信肯定还有其他的。你是说密钥管理是生成、标记和检索吗?我的疑问是-我有HSM来存储密钥,这个第三方库会负责密钥存储及其安全性吗?我已经搜索了一段时间,遇到了PrimeInk(感谢Rasmus)还有来自Arx的cryptokit。我不确定是否还有其他供应商,如果你遇到,请分享。谢谢Jack。你是对的。如果是案例2,我计划使用CNG,因为MS正在逐步淘汰cryptoAPI。此外,Mozilla NSS也有PKCS#11实现的虚拟令牌。嗨,Sander-这个项目实际上已经结束了。但是我很想看看NSS。我查看了Mozilla等的示例源代码;但我的问题是下载NSS的版本是什么/从哪里下载?我的版本是windows。@Raj图书馆的主页在,但他们似乎不发布二进制文件。幸运的是,Firefox的每个副本似乎都有一个!你可能会在Firef下找到libsoftokn3.dllox安装(我手头没有Windows机器可供检查)。我发现我可以将libsoftokn3.so放入Linux主机上的一个普通PKCS#11程序中。