얼마 전부터 DNS 주소를 감청해 불법 컨텐츠를 배포하는 사이트의 접속을 막는 검열이 시작되었습니다.

이 기술 이전엔 HTTP 통신을 분석해 차단할 사이트에 접속하면 중간에서 warning.or.kr 페이지로 보내는 방식이었으나 웹서버 운영자가 HTTPS 프로토콜의 TLS 암호화를 이용하면 이 방법으로 차단을 할 수 없기 때문에 새롭게 도입된 방식입니다.

DNS 감청?

간단하게 DNS는 요청한 도메인을 IP로 바꿔 전달함으로써 웹사이트에 접속할 수 있게 해주는 서버입니다.

이 DNS는 트리구조로 되어 있기 때문에 국내에서 도메인을 입력해 웹사이트를 접속하게 되면 우리가 사용하는 통신사인 KT, LG, SK 같은 네트워크 인프라 사업자의 DNS를 통해 응답을 받게 되는데요.

여기서 정부가 통신사에게 DNS 서버에 요청하는 특정 주소를 막으라고 요청하는 것인데 문제는 도메인을 검열하기 위해서는 DNS에 전송되는 패킷을 ‘까봐야’ 안다는 것이죠.

패킷을 본다는 것은 당신이 사용하는 IP로 어떤 사이트를 몇번 들어갔는지 모두 알 수 있다는 것입니다.

TLS 1.3 SNI 암호화

이렇게 패킷을 까서 도메인 이름이 표시된 것을 못보게 암호화 하는 규격 SNI(Server Name Indication), ESNI(Encrypt SNI)를 TLS 1.3에서 지원하며 파이어폭스에서 DNS over HTTPS를 활성화해 DNS 검열을 우회할 수 있습니다.

튜토리얼 환경 : 파이어폭스 65

파이어폭스 설치

Firefox Dns Over Https 01

파이어폭스 공식 배포 사이트인 모질라(mozilla)에서 다운로드 받을 수 있으며 크롬과 같이 확장 프로그램을 지원하며 다운로드 받아 설치 하면 되겠습니다.

안드로이드 스마트폰에서는 파이어폭스 앱을 설치해 같은 방법으로 진행하면 되겠습니다. 만일 기존에 설치가 되어 있다면 꼭 버전 업데이트를 해주세요.

아이폰은 고급 환경 설정이 되지 않기 때문에 불가능하니 퍼핀 브라우저를 사용해 보세요.

참고 : 아이폰 퍼핀 브라우저로 우회하기

DNS over HTTPS 설정

Firefox Dns Over Https 02

①주소창에 about:config 를 입력한 다음 고급 환경 설정 기능 페이지에서 ②’위험을 감수하겠습니다!’ 버튼을 클릭합니다.

Firefox Dns Over Https 03

  • network.trr.bootstrapAddress 1.1.1.1
  • network.trr.mode 2

검색창에 network.trr 을 입력해서 위 옵션을 찾아 값을 입력합니다.

Firefox Dns Over Https 04

설정하면 이렇게 되겠죠. 간단하게 옵션을 설명하자면,

network.trr.bootstrapAddress 옵션은 network.trr.uri에 등록된 DNS 쿼리에 대한 응답 IP 주소를 가져올 DNS 주소를 입력합니다. 1.1.1.1은 클라우드 플레어의 DNS 주소입니다.

network.trr.mode 옵션은 DNS over HTTPS를 사용하는 옵션으로 다음과 같은 기능을 합니다.

  • 0 : 기본값(사용 안 함)
  • 1 : DNS over HTTPS와 평문 방식을 동시에 사용해 응답이 빠른 방식을 사용
  • 2 : DNS over HTTPS를 우선 순위로 사용, 실패시 이전 방식
  • 3 : DNS over HTTPS만 사용
  • 4 : 이전 방식을 우선 순위로 사용, 응답 없을때 DNS over HTTPS

ESNI 설정

Firefox Dns Over Https 04 02

고급 환경 설정 기능 페이지의 검색창에 esni로 검색해 나오는 설정 이름중 network.security.esni.enabled를 찾아 더블클릭해 값을 true로 변경합니다.

ESNI는 평문으로 전송되는 도메인 주소를 암호화 합니다.

Firefox Dns Over Https 05

열린 파이어폭스 창을 모두 닫은 다음 다시 실행해 클라우드 플레어 브라우저 보안 검사 페이지에 접속해서 ESNI가 잘 적용 되었는지 확인합니다.

제대로 적용이 되었다면 위처럼 4가지 항목이 모두 초록색으로 체크됩니다.

만일 Encrypted SNI 항목에 체크가 되지 않는다면 운영체제에서 DNS 주소를 클라우드 플레어로 변경하면 되며 운영체제별 변경 방법은 아래 링크를 참고하세요.

이 방법은 접속하는 사이트가 클라우드플레어 서비스를 사용하면 100% 우회가 가능합니다.

하지만 이것은 사용자의 영역이 아니기 때문에 만일 접속하고자 하는 사이트가 우회가 되지 않는다면 어쩔 수 없습니다.

그리고 스마트폰 같은 경우 LTE/3G 상태에서는 적용되지 않을 수 있으며 PC에서도 ‘보안 연결 실패’ 메시지가 간헐적으로 나타날 수도 있습니다.

만일 안드로이드 설정을 상세하게 보고 싶다면 아래 글을 참고하세요.

추가

각 기기별로 간편하게 우회 하는 최신 방법을 추가했습니다.

Avatar
Author

익스트림 매뉴얼 주인장입니다.
내용이 유익했다면 를 눌러주세요. 앞으로 작성할 글의 뱡향성을 결정하는데 도움이 됩니다. 🤩
pg@extrememanual.net