Certificate Transparencyガチャを作った。

このところ、Certificate Transparency(RFC 6962)について調べている。

これについてはまだ日本語で書かれた解説も少なく、なかなかつかみ所が無くて理解に苦労した。

要するに、発行されるSSL証明書すべてをログDB(CT Log)にガシガシ記録し、みんなが見られるようにしておく。そうして監査ログを作っておき、「多数の目による監視」をして、意図しないニセモノ証明書の発行を防ごう……というのが表向きの目的のようだ。

しかしこのCTにはイロイロと突っ込みどころも多くて、あまりスマートじゃないなぁと私は思っている。とりあえず少し調べてみて、私が「これはどうかなぁ……」と思うのは次のあたり。

  • 証明書にCTログのタイムスタンプ(SCT)を付けるために、本物の証明書と同じシリアルIDを持つPrecertificateを作らないといけない。これはとても気持ち悪い
    • Precertificateと本物のCertificateは同一シリアルIDを持つため、Precertificateは失効(Revoke)させることもできない
    • このためPrecertificateには、実際に利用されないようpoison extensionを入れておくんだけど、それも気持ち悪すぎる
  • 「CTログ登録しないと、ChromeからEV証明書の緑表示を消すよ!」と脅しをかけるようなGoogleの態度がよろしくない
  • あまり外部に公開したくないFQDNも、証明書を作っただけで強制公開されるというのは微妙

しかし、CTはまだ知名度が低すぎるので、まずは簡単に触れるツールがあった方が良い。ということで作ってみた。Certificate Transparencyガチャ。

Certificate Transparencyガチャとは何か

「number: 」のところにCT logのエントリ番号を入れると、そのCertificateを閲覧することができる。

例えば、2015/04/30現在、一番最後のエントリである7352182を入力すると、www.ageru.ne.jpのCERTIFICATEが表示される。

Log Entry: 7352182
Issuer: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Domain Validation CA - SHA256 - G2
Subject: C=JP, OU=Domain Control Validated, CN=www.ageru.ne.jp
-----BEGIN CERTIFICATE-----
MIIFBjCCA+6gAwIBAgISESGzoK6eRVuALX5brYlguRj7MA0GCSqGSIb3DQEBCwUA
MGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTYwNAYD
VQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0aW9uIENBIC0gU0hBMjU2IC0g
RzIwHhcNMTUwNDI4MDkzMzMyWhcNMTYwNjAyMDU1NTIyWjBKMQswCQYDVQQGEwJK
UDEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMRgwFgYDVQQDEw93
......(省略)......
6MrYU4qFxnQhlAa54NMn6BbdEr5YQyCxFBS63usgqTj0IIaOjFU6g9i8ohZwQNG9
OEokLJ7uQrxwezGh9rFQL2vo2lzn87uvyvGjwR/YLozYtbsU3FoPtxDDgT7u07Vw
jdslRjp+DpuPdDo562yLyO83JC4pzgn6ZJTUsxIUhK5QsRmOE/MOJgDJ
-----END CERTIFICATE-----

CT logはURLをポチっと叩けばサクっと簡単に見られるようなお手軽構造ではないので、こういうものがあると便利! ……だと思う。

そして目玉機能が、その下の「GACHA GACHA」機能。「I'm Feeling Lucky」ボタンを押すことで、CT Logからランダムに証明書を抽出して表示することができる。何度も試してみれば、どこかの組織の原則外部公開しない開発用サーバとか、運が良ければ引けるかもしれないぞ! しかもこのガチャ、なんと非課金です。

もう少し細かい話

Certificate Transparencyについて、次回のすみだセキュリティ勉強会で発表します。

是非お越しください……と言いたいところなのですが、既に満員になっちゃいました。次回をご期待ください。

参考リンク

GMO GlobalSignのブログ、Certificate Transparencyとはなにか がとても分かりやすく参考になりました。