SNI / ECH

SNI는 인증서 선택을 돕지만 접속 도메인을 드러낸다

SNI는 한 IP에서 여러 TLS 사이트를 운영하게 만든 핵심 확장이지만, 전통적인 ClientHello에서는 호스트명이 그대로 관찰된다.

서버는 핸드셰이크 초기에 이름을 알아야 올바른 인증서를 고른다.
평문 SNI는 네트워크 관찰자에게 목적 도메인을 노출한다.
ECH는 ClientHelloInner를 암호화해 이 신호를 줄인다.
Classic SNI
ClientHello
TLS 1.3 SNI: api.example.com ALPN: h2
인증서 선택은 가능하지만 도메인이 핸드셰이크 초기에 보인다.
ServerHello + Certificate
api.example.com 인증서 암호화 계속
Encrypted Client Hello
ClientHelloOuter
public name ECH extension
외부에는 무해한 값과 ECH 확장만 둔다.
ClientHelloInner
실제 SNI 민감한 협상 정보
서버의 ECHConfig 공개키로 암호화한다.
ECHConfig 획득
DNS HTTPS/SVCB 암호화된 DNS 권장 CDN/공유 배포
ECH만으로 모든 노출이 사라지는 것은 아니며 DNS와 IP 노출도 함께 봐야 한다.
SNI 가상 호스팅을 가능하게 한 기본 확장
ESNI ECH 이전 실험적 접근, 지금은 역사적 맥락
ECH ClientHelloInner 암호화, 익명성 집합이 중요