XPath 式による生成プログラム・セキュリティー制約への機密性のための nonce の追加

ここでは、署名するメッセージ・パーツを指定する際に、XPath 式を使用する場合とキーワードを使用する場合の違いについて説明します。
XPath 式
XPath 式を使用して任意のメッセージのパーツを指定します。XPath は、XML 文書のパーツを指定するために使用される言語です。 XPath の構文については、http://www.w3.org/TR/1999/REC-xpath-19991116 の Web サイトを参照してください。
キーワード
事前定義されたキーワードを使用してメッセージ内の要素のみを指定します。

機密性のための nonce を使用して、nonce をメッセージ内の特定の要素に組み込むことと、要素を暗号化することを指定します。nonce はランダムに生成された暗号トークンです。 メッセージの特定部分に nonce を追加すると、 生成された nonce が固有になるため、盗用やリプレイ・アタックを防ぐことができます。 例えば、nonce を使用しない場合、HTTP などの非セキュア・トランスポートを使用してマシン間でユーザー名トークンが渡されると、 トークンがインターセプトされてリプレイ・アタックに使用される可能性があります。 ユーザー名トークンは、XML デジタル・シグニチャーや XML 暗号化を使用していても盗まれる可能性があります。このような状態は、nonce を追加することで防ぐことができます。

以下のステップを実行して、要求ジェネレーターまたは応答ジェネレーターのいずれかの生成プログラム・セキュリティー制約を構成する際に、XPath 式を使用して機密性のための nonce を指定します。要求ジェネレーターはクライアント向けに、応答ジェネレーターはサーバー向けに、それぞれ構成されます。以下のステップでは、ステップ 2 でクライアント・サイドの拡張機能、 またはステップ 3 でサーバー・サイドの拡張機能のいずれかを構成する必要があります。

  1. ウィンドウ」>「パースペクティブを開く」>「J2EE」の順にクリックします。
  2. オプション: 「プロジェクト・エクスプローラー」ウィンドウを使用してクライアント・サイドの拡張機能を検索します。 「Client Deployment Descriptor」ウィンドウが表示されます。 この Web サービスには、ユーザーが構成する必要のある拡張機能が含まれています。 以下のステップを実行して、クライアント・サイドの拡張機能を検索します。
    1. 「Web サービス」>「クライアント」セクションの順に展開して、 Web サービスの名前をダブルクリックします。
    2. WS Extension」タブをクリックして、「Request Generator Configuration」セクションを展開します。
  3. オプション: 「プロジェクト・エクスプローラー」ウィンドウを使用して、サーバー・サイドの拡張機能を検索します。 「Web Services Editor」ウィンドウが表示されます。 この Web サービスには、ユーザーが構成する必要のある拡張機能が含まれています。 以下のステップを実行して、サーバー・サイドの拡張機能を検索します。
    1. 「Web サービス」>「サービス」セクションの順に展開して、 Web サービスの名前をダブルクリックします。
    2. 拡張機能」タブをクリックして、「Response Generator Service Configuration Details」セクションを展開します。
  4. 「機密性」セクションを展開します。 機密性は暗号化に関連し、保全性はデジタル署名に関連します。機密性は、ネットワークを通過するメッセージが第三者に傍受されるリスクを軽減します。機密性仕様により、 メッセージは送信前に暗号化され、正当な宛先で受信されると暗号化解除されます。 暗号化について詳しくは、XML 暗号化を参照してください。
  5. 追加」をクリックして、保全性のための nonce を指定します。 「機密性」ダイアログ・ウィンドウが表示されます。 以下のステップを実行して、構成を指定します。
    1. 「Confidentiality Name」フィールドで機密性要素の名前を指定します。 例えば、conf_nonce を指定します。
    2. 「Order」フィールドで順序を指定します。 この値は、暗号化を処理する順序を指定するもので、正の整数にする必要があります。順序の値に 1 を指定すると、その暗号化が最初に実行されます。
  6. 「機密性」ダイアログ・ウィンドウの「Nonce」セクションの下の「追加」をクリックします。 以下のステップを実行して、nonce のダイアレクトとメッセージ・パーツを指定します。
    1. 「Nonce」セクションから nonce のダイアレクトを選択します。 http://www.w3.org/TR/1999/REC-xpath-19991116 というダイアレクトは、nonce が追加され、XPath 式を使用して暗号化されるメッセージ・パーツを指定します。
    2. nonce が追加され、「Nonce keyword」フィールドの XPath 式を使用して暗号化されるメッセージ・パーツを指定します。 例えば、bodycontent 要素に nonce を追加してその要素を暗号化することを指定するには、 「Nonce keyword」フィールドに次の式を区切らずに 1 行で追加します。
      /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Envelope']/*
      [namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Bodycontent']
  7. 「Message Parts」セクションで「追加」をクリックし、 「Message parts dialect」フィールドで http://www.w3.org/TR/1999/REC-xpath-19991116 を選択します。
  8. 「Message Parts」セクションで、メッセージ・パーツのキーワードを選択します。
    重要: 機密性のための nonce を指定するためには、 「Message Parts」セクションに少なくとも 1 つのメッセージ・パーツを定義する必要があります。 ここでメッセージ・パーツを選択するのは、nonce の親要素に加えてメッセージ・パーツを暗号化するためです。
  9. OK」をクリックして、構成の変更を保管します。
    注: これらのコンシューマーと生成プログラムの構成は一致している必要があります。
暗号化するメッセージ・パーツを指定した後、 メッセージの署名の暗号化に使用する方式を指定する必要があります。 詳しくは、生成プログラム・バインディングの暗号化情報の構成を参照してください。
関連概念
XML デジタル・シグニチャー
関連タスク
キーワードによる生成プログラム・セキュリティー制約への機密性のためのタイム・スタンプの追加
XPath 式による生成プログラム・セキュリティー制約への機密性のためのタイム・スタンプの追加
生成プログラム・バインディングの暗号化情報の構成

フィードバック