ドメインフロンティングについてのメモ。
ドメインフロンティングとは
TLSのSNI (Server Name Indication) ヘッダーで指定したドメイン (フロントドメイン)を介して別のドメインへ通信する仕組み。主にCDN (Contents Delivery Network)で利用される技術。
例えばTLSのSNIヘッダーにabc.hoge.comというドメイン名を、HTTPのHostヘッダーにxyz.hoge.comというドメイン名を指定して通信を行ったとする。もし2つのドメインが同一のCDNにホストされていた場合、abc.hoge.comに送られたTLS通信を復号して、その中に含まれているHTTP Hostヘッダーからxyz.hoge.comというドメインを読み出し、xyz.hoge.comへ通信をリダイレクトすることが出来る。
xyz.hoge.comのドメイン名はTLSによって暗号化されているので、ネットワーク・キャプチャ上はabc.hoge.comとTLS通信しているようにしか見えない。
以下、簡単な検証。
curl -s -i https://www.google.com/ -H "Host: www.youtube.com" | grep -o '<title>.*</title>'
上記のcurlコマンドはwww.google.comを介してwww.youtube.comと通信する。(Wikiのコードをcurlに置き換えただけ)
以下はコマンドの実行結果。

www.youtube.comと通信できたことがわかる。以下は通信のキャプチャ。

Client HelloパケットのSNIヘッダーはwww.google.comとなっている。

サーバーから送られたTLS証明書も
www.google.comのもの。
YouTubeというキーワードでパケットを検索しても何もヒットしない。(YouTubeへの通信はTLSで暗号化されているため)

参考
https://youtu.be/5gwEMocFkc0 (35:22から)