戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報セキュリティマネジメント 2019年 春期 午前(科目A)24


問題文

XML署名を利用することによってできることはどれか。

選択肢

TLSにおいて、HTTP通信の暗号化及び署名の付与に利用することによって、通信経路上でのXMLファイルの盗聴を防止する。
XMLとJavaScriptがもつ非同期のHTTP通信機能を使い、Webページの内容を動的に書き換えた上で署名を付与することによって、対話型のWebページを作成する。
XML文書全体に対する単一の署名だけではなく、文書の一部に対して署名を付与する部分署名や多重署名などの複雑な要件に対応する。(正解)
隠したい署名データを画像データの中に埋め込むことによって、署名の存在自体を外から判別できなくする。

🔒 解説は解答すると表示されます

XML署名の特徴【情報セキュリティマネジメント解説】

正解の理由

XML署名(XML Signature:XML文書に対する電子署名のための仕様)は、文書全体だけでなく「文書の一部」に対して個別に署名を付与できます。複数箇所に別々の署名を付けることも可能です。したがって、部分署名や多重署名といった複雑な要件に対応できる点が本問の肝であり、選択肢の中では が正しい説明です。
ポイントを整理すると:
  • XML署名は「何が署名されたか」を参照(Reference)で指定する仕組みを持ちます。要素単位や外部リソースを参照して署名できます。
  • 複数のReferenceや複数のSignature要素を用いれば、多重署名や部分署名が実現できます。
(用語補足)
  • TLS(Transport Layer Security:通信の暗号化と改ざん防止の仕組み)
  • AJAX(Asynchronous JavaScript and XML:非同期でサーバとやりとりする技術)
  • ステガノグラフィ(情報を画像などに埋め込んで秘密にする技術)

解法ステップ

  1. 「XML署名は何のための技術か」をまず確認する:電子署名による真正性(誰が作ったか)と完全性(改ざんされていないか)の証明。
  2. 各選択肢が「署名の目的」に合致するかを照らし合わせる:
    • 暗号化(通信の盗聴防止)は署名の主目的ではない → TLSの話は誤り。
    • Webページの動的生成は署名の機能ではない → AJAXの話は誤り。
    • 署名の隠蔽(ステガノグラフィ)は別技術 → 該当しない。
  3. XML署名の仕様を思い出す:Referenceで部分を指定でき、複数署名も可能 → これが一致する選択肢が正解。

選択肢別の誤答解説

  • ア:TLSは通信経路の暗号化を提供します。TLSは「通信の暗号化および署名(認証)」を行いますが、それは通信チャネルの話です。XML署名は文書自体に対する電子署名であり、文書を暗号化して盗聴を防ぐ機能は持ちません。よって誤りです。
  • イ:AJAX(非同期通信)はWebページの動的更新に関する技術であり、署名を付与して動的ページを作るという記述は技術的に意味が異なります。さらに、署名は署名対象データが変わらないことを前提とするため、動的に変更するUIと直接結びつく話ではありません。誤りです。
  • エ:画像へのデータ埋め込みはステガノグラフィ(情報隠蔽)の技術であり、XML署名仕様とは無関係です。XML署名はXML文書内に署名要素を置くか外部に保存するもので、署名の「存在を隠す」ことが目的ではありません。誤りです。

よくある誤解

  • 「署名=暗号化」:署名はデータの改ざん検知と発信者の証明が目的で、内容を隠す(暗号化する)機能はありません。暗号化は別技術(例:XML暗号化、TLS)。
  • 「一度署名すれば後で自由に編集できる」:署名は署名時のデータに依存します。内容を変更すると署名検証に失敗します。部分署名なら変更して良い部分と改ざん検知したい部分を分けられますが、意図通りに設計する必要があります。
  • 「XML署名は自動的に見つからないようになる」:署名要素はXML内の明示的な要素です。隠すなら別の技術が必要で、運用上の混乱や互換性問題を招きます。

補足コラム

XML署名の実装でよく使われるパターン:
  • Enveloped Signature:署名要素が元のXML内に含まれる(署名が文書の一部)。
  • Enveloping Signature:署名要素が署名対象データを内部に包含する(署名がデータを包む)。
  • Detached Signature:署名が文書とは別に保存される(署名が外部参照)。
技術的に部分署名を実現するには、Reference要素でURI(例:#elementID)やTransforms(変換)を指定します。また、XMLの表現ゆれ(属性順、空白など)に対応するために「正規化(Canonicalization:C14N)」が重要です。SAMLのアサーションやSOAPメッセージ、電子請求書などで部分署名や複数署名が現実に使われます。
職場での運用イメージ:
  • ある注文書のヘッダ情報は発行者が署名、各明細行は担当者別に署名する、という運用が可能です。
  • 署名の検証には公開鍵・証明書の管理(誰の公開鍵を信用するか)が必要です。証明書管理や鍵保管の運用ルールを決めておくと安全です。

FAQ

Q1: XML署名はデータを隠せますか? A1: いいえ。署名は改ざん検知と発信者証明が目的です。データを隠したい場合は暗号化(例:XML暗号化やTLS)を使います。
Q2: 文書の一部だけ署名するのは難しいですか? A2: 仕様上は容易にできます。Referenceで該当部分を指定します。ただし正規化や参照の方式を正しく設計しないと、誤検出や互換性問題が生じます。
Q3: 複数人で同じXMLに署名できますか? A3: はい。複数のSignature要素を付ければ多重署名が可能です。運用ルール(どの部分を誰が署名するか)を明確にしておくことが重要です。

関連キーワード: XML署名、XML Signature、部分署名、電子署名、C14N(正規化)、Enveloped Signature、Detached Signature、TLS、AJAX、ステガノグラフィ、署名検証、公開鍵管理
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報セキュリティマネジメント
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について