外務省の証明書非開示決定を受けて

4月24日水曜日、晴れ

外務省に証明書の開示を求めたところ、証明書を公開することで偽造リスクが高まり、犯罪予防・公共の安全と治安維持・旅券の安全性が損なわれる恐れがあるから不開示だと断られた、という話を読んだ。

ひどい話もあるものである。しかし一方で総務の事務方に暗号技術の中でもトップクラスの難しさを誇る公開鍵暗号、そして公開鍵基盤(PKI; public key infrastructure)を理解しておけというのは酷だ、ともおもう。

公開鍵暗号と公開鍵基盤について、ちらっと書き連ねていたのでリンクしておく。以下ツイートから始めたスレッド参照。

* * *

ところでもと記事を読んでいて、いまひとつピンとこない点がある。

ひとつは非開示とされたCSCA証明書。チップ内の情報が改竄されていないことを確認するために使うDS証明書。これはCSCA証明書で検証するとある。CSCA証明書が自己署名証明書でよいのなら信頼の起点がグダグダになってしまう。

つまりDS証明書の検証に使うCSCA証明書は公知で、検証するすべての人たちで共有されていなければならない。
実際ドイツのマスターリストから抜き出したと記事に書かれている。

CSCA証明書はパスポートチップから取り出せるんだろうか? 取り出せるんだよね?
そして取り出せるものの、それが正真正銘外務省が発行したものなのかどうかがわからない。だから開示を求めた──という話だよね?

もうひとつはActive Authenticationの対クローンの話。仮にチップ全部が丸っとコピーできてしまうんだったら、すべてのクローンチップはActive Authenticationに対して同様に検証パスしてしまうはずだ。
だからだろう、記事にもこう書かれている。

ICチップの耐タンパー性により秘密鍵のコピーが出来ないことと、 Passive Authenticationにより公開鍵の真正性が検証されていれば、 カードは複製されておらず正規のカードであることを保証できます。

書かれているんだけれど、つまりこれってセキュアメモリー部分がコピーできないことを前提にしているわけだよね? チップ全体のコピーはできないことを前提にしているよね?

DS証明書にで証明される公開鍵、そして改竄防止されたドキュメント類があって、これらは丸っとコピーされてしまう可能性があり、そしてここは防御していない。守っているのはDS証明書内の公開鍵のペアである秘密鍵。
これを対タンパーを施したセキュアメモリーに格納していて、これは絶対に抜かれない・コピーされないようにしている。(たぶん)

検証システムは検証のたびに異なる乱数を提示して、電子旅券はセキュアメモリーに格納された(決して複製はされないと信じる)秘密鍵で乱数を暗号化して返す。検証システムは返された暗号化乱数を公開鍵で復号して、元の乱数に戻ることを確認する。
任意の乱数を公開鍵で復号できるよう暗号化できるのは、秘密鍵をセキュアに格納するその旅券チップただ一つのみ。

そういうことだね?

外務省は旅券チップに格納される秘密鍵を決して知ることなく、旅券チップの公開部に格納する公開鍵に(CSCA証明書のペア秘密鍵で)署名してDS証明書とする。

うむ。

モヤモヤしていたけれど、こうやって自分に向けて解説していてなんとなくモデルは見えた──気がする。
証明書っていうくらいだから失効リストの仕組みも備えているだろうし、だったら日本国外務省が電子旅券発行業務に使っている証明書──印影はこれですと公開するのが筋ってものだろう。(印鑑そのものである秘密鍵は決してお漏らししないよう厳重に守る)

守るべきものがはっきりわかっていない状態で、あれもこれもと守ろうとするとほころびが生じる。セキュリティ業務に関わる人には、ちゃんとした知識を持っていてほしいものだなあ。やっぱり。

この記事が気に入ったらサポートをしてみませんか?