WSS API を使用してメッセージ機密性を保護するための暗号化解除方式の構成

バインディング・ファイルの応答コンシューマー (クライアント・サイド) セクションで、 暗号化解除方式情報を構成することができます。暗号化解除情報は、コンシューマー (受信側) が 着信 SOAP メッセージの暗号化解除の方法を指定するために使用されます。暗号化解除を 構成するためには、暗号化を解除するメッセージ・パーツを指定して、暗号化解除に使用する アルゴリズム方式とセキュリティー・トークンを指定します。

始める前に

機密性は暗号化に関連し、保全性はデジタル署名に関連します。 機密性は、インターネット上のメッセージ・フローが誰かに読み取られるリスクを軽減します。機密性の仕様を使用して、メッセージは、送信される前に暗号化され、 正しいターゲットによる受信時に、暗号化解除されます。 暗号化解除を構成する前に、XML 暗号化について知っておく必要があります。

このタスクについて

暗号化解除では、以下を指定する必要があります。

  • 暗号化解除するメッセージ・パーツ。
  • 使用する暗号化解除アルゴリズム。

クライアント・サイドで暗号化解除と暗号化解除されるパーツを構成するには、 WSSDecryption API と WSSDecryptPart API を使用するか、管理コンソールから ポリシー・セットを構成します。

WebSphere® Application Server には、バインディングのデフォルト値が用意されています。しかし、管理者は実稼働環境に合わせてデフォルトを変更する必要があります。

WebSphere Application Server では、デフォルト・コンシューマー用の 暗号化解除情報を使用して SOAP メッセージ・パーツの暗号化を解除します。 WSSDecryption API は、以下の必須パーツを暗号化解除の対象パーツとして 構成します。

表 1. 必須の暗号化解除パーツ. 暗号化解除情報を使用して、着信メッセージがどのように暗号化解除されるのかを 指定します。
暗号化解除パーツ 説明
キーワード キーワードは、SOAP メッセージに暗号化解除パーツを追加する場合に 使用されます。
XPath 式 XPath 式は、SOAP メッセージに暗号化解除パーツを追加する場合に 使用されます。
WSSDencryptPart オブジェクト このオブジェクトは、SOAP メッセージに暗号化解除パーツを追加します。
WSSVerification オブジェクト このオブジェクトは、シグニチャー確認コンポーネントを暗号化解除パーツとして 追加します。
ヘッダー このパーツは、QName で指定される SOAP ヘッダー内のヘッダーを、 暗号化解除パーツとして追加します。
セキュリティー・トークン・オブジェクト このオブジェクトは、セキュリティー・トークンを暗号化解除パーツとして追加します。

Web Services Security API (WSS API) は、Web Services Secure Conversation (WS-SecureConversation) が 使用されている場合に限り、共有鍵を使用して 対称暗号化をサポートします。

WSS API では、キーワードまたは XPath 式を使用することで、 SOAP メッセージの暗号化解除パーツを指定できます。WebSphere Application Server で使用できるキーワードは次のとおりです。

表 2. サポートされる暗号化解除キーワード. これらのキーワードを使用して、着信メッセージを暗号化解除します。
キーワード 参照
BODY_CONTENT SOAP メッセージ本体の内容を 暗号化解除ターゲットにするためのキーワード。
SIGNATURE シグニチャー・エレメントを 暗号化解除ターゲットにするためのキーワード。
USERNAME_TOKEN, ユーザー名トークン・エレメントを 暗号化解除ターゲットにするためのキーワード。

WSS API を使用して構成する場合は、WSSDecryption API および WSSDecryptPart API が 以下のハイレベル手順を実行します。

手順

  1. WSSDecryption API を使用して暗号化を構成します。 WSSDecryption API は、 デフォルトで以下のタスクを実行します。
    1. コールバック・ハンドラーの生成。
    2. コンシューマー・セキュリティー・トークン・オブジェクトの生成。
    3. セキュリティー・トークン参照タイプの追加。
    4. WSSEncryptPart オブジェクトの追加。
    5. 暗号化するパーツの追加。 キーワードと XPath 式を使用して、 暗号化解除のためのデフォルト・パーツを追加します。
    6. 検証コンポーネントの追加。
    7. SOAP メッセージのヘッダー (QName で指定) の追加。
    8. デフォルトのデータ暗号化方式の設定。
    9. 鍵の暗号化解除にブール値を使用するかどうかの 指定。 共有鍵を暗号化する場合はこの方式を呼び出します。
    10. デフォルトの鍵暗号化方式の設定。
  2. 暗号化パーツを構成したり、変換方式を追加したりするには、 WSSEncryptPart API を使用します。WSSEncryptPart API は、デフォルトで以下のタスクを実行します。
    1. キーワードまたは XPath 式で指定した暗号化パーツの 設定。
    2. XPath 式で指定した暗号化パーツの設定。
    3. シグニチャー・コンポーネント・オブジェクト WSSSignature の設定。
    4. SOAP メッセージのヘッダー (QName で指定) の設定。
    5. ジェネレーター・セキュリティー・トークンの設定。
    6. 変換方式の追加 (必要な場合)。
  3. 必要に応じ、アルゴリズムまたはメッセージ・パーツのデフォルト値を 変更します。 例えば、次のような変更 (複数可) が 可能です。
    • USERNAME_TOKEN を暗号化解除のターゲットとして追加します。
    • データ暗号化アルゴリズムをデフォルト値 AES 128 から変更します。
    • 鍵暗号化アルゴリズムをデフォルト値 KW_RSA_OAEP から変更します。
    • 暗号鍵を暗号化しない (false) ように指定します。
    • セキュリティー・トークン・タイプをデフォルト値の X.509 トークンから変更します。
    • 暗号化パーツとして BODY_CONTENT のみを使用し、SIGNATURE は使用しません。

タスクの結果

暗号化解除情報がコンシューマー・バインディング用に構成されます。

WSSDecryption API の例を以下に示します。
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
    X509ConsumeCallbackHandler callbackhandler =  generateCallbackHandler();
// see X509ConsumeCallbackHandler
    WSSDecryption dec = factory.newWSSDecryption(X509Token.class, 
        callbackhandler);
    
 concont.add(dec);

次のタスク

クライアント・サイドの要求生成プログラム (送信側) バインディングで まだ暗号化情報を構成していない場合は、同様の暗号化情報を構成する必要があります。

次に、WSSDecryption API プロセスを確認します。


トピックのタイプを示すアイコン タスク・トピック



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