Cloudflare

自サイトでEncrypted SNIを有効にする
ーコラムー
2020年7月29日号



以前にFireFoxでEncrypted SNIを有効にする手順について説明したため、今回はサーバ側の実装について紹介致します。

Encrypted SNIでは、TLSハンドシェイクの鍵共有を行う前にServer Nameヘッダを暗号化して送信しなければならないため、SNI暗号化のための鍵の入手が必要になります。 そのため、DNSのTXTレコードを用いて鍵を登録しておき、TLS通信に先立ってDNSプロトコルを使って鍵を入手します。FireFoxでEncrypted SNIとDoHを有効にしておけばそのような動作をとってくれます。

鍵を登録するTXTレコードは、対象のFQDNの先頭に_esni.を付与した以下のようなものです。


▶▷自分(自社)のサイトでEncrypted SNIを有効にする
まだRFC化されておりませんが、Cloudflareでは上記のようにDNSを用いた方式にてEncrypted SNIに既に対応しています。 実は、Cloudflareを使うだけで自動的にEncrypted SNIに対応されます。Cloudflare上でドメインを作りFQDNを定義するだけで、そのFQDNに対する上記のような鍵のレコードが設定されます(画面上には表示されませんが設定されます。上記のようにdigコマンドにて確認することが出来ます)。
ただしEncrypted SNIが有効になるには以下の2つの条件があります。

  • ✔ フルセットアップドメインであること(フルセットアップとCNAMEセットアップについてはこちらをご覧ください)
  • ✔ TLS1.3を有効にしていること

ちなみにフリープランではフルセットアップのみ対応となっていますので、TLS1.3を有効にすればEncrypted SNIに対応した状態になります。
ワンクリックでプライバシーに配慮したサイトになりますのでお試し頂ければと思います。









角田貴寛

 執筆者:角田 貴寛

三井情報株式会社
ソリューション技術本部 次世代基盤第二技術部 第一技術室
CISSP、CEH
現在、セキュリティ関連調査研究・教育業務に従事