Skip to the content.

最終更新日:2026年6月1日

まず結論

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

XML文書の内容について、次のことを確認するために使われます。

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

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

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

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

直感的な説明

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

たとえば、注文書や申請データをXMLでやり取りするとします。そのXMLに署名を付けておくと、受け取った側は次のことを確認できます。

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

ここで大事なのは、XML署名は中身を隠すためのものではないという点です。中身を隠したい場合は、XML暗号のような暗号化の仕組みを使います。

定義・仕組み

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

仕様としては、W3Cの XML Signature Syntax and Processing Version 1.1 で構文や処理方法が整理されています。

通常のデジタル署名と同じように、次の流れで改ざんの有無や署名者を確認します。

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

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

たとえば、XML文書の中に注文情報、金額情報、承認情報がある場合、文書全体ではなく「金額情報だけ」に署名を付けることもできます。

XML署名は文書全体だけでなく一部にも使える

XML署名は、XML文書全体に1つの署名を付けるだけの仕組みではありません。

たとえば、申請データの中で次のように署名対象を分けることがあります。

  • 文書全体に署名する
  • 金額や承認欄など、特定の要素だけに署名する
  • 必要に応じて複数の部分に署名する

SG試験では、「XML文書の一部に署名できる」「部分署名や複数の署名に対応できる」とあれば、XML署名の特徴として判断します。

逆に、通信経路全体を暗号化する話ならTLS、情報の存在を隠す話ならステガノグラフィです。

Signature要素

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

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

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

SG試験では、特に Reference要素は、署名する対象をURIで指定する と押さえます。

どんな場面で使う?

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

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

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

SG試験では、問題文に「XML文書」「改ざん検知」「署名者確認」「一部の要素に署名」とあれば、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:署名そのもの

この切り分けができると、要素名を問う選択肢を消しやすくなります。

判断軸の再確認(確認問題の前に)

  • 目的を先に見る:この対策・用語は「予防」「検知」「対応」のどこを担うか。
  • 対象を切り分ける:ネットワーク/端末/利用者/運用手順のどこに効くか。
  • 選択肢の言い過ぎに注意:「必ず」「完全に」「不要になる」といった断定は誤りになりやすい。

確認問題(SG試験対策)

XMLでやり取りする申請データの一部が、送信後に変更されていないことを確認したい。使う技術として最も適切なものはどれか。

  • ア. XML署名
  • イ. XML文書の整形表示
  • ウ. XMLデータの圧縮
  • エ. XMLからHTMLへの変換
▶ クリックして答えと解説を見る(ここを開く)

正解:ア

解説

  • ア:適切です。XML署名は、XML文書全体または一部の改ざん検知や署名者確認に使います。
  • イ:不適切です。表示の整形は、改ざん検知や署名者確認の仕組みではありません。
  • ウ:不適切です。圧縮はデータ量を減らす処理であり、署名ではありません。
  • エ:不適切です。形式変換の説明であり、XML署名ではありません。

👉 判断ポイント XML文書の正しさや署名者を確認する話ならXML署名、内容を読めなくする話ならXML暗号で切り分けます。

まとめ(試験直前用)

  • XML署名は、XML文書の改ざん検知と署名者確認に使う
  • XML文書全体だけでなく、一部にも署名できる
  • Reference 要素は署名対象をURIで指定する
  • XML暗号は秘匿、XML署名は正しさの確認
  • 選択肢では「署名・改ざん検知・署名者確認」ならXML署名、「読めなくする」ならXML暗号で切る

© 2024-2026 stemtazoo. All rights reserved.