4

SSL 接続を処理でき、AES-NI 命令をサポートする Java セキュリティ プロバイダはありますか?

Mozilla NSS で SunPKCS11 を使用しようとしましたが、AES 暗号化を使用する SSL 接続では機能しません。Java PKCS#11 Reference Guideによると、このプロバイダは SSLContext.* "algorithms" をサポートしていません:-(

4

2 に答える 2

2

x86 でAES-NIをサポートするために、2012 年 12 月にでいくつかの最近の活動が行われました。JEPS-164を参照

この2012 年 12 月の jdk8 へのマージについては、ここで説明します。これには、AES-NI をサポートするためのアセンブリ コードの変更が含まれます。議論から、変更が jdk7u12 に移植される可能性があるようです。

2012 年 11 月のIBM JCE for Java V7 には、AES-NI のサポートが含まれています。

これらの新しい JRE のいずれかを使用する場合、Java SSL/TLS 実装はPKCS11 プロバイダーを使用せずにAES-NIを利用する必要があります。

BIOS をチェックして、AES-NIを有効/無効にできるかどうかを確認できます。可能であれば、AES 暗号化/復号化のマイクロベンチマークを実行して、違いを確認できます。

于 2013-01-12T12:39:24.240 に答える
1

私は自分の質問に対する答えを見つけたと信じています。

まず、JCE(暗号化アルゴリズムの実装)とJSSE(セキュアソケットのサポート)という2つの異なるライブラリの「プロバイダー」を混合しています。

JavaTM Secure Socket Extension(JSSE)リファレンスガイドのセクションJCEおよびハードウェアアクセラレーション/スマートカードサポートによると、デフォルトのJSSEプロバイダー(SunJSSE)はすべての暗号化操作にJCEを使用します。

JCEは、ハードウェアアクセラレーションによるAESを使用するように構成できます。たとえば、この回答に記載されているように、SunPKCS11+mozilla-nssライブラリを使用します。

(私の場合)まだやるべきことは、SSLが適切な暗号で構成されていることを確認し、SunPKCS11が実際にSSL接続で使用されていることを確認することです。

于 2013-01-10T16:49:55.310 に答える