Cloudflareでは、すべてのお客様にインターネットアプリケーション用のTLS証明書を無料でプロビジョニングしていることを誇りに思います。現在では、約4,500万件の証明書の発行から導入、更新までのライフサイクル管理を担っています。最も耐障害性に優れた堅牢なプラットフォームを構築するうえで、それが「未来志向」であり、予測不可能な事象に対する弾力性を有していることを望んでいます。
キーの漏洩、脆弱性、大量の失効など、証明書を再発行する原因となる事象には早急な対応が必要です。そうでない場合、お客様の安全性が損なわれるか、オフラインになる可能性があるため、影響を直ちに軽減するための備えが必要です。しかし、どのように対応すれば良いのでしょうか?
バックアップ証明書は、プライマリ証明書とは異なるプライベート キーでラップされ、異なる認証局から発行されたものであり、すぐにデプロイできるように準備されています。
証明書の再発行につながる事象
Cloudflareは毎日証明書を再発行しており、これを「証明書更新」と呼んでいます。証明書には有効期限があるため、Cloudflareでは、証明書の有効期限が間もなく切れることを確認すると、新しい証明書更新のオーダーを開始します。こうすることで、証明書の有効期限が切れる頃には、すでに更新された証明書がデプロイされ、TLSの終了に向けて使用する準備が整います。
残念ながら、すべての証明書の更新が有効期限別に開始されるわけではありません。キーの安全性が損なわれるといった、予期せぬ事態が証明書の更新につながる場合があります。この場合、新しいキーを発行する必要があるため、対応する証明書も発行されるからです。
キーの安全性が損なわれる
キーの漏洩とは、秘密情報の暗号化・復号化に使用するプライベート キーを、権限のない人物やシステムが入手することであり、セキュリティ担当者にとって最悪の悪夢です。キーの漏洩は、Heartbleedのような脆弱性の結果、システムのバグによってプライベート キーが流出することがあります。また、不正な従業員が不正な情報にアクセスするなど、悪意のある行為の結果である場合もあります。キーの漏洩が発生した場合、(1)直ちに新しいプライベート キーを発行し、(2)新しい証明書をデプロイし、(3)古い証明書を失効させることが重要です。
Heartbleedの脆弱性の問題
2014年、Heartbleed脆弱性の問題が発表されました。つまり、一般的な暗号化ライブラリであるOpenSSLの影響を受けるバージョンを実行しているあらゆるサーバーのTLS証明書のプライベート キーを、攻撃者が抽出することができることが判明したのです。私たちは バグにパッチを適用し、その後、キーはどれも漏れていなかったものの、予防策として、すべてのお客様のプライベート キーとTLS証明書を迅速に再発行しました。Cloudflareの迅速な対応により、お客様データの流出を防ぐことができました。
Heartbleedの問題は警鐘を鳴らしました。当時は、Cloudflareの規模は桁違いに小さかったためそれで済みました。現在の規模で同様の脆弱性が発生していたら、全てのお客様の証明書を再発行するのに数時間どころか数週間かかることでしょう。
バックアップ証明書があれば、短期間で大量に再発行する心配はありません。すでに証明書をお持ちのお客様はすぐにデプロイすることができます。さらに、バックアップ証明書はプライマリ証明書とは異なるキーでラップされているため、キーの漏洩による影響も受けません。
キーの漏洩は、証明書を大規模に再発行する必要がある主な理由の1つです。しかし、認証局による大量の失効など、他の事象によっても再発行が必要になることがあります。
CAからの大量失効
現在では、認証局/ブラウザフォーラム(CA/B Forum)が、証明書に関するルールや基準を設定する管理団体となっています。CA/B Forumが定めた基本要件のひとつに、認証局はキーが漏洩する危険性がある証明書を24時間以内に失効させる必要があると記されています。証明書の不正使用または認証局の証明書ポリシー違反など、緊急性の低い問題については、証明書を5日以内に失効させる必要がある。いずれのシナリオにおいても、証明書は、短期間で認証機関により失効され、証明書の即時再発行が必要となります。
認証局による大量失効は一般的ではありませんが、ここ数年、数件の失効が発生しています。最近では、Let's Encryptが、約270万件の証明書を失効させました。これは、DCVチャレンジの実装に準拠していなかったことが判明したためです。この際は、Cloudflareの顧客への影響はありませんでした。
また、利用している認証局のひとつが、CA/Bフォーラムの基準に準拠していない検証トークンに基づいて証明書を更新していたことが判明しました際には、Cloudflareが管理する約5,000のドメインに影響を与える大量失効が発動されました。弊社はお客様およびCAと協力し、失効前に新しい証明書を発行し、影響を最小限に抑えました。
私たちはミスが起こることを理解していますし、幸運なことに、これらの問題が発生したとき、私たちのエンジニアリングチームは迅速に問題を解決し、お客様に影響を与えることがなかったのです。しかし、それだけでは十分ではありません。4,500万枚の証明書が失効したとしてもお客様に影響が生じないようにするために、当社のシステムは将来にわたっても安全でなければならないのです。バックアップ用の証明書があれば、どのような規模であっても、大量の再発行に対応することができます。
認証局による大量失効に対抗するため、バックアップ証明書はすべてプライマリ証明書とは異なる認証局から発行する予定です。これは、私たちのCAのいずれかが大量失効を行った場合の保護レイヤーを追加するもので、これが開始されると、時限爆弾のようになります。
証明書更新時の課題
スケール大きな力には、大きな責任が伴う
Heartbleedの脆弱性が露呈したときには、約10万枚の証明書を再発行する必要がありました。当時、Cloudflareにとって、これは問題ではありませんでした。今は数千万枚の証明書をお預かりしています。当社のシステムがこの規模に対応し、認証局パートナーもこの規模に対応できるようにすることが重要なのです。緊急時には、自分たちが制御できないシステムには依存したくありません。そのため、前もって証明書を発行しておくことが重要です。そうすることで、災害時には、バックアップ用の証明書を配備することだけを考えるだけで良くなります。
DCVを完成させるための手動介入
また、証明書の再発行に伴う課題として、DCV (Domain Control Validation) がある。DCVは、認証局が証明書を発行する前に、ドメインの所有権を検証するために使用される検査です。Cloudflareを導入する際、お客様はCloudflareをDNSプロバイダーとして委任することもできますし、現在のDNSプロバイダーを維持したままCloudflareをプロキシとして使用することも可能です。
CloudflareがドメインのDNSプロバイダーとして機能する場合、お客様に代わってDCV(Domain Control Validation)レコードを追加することができます。これにより、証明書の発行と更新のプロセスが非常にシンプルになります。
DNSプロバイダーとしてCloudflareを使用していないドメイン(私たちは パーシャルゾーン と呼んでいます)は、DCVの完了を他の方法に頼らざるを得ません。これらのドメインが当社経由でトラフィックをプロキシする場合、当社のエッジからHTTP DCVトークンを提供し、そのドメインに代わってHTTP DCVを完了させることができます。しかし、トラフィックをプロキシ化する前に証明書の発行を希望するお客様は、手動でDCVを完了させる必要があります。Cloudflareが何千、何百万という証明書を再発行しなければならないが、お客様に代わってDCVを完了できない場合、手動での介入が必要になります。DCVの完了は困難な作業ではありませんが、緊急時、わずかな時間枠、高いリスクを伴う場合に、顧客に頼るべきものではありません。
そこで登場するのがバックアップ証明書です。今後、証明書の発行は、プライマリCAからの証明書とバックアップ証明書の2つの注文が発生することになります。お客様に代わってDCVを完成させることができたら、両方のCAについて完成させる。
現在、バックアップ証明書の発行は、CloudflareをAuthoritative DNSプロバイダーとして使用しているドメインに限定されています。将来的には、部分的なゾーンのバックアップ証明書を発注する予定です。つまり、DCVを完了できないバックアップ証明書については、対応するDCVレコードをお客様にお渡しして、証明書を発行してもらうということです。
バックアップ証明書導入計画
この度、CloudflareをAuthoritative DNSプロバイダとしてご利用いただいているFreeのお客様向けに、 ユニバーサル証明書の注文において、バックアップ証明書のデプロイを開始したことをお知らせします。バックアップ証明書の注文数は徐々に増加しており、今後数週間で、Free、Pro、Bizアカウントで開始されるすべての新しいユニバーサル証明書パックの注文に、プライマリ証明書とは異なるキーでラップされた、異なるCAから発行されたバックアップ証明書が含まれるようになると予想されます。
4月下旬より、エンタープライズのお客様向けにバックアップ証明書の発行を開始いたします。エンタープライズのお客様で、バックアップ証明書についてご質問がある場合は、アカウントチームまでお問い合わせください。
次のページバックアップ用証明書
現在、 ユニバーサル証明書がパイプラインにある証明書の72%を占めています。しかし、私たちはフルカバレッジを望んでいます。そのため、バックアップ証明書のパイプラインを構築し、アドバンスト証明書とSSL for SaaS証明書をサポートする予定です。将来的には、お客様が自分でアップロードした証明書のバックアップ証明書も発行し、お客様が信頼できるバックアップを確保できるようにします。
また、今後はバックアップ証明書を瞬時にデプロイできるようなパイプラインの整備を進め、緊急時にもお客様の安全なオンライン環境を確保できるようにしてまいります。Cloudflareのミッションは、より良いインターネットを構築するための支援をすることです。バックアップ証明書によって、どんな災害にも対応できる安全で信頼性の高いインターネットを構築できるようお手伝いしています。当社の仕事に興味をお持ちですか?採用者を募集しています。