如何将我的软件应用程序替换为HSM以使用PKCS?

问题描述:

我试图用我的纯软件应用程序替换HSM并与PKCS11集成。我遇到的问题是所有PKCS api函数处理的插槽和令牌不属于我的软件应用程序的一部分。有没有例子可以查看软件应用程序如何用于模仿HSM并与PKCS集成?如何将我的软件应用程序替换为HSM以使用PKCS?

当你处理HSM时,你必须处理槽和令牌。你必须稍微修改你的软件来适应这个。

有两种方法可以使用PKCS#11,PKCS#11 WrapperPKCS#11 Provider。 Wrapper是直接调用HSM库(.dll或.so)的原生函数的api。提供者使用包装下的Wrapper,但为您提供了使用Java KeyStore api的便利。

考虑到你的情况,包装可能不适合你,因为它涉及编写新的类与HSM集成。你可以使用提供者。

Java有非常好的PKCS11提供程序here的文档。还有一个非常好的第三方库叫做IAIKhere是他们的提供者文档。即使您在软件应用程序中使用提供程序,但不可避免的代码更改也是不可避免的。

如果您使用过KeyStore API,您可能需要在那里进行更改。最初,当您的软件加载时,您必须为PKCS11提供程序加载一个配置文件,该配置文件告诉哪个插槽号码和要连接的令牌。

IAIK也有很好的例子,它们的提供程序库仅用于开发目的。