Java SunPKCS11访问USB加密
我通过提供的acos-pkcs11.dll库(Java 32位为了在Windows上提供SunPKCS11)在Windows上使用Java CryptoMate64令牌和Windows上的Java SunPKCS11进行工作实现。
ACS CryptoMate64是一个USB令牌,可由Windows计算机上的SunPKCS11本地访问。 没有用于Linux的PKCS11库(没有.so文件或类似的东西)。
因为我正在使用Linux机器来获得某些功能,所以我想问一下如何通过USB连接到不同计算机上的网络来访问PCKS11设备。
这个想法如下:Linux:想要使用USB CryptoMate64的应用程序,但没有库。 Windows:使用acos-pkcs11.dll连接USB CryptoMate64。 应用程序正在使用Windows计算机上连接的CryptoMate64。
是否可以在Linux机器上配置Java SunPKCS11以通过网络远程使用它? 或者它是制造商提供的PKCS11模块的一部分?
我知道HSM可以通过PKCS11通过网络进行通信,所以我的问题是询问是否可以用USB cryptotoken进行通信。
每个建议或想法如何做到这一点都值得欢迎。
基于网络的HSM常用的方法是让PKCS#11库对方法调用执行编组,并使用传输协议通过网络发送这些数据。 此应用程序传输协议通常为TCP套接字定义。 由于数据的性质,这个传输连接应该是安全的。 它至少应提供客户端和服务器认证,并保持机密性,真实性和完整性。 可以使用带有客户端身份验证的TLS,但协议不能依赖DNS命名系统来实现其安全性。
现在,包含HSM的联网HSM或系统应该包含对数据执行非编组,并执行预处理并将其发送到HSM的服务。 虽然不是必需的,但可以通过使用安全非统一数据调用非联网PKCS#11库来实现。
另一种选择是创建您自己的Java安全提供程序。 这个提供者可以在服务器上调用代码并在那里调用PCKS#11库。 实现Java安全提供者也不容易,并且要求您使用Oracle提供的私钥证书(用于常规Java SE安装)对提供者进行签名。
正如你可能知道的那样,这种在网络上使用HSM不应掉以轻心,而应该成为HSM安全性的一部分。 你可以自己尝试创建这样一个系统,但是你不应该欺骗你自己; 联网的HSM很可能不像当地使用的那样安全。 一般来说,如果HSM供应商不提供服务,最好购买另一个USB令牌。 或者你可以购买联网的HSM。
链接地址: http://www.djcxy.com/p/73817.html