2.1.2 XML署名の構文
XML署名には,署名対象となる文書のダイジェスト値のほかに,アルゴリズムや鍵情報などの要素が含まれています。この節では,XML署名にどのような要素が含まれているのか,XML署名の構文について説明します。
XML署名の構文を次の図に示します。なお,次の図では「?」は0回または1回,「+」は1回以上,「*」は0回以上の繰り返しを表します。
まず,必須の要素について説明します。
-
XML署名のルート要素です。
-
実際に署名の対象となる情報です。署名値要素を求める場合に使用されるアルゴリズムが含まれています。
-
署名値を計算する前に,署名情報要素を正規化するアルゴリズムです。内容が同じXML文書でも,表現方法が異なる場合がありますが,正規化を実施することによって,表現方法が統一されます。
-
正規化された署名情報要素から署名値要素を求めるアルゴリズムです。署名情報要素の署名値を計算します。
-
ダイジェストアルゴリズム要素およびダイジェスト値要素を含みます。また,変換処理要素を含む場合もあります。
-
署名対象(参照要素から参照するデータを変換処理した結果)のダイジェスト値を計算するアルゴリズムです。変換が完了した署名対象のダイジェスト値を計算します。
-
署名対象(参照要素から参照するデータを変換処理した結果)のダイジェスト値の情報です。署名対象の文書に対する署名は,ダイジェスト値と,そのダイジェスト値を含む署名情報要素を計算することで生成されます。
-
署名情報要素の値から計算された値です。署名値要素は,必ず署名情報要素の外側に置きます。
次に,任意の要素について説明します。