Cloudflareの証明書の透明性(Certificate Transparency)への取り組みを紹介!

2021.12.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

SSL/TLS証明書(以下証明書)には証明書の監視や監査を行って証明書の信頼性を高める「証明書の透明性(Certificate Transparency;以下CT)」という仕組みがあります。

Certificate Transparency : Certificate Transparency

過去には様々な理由により、認証局(CA)から不正な証明書が発行される事例が発生したことから、証明書の信頼性を高めるために、考案されました。

CAが証明書を発行する際には、パブリックなCTログサーバーに発行履歴を登録し、ログサーバーから受け取った署名付きのタイムスタンプ(SCT;Signed Certificate Timestamp)を埋め込んだ証明書を発行します(埋め込まない方法も有り)。

ブラウザは証明書に埋め込まれたSCTを確認し、存在しなければ証明書を不正とみなします(ブラウザによります)。

また、CAやドメイン管理者にとっては、ログサーバーを監視することで、不正に発行された証明書を早期に検知できます。

※図は https://certificate.transparency.dev/howctworks/ から

試しに dev.classmethod.jp の SCT を確認してみましょう。

Embedded Signed Certificate Timestamp List の Log Operator から

  • Google
  • DigiCert
  • Cloudflare

の SCT が含まれていることがわかります。

このフレームワークは rfc6962 : Certificate Transparency で標準化されています。

本ブログでは、Cloudflareの証明書の透明性への取り組みについて簡単にご紹介します。

CTログオペレーターとしての Cloudflare Nimbus

CAはドメイン所有者から証明書の発行を依頼された時、CTログオペレーターに証明書(厳密には毒入り(Poison Extension)の事前証明書)を登録し、ログオペレーターから受け取った署名入り SCT(Signed Certificate Timestamp)を証明書に埋め込みます。

Cloudflareはこのログオペレーター(Nimbus)を2018年から運用しています。

Introducing Certificate Transparency and Nimbus

Chromeブラウザは2015年からEVドメインの証明書に対してSCTを要求していましたが、2018年4月末以降は発行されたすべて(EV/CV/DV)の証明書に対してSCTを要求するようになり、CTログサーバーの重要性が増したことを受けての対応です。

Cloudflare以外のログオペレーターとしては

などがいます。

CT ログダッシュボード の Merkle Town サービス

CTログはパブリックであり、だれでもアクセス可能です。

日々大量に登録されるCTログサーバー(Nimbus)を俯瞰するダッシュボードサービスが Merkle Townです。

A tour through Merkle Town, Cloudflare's Certificate Transparency dashboard

  • 公開鍵のアルゴリズム
  • 署名アルゴリズム
  • CA別証明書発行割合
  • 主要CAの登録先ログオペレーター

などを俯瞰できます。

最後のメトリックは非常に興味深いです。

AmazonやLet's Encryptのように比較的均等にCTログを登録しているCAが存在する一方で、Geotrust のように偏っているCAも存在します。

CTログの管理に、証明書をリーフとするマークル木(Merkle Tree)が使われているため、サービス名(Merkle Town) に Merkle が含まれています。

証明書発行を通知する Certificate Transparency Monitoring サービス

CTログを利用し、所有するドメインに対して証明書が発行されたときに通知するサービスが「ertificate Transparency Monitoring」です。

管理画面でサイトを選択し、「SSL/TLS」→「Edge Certificates」→ 「Certificate Transparency Monitoring」からオプトインします。

現時点では、パブリックベータで提供されています。

試しに、AWS Certificate Managerで新規SSL証明書を発行すると、20分程度でアラートメールが届きました。

CT黎明期の2015年には、著名企業のEV証明書が不正に発行され、CT ログから検知されるという CT フレームワークの成功事例も有りましたね。

Google Online Security Blog: Improved Digital Certificate Security

最後に

TLS/SSL証明書には、証明書の発行状況を監視・監査する証明書の透明性(Certificate Transparency/CT)という仕組みがあります。

CTを活用することで、意図せず発行された証明書を早期に検知することが期待できます。

本記事では、CloudflareのCTへの取り組みを紹介しました。

なお、CTは不正な証明書の危険性を緩和するものであり、不正な証明書の発行を防ぐわけではない点にご留意ください。

それでは。

参考