XML デジタル署名

XML-Signature Syntax and Processing (XML Signature) は、 デジタル・コンテンツに対するデジタル署名に署名し、 それを確認するための XML 構文および処理規則を定義する仕様です。 この仕様は、World Wide Web Consortium (W3C) および Internet Engineering Task Force (IETF) による共同開発です。

重要: バージョン 5.x とバージョン 6 以降のアプリケーションには重要な相違点があります。 この情報は、WebSphere® Application Server バージョン 6.0.x 以降で使用されるバージョン 5.x アプリケーションのみをサポートしています。 この情報は、バージョン 6 以降のアプリケーションには適用されません。

XML Signature には、新規暗号アルゴリズムは導入されていません。 WebSphere Application Server は、既存のアルゴリズム (RSA、HMAC、 および SHA1 など) を使用した XML Signature を使用します。XML Signature は、鍵情報を記述するための多くのメソッドを定義し、 新規メソッドの定義を使用可能にします。

たいていの場合、XML 正規化 (c14n) は、XML Signature を使用する場合に必要になります。 情報は、シリアライズされた XML 文書内で、さまざまな方法で表すことができます。 例えば、それらの情報のオクテット表記は異なりますが、以下の例では同一です。
  • <person first="John" last="Smith"/>
  • <person last="Smith" first="John"></person>

C14n は、XML 情報を正規化するために使用するプロセスです。 正規化される情報がこのアルゴリズムに依存しているため、該当する c14n アルゴリズムを選択します。 主な c14n アルゴリズムの 1 つは排他的 XML 正規化 (Exclusive XML Canonicalization) で、 文字エンコード・スキーム、属性の順序、名前空間宣言などを正規化します。 このアルゴリズムでは、タグの外側の空白、名前空間接頭部、またはデータ型表記は正規化されません。

Web Services Security-Core 仕様内の XML Signature

Web Services Security-Core (WSS-Core) 仕様は、XML Signature を取り込むための SOAP メッセージ用の標準的な方法を定義します。 エンベロープされたシグニチャーとエンベロープするシグニチャーを除き 、WSS-Core 内のほとんどすべての XML Signature のフィーチャーを使用できます。 ただし、WSS-Core には、c14n アルゴリズムの排他的正規化などに関する推奨事項と、 SecurityTokenReference および KeyIdentifier のような追加機能がいくつかがあります。 KeyIdentifier は、 X.509 証明書内の「SubjectKeyIdentifier」フィールドの値です。 KeyIdentifier について詳しくは、OASIS Web Services Security X.509 Certificate Token Profile 資料内の『Reference to a Subject Key Identifier』を参照してください。

XML Signature を SOAP メッセージに組み込むことにより、以下が実現されます。
メッセージ保全性
メッセージの受信側は、メッセージのパーツが鍵を使用して署名された後、 アタッカーや事故によって変更されていないことを確認できます。
認証
有効なシグニチャーは所有の証明 であると見なすことができます。 メッセージに、認証局発行のデジタル証明書と、 証明書内の公開鍵により正常に検証されたメッセージ内のシグニチャーがあれば、 署名者が対応する秘密鍵を持っていることが証明されます。 受信側は、証明書の信頼性を検査することにより、署名者を認証できます。

現行実装における XML Signature

Web Services Security では XML Signature はサポートされますが、アプリケーション・プログラミング・インターフェース (API) は使用できません。現行実装には多くのハードコーディングされた振る舞いと、 いくつかのユーザー操作可能な構成項目があります。 デジタル署名用クライアントを構成するには、 『応答デジタル署名検査用クライアントの構成: メッセージ・パーツの検証』を参照してください。 デジタル署名用サーバーを構成するには、 『応答デジタル署名検査用サーバーの構成: メッセージ・パーツの検証』を参照してください。

セキュリティーに関する考慮事項:

リプレイ・アタックでは、 アタッカーは回線を盗聴し、署名済みメッセージを受け取った後、受信側にメッセージを戻します。 この場合、受信側は同じメッセージを 2 回受け取り、 署名が有効である場合は、両方を処理することがあります。 両方のメッセージを処理すると、メッセージが金銭の請求であった場合には受信側が損害を受ける可能性があります。 メッセージ・リプレイに署名生成時のタイム・スタンプと署名の有効期限時刻があれば、 アタックを減らすことができます。 しかし、これは完全な解決策ではありません。 これらのアタックを防止するためには、メッセージに nonce 値を付加し、 受信側は、処理済みの nonce を含むメッセージをリジェクトする必要があります。 現行実装には、メッセージ内に nonce を生成し、それを検査するための標準的な方法がありません。 WebSphere Application Server バージョン 5.1 では、 nonce はユーザー名トークンでのみサポートされています。ユーザー名トークン・プロファイルには、 ユーザー名トークンの具体的な nonce の使用シナリオが含まれています。 アプリケーションは nonce (シリアル番号など) を処理するため、署名が必要です。


トピックのタイプを示すアイコン 概念トピック



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