我正在尝试用我的纯软件应用程序替换HSM,并与PKCS11集成。我遇到的问题是所有PKCS api函数都处理插槽和令牌,这些插槽和令牌不属于我的软件应用程序。有没有例子我可以查看软件应用程序如何用来模仿HSM并与PKCS集成?
答案 0 :(得分:0)
当您处理HSM时,您必须处理插槽和令牌。您必须稍微修改您的软件才能适应这种情况。
有两种方法可以使用PKCS#11,PKCS#11 Wrapper
或PKCS#11 Provider
。 Wrapper是直接调用HSM库(.dll或.so)的本机函数的api。提供程序使用了引擎盖,但是为您提供了使用Java KeyStore
api的便利。
考虑到您的情况,Wrapper可能不适合您,因为它涉及编写新类以与HSM集成。您可以使用提供商。
Java有很好的PKCS11 Provider here文档。还有一个非常好的第三方库名为IAIK
,here是他们的提供者文档。即使您在软件应用程序中使用Provider,也不可避免地会发生微不足道的代码更改。
你曾经使用过KeyStore
api,你可能需要在那里进行更改。最初,当您的软件加载时,您必须为PKCS11提供程序加载一个配置文件,该文件告知哪个插槽号和要连接的令牌。
IAIK也有非常好的例子,他们的提供者库只能用于开发目的。