2

xml署名で使用される正規化タグとは何ですか。要素に存在し<signed info>ます。私はネット上でさまざまな文書を調べてきました。しかし、それらはすべて抽象的すぎて私には理解できません。誰かが正規化タグに何を含めるべきか、そしてそれをどのように使用すべきかを説明できれば役に立ちますか?
私もその<signature value>要素に疑問を持っています。何の署名が含まれていますか?

4

1 に答える 1

7

署名は一般に(追跡可能性の理由のほかに)受信者の証明として使用されメッセージが途中で変更されていないことを証明します(たとえば中間者)。

->キーワード:整合性

問題:

XMLは、次のような同じ(入力)データを構造化するためのいくつかの有効な方法を提供します。

  1. <a>1</a><!--comment--> <b></b>
  2. <a>1</a><b/>

これにより、決定可能な署名ハッシュの作成が不可能になります。これは、署名の検証を機能させるために必須です。たとえば、上記の両方のXMLの例でのMD5ハッシュは、完全に異なる結果のハッシュになりますが、両方の例はXML形式で同じ有効なデータを提供します(意味的には同じです)。

解決策: これは、XML正規化(c14n)の出番です。メッセージは送信側(クライアント)によって、また受信側(サーバー)での受信後にフォーマット(正規化)されるため、同じデータのハッシュは変更されません。 (XMLレベルで)。

libs(XMLDSig-libs、WS-Security-libs、..)が舞台裏でこれを処理しているため、通常はこれを気にする必要はありません。

2番目の質問: SignatureValue要素には、SignedInfo要素のBase64でエンコードされた署名結果が含まれています。

于 2012-04-03T10:04:07.427 に答える