SNI 암호화 및 Https 차단 우회 방법

정부는 불법 사이트를 차단하기 위해 https를 사용하는 사이트들을 검열한다고 발표했다. 그리고 몇달뒤 SNI 검열을 실시한다고 밝혔다.

그러나 다행히 차단 기술이 나오기도 전에 벌써 무력화되었다. 내가 5월에 DNS 우회에 대한 글을 올리고 5개월 동안, 애플을 비롯한 4개의 IT 기업이 합동으로 우회 기술을 개발했다. 현재 시범 적용 중이다.

정부나 웹툰 업계 종사자에게는 미안한 말이지만 미국의 개발자들에게 “제3자가 패킷을 들여다보고 변조하는 행위”는 그저 막아야 할 보안 취약점에 지나지 않는다.

그 주체가 정부든 해커든 상관없이 말이다.

아무튼 이 글은 미국에서 개발된 Encrypted SNI(암호화된 SNI)를 사용하는 방법을 기술한다.

ESNI를 사용하기 위해서는 몇가지 조건이 있다.

1) 접속하려는 사이트가 클라우드플레어를 사용할 것

현재는 서버 측에서 ESNI를 지원하는 DNS가 클라우드플레어 밖에 없다.

국내 성인 사이트와 마루마루, E-hentai, 냐토렌트는 클라우드플레어를 사용한다.

반대로 hitomi, xvideos, xhamster, pornhub를 비롯한 대다수의 서양 성인 사이트는 클라우드플레어를 사용하지 않는다.

사이트에서 ESNI를 지원하기 위해서는 클라우드플레어 CDN을 사용하고 그곳에서 제공하는 보안 인증서를 사용하면 된다.
그러니까 Let’ Encrypt 같은거 쓰지말고 SSL 설정을 Full로 하라고

클라우드플레어를 사용하는 사이트는 모두 ESNI가 자동으로 적용되는 시범 대상이다.

2) 파이어폭스를 사용할 것

아직 표준화도 안된 따끈따끈한 신기술이라 지원하는 곳이 파이어폭스 밖에 없다. 다른 브라우저가 지원하게 되면 그때 다시 포스팅 하겠다.

귀찮은데 언젠간 크롬이 지원하겠지.”
이딴 생각 하지 말자. 크롬이 지원하려면 2~3년은 걸리고 차단은 빠르면 2달안에 시작된다. 그냥 딸 칠때면 파이어폭스를 쓰자.

※ beta 말고 아래에 있는 보라색꺼

여기서 Firefox Nightly를 다운받아 설치한다. PC/안드로이드/ios를 지원한다. 모바일은 플레이 스토어에서 설치할 수 있다.

일종의 베타 테스트 버전인데 신기술을 미리 체험해볼 수 있는 대신 안전성은 떨어진다.

※ 가끔 “이 연결은 신뢰할 수 없습니다.” 라는 에러 페이지가 뜨는데 오류니까 그냥 새로고침 하면 정상적으로 접속된다.

참고로 정식 버전에 ESNI가 도입되는 건 12월 11일이라고 한다.
https://wiki.mozilla.org/Release_Management/Calendar

Nightly는 안정된 버전이 아니라 잘되다 갑자기 ESNI가 작동하지 않을 수 있다.

너무 걱정하지 말고 최소 베타 버전 때까지는 기다린다고 생각해야 마음이 편하다.

잘 작동되다 갑자기 작동이 안되더니 플레이 스토어에 올라온 업데이트를 적용했더니 또 잘되고 그런다.

설치가 끝났으면 파이어폭스를 켜고 주소창에 about:config라고 치고 들어간다.

가끔 PC에서는 이런 창이 뜨기도 하는데 무시하고 파란 버튼을 눌러주자.

이런 설정 페이지가 나온다. 여기서 각종 기능들을 켜고 끌 수 있다.

ESNI를 켜기 전에 먼저 DNS over https(줄여서 Doh)를 켜야 한다. ESNI는 DNS를 사용하기 때문에 DNS 암호화가 없다면 반쪽짜리 기술이 된다. 그리고 겸사겸사 정부의 DNS 차단도 뚫어준다.

여기 있는 방법을 Firefox Nightly에서 똑같이 따라하면 된다.

한가지 주의해야 할 점은 network.trr.mode 은 3이 아니라 2로 설정해주자.

network.trr.uri와 network.trr.BootstrapAddress가 서로 다른 서버인 경우 제대로 작동하지 않는다.

전자는 https://mozilla.cloudflare-dns.com/dns-query
후자는 1.1.1.1로 설정해주자.

