セキュア・アプリケーションのための Liberty プロファイルの調整
セキュア・アプリケーションのパフォーマンスを 最大化するため、Liberty プロファイルを調整することができます。
このタスクについて
WebSphere® アプリケーション環境を保護 するときには、セキュリティーがパフォーマンスに及ぼす影響を把握することが重要です。 アプリケーション・サーバー環境内で、セキュリティー設定を指定してアプリケーションを 実行すると、セキュリティーに関するタスク (暗号化、認証、許可など) が原因でプロセッサー使用量 が増加するため、パフォーマンスが低下することが多く見られます。これらのサービスはアプリケーション・サーバー要求のパス長を増加させることが多く、そのために、各要求に必要なリソースが増え、アプリケーション・スループットが低下します。
セキュリティー に関連するこのパフォーマンス低下は、ほとんどの場合、パフォーマンス調整によって ある程度は削減または除去することができます。セキュリティー・サービスが使用する リソースを調整することができ、また、特定のアプリケーションまたは環境によって 必要とされるセキュリティー・サービスのみを使用することを選択できます。 必要なセキュリティーを犠牲にすることなく、可能な限り最良のパフォーマンスを実現するためには、 ネットワーク・トポロジーを理解し、アプリケーションのセキュリティー要件を把握することが必要です。
手順
- 暗号化したい接続を選択します。
WebSphere Application Server 環境 では、以下のトランスポートを暗号化できます。
- Web サーバーへの HTTP トラフィック
- Web サーバーからアプリケーション・サーバーへの HTTP トラフィック
- SOAP/JMX トラフィック
- ファイル転送サービス
- HTTP を介した Web サービス
暗号化された接続を使用して移送するトラフィックを決定するときには、 相互に通信しているマシンを接続するネットワークがプライベートであるかパブリックであるかを 考慮してください。セキュア接続のセットアップ、およびその接続を経由するトラフィックの暗号化と暗号化解除に は、かなり多くのリソースが関連します。例えば、保護されたネットワーク を経由するときは暗号化を必要としないようにすると、パフォーマンスを大幅に 改善できます。クライアントから HTTP サーバーへ、および HTTP サーバーから アプリケーション・サーバーへのトラフィックが暗号化されることをアプリケーションが必要としない 場合、クライアントから HTTP サーバーへの部分のみ SSL を使用 するようにして、セキュリティーによって必要とされるリソースを削減 することができます。
- オンチップ Advanced Encryption Standard (AES) 暗号化を有効にします。
IBM® SDK Java™ Technology Edition バージョン 7、Service Refresh 3 以降を使用していて、 Advanced Encryption Standard (AES) New Instructions (AES-NI) 命令セットが サポートされている Intel プロセッサーで 実行している場合、オンチップ AES 暗号化を利用することによってパフォーマンスを 向上させることができます。これらのフィーチャーを使用すると、 ソフトウェアを追加することなく、ハードウェア命令を使用して AES 暗号化および暗号化解除を 実行できます。
AES-NI の使用を有効にするには、以下のプロパティー を JVM コマンド・ラインまたは jvm.options ファイルに追加します。
com.ibm.crypto.provider.doAESInHardware=true
プロセッサーが AES-NI 命令セットをサポートしていることを検証するには、以下のプロパティー を JVM コマンド・ラインまたは jvm.options ファイルに追加します。
com.ibm.crypto.provider.AESNITrace=true
詳しくは、 『Intel Advanced Encryption Standard New Instructions』を参照してください。
- 暗号鍵の長さを選択します。
場合によっては、特定タイプのデータの転送に関する 規制によって暗号鍵のビット長が規定されています。そのような場合、 特定の SSL 接続に対して選択する暗号および鍵の長さ はあらかじめ決められている可能性があります。鍵の長さが規定されていない場合は、セキュリティーに割り振るための適切なリソースを選択して、 パフォーマンスが不必要に悪化しないようにする必要があります。例えば、256 ビット暗号は、対応する 128 ビット暗号よりも強い暗号化 を提供します。ただし、強い暗号化の場合、メッセージの暗号化解除に 必要な処理時間が長くなります。
選択する暗号化強度についての決定を行うときには、 ネットワークを移動するデータのタイプを 考慮してください。例えば、金融や医療に関するレコードなどの機密情報の場合、 最大量のセキュリティーが必要です。また、誰がネットワークへのアクセス権限を持っているのかも考慮する必要があります。ネットワーク がファイアウォールで保護されている場合は、暗号化の強度を低くすることや、 場合によっては、暗号化解除された接続でデータを転送することも検討してください。
Liberty プロファイルでの SSL 設定の構成について 詳しくは、『SSL 構成の属性』を参照してください。
- 接続キープアライブ要求を設定します。
Secure Sockets Layer (SSL) プロトコルでは、初期ハンドシェークは、秘密鍵暗号を高速にするため、公開鍵暗号を使用して秘密鍵を交換します。この高速暗号は、初期ハンドシェーク以降の通信の暗号化および暗号化解除 に使用されます。以降の通信に使用される暗号は初期ハンドシェークに使用されるものより 高速であるため、アプリケーション・サーバー内で実行される SSL ハンドシェークの数を 制限することが、パフォーマンス上の観点から重要 です。セッション・アフィニティーを高めて SSL 接続の長さを増やす ことで、この結果を得ることができます。
単一の SSL 接続の時間を長くする 1 つの方法は、 永続 HTTP キープアライブ接続を有効にすることです。 時間を長くすると、連続する要求で SSL ハンドシェークが 行われなくなります。server.xml ファイル内 の httpOptions エレメントの keepAliveEnabled 属性 が true に設定されていることを検証することによって、永続接続が有効であることを確認できます。 デフォルト値は true です。
永続接続を調整する別の方法として、単一の HTTP 接続での連続要求の最大数を設定する方法があります。100 を超える 要求を連続して行うクライアントがある場合、server.xml ファイル内の httpOptions エレメント の maxKeepAliveRequests 属性の値を増やすことを検討してください。デフォルト値は 100 です。
詳細については、『server.xml ファイルの構成エレメント』を参照してください。
- 認証キャッシュ設定値を設定します。
認証サブジェクトの作成によりプロセッサー使用量が増加する可能性があるため、 Liberty プロファイルでは、ユーザーの認証が成功した後にサブジェクトを 保管するための認証キャッシュが提供されています。このサービスを最大限に活用してパフォーマンスを向上させるには、これがオンになっており、ユーザーおよびアプリケーションに応じて調整されていることを確認する必要があります。
認証キャッシュを無効にしていないことを確認します。 デフォルトでは、パフォーマンス向上を支援するため、認証キャッシュは有効になります。
認証キャッシュのタイムアウト値の変更を検討します。タイムアウト値を大きくすると、サブジェクトが認証キャッシュに残る時間が長くなり、必要な再認証の回数が減少します。ただし、タイムアウト値を大きくすると、変更された外部リポジトリー (LDAP など) に 比べてユーザー許可が不整合になるというリスクが 増します。推定されるクライアント・セッションの長さ に合わせて認証キャッシュのタイムアウトを設定してください。キャッシュ のタイムアウトを指定するには、server.xml ファイル内の authCache エレメント の timeout 属性を、選択した任意の時間に設定します。 デフォルト値は 600 秒です。
最後に、認証時間が予想よりも長くかかっている場合、 または、外部認証リポジトリーへのトラフィック が予想したよりも多い場合、認証キャッシュが満杯になっている可能性があります。 認証キャッシュが満杯になると、サブジェクトは除去されます。認証された ユーザーから認証キャッシュ項目への 1 対 1 のマッピングは ありません。ユーザー当たりのキャッシュ内の項目数は、 他のセキュリティー構成によって異なります。認証キャッシュの 最大サイズが、同時にサーバーにアクセスする認証済みの個々のユーザーの数 よりも大きくなるようにするのがベスト・プラクティスです。このように認証キャッシュの最大サイズを設定すると、タイムアウトになる前にサブジェクトがキャッシュから除去されるのを防ぐために役立ちます。認証キャッシュ の最大サイズを変更するには、server.xml ファイル内 の authCache エレメントの maxSize 属性の値を設定します。 デフォルト・サイズは 25000 です。
詳細については、『Liberty プロファイル上の認証キャッシュの構成』を参照してください。
- HTTP セッション・アフィニティー設定を構成します。
保護されたアプリケーション環境での操作のうち、パフォーマンスを最も悪化させる操作の 1 つは、 SSL ハンドシェークおよび認証を含む初期セットアップです。クラスター環境では、 Web クライアントがさまざまなアプリケーション・サーバーにアクセスする場合に、パフォーマンスの低下が発生することがあります。 SSL ハンドシェークおよび再認証でのプロセッサー使用量の増加を 防止するためには、HTTP セッション・アフィニティーが構成されていることを 確認することが重要です。
HTTP セッション・アフィニティーは、連続する クライアント要求が同じアプリケーション・サーバーに確実にルーティングされるようにします。HTTP セッション・アフィニティー は、さまざまな方法でパフォーマンスを支援しますが、特に、 再認証および SSL ハンドシェークでプロセッサー使用量が増加するのを防止します。 HTTP セッション・アフィニティーのセットアップ方法については、HTTP サーバーまたはロード・バランサー の資料を参照してください。
詳細については、『Liberty プロファイルのセッション・パーシスタンスの構成』を参照してください。

インフォメーション・センターに関するご使用条件 | フィードバック

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_tun_sec
ファイル名: twlp_tun_sec.html