Web サービスのセキュリティーに関する考慮事項

Web Services Security を構成する際には、 結果がさまざまな種類のアタック・メカニズムに対してぜい弱ではないことを確認するために、 最大限の努力をする必要があります。 Web サービスを保護する際に起こりうるセキュリティー上の懸念があります。

WebSphere® Application Server では、保全性、機密性、 および関連トークンを SOAP メッセージ内で使用可能にすると、セキュリティーは保証されません。セキュリティー上の懸念についてのこのリストは、 すべてを網羅しているわけではありません。 ユーザーの環境については、ユーザー独自のセキュリティー分析を行う必要があります。

  • メッセージ存続期間の確認
    メッセージ存続期間は、 メッセージが捕そくされて再送されるリプレイ・アタックからのリソースを保護と関連します。 デジタル署名そのものは、 署名されたメッセージが捕そくされて再送されるため、 リプレイ・アタックを防ぐことはできません。 メッセージがオープン・ネットワークを介して交換される場合は、 メッセージの受信側にメッセージのリプレイ・アタックの検出を許可することをお勧めします。 Web Services Security 仕様に説明されている以下のエレメントを、 この目的で使用することができます。
    タイム・スタンプ
    タイム・スタンプ・エレメントを使用して、 メッセージを追跡調査し、前のメッセージのリプレイを検出することができます。 WS-Security 2004 仕様では、 タイム・スタンプを特定の時間にわたってキャッシュに入れることが推奨されています。 ガイドラインとして、リプレイを検出するための最低限の時間として 5 分を使用します。 期限切れのタイム・スタンプを含んだメッセージはリジェクトされます。
    nonce
    nonce は、UsernameToken プロファイル内の <UsernameToken> エレメントの 子エレメントです。各 nonce エレメントは固有値を持っているため、 受信側はリプレイ・アタックを比較的容易に検出できます。
    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): Timestamp 要件を使用して、リプレイ・アタックからの防御を最大にするには、Timestamp エレメントと Nonce エレメントの両方に署名する必要があります。そうしないと、これらのエレメントは簡単に変更できるため、 リプレイ・アタックを防ぐことができません。gotcha

    Timestamp について詳しくは、「タイム・スタンプ」を参照してください。

    WebSphere Application Server は、IncludeTimestamp ポリシー・アサーションを強制します。 ただし、多くのサービス・プロバイダーは、要求にその <wsu:Timestamp> エレメントを必要としますが、応答ではそれを送信しません。 応答内にまったくセキュリティー・ヘッダーがなく、タイム・スタンプもない可能性もあります。 IncludeTimestamp がポリシーにあるが、応答でタイム・スタンプが戻されない場合、クライアントで次のエラーが発生します。
    CWWSS5730E: A required timestamp is not found.
    この問題を解決するには、タイム・スタンプを送信するようにサービス・プロバイダーを構成するか、 WS-Security ポリシー・バインディングで com.ibm.wsspi.wssecurity.consumer.timestampRequired カスタム・プロパティーを false に設定することで、タイム・スタンプを必要としないようにクライアントを構成してください。 詳しくは、Web Services Security のカスタム・プロパティーを参照してください。
  • 起こりうるセキュリティー・ホールを予防するための XML デジタル署名および XML 暗号化の適切な使用

    Web Services Security 2004 仕様には、XML デジタル署名 および XML 暗号化を SOAP ヘッダー内で使用する方法が定義されています。 したがって、ユーザーは、その他のセキュリティー・メカニズムとの関連で XML デジタル署名および XML 暗号化と、それらがエンティティーに対して起こしうる脅威について理解しておく必要があります。 XML デジタル署名の場合は、 デジタル署名全般、特に XML デジタル署名の使用によって生じるセキュリティーへの影響をすべて承知している必要があります。 デジタル署名に準拠したアプリケーションで信頼を得る場合は、 Public Key Infrastructure (PKI) に準拠した認証信頼性検証など、 他のテクノロジーを組み込む必要があります。 XML 暗号化の場合、共通データ項目に対してデジタル署名と暗号化を組み合わせると、 暗号化がぜい弱になる可能性があります。 例えば、デジタル署名付きデータを暗号化する場合、 デジタル署名をプレーン・テキストに置き忘れて、 プレーン・テキスト推測アタックに対してメッセージをぜい弱なままにする可能性があります。 一般的な習慣として、データを暗号化した場合は、 そのデータに関するダイジェストまたはシグニチャーはすべて暗号化してください。 詳しくは、 http://www.w3.org/TR/xmlenc-core/#sec-Sign-with-Encryptを参照してください。

  • セキュリティー・トークンの保全性の保護

    トークン置換アタックの可能性が存在します。 このシナリオでは、デジタル署名は、 セキュリティー・トークンから頻繁に派生されてメッセージに組み込まれる鍵を用いて検証されます。 トークンが置換された場合、 受信側は、置換された鍵に基づいてメッセージを受け入れますが、 これは予期したこととは異なります。 この問題に対するソリューションの 1 つとして考えられるのは、 セキュリティー・トークン (または署名鍵を派生させた固有の識別データ) を、 署名済みデータと一緒に署名することです。 状況によっては、 信頼のおける権限によって発行されたトークンが署名されます。 この場合には、保全性の問題はありません。 しかし、アプリケーション・セマンティクスおよび環境は時間の経過とともに変化するので、 最良の実践はこのアタックを防止することです。 デプロイ済みの環境に基づいて、リスク査定を行う必要があります。

  • 証明書パス検査および証明書失効リストを活用するための証明書の検査

    デジタル署名に使用するトークン ID の認証性および妥当性が正しく信頼できることを確認することをお勧めします。 特に X.509 トークンの場合、この問題は、証明書パスの検査、 および証明書失効リスト (CRL) の使用を伴います。 WebSphere Application Server バージョン 6 以降における Web Services Security 実装では、 証明書は <TokenConsumer> エレメントによって検査されます。WebSphere Application Server は、 Java™ CertPath ライブラリーを使用して証明書を検査および検証する X.509 証明書のデフォルト実装を提供します。この実装には、CRL の明示的な概念はありません。 代わりに、正しいルート証明書および中間証明書がファイル内にのみ準備されています。 高度なソリューションの場合、 オンライン CRL データベースまたは Online Certificate Status Protocol (OCSP) を使用する証明書および CRL の検査を実行する独自の TokenConsumer 実装を開発することもできます。

  • パスワード付きユーザー名トークンの保護

    ユーザー名トークンにおけるパスワードは、 保護なしではダウンストリーム・サーバーに送信しないでください。 SSL (例えば、HTTPS) などのトランスポート・レベルのセキュリティーを使用するか、 Web Services Security 内の XML 暗号化を使用して、パスワードを保護することができます。 保護の適切な方式は、使用している環境によって異なります。 ただし、アタックに対してぜい弱ではないと確信できる一部の特殊な環境では、 パスワードをダウンストリーム・サーバーにプレーン・テキストとして送信できる場合があります。

Web サービスの保護は、 XML デジタル署名および XML 暗号化をただ使用可能にする場合と比べて、 より多くの作業を必要とします。 Web サービスを正しく保護するには、 PKI についての知識が必要になります。 必要となるセキュリティーの厳重さは、 デプロイ済みの環境および使用パターンによって異なります。 しかし、Web サービスを保護するための基本的な規則およびベスト・プラクティスがいくつかあります。 PKI に関するいくつかの資料を読み、 Web Services Interoperability Organization (WS-I) Basic Security Profile (BSP) に関する情報も読むことをお勧めします。


トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_secconsider6wssec
ファイル名:rwbs_secconsider6wssec.html