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

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

以下のステップを実行して、要求ジェネレーターまたは応答ジェネレーターのいずれかの生成プログラム・セキュリティー制約を構成する際に、 キーワードを使用して機密性のための 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 のダイアレクトを選択します。 http://www.ibm.com/websphere/webservices/wssecurity/dialect-was というダイアレクトは、nonce が追加され、暗号化されるメッセージ・パーツを指定します。このダイアレクトを選択すると、nonce キーワードの下にある以下のキーワードのいずれかを選択できます。
    bodycontent
    メッセージのユーザー・データ部分を指定します。このキーワードを選択すると、nonce が Simple Object Access Protocol (SOAP) のメッセージ本文に組み込まれ、 本文が暗号化されます。
    usernametoken
    ユーザー名やパスワードなどの、基本認証情報が含まれるユーザー名トークンを指定します。通常、ユーザー名トークンは、ユーザー情報を保護するために暗号化されています。 このキーワードを選択すると、nonce 要素がユーザー名トークン要素に組み込まれ、 暗号化されます。
    digestvalue
    固有のダイジェスト値を指定します。SOAP メッセージのパーツに署名がある場合は、 固有のダイジェスト値が作成されるので、受信側はその値を使用してメッセージの保全性を確認します。 digestvalue 要素を暗号化して、ダイジェスト値を保護することができます。 このキーワードを選択すると、nonce が digestvalue 要素に組み込まれ、この要素が暗号化されます。
  7. 「Message Parts」セクションで「追加」をクリックし、 「Message parts dialect」フィールドで http://www.ibm.com/websphere/webservices/wssecurity/dialect-was を選択します。
  8. 「Message Parts」セクションで、メッセージ・パーツのキーワードを選択します。
    重要: 機密性のための nonce を指定するためには、 「Message Parts」セクションに少なくとも 1 つのメッセージ・パーツを定義する必要があります。 メッセージ・パーツを選択する際は、nonce の親要素のほかにメッセージ・パーツを暗号化します。
  9. OK」をクリックして、構成の変更を保管します。
    注: これらの生成プログラムとコンシューマーの構成は一致している必要があります。
次の例は、SOAP メッセージの一部です。このメッセージでは bodycontent 要素に nonce が挿入され、bodycontent キーワードと http://www.ibm.com/websphere/webservices/wssecurity/dialect-was ダイアレクトを使用してその要素が暗号化されます。
重要: 暗号化されているため、nonce はメッセージには表示されません。
<soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <EncryptedData Id="wssecurity_encryption_id_1669600751905274321" 
    Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
      <CipherData>            
         <CipherValue>pZpVL6Rs6zhvu8UrC7TH3BA2zvOdpPpLeHnwH0dCpmdc7ETz1tUHDdXLFxy143nYu91Mxpzsp
          Wt1rWx2Lx9vFGRIfblRSX5lEpV8+0LvezvhJYY/cbTA04mTMUzCfv28v2TI09AZQ4TjII4u+cPeh5f0prBVK1
          E5hLTql4QMcwf/rq9h+tttrJbR7ub3AUgIVo42ucQs5HZbaDijxmdSuFboBql4lv1Ep24ZfeoB/p7aHzyeWy7p
          YtO0bshpks/oBwO/78vxSklVJKu4sUseFvZa+B7sciFneeNnNuRCqB2JXc/vtH83l3AELUZg60ehd4vqvXkyuv
          SLohZ/kKnF/A5c+BP5Bo1pgvwmDEeJItQ5a7LOKkTavLuc2WGtVo1947fnNGm2TN4C6U/cp9ERT7jAB9Lr/1v/8
          ZqPZYmssyME4pGeSWLy232WrPvk6HEu96GHfRt+YXWpVNvSEt/gZw==</CipherValue> 
      </CipherData>
   </EncryptedData>
</soapenv:Body>
暗号化するメッセージ・パーツを指定した後、 メッセージの暗号化に使用する方式を指定する必要があります。 詳しくは、生成プログラム・バインディングの暗号化情報の構成を参照してください。
関連概念
XML デジタル・シグニチャー
関連タスク
キーワードによる生成プログラム・セキュリティー制約への機密性のためのタイム・スタンプの追加
XPath 式による生成プログラム・セキュリティー制約への機密性のためのタイム・スタンプの追加
生成プログラム・バインディングの暗号化情報の構成

フィードバック