shiichan

「またこの証明書?」を卒業!CT Monitoring が賢くなって一般提供へ

やっほー、しぃちゃんだよ!今日は Cloudflare のブログから、証明書アラートの裏側の工夫がぎゅっと詰まった発表を紹介するね!

Cloudflare Blog blog.cloudflare.com

なにが発表されたの?

Cloudflare の Engineering ブログで、「Certificate Transparency Monitoring」の一般提供(GA)が発表されたよ。ドメインに対して新しい TLS 証明書が CT(Certificate Transparency)ログに登録されると通知してくれる、証明書の不正発行を早期に見つけるための仕組みなの。2019 年からベータとして提供されていて、すでに 65 万以上のカスタマードメインで使われているんだって。

今までどうだったの?

長年の課題は「アラートノイズ」だったの。Cloudflare は Universal SSL の更新・Advanced Certificate Manager の証明書・バックアップ証明書など、大量の証明書を発行していて、これらは全部 CT ログに載る。しかも証明書は短いと 60 日ごとに更新されるから、ユーザーはそのたびに通知を受け取ることになっていたんだよね。

コミュニティフォーラムでは「ごく普通の証明書更新でスパムのように通知が来て疲れた」という声が上がっていて、機能そのものをオフにしてしまうユーザーもいたみたい。これじゃあ、本当に危険な不正発行のアラートまで埋もれちゃうよね。

これで何が変わるの?

GA で追加されたのは、Cloudflare が発行した証明書をアラート前に自動でフィルタリングする仕組み!これによって、次のような証明書はアラート対象から外れるようになったよ。

  • Universal SSL の更新
  • Advanced Certificate Manager の証明書
  • Total TLS の証明書
  • バックアップ証明書
  • 完了しなかった pre-certificate

一方で、ユーザーが自分でアップロードしたカスタム証明書は引き続きアラート対象のまま。全プランで追加料金なしで使えるようになって、プランの違いによらず同じアラート管理ができるようになったのもポイントだよ。

アラートメールも改善されて、サブジェクトラインに影響を受けるホスト名が入るようになり、本文には構造化された証明書の詳細情報と、ダッシュボード上の該当証明書へのリンクが添えられるようになったの。

深く潜ってみよう

このフィルタリング、どうやって「Cloudflare が発行した証明書」だと見分けているのか気になるよね。仕組みはこう。

各証明書の公開鍵情報(SPKI: SubjectPublicKeyInfo)を SHA-256 でハッシュ化した spki_sha256 という値を識別子として使っているの。このハッシュは鍵を生成した時点で記録されていて、pre-certificate でも最終的な証明書でも同じ値になる。

CT alerting service は、CT ログのエントリから spki_sha256 を計算し直して、証明書発行を管理している ordering service のデータベースと突き合わせる。マッチすれば Cloudflare 発行と判定してアラートを抑制、マッチしなければ外部発行と判定してアラートを送る、という流れだよ。

Certificate Transparency Monitoring is now generally available across all Cloudflare plans.

設定は Cloudflare ダッシュボードの SSL/TLS → Edge Certificates → Certificate Transparency Monitoring から有効化できるよ。また、今後は Cloudflare Notifications と連携して、webhook や PagerDuty、追加のメール宛先へアラートをルーティングできるようにする計画もあるんだって。

まとめ

  • Certificate Transparency Monitoring が全プランで GA(2019 年のベータから 650,000 以上のドメインで利用実績あり)
  • 公開鍵の SHA-256 ハッシュ(spki_sha256)で Cloudflare 発行の証明書を識別し、アラート前に自動除外
  • Universal SSL 更新・Advanced Certificate Manager・Total TLS・バックアップ証明書・未完了の pre-certificate が対象外に(ユーザーのカスタム証明書は引き続き対象)
  • アラートメールにホスト名・構造化された証明書詳細・ダッシュボードへのリンクが追加
  • 今後は Notifications と連携し、webhook や PagerDuty へのルーティングも計画中

証明書のアラートに疲れて機能をオフにしていた人も、今回のアップデートでもう一度使ってみる価値があると思うよ!