Cloudflareの目標の1つは、お客様のニーズに合ったセキュリティを実現できる機能を提供することです。これをSSL/TLSの領域に当てはめると、TLSの最低バージョンを指定できる機能、対応する暗号スイートのリストを制限する機能を提供することです。従来、これらの設定は「オール・オア・ナッシング」で、ドメイン全体に適用されるものでした。ドメイン全体で同じ設定を適用することは、一部のユーザーにとっては理想的ですが、サブドメイン間で異なる設定を希望するユーザーにとっては、きめ細かさに欠けます。
この理由から、本日より、ホスト名ごとにTLSを設定することができるようになりました。
最新のプロトコルを使用するメリットとデメリット
理想的な世界であれば、何の障害もなく、すべてのドメインが最も安全である最新のプロトコルを使用するように更新することができます。残念ながら、そうではありません。新しい基準やプロトコルは、それを取り入れることで効果が期待できる場合に採用する必要があります。TLS 1.3は2018年4月にIETFによって標準化されました。TLS 1.2がサポートしていた脆弱な暗号アルゴリズムを排除し、必要なラウンドトリップを2回から1回にすることでパフォーマンスを向上させました。ユーザーがTLS 1.3の恩恵を受けるには、ブラウザやデバイスがこの最新のTLSバージョンに対応している必要があります。最新のブラウザやデバイスであれば、OS側が動的に更新して新しいプロトコルをサポートするように構築されているため問題ありません。しかし、当然ながらレガシーなクライアントやデバイスは、このような考えのもと構築されていません。2015年以前は、新しいプロトコルや標準は数か月や数年ではなく、数十年かけて開発されたため、クライアントはその時点で使用されていた1つの標準のみをサポートした状態で出荷されていました。
Cloudflare Radarを見ると、トラフィックの約62.9%でTLS 1.3が使用されていることがわかります。これは5年前に標準化されたばかりのプロトコルとしては非常に大きな数字です。ですが、同時にこれはインターネットのかなりの部分が未だTLS 1.2以下を使い続けていることも意味しています。
同じメリット/デメリットは、デジタル署名アルゴリズムにも当てはまります。TLS用のECDSAは、RSAより何年も後の2006年に標準化されました。ECDSAはRSAよりも高いセキュリティレベルを提供し、使用する鍵長もより短いため、リクエストのパフォーマンスが向上します。ECDSAを使用するには、ドメイン所有者はECDSA証明書を取得して提供する必要があり、接続するクライアントは楕円曲線暗号(ECC)を使用する暗号スイートをサポートする必要があります。現在では、一般に信頼されている認証局のほとんどがECDSAベースの証明書をサポートしていますが、普及が遅れていることから、多くのレガシーシステムはRSAのみをサポートしています。つまり、アプリケーションをECCベースのアルゴリズムのみに制限してしまうと、古いクライアントやデバイスを使用している人からのアクセスを妨げてしまう可能性があります。
メリット/デメリットのバランスの調整
企業は、セキュリティとアクセス性の適切な中間地点を見つけることが重要です。
ほとんどの企業は、ブランドを維持するために、すべてのアセットを1つのドメインで展開しています。ルートドメイン(例:example.com)は、会社やそのミッション、提供する製品やサービスがわかるように、宣伝を含むWebサイトとして使用するのが一般的です。この同じドメインの下に、会社のブログ(例:blog.example.com)、管理ポータル(例:dash.example.com)、API Gateway(例:API.example.com)などを置きます。
宣伝用のWebサイトとブログは、「利用者の情報を収集しない静的なサイト」という点で似た性質を持っています。一方、管理ポータルとAPI Gatewayは、保護が必要な機密データの収集・提示を行います。
どの設定を導入するかを検討する際には、やり取りが発生するデータとユーザーベースを考慮する必要があります。宣伝用のWebサイトとブログには、誰でもアクセスできる必要があります。サポートするクライアントのために最新のプロトコルに設定することはできますが、古いデバイスからアクセスする利用者を制限したいわけではありません。
管理ポータルとAPI Gatewayは、行き来するデータが最高の保護を受けるように設定する必要があります。つまり、既知の脆弱性を持つ安全性の低い規格のサポートを終了し、新しい安全なプロトコルを使用すべきであることを意味します。
この設定を実現するには、ドメイン内の各サブドメインごとに個別に設定できる必要があります。
ホスト名ごとのTLS設定が可能になりました!
CloudflareのAdvanced Certificate Managerをご利用のお客様は、ドメイン内のホスト名ごとにTLS設定を行うことができます。これにより、HTTP/2の有効化、特定のホスト名で使用できるTLSの最低バージョンと対応する暗号スイートを指定することができます。特定のホスト名に設定した内容は、ゾーンレベルの設定よりも優先されます。新機能では、ホスト名とそのワイルドカードレコードを組み合わせて別の設定を適用させることができます(例:example.comと、*.example.comでそれぞれ別の設定を適用させることができます)。
例えば、ドメインで使用する既定のTLSの最低バージョンをTLS 1.2にして、ダッシュボードとAPIサブドメインの最低TLSバージョンをTLS 1.3に指定したいとします。下図のように、Cloudflareダッシュボードでゾーンレベルの最低TLSバージョンを1.2に指定します。次に、ダッシュボードとAPIサブドメインの最低TLSバージョンをTLS 1.3にするために、特定のホスト名と設定を使用して、ホスト名ごとのTLS設定APIエンドポイントを呼び出します。
これらはすべて、本日よりAPIエンドポイントからご利用いただけます!また、ホスト名ごとのTLS設定の使用方法について詳しく知りたい方は、開発者向けドキュメントをご参照してください。