本日Cloudflareは、お客様が悪意のある証明書を見つけるのに役立つ、Certificate Transparency Monitoring(証明書の透明性監視、CTモニタリング)(インターンとしての私の夏のプロジェクト)を開始します。CTモニタリングにオプトインしている場合そのユーザーのドメインに対して証明書が発行されると、Cloudflareからメールを送信します。当社ですべての公開ログをクロールして、迅速に証明書を見つけます。CTモニタリングは現在パブリックベータ版で利用可能で、Cloudflare ダッシュボードのCryptoタブで有効にすることができます。

背景

ほとんどのWebブラウザには、アドレスバーにロックアイコンが表示されます。このアイコンは実際はボタンで、あなたがセキュリティに敏感な人または何でもクリックしてみたい人(私は両方です)なら、たぶん以前にクリックしてみたことがあるでしょう。Google Chromeでこの操作を行うと、次のように表示されます。

これは良いお知らせに見えます。Cloudflareブログは有効な証明書を提示しており、利用者のデータの機密は守られ、すべてがセキュアです。しかし本当のところは何を意味するのでしょうか?

証明書

お使いのブラウザは、セキュリティ維持のために、見えないところでなんらかの動作をしています。Webサイト(cloudflare.comなど)を要求すると、WebサイトはIDを証明する証明書を提示します。この証明書は承認印に似ていて、接続がセキュアであることを示しています。つまり、証明書は、コンテンツがユーザーへの転送中に傍受または変更されていないことを証明しています。改変されたCloudflareサイトは、特に外観が本物のCloudflareサイトと同じに見える場合には問題になります。Webサイトとその所有者に関する情報を証明書に含めることで、私たちは保護されます。

インターネット上では世間のような信用の仕組みは機能しないため、このような証明書を利用しています。ご自身のWebサイトの証明書が必要な場合は、認証機関(CA)に申請するか、Cloudflareにサインアップしていただければ当社が代理で行います。CAは、一般の公証人が法律文書にスタンプを押すのと同様に、証明書を発行します。CAでユーザーの身元を確認し、データを確認し、CAの特別な立場を利用してデジタル証明書を付与するのです。一般的なCAには、DigiCert、Let’s Encrypt、Sectigoなどがあります。このシステムは、詐欺師を一貫してチェックしながら、ドメイン所有者と訪問者間の信頼を促進しているという点では良く機能しています。

しかし残念ながら、完璧なものはありません。

CAも間違いを犯すことがあります。まれなケースですが、無謀な動きをすることがあるのです。その時、(本物のように見える)不正な証明書が発行されます。CAがうっかりWebサイトの証明書を発行し、その証明書をあなたが要求していなかった場合は問題です。証明書を受け取ったユーザーは、次の行為を行うことができます。

  1. あなたのサイトへの訪問者からログイン資格情報を盗む。
  2. 異なるコンテンツを提供して、あなたの通常のサービスを中断する。

このような攻撃実際に発生しますので、証明書については注意を払うに越したことはありません。よくあるのが、ドメイン所有者が証明書の追跡に失敗して、予期しない証明書を見つけた際にパニックになってしまうことです。このような状況によりシステム全体が台無しになるのを防ぐ方法が必要です。

証明書の透明性

証明書の透明性(Certificate Transparency:CT)について説明します。CTは、すべての証明書を公開して監査しやすいようにすることで、先に説明したような問題を解決します。CAが証明書を発行する際、CAは少なくとも2つの「パブリックログ」に証明書を送信する必要があります。 つまり、ログは全体として、インターネット上のすべての信頼できる証明書に関する重要なデータを含んでいます。いくつかの企業がCTログを提供しており、Googleも独自のCTログを開始しています。当社はCloudflareのNimbusログを昨年発表しました

ログは本当に大きなもので、数億の証明書レコードを保持しているものも多いです。

ログインフラストラクチャは、ブラウザでのWebサイトのID検証に役立っています。SafariやGoogle Chromeでcloudflare.comをリクエストする際、ブラウザは実際はCloudflareの証明書がCTログに登録されていることを要求しています。ログに証明書が見つからなければ、アドレスバーにロックアイコンは表示されません。代わりに、アクセスしようとしているWebサイトがセキュアでないことがブラウザに表示されます。「NOT SECURE」と記されたウェブサイトにアクセスしようと思いますか?おそらくそうは思わないでしょう。

CTログを監査して不正な証明書を報告するシステムがあります。したがって、ブラウザがログでも信頼されている有効な証明書を見つければ、すべてが安全です。

本日の発表内容

CloudflareはCT業界をリードしてきました。当社はNimbusに加え、Merkle Townと呼ぶCTダッシュボードを開始し、その開発過程について説明しました。 Cloudflareは本日、証明書の透明性監視のパブリックベータ版をリリースします。

