zkat’s diary

技術ブログ

Google Chromeで表示されるCertificate TransparencyのLog IDがKnown Logsに存在するか確認する方法

はじめに

Google Chromeでは、デベロッパーツールにて以下のように、閲覧しているウェブサイトの証明書がどのCTログサーバーに登録されているのか表示することができます。 例えば、google.comにて表示しています。

f:id:zkat:20191123144155j:plain
certificate-transparency-google.com

Google Chromeが自身のCTポリシーに準拠していると判断した対象のCTログサーバーのリスト(Known Logs)は、次の通りjsonにて公開されています。 www.certificate-transparency.org

確認方法

Chromeにて表示したgoogle.comのLog IDに注目すると、以下のようになっています。

Log name Log ID
Google 'Argon2020' log B2 1E 05 CC 8B A2 CD 8A 20 4E 87 66 F9 2B B9 8A 25 20 67 6B DA FA 70 E7 B2 49 53 2D EF 8B 90 5E
Cloudflare 'Nimbus2020' Log 5E A7 73 F9 DF 56 C0 E7 B5 36 48 7D D0 49 E0 32 7A 91 9A 0C 84 A1 12 12 84 18 75 96 81 71 45 58

Known Logsのjsonをみると、log_id部分がbase64にてエンコードされていますので、16進数をbase64に変換しましょう

$ echo -en "\xB2\x1E\x05\xCC\x8B\xA2\xCD\x8A\x20\x4E\x87\x66\xF9\x2B\xB9\x8A\x25\x20\x67\x6B\xDA\xFA\x70\xE7\xB2\x49\x53\x2D\xEF\x8B\x90\x5E" | base64
sh4FzIuizYogTodm+Su5iiUgZ2va+nDnsklTLe+LkF4=
$ echo -en "\x5E\xA7\x73\xF9\xDF\x56\xC0\xE7\xB5\x36\x48\x7D\xD0\x49\xE0\x32\x7A\x91\x9A\x0C\x84\xA1\x12\x12\x84\x18\x75\x96\x81\x71\x45\x58" | base64
Xqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVg=

以下の通り、Known Logsに記載されていることを確認できました。

{
          "description": "Google 'Argon2020' log",
          "log_id": "sh4FzIuizYogTodm+Su5iiUgZ2va+nDnsklTLe+LkF4=",
          "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Tx2p1yKY4015NyIYvdrk36es0uAc1zA4PQ+TGRY+3ZjUTIYY9Wyu+3q/147JG4vNVKLtDWarZwVqGkg6lAYzA==",
          "url": "https://ct.googleapis.com/logs/argon2020/",
          "mmd": 86400,
          "state": {
            "usable": {
              "timestamp": "2018-06-15T02:30:13Z"
            }
          },
          "temporal_interval": {
            "start_inclusive": "2020-01-01T00:00:00Z",
            "end_exclusive": "2021-01-01T00:00:00Z"
          }
        },
略
        {
          "description": "Cloudflare 'Nimbus2020' Log",
          "log_id": "Xqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVg=",
          "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE01EAhx4o0zPQrXTcYjgCt4MVFsT0Pwjzb1RwrM0lhWDlxAYPP6/gyMCXNkOn/7KFsjL7rwk78tHMpY8rXn8AYg==",
          "url": "https://ct.cloudflare.com/logs/nimbus2020/",
          "mmd": 86400,
          "state": {
            "usable": {
              "timestamp": "2018-06-15T02:30:13Z"
            }
          },
          "temporal_interval": {
            "start_inclusive": "2020-01-01T00:00:00Z",
            "end_exclusive": "2021-01-01T00:00:00Z"
          }
        },