このページを使用して、Secure Sockets Layer (SSL) のパフォーマンスに関するヒントを学習します。 パフォーマンスにおいては、一般に、機能とスピードが相反する関係にあることを考慮する必要があります。 通常、機能が多く、それに含まれる処理が多いほど、パフォーマンスは遅くなります。
SSL 接続が確立されると、SSL ハンドシェークが起こります。接続された後、SSL は読み取り/書 き取りそれぞれに対して、バルク暗号化および暗号化解除を実行します。 SSL ハンドシェークのパフォーマンス・コストは、バルク暗号化および暗号化解除よりもはるかに大きくなります。
SSL のパフォーマンスを向上させるには、個々の SSL 接続数およびハンドシェーク数を減らします。
接続数を減らすと、単純な Transmission Control Protocol/Internet Protocol (TCP/IP) 接続を通じた非セキュアな通信ばかりでなく、SSL 接続を通じたセキュアな通信についてもパフォーマンスが向上します。 個々の SSL 接続を減らす方法の 1 つに、 HTTP 1.1 をサポートするブラウザーを使用する方法があります。HTTP 1.1 にアップグレードできない場合は、個々の SSL 接続を減らすことができない可能性があります。
現在 WebSphere Application Server でサポートされているハードウェア・アクセラレーターでは、SSL ハンドシェークのパフォーマンスだけが向上し、バルク暗号化および暗号化解除のパフォーマンスは向上しません。Web サーバーの接続は短期間なので、アクセラレーターの恩恵 を受けられるのは、通常 Web サーバーだけです。WebSphere Application Server における他の SSL 接続は 、すべて長期間です。
IBM Cryptographic Coprocessor は、WebSphere Application Server での使用ではサポートされていません。
ただし、Apache で稼働する IBM HTTP Server for iSeries などの他の製品では、IBM Cryptographic Coprocessor を使用して SSL のパフォーマンスを向上させることができます。
暗号スイートのパフォーマンスは、ソフトウェアとハードウェアでは異なりま す。ソフトウェアでのパフォーマンスが良好な暗号スイートが、ハードウェ アでも良いパフォーマンスを上げるとは限りません。アルゴリズムには、一般にハードウェアで非効率な ものもありますが (Data Encryption Standard (DES) や Triple-Strength DES (3DES) など)、特殊なハードウェアを使用すると、同じアルゴリズムでも効率良く実装できます。
バルク暗号化/暗号化解除のパフォーマンスは、個々の SSL 接続に使用する暗号スイートの影響を受けます。 以下のグラフは、それぞれの暗号スイートのパフォーマンスを示しています。 データを計算するテスト用ソフトウェアは、クライアント・ソフトウェアとサーバー・ソフトウェアの両方に対応している Java Secure Socket Extension (JSSE) で、暗号ハードウェアはサポートされていません。 テストには、接続を確立する時間を含 めずに、確立された接続を通じてデータを送信する時間だけを含めています。したがって、このデータから、長期間実行される 接続について、さまざまな暗号スイートの相対的な SSL パフォーマンスが明らかになります。
接続を確立する前に、クライアントでは各テスト・ケースごとに暗号スイートを 1 つずつ使用可能にします。
接続が確立されると、クライアントは、クライアントがサーバーに 1 つの整数を書き込むのにかかる時間、およびサーバーがクライアントに指定のバイト数を書き戻す時間を計測します。データ量の違いが暗号スイートの相対的パフォーマンスに与える影響は、無視できる程度のものです。