我可以使用PKCS#11在HSM中创建签名吗?

时间:2012-10-22 12:56:36

标签: java pkcs#11 xades4j

我可以使用PKCS#11基础架构将XAdES4J配置为将签名创建委派给硬件安全模块(HSM)吗?如果是 - 怎么样?

这些网站上的信息让我假设,只有使用PKCS#11的密钥转移是可能的:

2 个答案:

答案 0 :(得分:5)

如前所述,您可以使用PKCS#11键控数据,使用PKCS11KeyingDataProvider。您只需要使用HSM的本机PKCS#11 lib进行配置。

PrivateKey接口只是不透明键表示的标记接口。当您使用PKCS#11提供程序时,返回的PrivateKey实例只是密钥的句柄(代表),因为密钥材料实际上不会离开HSM。将使用延迟提供程序选择来选择签名引擎,相应于PrivateKey提供程序,因为此提供程序是知道如何处理该特定PrivateKey的提供程序。在这种情况下,密钥和签名值计算都由HSM完全处理。

XAdES4j的PKCS11KeyingDataProvider只是从特定的PKCS#11提供程序实例创建的Java KeyStore的包装器,该实例使用提供的本机lib路径进行配置。

答案 1 :(得分:1)

简单浏览让我:

https://code.google.com/p/xades4j/wiki/DefiningKeyingData

那里有一个关于PKCS#11的部分。这不适合你吗?