4

是否有可以处理 SSL 连接并支持 AES-NI 指令的 Java 安全提供程序?

我曾尝试将 SunPKCS11 与 Mozilla NSS 一起使用,但它不适用于使用 AES 加密的 SSL 连接。根据Java PKCS#11 Reference Guide,此提供程序不支持 SSLContext.* “算法” :-(

4

2 回答 2

2

2012 年 12 月最近有一些关于的活动,以支持x86 上的AES-NI。见JEPS-164

此处讨论2012 年 12 月与 jdk8 的合并,包括更改汇编代码以支持 AES-NI。从讨论看来,更改可能会重新移植到 jdk7u12。

2012 年 11 月的IBM JCE for Java V7 包括对AES-NI 的支持。

如果使用这些新的 JRE 之一,您的 java SSL/TLS 实现应该利用AES-NI而无需使用 PKCS11 提供程序。

您可以检查您的 BIOS 以查看是否可以启用/禁用AES-NI 。如果可以,那么您可以运行 AES 加密/解密的微基准测试,看看有什么区别。

于 2013-01-12T12:39:24.240 回答
1

我相信我已经找到了我的问题的答案。

首先,我为两个不同的库混合了“提供者”:JCE(加密算法的实现)和 JSSE(对安全套接字的支持)。

根据JavaTM 安全套接字扩展 (JSSE) 参考指南,JCE 和硬件加速/智能卡支持部分,默认 JSSE 提供程序 (SunJSSE) 使用 JCE 进行所有加密操作。

可以将 JCE 配置为使用硬件加速的 AES,例如通过使用 SunPKCS11 + mozilla-nss 库,如本答案中所述。

剩下要做的(在我的情况下)是确保 SSL 配置了正确的密码,并验证 SunPKCS11 是否实际被 ssl 连接使用。

于 2013-01-10T16:49:55.310 回答