CT(Certificate Transparency)は、発行された SSL/TLS 証明書を公開ログに記録し、不正発行を検出可能にする仕組みです(RFC 6962)。Chrome / Safari など主要ブラウザは 2018 年以降、CT 非対応の証明書を信頼しないため、現在発行されるすべての公的証明書は CT ログに記録されます。
- すべての SSL/TLS 証明書は、発行時に公開ログサーバに記録される
- ログは誰でも閲覧可能。
crt.sh等で検索できる - 内部サブドメインを CT に載せると攻撃者に晒される → 対策が必要
🔧 動作原理
認証局(CA)が証明書を発行する瞬間、その情報は複数の公開ログサーバへ配信されます。
SCT(Signed Certificate Timestamp)の役割
ログサーバは応答として SCT を返し、CA はそれを証明書に埋め込むか、TLS ハンドシェイクで配信します。ブラウザは TLS 接続時に SCT を検証し、CT ログに記録されていない証明書を拒否します。
SCT の配信方式(3パターン)
- 証明書埋め込み ─ X.509 拡張領域に SCT を直接埋め込む(最も一般的)
- TLS 拡張 ─ TLS ハンドシェイク時にサーバが SCT を送信
- OCSP Stapling ─ OCSP レスポンスに含めて配信
📋 CT ログに記録される情報
| 項目 | 内容 | 公開範囲 |
|---|---|---|
| コモンネーム(CN) | 対象ドメイン | 全公開 |
| SAN | Subject Alternative Name(複数ドメイン) | 全公開 |
| 発行者 | 認証局名 | 全公開 |
| 発行日時・有効期限 | NotBefore / NotAfter | 全公開 |
| 公開鍵・シリアル番号 | 証明書の暗号情報 | 全公開 |
| 組織情報 | 組織名・所在地(OV / EV のみ) | 全公開 |
これらは 誰でも閲覧可能です。以下のサービスで任意のドメインの発行履歴を検索できます。
- crt.sh ─ Sectigo 運営の検索インターフェース
- Google Transparency Report ─ Google の公式ダッシュボード
- Cert Spotter(SSLMate)─ 監視・通知サービス
📜 導入の背景
2011 年の DigiNotar 事件をはじめ、認証局の侵害・誤発行による不正証明書が複数発覚した経緯から、Google が主導して標準化されました。
主な不正発行事例
- 2011 年 ─ DigiNotar 事件 ─ オランダの CA が侵害され、
*.google.com等の不正証明書が発行されイラン国内で MITM 攻撃に使用 - 2015 年 ─ Symantec 事件 ─ テスト目的で Google ドメインの証明書を誤発行
- 2016 年 ─ WoSign 事件 ─ ドメイン認証の不備により、複数の不正証明書が発見され信頼削除
こうした事例を受け、すべての発行を公開ログに記録することで、ドメイン所有者は自社ドメインに対して発行された証明書を監視でき、不正発行を即座に検知できる仕組みが構築されました。
⚠️ サブドメイン公開のリスク
CT の副作用として、内部利用を想定したサブドメインを証明書に含めると、その存在がインターネット全体に晒されます。
晒されると問題があるドメイン例
dev.example.com─ 開発環境staging.example.com─ ステージング環境internal.example.com─ 社内ツールadmin.example.com─ 管理画面vpn.example.com─ VPN ゲートウェイ
攻撃者は CT ログを巡回して攻撃対象を発見する手法を常用しています。レッドチーム演習や脆弱性診断でも、CT ログ調査は標準的な偵察手段の 1 つです。
対策
-
ワイルドカード証明書(
*.example.com)の利用個別のサブドメイン名はログに記録されません。
*.example.comという形でのみ記録されるため、devやadminといった具体的なサブドメイン名は秘匿できます。 -
プライベート CA の導入
公開ログを経由しない、組織内専用の認証局を運用します。社内 PC・サーバに自社ルート証明書を配布する運用が必要ですが、内部システムを完全に秘匿できます(FujiSSL にて取扱い)。
🔍 運用上の確認方法
自社ドメインに対して発行された証明書を定期的に監視することを推奨します。
監視サービスの選択肢
| サービス | 料金 | 特徴 |
|---|---|---|
| crt.sh | 無料 | 手動検索。シンプルだが通知機能なし |
| Cert Spotter | 無料〜 | 新規発行を自動通知。API 連携可 |
| Google Transparency Report | 無料 | Google 公式。発行傾向の可視化に強い |
不審な証明書を発見したら
身に覚えのない証明書が発行されていた場合、以下の可能性があります。
- ドメイン乗っ取り(DNS 改ざん)
- サブドメイン乗っ取り(古い DNS レコードの放置)
- CA への不正申請
- 正当な利用(社内別部門が発行など)
まず社内で発行履歴を確認し、心当たりがなければ発行した CA に問い合わせて失効申請を行ってください。
📚 関連 RFC・規格
- RFC 6962 ─ Certificate Transparency(初版)
- RFC 9162 ─ Certificate Transparency Version 2.0
- Certificate Transparency 公式