是否有Java安全提供者可以处理SSL连接并支持AES-NI指令?
我曾尝试在Mozilla NSS中使用SunPKCS11,但它不适用于使用AES加密的SSL连接。根据Java PKCS#11 Reference Guide的说法,这个提供程序不支持SSLContext.*“算法”:-(
发布于 2013-01-12 20:39:24
在2012年12月,openjdk上有一些支持x86上的AES-NI的活动。请参阅JEPS-164
讨论了2012年12月到jdk8的This合并here包括汇编代码更改以支持AES。从讨论中看,这一变化可能会重新移植到jdk7u12。
2012年11月发布的用于Java V7的IBM JCE包括对AES-NI的支持。
如果使用这些新的JRE之一,您的java SSL/TLS实现应该利用AES-NI,而不使用PKCS11提供程序。
您可以检查您的基本输入输出系统,看看是否可以启用/禁用AES-NI。如果可以,那么您可以运行一个AES加密/解密的微基准测试,看看有什么不同。
发布于 2013-01-11 00:49:55
我相信我已经找到了我问题的答案。
首先,我混合了两个不同库的“提供者”:JCE (加密算法的实现)和JSSE (对安全套接字的支持)。
根据JavaTM Secure Socket Extension (JSSE) Reference Guide, section JCE and Hardware Acceleration/Smartcard Support的说法,默认JSSE提供程序(SunJSSE)使用JCE进行所有加密操作。
JCE可以被配置为使用硬件加速的AES,例如通过使用SunPKCS11 + mozilla-nss库,例如在this answer中记录。
剩下要做的(在我的例子中)是确保SSL配置了正确的密码,并验证ssl连接是否实际使用了SunPKCS11。
https://stackoverflow.com/questions/14259671
复制相似问题