ESNI
ESNI(Encrypted SNI)は TLS ClientHello の SNI を暗号化し、経路上の観察者にアクセス先ホストが見えるのを防ぐ。
目的
TLS ハンドシェイクで対象ホスト名を隠し、受動的な盗聴者がユーザーの訪問ドメインを知れないようにしてプライバシーを強化する。
メカニズム
クライアントはサーバーの ESNI 公開鍵(DNS の HTTPS RR 経由で取得)で ClientHello の SNI 拡張を暗号化する。サーバーはそれを復号して証明書を選ぶ。後に標準化された ECH に取って代わられた。
ユースケース
- TLS ハンドシェイクのプライバシー
- SNI の暗号化
- パッシブ監視への防御