プロンプトとコンテキスト
あなたはCDNの背後にあるマルチドメインサービスを運用しています。セキュリティ部門は、TLSが依然としてClientHelloで平文のSNIを露出させていることに気づき、Encrypted Client Hello(ECH)の評価を行いたいと考えています。クライアントがECH構成情報をどのように取得するか、外部および内部ClientHelloの役割、CDNとオリジン間の境界の位置、古いクライアントのフォールバック方法、およびデプロイの問題を診断するためのメトリクスについて説明してください。
面接官がテストしていること
面接官は、ECHをVPN、暗号化DNS、完全なトラフィックの匿名化としてではなく、TLS拡張として説明することを求めています。クライアントは、サーバーが公開した公開鍵を使用して内部ClientHelloを暗号化し、クライアント向けサーバーに外部ClientHelloを送信します。外部名はパブリックなルーティングに使用されます。質の高い回答には、HTTPS/SVCBまたは同等の構成配信、CDNおよびクライアントのサポート、ならびにIPアドレス、トラフィックサイズ、タイミング、その他のサイドチャネルが依然として可視であるという事実が含まれます。
最初に確認すべき明確化のための質問
オブザーバーとプライバシーの目標
脅威がパッシブなオブザーバー、企業のプロキシ、またはアクティブな中間者攻撃(man-in-the-middle)のいずれであるか、またゲートウェイが引き続きドメインポリシーを適用する必要があるかどうかを明確にします。オブザーバーごとに、IP、DNS、外部名、タイミングの異なる組み合わせが見えます。
トポロジと鍵の境界
ECHがCDNエッジまたは自己管理のエントリポイントで終端されるかどうか、およびオリジンで引き続き独立したTLSが必要かどうかを確認します。ECH秘密鍵のローテーション、配布、失効の責任者を割り当てます。CDNの公開鍵はオリジン証明書ではありません。
互換性とフォールバックポリシー
対象となるブラウザ、オペレーティングシステム、DoH/DoT、HTTP/3、および企業のミドルボックスを確認します。平文SNIへのフォールバックは互換性を回復しますが、オブザーバーからの可視性も回復するため、ポリシーとメトリクスによってそれがいつ許容されるかを決定する必要があります。
30秒の回答フレームワーク
「ECHは、サーバーが公開したECH公開鍵を使用して内部ClientHelloを暗号化し、実際のSNIと機密性の高い拡張機能を内部に配置します。外部ClientHelloはパブリック名を保持し、クライアント向けサーバーが接続をルーティングできるようにします。クライアントは通常、HTTPS/SVCBレコードまたはブラウザポリシーを介して構成情報を取得し、エッジは内部メッセージを復号してからTLS 1.3を続行します。障害発生時、ポリシーに基づいて再試行または中止される場合があります。平文SNIフォールバックはプライバシーが弱くなります。ECHは依然としてIP、DNS、タイミング、トラフィック量を隠蔽しないため、DNS、CDN、監視、鍵ローテーションとともに評価する必要があります。」
ステップごとの詳細な回答
ステップ 1: ECH構成情報を公開する
サービスは、公開鍵、バージョン、およびカプセル化メタデータを含むECHConfigを公開します。クライアントは、信頼できるHTTPS/SVCBレコードまたはブラウザ構成からこれを取得し、そのソースを検証します。構成情報にはバージョニングと有効期限が必要です。古い鍵が無期限にキャッシュされたままになってはなりません。
ステップ 2: 外部および内部ハンドシェイクを構築する
クライアントは、実際のSNI、ALPN、および機密性の高い拡張機能を、ECH公開鍵で暗号化された内部ClientHelloに配置します。外部ClientHelloはパブリック名と暗号化されたペイロードを保持します。その名前は、最終的なサービスドメインを明らかにするのではなく、ECHに対応したクライアント向けサーバーを指します。
ステップ 3: エッジでメッセージを処理する
エッジは外部ClientHelloを受信し、ECH秘密鍵を試行します。成功した場合、内部パラメータから証明書とルーティングを選択します。失敗した場合、再試行構成情報を送信するか、TLSルールに従って終了します。エッジからオリジンへのTLSは独立したセキュリティ境界のままであり、ECHはオリジン認証を置き換えるものではありません。
ステップ 4: フォールバックとアタックサーフェスを処理する
構成情報の期限切れ、互換性のないバージョン、DNSの改ざん、またはブロックを行うミドルボックスによって、ECHが妨げられる可能性があります。サーバーは信頼できる再試行構成情報を公開し、クライアントに再試行させることができます。平文SNIフォールバックが許可されている場合は、その範囲を限定してログに記録します。ダウングレードや誤ルーティングが発生する可能性があるため、任意の再試行構成情報を成功の証拠として扱ってはなりません。
ステップ 5: 何が隠蔽され、何が隠蔽されないかを明示する
ECHは主にClientHello内のサイト名と関連する拡張機能を隠蔽します。オブザーバーは依然として、DNSクエリ、外部名、宛先IP、ハンドシェイクのタイミング、接続数、パケットサイズ、およびその後のトラフィックパターンを確認できる場合があります。一意の外部名や小規模なデプロイは、匿名性セットを縮小させる可能性があります。
ステップ 6: 鍵と運用を管理する
ECH秘密鍵に対して、ローテーション、二重承認、ロールバック、および緊急失効手順を設定します。公開時間、クライアントの受け入れ率、再試行率、復号失敗、TLSアラート、およびエッジノード間のバージョンスキューを監視します。内部SNIを含まない診断識別子を使用します。ログによって、ECHが保護しようとしていた機密データが再現されてはなりません。
ステップ 7: 段階的なロールアウトと検証
制御されたドメインおよびサポートされているクライアントでECHをカナリアリリースします。成功、フォールバック、中止、ハンドシェイクラテンシ、HTTP/2またはHTTP/3のネゴシエーション、およびオリジンエラーを比較します。期限切れの構成情報、誤った秘密鍵、ミドルボックス、およびマルチノードローテーションをテストし、宣言されたポリシーの下で古いクライアントが引き続き動作することを確認します。
質の高い模範回答
ECHは、ECHConfig公開鍵を使用して内部ClientHelloを暗号化するTLS 1.3拡張機能です。実際のSNIとALPNは内部メッセージに残り、外部ClientHelloはパブリック名と暗号化されたペイロードを保持します。ECH対応のCDNエッジは内部メッセージを復号し、証明書とルートを選択します。エッジからオリジンへのTLSは分離されたままであり、ECHはオリジン認証を置き換えるものではありません。
私ならまず、脅威モデル、DNS/SVCB配信、CDN鍵の所有権、およびフォールバックポリシーを定義します。期限切れの構成情報、バージョンの不一致、またはミドルボックスの干渉により、信頼できる再試行がトリガーされる場合があります。平文SNIフォールバックは明示的なポリシーによってのみ許可され、計測されます。ECHはハンドシェイクフィールドを隠蔽しますが、IP、DNS、タイミング、またはトラフィック量は隠蔽しません。ロールアウト中は、バージョニングされた構成情報と可逆的な鍵ローテーションを使用して、受け入れ率、再試行、復号失敗、レイテンシ、およびオリジンエラーを監視します。
よくある間違い
- 間違い: ECHによってすべてのアクセスが匿名になると想定すること。 → 失敗する理由: IP、DNS、タイミング、トラフィック量によって依然として接続が関連付けられる可能性があります。 → 修正方法: DNSやCDNのデプロイを含め、匿名性セットと残存するサイドチャネルについて説明します。
- 間違い: ECH秘密鍵をオリジン証明書の鍵として扱うこと。 → 失敗する理由: エッジの復号とオリジン認証は別個の境界です。 → 修正方法: 鍵のライフサイクル、権限、およびローテーションを分離します。
- 間違い: ECH失敗後に無条件でフォールバックすること。 → 失敗する理由: 攻撃者が意図的に障害を引き起こし、プライバシーをダウングレードさせる可能性があります。 → 修正方法: アラートを伴う再試行、中止、およびフォールバックのポリシーを定義します。
- 間違い: デバッグのために完全な内部ClientHelloをログ出力すること。 → 失敗する理由: ECHが隠蔽しようとしていたサイト名がログによって再露出してしまいます。 → 修正方法: 機密フィールドを含めずに、構成バージョン、ノード、およびエラークラスをログに記録します。
フォローアップの質問と回答
フォローアップ 1: ECHはESNIとどのように関連していますか?
ESNIは主にSNIを保護していました。ECHはより広範な内部ClientHelloを暗号化し、外部/内部の調整および構成情報の配信を定義します。最新のECH標準とデプロイドキュメントを使用してください。古いESNIの用語は完全な実装計画にはなりません。
フォローアップ 2: ミドルボックスが実際のドメインを確認できない場合、企業はどのようにトラフィックを監査できますか?
まず、組織がエンドポイントと出力ゲートウェイを制御しているかどうかを判断します。管理対象デバイスは、信頼できるエージェントまたはプロキシにポリシーシグナルを提供できます。パブリックネットワークにおいてSNIを隠蔽することはTLSの障害ではありません。プライバシーと組織の可視性は明示的なポリシーを通じて調整される必要があります。
フォローアップ 3: なぜ外部名がプライバシーに影響するのですか?
1つの外部名が1つの実際のサイトのみにサービスを提供している場合、IP、DNS、およびその名前によって宛先が絞り込まれる可能性があります。共有エントリポイントとより大きな匿名性セットはプライバシーを向上させますが、ルーティング、証明書、運用の複雑さが増大します。
フォローアップ 4: ECHの障害と通常のTLSの障害をどのように区別しますか?
クライアントがECHを送信したかどうか、構成バージョン、エッジの再試行、復号失敗カウンタ、TLSアラート、ノード、および時間枠を関連付けます。同一クライアント上でECH有効、無効、および古い構成情報で再現テストを行い、証明書、ALPN、またはオリジンのヘルス状態の問題がECH障害として誤認されないようにします。