MSM8994의 화룡점정 블로그

[Firefox 64+] 암호화된 SNI, ESNI 설정으로 SNI차단을 우회하자 본문

코딩 아닌거

[Firefox 64+] 암호화된 SNI, ESNI 설정으로 SNI차단을 우회하자

msm8994 2018. 11. 19. 17:30

지난 글에서 저는 이런 내용을 썼었는데요.


불법 사이트 차단을 위해 SNI 오염을 통한 검열을 정부와 통신사가 하겠다고 했고, 그나마 점점 도입되고 있는 TLS 1.3에도 SNI 암호화가 없는 지금은 이 검열을 피할(우회할) 방법이 없습니다. 

> SNI 차단이 뭐야? TLS 1.3은 해결책이 될 수 있을까.

https://msm8994.tistory.com/38



이제 희망이 보이는 것 같습니다. 바로 파이어폭스 64부터 표준이 제정중인 '암호화된 SNI' ESNI를 지원한다는 소식이 들렸습니다.

파이어폭스 64가 나이틀리였을 때 포스팅을 했어야했는데 바쁘다보니 시간이 많이 늦어졌네요. 바로 시작하겠습니다.



파이어폭스 64 설치하기

파이어폭스 64는 현재 베타 단계입니다. 

베타판을 설치하면 현재설치된 정식버전 파이어폭스를 덮어쓰게 됩니다.

나중에 정식 버전으로 돌아갈 때 역시 베타버전 파이어폭스가 덮어쓰여지게 되므로 베타와 정식은 나이틀리랑 다르게 공존이 안됩니다.


그래도 설치하시려면 https://www.mozilla.org/ko/firefox/channel/desktop/ 를 방문해서 Beta를 다운로드 하세요.

파이어폭스 베타 다운로드 방법



다운로드가 완료되면 설치하십시오.

베타판을 설치하면 현재설치된 정식버전 파이어폭스를 덮어쓰게 됩니다.

나중에 정식 버전으로 돌아갈 때 역시 베타버전 파이어폭스가 덮어쓰여지게 되므로 베타와 정식은 나이틀리랑 다르게 공존이 안됩니다.




파이어폭스 설정하기 전에

파이어폭스를 실행합니다. ESNI를 설정해도 DNS의 통신이 보호받지 못한다면 

다른 세력이 DNS요청을 임의로 바꿔버릴테니 우회가 안되겠죠? 아래 글을 보고 DNS over HTTPS 를 설정해주세요.


[파이어폭스 60+] DNS over HTTPS (DNS 암호화 통신) 적용 방법

https://msm8994.tistory.com/3




파이어폭스 설정하기

파이어폭스가 열리면 about:config에 접속합니다.


about:config에 접속하면 경고가 나타납니다. 감수하겠다는 버튼을 눌러줍니다.



ESNI 설정을 켜기 위해 주소칸 아래에 있는 검색칸에서  network.security.esni.enabled 을 입력합니다.


현재 상태는 false, 즉 비활성 상태입니다. 이 줄을 더블클릭하시면 true로 바뀝니다.



이제 끝났습니다. 파이어폭스를 재기동 하십시오.



적용 완료..인가 했더니...

이렇게 하면 적용이 완료돼야 할텐데, https://www.cloudflare.com/ssl/encrypted-sni/ 를 방문해 ESNI 지원 검사를 해보면 하나가 빠져있습니다.

DNSSEC이 빠졌네요. DNSSEC은 DNS 응답을 공개키 기반 암호화 알고리즘으로 서명해 중간에 변조된 경우 알려주는 기술(자세한건 클릭)입니다.


이것도 해결해보죠.



적용 마치기

사실 답은 있었습니다. DNS over HTTPS 글을 통해 설정한 DNS를 언제나 쓰도록 강제하시면 됩니다.

0 - 사용 안 함
1 - 파이어폭스가 해보고 결과가 빨리 들어오는 방식으로 자동 선택
2 - TRR 우선, 실패시 컴퓨터 DNS 사용
3 - TRR로만 DNS 통신


이제 깨끗하게 적용이 끝난 상태가 됩니다.


이렇게 뜨면 안심입니다.




맺음말

안드로이드용 파이어폭스 64+에서도 같은 방법으로 적용이 가능합니다.

이렇게하면 안드로이드 파이어폭스에서도 ESNI, SNI차단 우회 적용이 완료가 됩니다.


현재 cloudflare만 이 암호화된 SNI, ESNI를 지원하고 있으며, 따라서 cloudflare가 호스팅하지 않는 사이트에는 SNI 차단 우회를 하셔도 적용되지 않는데, 추후 클플 외에도 적용이 되는 사이트가 늘어날거라고 생각합니다.



Comments