Saltar al contenido principal

Transparencia de certificados - Registro público de certificados TLS

Lectura de 2 min aprox.

証明書透明性 (Certificate Transparency, CT) とは、SSL/TLS 証明書の 発行をすべて公開ログに記録し、誰でも監査できるようにする仕組みです。認証局 (CA) が 不正な証明書を発行した場合に、ドメイン所有者やブラウザベンダーが 速やかに検知できることを目的としています。Google のエンジニア Ben Laurie と Adam Langley が 2013 年に RFC 6962 として提案し、現在では Chrome をはじめとする主要ブラウザが CT への対応を必須としています。

DigiNotar 事件と CT 誕生の背景

CT が生まれた直接のきっかけは、2011 年のオランダの認証局 DigiNotar の 侵害事件です。攻撃者が DigiNotar のシステムに侵入し、google.com を 含む 500 件以上の不正な証明書を発行しました。これらの証明書はイランの ユーザーに対する中間者攻撃に使用され、Gmail の通信が傍受されたと されています。

この事件は、PKI (公開鍵基盤) の 根本的な弱点を露呈しました。どの認証局でも任意のドメインの証明書を 発行でき、ドメイン所有者がそれを知る手段がなかったのです。DigiNotar は 信頼を失い廃業に追い込まれましたが、同様の事件の再発を防ぐ技術的な 仕組みとして CT が設計されました。

CT ログの仕組み - Merkle ツリー

CT ログは、暗号学的なデータ構造である Merkle ツリー (ハッシュツリー) で 管理されます。新しい証明書がログに追加されるたびにツリーが更新され、 過去のエントリを改ざんするとハッシュ値の 不整合が発生して即座に検出できます。

ルートハッシュ (H1234)
H12 = hash(H1 + H2)H34 = hash(H3 + H4)
証明書 1証明書 2証明書 3証明書 4

1 つの証明書を改ざんすると、ルートハッシュまで連鎖的に変化する

CT ログは複数の独立した組織 (Google、Cloudflare、DigiCert など) が 運営しており、認証局は証明書を発行する際に少なくとも 2 つ以上のログに 登録する必要があります。ログの運営者が結託しない限り、不正な証明書の 隠蔽は極めて困難です。

SCT (Signed Certificate Timestamp) の検証

認証局が証明書を CT ログに登録すると、ログサーバーから SCT (Signed Certificate Timestamp) が返されます。SCT は「この証明書がログに記録 された」ことの暗号学的な証明であり、ブラウザは TLS ハンドシェイク時に SCT を検証します。

CA
証明書発行
CT ログ
記録 + SCT 発行
Web サーバー
証明書 + SCT を配信
ブラウザ
SCT を検証

SCT の配信方法は 3 つあります。証明書自体に SCT を埋め込む方法 (X.509 v3 拡張)、TLS ハンドシェイクの拡張で送信する方法、OCSP Stapling で送信する方法です。Let's Encrypt をはじめとする主要な 認証局は、証明書への埋め込み方式を採用しています。

Chrome の CT 必須化 (2018 年)

Google Chrome は 2018 年 4 月 (Chrome 68) 以降、すべての新規発行 証明書に CT 対応を必須としました。SCT が付与されていない証明書で HTTPS 接続すると、Chrome はセキュリティ警告を表示します。この決定は CT の普及を決定的に加速させ、現在では事実上すべての公開認証局が CT ログへの登録を標準プロセスに組み込んでいます。デジタル証明書の 信頼性を支える基盤として、CT は不可欠な存在になりました。

不正証明書の検知と実務での活用

CT ログは crt.sh や Google の Certificate Transparency Search で 誰でも検索できます。ドメイン管理者は自社ドメインの証明書発行を モニタリングすることで、不正な証明書の発行を早期に検知できます。 実際に、2017 年に Symantec 傘下の認証局が Google のドメインに対して 不正なテスト証明書を発行した事実が CT ログから発覚し、最終的に Symantec の認証局事業が DigiCert に売却される事態に至りました。

CT ログの監視は、公開鍵暗号に 基づく PKI の信頼モデルを補完する重要な仕組みです。暗号化の基礎フィッシング対策ブラウザのパスワード安全性の 記事もあわせて参照してください。

暗号技術の関連書籍は Amazonでも探せます。

Términos relacionados

¿Te resultó útil este artículo?

XHatena