Doh 적용이 끝났다면 이제 ESNI를 켤 시간이다.

설정 페이지 검색창에 esni로 검색한다.

그러면 network.security.esni.enabled 라는게 나온다. 저렇게 false 로 되어 있는 걸

클릭해서 켜기 버튼을 누르고 이렇게 true로 바꿔주자.

이제 ESNI가 파이어폭스에 적용되었다.

마지막으로 ESNI가 제대로 작동하는지 시험해봐야 한다.

파이어폭스로 클라우드플레어가 제공하는 체크 페이지에 접속한다.

저 Check My Browser라는 주황색 버튼을 눌러준다.

Secure Dns/Dnssec/TLS 1.3/Encrypted SNI 이렇게 네가지 기능이 정상적으로 작동하는지 체크해준다.

만약 Encrypted SNI에서 저렇게 뜨면 축하한다. 이제 아무도 네가 유해사이트에 들어가는 걸 막을 수 없다.

VPN이나 프록시 처럼 아이피를 우회하지 않고도 그 망할 파란 사이트를 보지 않아도 된다.

만약 ESNI가 제대로 실행이 안된다면?

이걸 한번 점검해보자.

1)내가 설치한 파이어폭스가 Nightly가 맞는가?

2)Doh를 적용했는가?

3)혹시 Nightly의 업데이트가 올라왔는가?

잠깐 또 안되다가 플레이 스토어에 올라온 업데이트를 받았더니 제대로 작동한다.

PC는 브라우저에서 바로 업데이트를 할 수 있다.

4)ESNI가 정말 true로 설정되어 있는가?

5)Adguard나 프록시를 사용 중인가?

만약 Doh나 DNSSEC가 작동을 안한다면?

모바일 데이터면 DNSSEC가 작동하지 않는 경우가 있다.

PC면 여기서 시크릿 DNS를

안드로이드면 Intra라는 어플을 쓰면 된다.

이러면 DNS 차단 우회는 되서 esni만 초록불 들어와도 문제없다.

———————————————–

나는 어떤 목적이든 간에 정부의 인터넷 검열을 혐오한다.

노태우 군사정권부터 시작해서 좌우에 상관없이 이 나라의 정치인들은 인터넷을 통제하기 위해 수많은 노력을 해왔다. 솔직히 말해 윗대가리들 본성이 아닐까 하는 생각도 든다.

이제 그 노력을 무용지물로 만들 때가 왔다.

정부가 토렌트를 족치고 불법 웹툰 사이트를 족치든 말든 아무 상관 안한다. 다만 나는 그 방식이 인터넷 검열이란 점이 마음에 들지 않는다.

최근에는 성인 사이트에도 차단을 한다는 소리가 들린다. 명분은 불법 몰카를 막기 위해서라는데(일단 나는 몰카나 리벤지 포르노 단속에는 적극 찬성한다. 그런 쓰레기 같은 건 왜 보는 걸까나…) 여태 정부가 해온 일들을 보면 일반 성인 사이트나 외국인이 운영하는 사이트도 차단할 확률이 100%다.

OECD 가입국 중에서 포르노를 금지하는 국가는 대한민국 하나밖에 없다. 나는 이 나라에서 (몰카와 리벤지 포르노, 실제 동물이 등장하는 수간물과 실제 아동청소년이 등장하는 아동 포르노를 제외한)모든 포르노가 합법화되기를 바란다. 성매매, 낙태, 성차별 같은 성에 대한 수많은 담론이 오가고 있지만 유독 포르노 합법화에 대해 입을 여는 사람은 아무도 없다.

얼마전 외국인 엔지니어에게 한국은 정부가 야동 사이트를 차단한다고 말했더니 “Poor society” 라는 답변을 들었다. 맞다. 이 나라는 Poor society다.

중국에서 유튜브와 구글을 차단한다고 들었을때 우리가 느끼는 생각을, 서양인들은 한국을 보며 똑같이 느낀다.

정부가 Https 차단을 발표했을때 너무 화가 나서 해외 VPN 창업이라도 해볼까 하는 생각도 해봤다. 나는 정부의 유해사이트 차단에 엿을 먹이기 위해서라면 무슨 짓이든 할 것이다.

ps. 자랑은 아니지만 ESNI에 이렇게 자세한 정보 몇 없음. 이 글을 퍼가든 아니면 참고해서 새로 글을 쓰든 상관없으니 이 사실을 널리 퍼뜨려주ㅅ…

결론

또 세금낭비!