如何用我的软件应用程序替换 HSM 以使用 PKCS?
How can I substitute my software application for an HSM to work with PKCS?
我正在尝试用我的纯软件应用程序替换 HSM 并与 PKCS11 集成。我遇到的问题是所有 PKCS api 函数都处理不属于我的软件应用程序的插槽和令牌。是否有可供我查阅的示例,以了解如何使用软件应用程序来模仿 HSM 并与 PKCS 集成?
当您处理 HSM 时,您必须处理插槽和令牌。您必须稍微修改您的软件以适应这一点。
您可以通过两种方式使用 PKCS#11,PKCS#11 Wrapper
或 PKCS#11 Provider
。 Wrapper 是直接调用 HSM 库(.dll 或 .so)的本机函数的 api。 Provider 在底层使用 Wrapper,但让您可以方便地使用它 Java KeyStore
api.
考虑到您的情况,Wrapper 可能不适合您,因为它涉及编写新的 类 以与 HSM 集成。您可以使用提供商。
Java 有非常好的 PKCS11 提供程序文档 here. There is also a very good third-party library called IAIK
, here 是他们的提供程序文档。即使您在软件应用程序中使用 Provider,微不足道的代码更改也是不可避免的。
在您使用 KeyStore
api 的地方,您可能必须在那里进行更改。最初,当您的软件加载时,您必须加载 PKCS11 提供程序的配置文件,该文件告诉要连接到哪个槽号和令牌。
IAIK 也有很好的示例,他们的提供程序库仅免费用于开发目的。
我正在尝试用我的纯软件应用程序替换 HSM 并与 PKCS11 集成。我遇到的问题是所有 PKCS api 函数都处理不属于我的软件应用程序的插槽和令牌。是否有可供我查阅的示例,以了解如何使用软件应用程序来模仿 HSM 并与 PKCS 集成?
当您处理 HSM 时,您必须处理插槽和令牌。您必须稍微修改您的软件以适应这一点。
您可以通过两种方式使用 PKCS#11,PKCS#11 Wrapper
或 PKCS#11 Provider
。 Wrapper 是直接调用 HSM 库(.dll 或 .so)的本机函数的 api。 Provider 在底层使用 Wrapper,但让您可以方便地使用它 Java KeyStore
api.
考虑到您的情况,Wrapper 可能不适合您,因为它涉及编写新的 类 以与 HSM 集成。您可以使用提供商。
Java 有非常好的 PKCS11 提供程序文档 here. There is also a very good third-party library called IAIK
, here 是他们的提供程序文档。即使您在软件应用程序中使用 Provider,微不足道的代码更改也是不可避免的。
在您使用 KeyStore
api 的地方,您可能必须在那里进行更改。最初,当您的软件加载时,您必须加载 PKCS11 提供程序的配置文件,该文件告诉要连接到哪个槽号和令牌。
IAIK 也有很好的示例,他们的提供程序库仅免费用于开发目的。