200g 以上のドローン (正確には無人航空機) の包括申請の許可が下りましたが、許可・承認書も電子的なファイルのため、捺印がありません。どうやって本物の公文書だと確認するのでしょうか。

国土交通省 包括申請許可 (2020年)

もちろん、誰にどんな文書番号 (東空運第xxx号) で許可したかは国土交通省サイト上で公開されているのですが、個人の場合は「個人」としか書かれておらず、本当に私に対して許可されたものなのかが分かりません。

そこで、これが本当に東京航空局の公文書なのかを電子的に確認する方法があります。

e-Gov で公文書署名を検証する

文書は国土交通省の申請用サイト (DIPS) から zip 形式でダウンロードできて、 pdf と署名ファイルが入っています。

国土交通省 包括申請許可 (2020年): アーカイブ zip

この鑑文書が xml 形式で、X509 証明書を含むものになっているので、e-Gov ページに行って、

e-Gov: トップページ

公文書署名検証ページにドラッグ&ドロップすると、

e-Gov: 署名検証: pdf と xml

検証結果が出てきます。

国土交通省 包括申請許可 (2020年): e-Gov 署名検証ファイル情報

「検証結果: 正常です」

ということで正しい署名であることが分かります。

もう一段確認するなら、「行政機関の証明書」のシリアルナンバー (34 37 … 30) は、同じ e-Gov サイトで官職認証局の自己証明書情報が公開されていますので、それと照らし合わせます。

検証するのは pdf そのものではない

気になるのはその先です。

  • 文書本体である pdf ファイル
  • 鑑文書 (公開証明書) の xml ファイル

はあくまで別々のファイルです。xml だけドラッグ&ドロップしたら?

e-Gov: 署名検証: xml のみ

「検証結果: 正常です」と表示され結果は同じ。

pdf と関係ないテキストファイルと、鑑文書 xml ならどうなのか。

e-Gov: 署名検証: 別の dummy.txt と xml

これでも「正常です。」と言われてしまいました。

鑑文書ファイルと抱合せでどんなファイルをドラッグ&ドロップしようが、それらは無視される形で、純粋にデジタル署名の検証だけが行われる仕様のようです。

つまり pdf そのものは検証されておらず、改ざんされているか否かの確認はできないように見えます。

どうなんでしょうねこの仕様は? xml には実際、結果に表示されている数字のシリアルナンバーだけでなく、X509Data タグの中に デジタル署名が入ってはいます。

念のため、こういう構造ですという意味で、一部の情報をマスクした xml 内容を引用しておきます。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="DEFAULT_STYLE.xsl" ?>
<DOC VERSION="1.0">
    <FRONT>
        <SECRECY>公文書形式</SECRECY>
        <STAMP>要</STAMP>
    </FRONT>
    <BODY ID="DOCBODY">
        <STYLESHEET URI="DEFAULT_STYLE.xsl"/>
        <DOCNO>東空運第xxx号</DOCNO>
        <DATE TYPE="1"/>
        <TO/>
        <AUTHOR>
            <AFF></AFF>
        </AUTHOR>
        <TITLE></TITLE>
        <MAINTXT>
            <P>このファイルは、無人航空機の飛行に関する許可・承認書「東空運第xxx号」(令和xx年xx月xx日付)について署名されたファイルです。</P>
        </MAINTXT>
    </BODY>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="mlitxxxxxxxxxxxx">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
      <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
      <Reference URI="#DOCBODY">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
    <DigestValue>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>xxxxxxxx</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509Certificate>xxxxxxxxxx</X509Certificate>
      </X509Data>
    </KeyInfo>
  </Signature>
</DOC>

文書番号 (東空運第xxx号) は含まれていますが、無人航空機を飛行させる者の氏名や、機体が Mavic 2 Pro であるといった情報はありません。

国土交通省の飛行許可は、

  • 操縦の安全 … 所定の訓練を受けた人が操縦している (操縦者氏名: 仁礼)
  • 機体の安全 … 所定の安全性を持った機体を飛ばしている (Mavic 2 Pro)
  • 運用体制の安全 … 管理体制、リスクアセスメント等

の 3つの組み合わせに対してされるものなので、この xml だけだと「署名情報が正しい」ことだけしか分からず、上記を直接には証明する手段になっていない。特に個人の場合は、国交省自身以外に氏名との紐付けを確認する方法がないということです。

いやそんなことは無いよ、という方がいればご指摘ください。