📘

XML署名【情報処理安全確保支援士向け】

2024/12/29に公開

安全確保支援士について勉強している中で、署名についての問いがあり、明確に答えられなかったのでアウトプットです。

出てきた問題

問.XMLデジタル署名の特徴のうち、適切なものはどれか

ア.XML文書中の、指定したエレメントに対してデタッチ署名(Detached Signature)することができる。
イ.エンベローピング署名(Enveloping Signature)では一つの署名対象に必ず複数の署名を付ける。
ウ.署名形式として、CMS(Cryptographic Message Syntax)を用いる。
エ.署名対象と署名アルゴリズムをASN.1によって記述する。

問題文にあるXMLデジタル署名は、デジタル署名の一種になります。
XML署名の特徴を理解しておくことで正解の選択肢を絞り込めます。

XML署名について

特徴

  • イメージ: 手紙や宿題に書くサインみたいなもの。
  • 目的: デジタルデータ(例えば文書やメッセージ)が改ざんされていないことを証明するための電子的なサイン。
  • 署名形式:XML Digital Signature
  • 署名アルゴリズム:XML構文
  • 使い方: 電子文書の認証/電子契約、医療情報の交換など
  • ポイント: XML文書に対して署名を付与します。署名方法は署名する対象とXML文書との関係に応じて、3種類に分かれます。またXML文書の一部にのみ、署名を行うこともできます。

署名の方法

XML署名の特徴として、3種類の署名方法があります。
以下にそのパターンと特徴を書いておきます。

デタッチ署名

XML文書と署名情報を別々のファイルとして管理します。
XMLのデータが大きい場合や元のデータに変更を加えたくない場合にこの方法が選択されます。
またXMLデータの全体または一部に対して署名を行うこともできます。

デタッチ具体例
// 元データファイル(document.xml)
<手紙>
  <内容>こんにちは</内容>
</手紙>

// 署名ファイル(signature.xml)
<署名>
  <対象ファイル>document.xml</対象ファイル>
  <署名データ>ABC123...</署名データ>
</署名>

エンベロープ署名

XML文書の中にXML署名の情報を入れて管理します。
電子契約等の場合にこの方法が選択されます。

エンベロープ具体例
<手紙>
  <内容>こんにちは</内容>
  <署名>
    <署名データ>ABC123...</署名データ>
  </署名>
</手紙>

エンベローピング署名

署名情報の中にXML文書を格納してしまう形です。
文書情報自体が小さく、まとめて管理したほうがよい場合に利用されます。

エンベローピング具体例
<署名>
  <署名データ>ABC123...</署名データ>
  <元データ>
    <手紙>
      <内容>こんにちは</内容>
    </手紙>
  </元データ>
</署名>

回答

XML文書の一部(エレメント)に対して、署名(デタッチ署名)を行うことができる、という特徴から、政界の回答は「ア.XML文書中の、指定したエレメントに対してデタッチ署名(Detached Signature)することができる。」になります。

「イ.エンイベローピング署名(Enveloping Signature)では一つの署名対象に必ず複数の署名を付ける。」については、エンベローピング署名は署名の中にXML文書を格納する形のため、間違い選択肢です。

「ウ.署名形式として、CMS(Cryptographic Message Syntax)を用いる。」はXML形式の署名ではないため、誤り。

「エ.署名対象と署名アルゴリズムをASN.1によって記述する。」もアルゴリズムがXML構文でないため、誤り選択肢です。

XML署名自体についてちゃんと理解していれば、アorイの2択になり、署名の形について理解していれば解ける問題でした!

この問題については以上です。

Discussion