
국내에서 특정 웹사이트에 접속하려다 차단된 경험이 있다면, 그 뒤에는 여러 단계의 기술적 차단 방식이 작동하고 있다. HTTP 차단에서 DNS 차단, 그리고 지금의 HTTPS SNI 차단까지 이어지는 흐름을 이해하면, 왜 단순히 DNS 서버만 바꿔서는 해결이 안 되는지도 자연스럽게 납득된다.
차단 기술의 진화: HTTP → DNS → SNI
1단계: HTTP 차단
HTTP 통신은 헤더와 본문이 평문으로 전송된다. ISP는 패킷의 호스트 헤더를 확인해 차단 대상이면 warning.or.kr로 리다이렉트했다. 하지만 HTTPS가 보편화되면서 이 방식은 더 이상 통하지 않게 됐다.
2단계: DNS 차단
HTTPS를 쓰더라도 DNS 쿼리 자체는 평문으로 주고받는다. KT의 경우 168.126.63.1 같은 ISP DNS 서버를 통해 차단 도메인에 대한 응답을 가로막는 방식이다. 이때는 Cloudflare(1.1.1.1)나 Google(8.8.8.8) 같은 외부 DNS 서버로 변경하면 우회가 됐다.
3단계: HTTPS SNI 차단
현재 국내에서 주로 사용하는 방식이다. DNS를 바꿔도 막히는 이유가 바로 여기 있다.
SNI란 무엇인가
SNI(Server Name Indication)는 TLS 핸드셰이크 과정에서 클라이언트가 서버에 접속할 도메인 이름을 알려주는 TLS 확장 기능이다. 하나의 IP에 여러 도메인이 연결된 서버에서 올바른 인증서를 골라 전달하기 위해 필요하다.
문제는 이 SNI 값이 TLS Client Hello 패킷에 평문으로 포함된다는 점이다. HTTPS로 통신하더라도 연결 초기 단계에서 어느 도메인에 접속하려는지가 그대로 노출된다. 정부는 이 패킷을 감시하다가 차단 대상 도메인이 발견되면 RST 패킷을 보내 연결을 강제로 끊는다.
| 용어 | 설명 |
|---|---|
| TLS 핸드셰이크 | 암호화 방식과 키를 협상하는 초기 과정 |
| Client Hello | 클라이언트가 지원하는 암호화 목록을 보내는 첫 패킷 |
| RST 패킷 | TCP 연결을 강제로 리셋하는 패킷 |
| DoH | DNS over HTTPS, DNS 쿼리를 암호화 |
| ECH | Encrypted Client Hello, Client Hello 자체를 암호화 |
자주 나오는 오해
“DNS를 Cloudflare 1.1.1.1로 바꾸면 SNI 차단도 우회된다”는 말이 종종 돌아다닌다. 결론부터 말하면 틀렸다. DNS 변경은 DNS 차단만 우회할 수 있다. 간혹 우회된 것처럼 느껴지는 경우는 ISP의 RST 패킷 처리 오류이거나, 해당 사이트가 Cloudflare 기반이라 TLSv1.3 + ESNI를 지원하기 때문일 가능성이 높다.
SNI 차단 우회 방법 3가지
1. ESNI / ECH 활용
ECH(Encrypted Client Hello)는 Client Hello 패킷 자체를 암호화해 SNI를 감출 수 있는 TLS 확장 기술이다. Firefox에서 DoH를 활성화하면 사용할 수 있으며, 현재는 Cloudflare 기반 사이트에서만 동작한다.
- 속도 저하 없음
- 브라우저 설정만으로 작동
- 단, Cloudflare를 쓰는 사이트에만 적용
2. 패킷 변조 프로그램
GoodByeDPI, 유니콘 HTTPS, Intra 같은 도구는 SNI 필드가 담긴 패킷을 쪼개거나 헤더 값을 변조해서 차단 시스템이 SNI를 읽지 못하게 한다. 편의성이 높고 스마트폰에서도 쓸 수 있지만, 검열 시스템이 탐지 방식을 업데이트하면 점차 막히는 경향이 있다.
- 설치만 하면 바로 사용 가능
- 속도 영향 거의 없음
- 단, 보안 검증이 어렵고 지속적으로 차단될 수 있음
3. Cloudflare WARP
현재로서는 가장 안정적인 방법이다. WARP는 Cloudflare 네트워크를 경유하는 VPN 유사 서비스로, DoH와 ESNI를 기본으로 지원한다. CDN 기반이라 속도도 빠른 편이고, Cloudflare를 쓰지 않는 사이트도 우회할 수 있다. 무료 버전으로도 충분히 쓸 만하다.
- ESNI 미지원 사이트도 접속 가능
- 속도 감소 거의 없음
- iOS, Android, Windows, macOS 모두 지원
방법별 비교
| 방법 | 속도 | 편의성 | 적용 범위 | 안정성 |
|---|---|---|---|---|
| ESNI/ECH | 영향 없음 | 브라우저 설정 필요 | Cloudflare 사이트 한정 | 높음 |
| 패킷 변조 | 영향 없음 | 쉬움 | 넓음 | 불안정 |
| Cloudflare WARP | 영향 없음 | 앱 설치 | 매우 넓음 | 높음 |
단순히 “DNS 바꾸면 된다”는 방법은 이미 SNI 차단 앞에서 통하지 않는다. 기술적 원리를 이해하고 목적에 맞는 방법을 선택하는 것이 중요하다.