証明書の透明性
証明書の透明性(英: Certificate Transparency、CT)は、デジタル証明書の発行の監視・精査を目的に策定されたインターネット標準である[1]。この標準は、信頼される認証局が署名した証明書を逐次記録し、それを検索する公開のログのシステムを作るというものである。これにより、誤操作や悪意ある証明書の発行を効率よく検知できる[2]。
CTの初版は実験的のステータスであるRFC 6962で規定されている。バージョン2.0はRFC 9162で規定されている。
2021年には、TLS用の証明書でCTが必須となる予定である[3][4]。TLS用以外では引き続きCTは必須ではない。
経緯
[編集]2011年、Comodo Cybersecurityの認証局の再販業者が不正侵入され、別の認証局DigiNotarでも不正な証明書発行が行われた(2011年デジノター事件)[5]。これらの事件は、認証局を取り巻くエコシステムの欠陥への関心を呼び起こし、不正な証明書の発行を禁止または監視する様々な取り組みが促進されていくこととなった。同年、これら証明書発行の問題に対抗するオープンソースのフレームワークをBen Laurie、Adam Langley、Emilia Kasperが作り始めた。それがCTである。2012年、コードネームSunlightとして、IETFに最初のインターネットドラフトが送信された。
利点
[編集]デジタル証明書管理の問題の1つは、不正な証明書がウェブブラウザのベンダーに発見・報告・取り消しされるまで長期間を要することである。CTは、ドメイン名の所有者の知らぬ間に当該ドメインに対する証明書が発行できないようにすることを支援しようというものである。
Online Certificate Status Protocol(OCSP)やConvergenceと同様に、CTはサイドチャネル通信を必要としない[要説明]。また、CTは信頼できる第三者を必要とせず運用できる。
欠点
[編集]記録されたログを調べることで、関係者のみで利用するFQDN(簡単に言うとサーバ名)が外部にさらされてしまう。
構成について
[編集]CTログ
[編集]CTログは証明書・プレ証明書を記録していく台帳である。データ構造としてマークル木が用いられる。証明書・プレ証明書の登録をCTログに要求すると、CTログはその証に署名付き証明書タイムスタンプ(SCT、Signed Certificate Timestamp)を発行する。
CTの目的を達成するため、CTログには以下が求められる。
- ログに送信された証明書・プレ証明書それぞれについて、信頼されるルート認証局の証明書にチェーンしていることの検証
- 有効な署名のチェーンの無い証明書の公開を拒否すること
- 新規に受け入れる証明書からルート証明書までのチェーン全体を保存すること
- 要求に応じて、監査のためにこのチェーンを提示すること
ログとして、完全には有効でなかったり有効期限が切れていたりする証明書を受け入れることもあり得る。
CT monitors(モニター、監視)
[編集]モニターは、記録されていくログを監視する役割のシステムである。また、関心のある証明書の登録の監視を行う場合もある。たとえば、自らの所有するドメインが無断で発行されていないか監視するという利用方法があり、複数社がそのためのサービスを提供している。
CT auditors(監査)
[編集]モニターがログ内の個々の証明書に関心を有する存在である一方、ログ全体の整合性を検証する役割が監査者(auditor)である[6]。
ブラウザベンダーの対応
[編集]Google ChromeおよびSafariでは、HTTPS通信の際にサーバー証明書に対してCTに対応していることを要求する。非対応であれば証明書を信頼せず通信を中断する[7][出典無効]。対応していることの判定として、ウェブサーバーからSCTが得られることを要求している[8]。
Google Chromeの場合、この処理は以下の条件で適用される[9]。
- EV証明書に対しては2015年1月以降に発行されるもの
- その他すべての証明書については2018年5月以降に発行されるもの
- 発行日によらず、HTTPレスポンスにExpect-CTヘッダーフィールドが指定されている場合、その指定に従う
Safariでは、2018年10月15日以降に発行のサーバー証明書に対してCTへの対応を要求している[10]。
歴史
[編集]2013年3月、Googleは最初のCTログサービスを開始した[11]。同年9月、DigiCertがCTを実装する最初の認証局となった[12]。
2015年、Google Chromeは新規のEV証明書に対しCTを必須にした[13][14]。さらに、ドメイン所有者が認知していない証明書発行が計187件確認されたため、Google Chromeは2016年6月1日以降にSymantecが新規発行する証明書すべてにCTを要求し始めた[15][16]。その後、CTを必須とする要件は2018年4月より後(すなわち5月以降)のすべてのTLS証明書に拡大された[4]。
2018年3月23日、CloudflareはNimbusという名称で自身のCTログの開始をアナウンスした[17]。
2018年3月、インターネットドラフト“Certificate Transparency Version 2.0”が公開された[18]。
2019年5月、認証局の1つであるLet's EncryptがOakという名称でCTログを開始した。2020年2月からは承認されたログリストに追加され、すべての公開認証局で使用可能となっている[19]。
CTログを調査するツール
[編集]- crt.sh by Sectigo
- certstream.calidog.io
- ct.cloudflare.com – Merkle Town by Cloudflare
脚注
[編集]- ^ Laurie, Ben; Langley, Adam; Kasper, Emilia (June 2013). Certificate Transparency (英語). IETF. doi:10.17487/RFC6962. ISSN 2070-1721. RFC 6962。
- ^ Solomon, Ben (8 August 2019). “Introducing Certificate Transparency Monitoring”. Cloudflare. 8 August 2019時点のオリジナルよりアーカイブ。9 August 2019閲覧。 “Ah, Certificate Transparency (CT). CT solves the problem I just described by making all certificates public and easy to audit. When CAs issue certificates, they must submit certificates to at least two “public logs.” This means that collectively, the logs carry important data about all trusted certificates on the Internet.”
- ^ Call, Ashley (2015年6月3日). “Certificate Transparency: FAQs | DigiCert Blog” (英語). DigiCert. 2021年4月13日閲覧。
- ^ a b “Certificate Transparency Enforcement in Google Chrome”. Google Groups (7 February 2018). 18 December 2019閲覧。
- ^ Bright, Peter (August 30, 2011). “Another fraudulent certificate raises the same old questions about certificate authorities” (英語). Ars Technica 2018年2月10日閲覧。
- ^ “How Certificate Transparency Works - Certificate Transparency” (英語). 2021年5月15日閲覧。
- ^ “Certificate Transparency(証明書の透明性)”. DigiCert. 2021年7月22日閲覧。 “CT対応しなかった場合、Google ChromeやSafariブラウザを利用してサーバ証明書がインストールされたウェブサイトへアクセスしたユーザには警告が表示されます。”
- ^ “CT(Certificate Transparency) SCT証明書”. ValueSSL. 2021年7月22日閲覧。 “GoogleはCertificate Transparency in Chromeにおいて 以下のように有効期間によるSCTの数を定めています。”
- ^ “Chrome Certificate Transparency Policy”. Google. 2021年7月22日閲覧。
- ^ サイバービジョンホスティング RMS事業部 (2018年6月6日). “Apple 2018年10月15日以降SSL証明書でCTを必須に”. デジタル証明書ニュース. 2021年7月22日閲覧。
- ^ “Known Logs - Certificate Transparency”. certificate-transparency.org. 2015年12月31日閲覧。
- ^ “DigiCert Announces Certificate Transparency Support”. Dark Reading (2013年9月24日). 2018年10月31日閲覧。
- ^ Woodfield, Meggie (December 5, 2014). “Certificate Transparency Required for EV Certificates to Show Green Address Bar in Chrome”. DigiCert Blog. DigiCert. 2021年5月15日閲覧。
- ^ Laurie, Ben (4 February 2014). "Updated Certificate Transparency + Extended Validation plan". [email protected] (Mailing list). 2014年3月30日時点のオリジナルよりアーカイブ。
- ^ “Symantec Certificate Transparency (CT) for certificates issued before June 1, 2016”. Symantec Knowledge Center. Symantec (June 9, 2016). October 5, 2016時点のオリジナルよりアーカイブ。September 22, 2016閲覧。
- ^ Sleevi, Ryan (October 28, 2015). “Sustaining Digital Certificate Security”. Google Security Blog. 2021年5月15日閲覧。
- ^ Sullivan, Nick (23 March 2018). “Introducing Certificate Transparency and Nimbus”. Cloudflare. 23 March 2018時点のオリジナルよりアーカイブ。9 August 2019閲覧。
- ^ Laurie, B. (2018年3月5日). “Certificate Transparency Version 2.0” (英語). tools.ietf.org. 2021年4月13日閲覧。
- ^ “Introducing Oak, a Free and Open Certificate Transparency Log”. Let's Encrypt. 2021年4月13日閲覧。
外部リンク
[編集]- 公式ウェブサイト
- RFC 6962 Certificate Transparency
- RFC 9162 Certificate Transparency Version 2.0
- RFC 9163 Expect-CT Extension for HTTP
- crt.sh: Certificate Transparencyログの検索エンジン
- Thawte CryptoReport[リンク切れ], Search Certificate Transparency logs
- Symantec CryptoReport, Search Certificate Transparency logs - ウェイバックマシン(2018年7月10日アーカイブ分)
- Google Certificate Transparency Report
- Certificate Transparency Monitoring by Facebook