ITサービスマネージャ 2017年 午前2 問23
問題文
XML署名の特徴はどれか。
選択肢
ア:TLSにおいて、HTTP通信の暗号化及び署名の付与に利用され、通信経路上でのXMLファイルの盗聴を防止する。
イ:XMLとJavaScriptがもつ非同期なHTTP通信機能を使い、Webページの内容を動的に書き換えた上で署名を付与することによって、対話型のWebページを作成できる。
ウ:XML文書全体に対する署名だけではなく、文書の一部に対しても署名を付与することができ、部分署名や多重署名などの複雑な要件に対応できる。(正解)
エ:隠したい署名データを画像データの中に埋め込むことによって、署名の存在自体を外から判別できなくする。
🔒 解説は解答すると表示されます
XML署名の特徴【午前2解説】
正解の理由
正しいのはウです。
XML署名(XML Signature)は、XML文書全体だけでなく、文書内の特定の要素など一部分を対象にして署名できます。また、複数の署名を付与する多重署名にも対応できます。
署名によって、署名対象のデータが変更されていないこと(完全性)や、署名者が正当であること(真正性)を確認できます。ただし、署名はデータを暗号化する機能ではないため、内容を隠す機能ではありません。
解法ステップ
-
「XML署名」が何をする技術かを確認します。
XML文書やその一部に対してデジタル署名を付与し、改ざんの有無などを確認する技術です。 -
「署名」と「暗号化」を区別します。
署名は完全性や真正性を確認するものであり、通信内容を盗み見られないようにする暗号化とは役割が異なります。 -
XML文書の一部にも署名できるかに注目します。
XML署名は署名対象を柔軟に指定できるため、文書全体に限らず一部分への署名や多重署名が可能です。この特徴を述べているウが適切です。
選択肢別の誤答解説
-
ア:誤りです。
TLSは通信経路を暗号化し、通信相手の認証などを行うための仕組みです。XML署名そのものは通信の暗号化を行わず、XML文書の署名によって盗聴を防止するものでもありません。 -
イ:誤りです。
XMLとJavaScriptを利用してWebページを動的に更新する説明は、Ajax(非同期通信を利用したWebアプリケーション技術)に関するものです。XML署名は対話型Webページを作成する技術ではありません。 -
ウ:正しいです。
XML文書全体だけでなく一部分を署名対象にでき、複数の署名を付与することもできます。 -
エ:誤りです。
画像などにデータを埋め込み、データが存在すること自体を分かりにくくする技術は、電子透かしやステガノグラフィに関するものです。XML署名の特徴ではありません。
よくある誤解
-
署名すれば内容を読めなくなる、という誤解
署名は改ざん検出や署名者の確認に使います。内容を隠すには暗号化が必要です。 -
TLSとXML署名は同じ仕組み、という誤解
TLSは通信経路を保護し、XML署名はXMLデータに署名します。保護する対象と役割が異なります。 -
署名対象は文書全体だけ、という誤解
XML署名では文書内の一部分を対象にすることもできます。
補足コラム
XML署名では、署名対象を文書内の要素などに指定できます。そのため、XML文書の一部だけを他のシステムと共有する場合にも、必要な部分の改ざんを確認できます。
一方、XML署名で署名されていない部分については、署名による完全性の確認対象にはなりません。どの部分が署名対象になっているかを確認することが大切です。
FAQ
Q. XML署名があれば、XML文書の内容を秘密にできますか?
A. いいえ。署名は内容を隠しません。秘密にするには、XML暗号化などの暗号化技術を利用します。
A. いいえ。署名は内容を隠しません。秘密にするには、XML暗号化などの暗号化技術を利用します。
Q. XML文書の一部分だけに署名することはできますか?
A. できます。署名対象を文書内の特定部分に指定できます。
A. できます。署名対象を文書内の特定部分に指定できます。
Q. TLSを使えばXML署名は不要ですか?
A. 目的によります。TLSは通信経路を保護しますが、XML署名はデータそのものに署名します。通信経路を離れた後もデータの改ざんを確認したい場合などには、XML署名が有効です。
A. 目的によります。TLSは通信経路を保護しますが、XML署名はデータそのものに署名します。通信経路を離れた後もデータの改ざんを確認したい場合などには、XML署名が有効です。
関連キーワード: XML署名、デジタル署名、完全性、真正性、TLS、XML暗号化、Ajax、ステガノグラフィ

\ せっかくなら /
ITサービスマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