CTモニタリングにオプトインしている場合そのユーザーのドメインに対して証明書が発行されると、Cloudflareからメールを送信します。アラートが表示されても慌てないでください。当社はドメイン一致が検出された際に、慎重には慎重を期するという意味でアラートを送信しています。不審な証明書に気付かれる場合もあるでしょう。発行者を確認できないとか、サブドメインが自身が提供しているものではない(例:slowinternet.cloudflare.com)場合も考えられます。アラートは即座に送信されるため、なにか問題が疑われる場合にはCAに連絡を取ることができます。

ここで疑問が出てきます。サービスで既にパブリックログを監査済みなら、なぜアラートが必要なのか?自動的にエラーを検出できないのか?それができないのです。監査は完璧ではありません。証明書の監査の最適任者は、ユーザー自身なのです。ユーザーは自分のWebbサイトを知っています。ユーザーは自分の個人情報を知っています。Cloudflareからは、必要な証明書をわかりやすく提供します。

Cloudflareダッシュボード上でCT Monitoringを有効にしてください。Cryptoタブに“Certificate Transparency Monitoring”カードが表示されています。CTで公開しすぎた場合には、この機能をいつでも無効にすることができます。

BusinessプランまたはEnterpriseプランをご利用の場合は、アラート通知対象者をお知らせください。アラートメールは、ゾーンの所有者(無料およびProのお客様向け)ではなく最大10のEメールアドレスに送信することができます。これは大規模なチームでご利用の場合の、通知にかかる負担を低減するためのサービスです。送信先EメールアドレスはCloudflareアカウントに紐付ける必要はなく、いつでも手作業での追加または削除が可能です。

実際の動作

暗号化チームとSSLチームは懸命な努力によりこれを実現させました。先に述べた優秀なツールをもとにしてさらに発展させました。

  • Markle TownはCTデータのハブデス。当社で信頼できるすべての証明書を処理し、関連する統計データを当社Webbサイトに掲載します。つまり、インターネット上で発行された1つひとつの証明書はCloudflareを経由し、すべてのデータは公開となります(ここではプライバシーの不安はなし)。
  • Cloudflare Nimbusは、完全に当社独自のCTログです。4億以上の証明書が含まれています。
メモ:Cloudflare、Google、DigiCertは、唯一のCTログプロバイダではありません。

発行手順は次のようになります。ある任意の時点で、お客様(または詐欺師)がお客様のWebサイトの証明書を要求します。証明機関(CA)が要求を承認し、証明書を発行します。24時間以内に、CAはこの証明書をCTログ一式に向けて送信します。ここからがCloudflareの担当です。Cloudflareは「クローラー」と呼ばれる内部プロセスを使用して、何百万個の証明書レコードを調べます。Merkle TownはCTログを監視するためのクローラーをディスパッチし、新規証明書を確認します。クローラーは、新しい証明書を見つけると、Merkle Townを通じて証明書全体を取得します。

Merkle Townで証明書を処理する場合は、監視対象ドメインのリストとの照合も行います。CTモニタリングを有効にしている場合は、すぐにアラートが送信されます。これは、Merkle Townの既存のインフラストラクチャなしでは機能しません。また、クローラーは信じられないほど高速です。

証明書アラートを受け取った場合、どうしたらよいですか。

いい質問です。ほとんどの場合、証明書のアラートはルーチンです。証明書は定期的に有効期限が切れて更新されるため、アラートメールの送信は正常な流れです。すべてが正しい(発行元、ドメイン名など)場合は、そのままアラートメールをゴミ箱に捨ててもかまいません。

まれにですが、疑わしいメールが届く場合もあります。そのような場合の詳細サポートをこちらに掲載しています。基本的なプロトコルは以下のとおりです。

  1. CAに問い合わせる(CAは電子メールに"Issuer"として記載されています)。
  2. 証明書を疑わしいと思う理由を説明する。
  3. CAは証明書を失効させます(本当に悪意のある場合)。

Cloudflareにはこちらにフレンドリーなサポートチームも用意しています。CloudflareはCAに登録しておらず、証明書を失効させることはできませんが、証明書管理の知識が豊富なサポートチームがお客様をしっかりサポートします。

将来の見通し

証明書の透過性の話題については、定期的にCloudflareブログに投稿しています。その理由は、ブラウザ市場を支配するChromeとSafariで要求されていることと、インターネットセキュリティで先例となるためです。しかしもっと重要なのは、CTは悪意ある証明書が攻撃に利用される前に特定するのに役立つことです。そのため当社では、自社の証明書検知方法の高機能化および改善を進めていく予定です。

迷うことはありません。今すぐCertificate Transparency Monitoringを有効にしてください。