注意: この記事はLLMによって英語から翻訳されたものです。正確性については保証いたしかねますので、あらかじめご了承ください。 英語の原文はこちら。
今日、ドメインのSSL証明書を発行するたびに、その証明書が Certificate Transparency(CT)ログと呼ばれるものに公開記録されることを知りました。
これは2013年にGoogleによって作られました。 DigiNotar事件(およびその他の事件)を受けてのことで、DigiNotarという認証局(CA)がハッキングされ、中間者攻撃を可能にする目的で多数の不正な証明書が発行されました。
Certificate Transparency(CT)の考え方は、発行されたすべての証明書を公開の追記専用(append-only)ログに記録することで、認証局の監視と監査を可能にすることです。これにより、侵害されたCAに関する問題を迅速に検出し、修正することができます。
これらのログはcrt.shなどのプラットフォームで閲覧できます。(以前からCensysのようなプラットフォームが証明書やドメインを一覧表示していることは知っていましたが、単にウェブをクロールして取得しているだけだと素朴に思っていました😅)
Mozilla FirefoxやGoogle Chromeなどのソフトウェアは、Signed Certificate Timestamp(SCT)を使用して、CTログに含まれていない証明書を拒否します。
通常、認証局はログプロバイダーに連絡してSCTを受け取り、その署名を証明書に埋め込みます。これにより、ソフトウェアはブラウジング時にログに問い合わせることなく、信頼されたCTログのリストに対して署名を検証できます。
たとえば、私のドメイン名について、証明書からその情報を以下のように取得できます。
$ echo | openssl s_client -connect ixonae.com:443 2>/dev/null | openssl x509 -noout -text | grep -A 20 "SCT"
CT Precertificate SCTs:
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 96:97:64:BF:55:58:97:AD:F7:43:87:68:37:08:42:77:
E9:F0:3A:D5:F6:A4:F3:36:6E:46:A4:3F:0F:CA:A9:C6
Timestamp : Feb 10 20:26:14.687 2026 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:DB:E7:79:00:09:79:4F:B3:D6:0B:BA:
0B:E9:3F:BF:AB:CF:DF:78:3E:D0:71:B0:F3:C7:48:26:
57:8B:8C:A1:91:02:21:00:DE:9B:CA:E5:25:48:DE:DA:
25:78:B9:98:96:47:A4:AD:FA:65:C5:9F:47:68:8E:BD:
1F:28:9C:85:BC:EF:FE:CC
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 49:9C:9B:69:DE:1D:7C:EC:FC:36:DE:CD:87:64:A6:B8:
5B:AF:0A:87:80:19:D1:55:52:FB:E9:EB:29:DD:F8:C3
Timestamp : Feb 10 20:26:14.652 2026 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:21:00:B9:D9:26:BC:F4:BA:6F:E5:20:5A:4A:ログは1つだけではなく、複数存在することに注意してください。通常、信頼されたログのセットのみが、信頼されたログプログラムを通じてブラウザに含まれます。
追加リソース
- Introducing Certificate Transparency and Nimbus (Cloudflare)
- Certificate Transparency - How it Works (transparency.dev)
- List of Monitors (transparency.dev)
- RFC 6962 - Certificate Transparency