XML署名で何ができるかと似た技術との見分け方
情報セキュリティマネジメント試験 平成31年度春期 午前 問24 / セキュリティ › 情報セキュリティ
過去問にチャレンジ
XML署名を利用することによってできることはどれか。
- ア
TLSにおいて,HTTP通信の暗号化及び署名の付与に利用することによって,通信経路上でのXMLファイルの盗聴を防止する。
- イ
XMLとJavaScriptがもつ非同期のHTTP通信機能を使い,Webページの内容を動的に書き換えた上で署名を付与することによって,対話型のWebページを作成する。
- ウ
XML文書全体に対する単一の署名だけではなく,文書の一部に対して署名を付与する部分署名や多重署名などの複雑な要件に対応する。
- エ
隠したい署名データを画像データの中に埋め込むことによって,署名の存在自体を外から判別できなくする。
会話形式の解説
講師今回は、XML署名(XML文書に付けるデジタル署名)で何ができるかを選ぶ問題です。選択肢には、TLS、Ajax、ステガノグラフィといった別の技術の説明が混ざっています。それぞれが何の説明なのかを見分けるのが、解くときの軸になります。
受験者XMLという言葉が入った選択肢がいくつもあって迷いました。通信の暗号化と署名を組み合わせた説明が、一番それらしく見えたのですが。
講師まず押さえたいのは、XML署名がデジタル署名の一種で、改ざんの検出と署名者の確認に使う技術だということです。データを秘匿する機能はありません。そのため、通信の暗号化とは役割が違います。
受験者そうすると、通信経路上の盗聴を防ぐという説明は、署名の役割と合っていませんね。
講師そのとおりです。盗聴を防ぐのは、TLSによる通信の暗号化の役割です。XML署名で盗聴を防止するという説明は誤りです。
受験者画像の中に署名を埋め込んで存在を分からなくするという説明も、隠すという意味では秘匿に近い気がします。
講師画像などにデータを埋め込み、その存在自体を分からなくする技術はステガノグラフィです。XML署名は、検証できるように付けるものです。署名の存在を隠すことは、XML署名の機能ではありません。
受験者非同期のHTTP通信でページを書き換えるという説明は、XMLとJavaScriptが出てくるので関係がありそうに見えました。
講師それはAjaxと呼ばれる技術の説明です。非同期のHTTP通信でページの内容を動的に書き換え、対話型のWebページを作る仕組みです。署名を付けると書いてあっても、XML署名の機能ではありません。
受験者残るのは部分署名と多重署名の選択肢です。文書の一部だけに署名できるのが、XML署名の特徴なのですか。
講師はい。XML署名は文書全体だけでなく、文書の一部分を署名の対象に指定できます。一つのXML文書に複数の署名を付けることもできます。こうした複雑な要件に対応できる点を述べたこの選択肢が正解です。
受験者まとめると、XML署名は改ざんの検出と署名者の確認に使うもので、署名する範囲を柔軟に指定できるということですね。盗聴の防止はTLS、画面の動的な書き換えはAjax、存在を隠すのはステガノグラフィと区別します。
講師その整理で大丈夫です。補足すると、XML署名には署名を置く位置による形式が三つあります。対象の要素の中に署名を置くEnveloped署名、署名要素の中に対象を含めるEnveloping署名、対象とは分けて置くDetached署名です。また、XML暗号化と混同しやすいので、「署名は改ざん検出、暗号化は秘匿」と目的で区別しておくと、引っかけを避けやすくなります。
まとめ
XML署名はデジタル署名の一種で、XMLデータの改ざん検出と署名者の確認に使う技術です。文書全体だけでなく一部分にも署名でき、一つの文書に複数の署名を付けることもできます。XML署名そのものにデータを秘匿する機能はなく、通信の盗聴を防ぐのはTLS、内容の秘匿にはXML暗号化を使います。非同期通信でWebページを動的に書き換えるのはAjax、データの存在自体を隠すのはステガノグラフィなので、選択肢ではこれらと区別することが大切です。
解答・解説
正解はウです
この問題のテーマ
XML署名(XMLデータに付けるデジタル署名の仕組み)で何ができるかを選ぶ問題です。TLS、Ajax、ステガノグラフィといった、名前や用途が紛らわしい技術と区別できるかを確かめます。
解き方の考え方
最初に、XML署名はデジタル署名の一種で、改ざんの検出と署名者の確認に使う技術だと確かめます。データを秘匿する機能はないので、「盗聴を防ぐ」「存在を隠す」という説明は外せます。次に、残った選択肢が実際はどの技術の説明なのかを、一つずつ照らします。そのうえで、XML文書の署名範囲を柔軟に指定できるというXML署名ならではの特徴を述べた選択肢を選びます。
選択肢ごとの解説
- ×ア TLSにおいて,HTTP通信の暗号化及び署名の付与に利用することによって,通信経路上でのXMLファイルの盗聴を防止する。通信経路上の盗聴を防ぐのは、TLSによる通信の暗号化の役割です。XML署名は改ざんの検出や署名者の確認のための技術で、内容を秘匿する機能はありません。そのため、XML署名で盗聴を防止するという説明は誤りです。
- ×イ XMLとJavaScriptがもつ非同期のHTTP通信機能を使い,Webページの内容を動的に書き換えた上で署名を付与することによって,対話型のWebページを作成する。非同期のHTTP通信でWebページの内容を動的に書き換える技術は、Ajaxと呼ばれるものです。対話型のWebページを作る仕組みであり、XML署名の機能ではありません。
- ○ウ XML文書全体に対する単一の署名だけではなく,文書の一部に対して署名を付与する部分署名や多重署名などの複雑な要件に対応する。XML署名は文書全体だけでなく、文書内の一部分を署名対象として指定できます。また、一つのXML文書に複数の署名を付けることもできます。部分署名や多重署名といった複雑な要件に対応できる点が、XML署名の特徴です。
- ×エ 隠したい署名データを画像データの中に埋め込むことによって,署名の存在自体を外から判別できなくする。画像などにデータを埋め込み、その存在自体を分からなくする技術はステガノグラフィです。XML署名は署名の存在を隠すものではなく、検証できるように付けるものなので、この説明は当てはまりません。
補足
XML署名には、署名を置く位置による形式の違いがあります。署名対象の要素の中に署名を置くEnveloped署名、署名要素の中に対象を含めるEnveloping署名、対象とは分けて置くDetached署名の三つです。また、XML暗号化と混同しないよう注意してください。「署名は改ざん検出、暗号化は秘匿」と目的で区別しておくと、迷いにくくなります。
POINT
- XML署名は、XMLデータの改ざん検出と署名者の真正性の確認に使います。
- XML署名は文書全体にも一部分にも付けられ、一つの文書に複数の署名を付けることもできます。
- XML署名そのものにデータを秘匿する機能はなく、秘匿にはTLSやXML暗号化を使います。
- 非同期通信で画面を更新するのはAjax、情報の存在を隠すのはステガノグラフィです。
