Skip to the content.

最終更新日:2026年5月9日

XML署名とは?XML文書の改ざん検知と署名者確認の仕組み【SG試験】

まず結論

XML署名とは、XML文書にデジタル署名を付けるための仕組みです。

XML文書の内容が、

  • 途中で改ざんされていないか
  • だれが署名したものか
  • XML文書全体、または一部が正しいか

を確認するために使われます。

SG試験では、細かいXML構文よりも、まず次のように押さえると判断しやすいです。

XML署名 = XMLデータの改ざん検知と署名者確認に使う仕組み

XMLを暗号化して読めなくする技術ではありません。


直感的な説明

XML署名は、XML文書に付ける封印シールのようなものです。

たとえば、注文書や申請データをXMLでやり取りするとします。

そのXMLに署名を付けておくと、受け取った側は、

  • 送信後に内容が変えられていないか
  • 本当に署名者が作成・承認したものか

を確認できます。

ここで大事なのは、XML署名は中身を隠すためのものではないという点です。

中身を隠したい場合は、XML暗号のような暗号化の仕組みを使います。


定義・仕組み

XML署名は、XML文書にデジタル署名を埋め込むための技術です。

通常のデジタル署名と同じように、

  1. 署名対象のデータからハッシュ値を作る
  2. 署名者の秘密鍵で署名する
  3. 受信者が公開鍵などを使って検証する

という流れで、改ざんの有無や署名者を確認します。

XML署名の特徴は、XML文書の全体だけでなく、一部の要素にも署名できることです。

たとえば、XML文書の中に、

  • 注文情報
  • 金額情報
  • 承認情報

がある場合、文書全体ではなく「金額情報だけ」に署名を付けることもできます。

Signature要素

XML署名は、主に Signature 要素としてXML文書内に記述されます。

Signature 要素の中には、署名対象や署名値などの情報が入ります。

代表的な要素は次のとおりです。

要素 役割
SignedInfo 署名対象や署名方式などの情報をまとめる
Reference 署名する対象をURIで指定する
DigestValue 署名対象データのハッシュ値
SignatureValue 実際の署名値
KeyInfo 検証に使う鍵や証明書の情報

SG試験では、特に次の点が狙われやすいです。

Reference要素は、署名する対象をURIで指定する

つまり、XML文書のどこを署名対象にするかを示す役割があります。


どんな場面で使う?

XML署名は、XML形式でデータをやり取りする場面で使われます。

たとえば、

  • 電子申請
  • 電子契約
  • Webサービス間のデータ連携
  • 業務システム間のXMLデータ交換
  • 取引データや申請データの改ざん検知

などです。

特に、システム間でXMLデータを送受信する場合、受信側は「このデータは途中で変更されていないか」を確認したくなります。

その確認に使えるのがXML署名です。


よくある誤解・混同

XML署名とXML暗号の違い

XML署名と混同しやすいのが、XML暗号です。

用語 主な目的
XML署名 改ざん検知・署名者確認
XML暗号 XMLデータの秘匿

XML署名は、データの正しさを確認する仕組みです。

XML暗号は、データを読めないようにする仕組みです。

試験では、

  • 改ざんされていないことを確認
  • 署名者を確認
  • XML文書の一部に署名

とあれば、XML署名を考えます。

一方で、

  • 内容を第三者に読まれないようにする
  • XMLデータを暗号化する

とあれば、XML暗号を考えます。

XML署名は「XML専用のデジタル署名形式」

XML署名は、デジタル署名の考え方をXML文書に適用したものです。

そのため、デジタル署名とまったく別物として覚えるより、

デジタル署名をXMLで扱えるようにした仕組み

と考えると理解しやすいです。

Reference要素は署名そのものではない

Reference 要素は、署名する対象を指定するための要素です。

署名値そのものは SignatureValue に入ります。

そのため、

  • Reference:どれに署名するか
  • SignatureValue:署名そのもの

と切り分けておくと、選択肢を判断しやすくなります。


試験直前まとめ

XML署名は、次の3点で押さえましょう。

  • XML文書の改ざん検知に使う
  • XML文書全体だけでなく一部にも署名できる
  • Reference要素は署名対象をURIで指定する

ひっかけとしては、XML暗号との混同に注意です。

署名 = 正しさを確認する
暗号 = 中身を隠す

この切り分けができれば、SG試験ではかなり選択肢を切りやすくなります。


確認問題

XML署名の説明として、最も適切なものはどれか。

  1. XML文書の文字コードを統一するための仕組み
  2. XML文書全体または一部に署名し、改ざん検知や署名者確認を行う仕組み
  3. XML文書を圧縮して通信量を減らす仕組み
  4. XML文書をHTMLに変換するための仕組み
回答と解説 正解は **2** です。 XML署名は、XML文書にデジタル署名を付けるための仕組みです。 XML文書全体だけでなく、指定した一部の要素にも署名できます。 1は文字コード、3は圧縮、4は変換に関する説明であり、XML署名の説明ではありません。

参考

  • W3C: XML Signature Syntax and Processing
  • RFC 3275: XML-Signature Syntax and Processing
  • RFC 3075: XML-Signature Syntax and Processing

© 2024-2026 stemtazoo. All rights reserved.