얼마 전부터 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 검열을 우회할 수 있습니다.
파이어폭스 설치
파이어폭스 공식 배포 사이트인 모질라(mozilla)에서 다운로드 받을 수 있으며 크롬과 같이 확장 프로그램을 지원하며 다운로드 받아 설치 하면 되겠습니다.
안드로이드 스마트폰에서는 파이어폭스 앱을 설치해 같은 방법으로 진행하면 되겠습니다. 만일 기존에 설치가 되어 있다면 꼭 버전 업데이트를 해주세요.
아이폰은 고급 환경 설정이 되지 않기 때문에 불가능하니 퍼핀 브라우저를 사용해 보세요.
참고 : 아이폰 퍼핀 브라우저로 우회하기
DNS over HTTPS 설정
①주소창에 about:config
를 입력한 다음 고급 환경 설정 기능 페이지에서 ②’위험을 감수하겠습니다!’ 버튼을 클릭합니다.
- network.trr.bootstrapAddress 1.1.1.1
- network.trr.mode 2
검색창에 network.trr 을 입력해서 위 옵션을 찾아 값을 입력합니다.
설정하면 이렇게 되겠죠. 간단하게 옵션을 설명하자면,
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 설정
고급 환경 설정 기능 페이지의 검색창에 esni로 검색해 나오는 설정 이름중network.security.esni.enabled
를 찾아 더블클릭해 값을 true로 변경합니다.
ESNI는 평문으로 전송되는 도메인 주소를 암호화 합니다.
열린 파이어폭스 창을 모두 닫은 다음 다시 실행해 클라우드 플레어 브라우저 보안 검사 페이지에 접속해서 ESNI가 잘 적용 되었는지 확인합니다.
제대로 적용이 되었다면 위처럼 4가지 항목이 모두 초록색으로 체크됩니다.
만일 Encrypted SNI 항목에 체크가 되지 않는다면 운영체제에서 DNS 주소를 클라우드 플레어로 변경하면 되며 운영체제별 변경 방법은 아래 링크를 참고하세요.
이 방법은 접속하는 사이트가 클라우드플레어 서비스를 사용하면 100% 우회가 가능합니다.
하지만 이것은 사용자의 영역이 아니기 때문에 만일 접속하고자 하는 사이트가 우회가 되지 않는다면 어쩔 수 없습니다.
그리고 스마트폰 같은 경우 LTE/3G 상태에서는 적용되지 않을 수 있으며 PC에서도 ‘보안 연결 실패’ 메시지가 간헐적으로 나타날 수도 있습니다.
만일 안드로이드 설정을 상세하게 보고 싶다면 아래 글을 참고하세요.
추가
각 기기별로 간편하게 우회 하는 최신 방법을 추가했습니다.
31 댓글.
검색창에 ensi를 쳤는데 위에 2개 항목만 나오고 나머지 항목이 나오지 않습니다. 어떻게 해야 하나요?
파이어폭스 버전 64 이상 부터 ESNI를 지원합니다. 버전을 확인해 보세요.
dnssec 옵션이 초록새그로 안변하는데 이 경우에는 어떻게 해결해야 하나요?
운영체제 DNS를 1.1.1.1로 변경해 보세요.
위 처럼 적용하여 4가지 항목에 초록불이 들어왔습니다.
근데
-주소삭제-
여기 사이트는 적용이 안되는 건지요??
X헙은 서버 레벨에서 ESNI가 적용되지 않아 위 방법으로도 접근이 안됩니다.
dnssec 옵션을 1.1.1.1로 변경 하였는데도 안 변하는데 어떻게 해결 가능 할까요
본문 중 빠진 사항이 없는지 체크해 보세요.
그래도 잘 안된다면 https://extrememanual.net/30057 이 방법이 더 쉽습니다.
DNSSEC만 초록색이 아닌 빨간색으로 뜹니다
초록불 4개까지 다 떳는데 왜 싸이트 접속이 안 되나용?ㅠㅠ
https://extrememanual.net/30057 이 방법으로 해보세요.
다 체크 뜨긴 하는데 제가 쓰는덴 다 안되는듯..
저도 그러네요 다 초록색으로 뜨지만 접속이 안됩니다.
DNSSEC만 빨강이 뜨네요;; 맥북인데 해결방안은 없을까요?
맥북에서는 https://extrememanual.net/30073 이 방법이 쉽습니다.
일반컴퓨터에서는 DNSSEC 빨강을 어떻게 해제할 수 있을까요?
똑같이 따라했는데 아예 인터넷접속이 안되요..
DNSSEC만 빨강이였는데 윈도우dns 설정하니까 바로 되네요. 감사합니다.
초록불 4개 들어오면 감청위험에서 벗어날 수 있나요?
지금 dnssec 빼고 다 초록불 들어오는데도 https 사이트 들어가지긴하는데
dnssec가 빨간불이라서 혹시 감청 당하나요
DNSSEC는 DNS 보안 연결 항목입니다.
윈도우에서 네트워크 옵션 부분의 DNS를 1.1.1.1로 변경하면 됩니다.
빨간색이라도 우회가 된다면 필터링에 걸리지 않는다는 얘기입니다.
4개 다 초록색으로 되었는데 기존에 접속이 안되던 사이트가 그대로 접속이 안됩니다
DNESSCE가 빨간색이더라도 큰 문제는 없나요?
크롬은 chrome://flags 로 접속 가능합니다
제가 위의 설정을 다 마치고도 DNSSEC가 빨간색으로 변하지 않아서 secretDNS라는 프로그램을 다운받았는데요. 그 다음 이후로 인터넷을 들어가려고하면 “~의 서버 IP주소를 찾을 수 없습니다.” 라고 뜨는데 secretDNS라는 프로그램을 실행하면 다시 돼더라고요. 매번 secretDNS라는 프로그램 을 설치하기가 불편한데 어떻게 해결할 수 있는 방법이 있을까요??
파이어폭스하고 secretDNS는 무시하시고 GoodbyeDPI 써보세요. 이제 가장 깔끔합니다.
https://extrememanual.net/30057
꼭 1.0.2로 받아서 진행하세요.
지금은 그거 쓰고 있긴 한데요. 제가 위에 적은 현상들을 해결하고 싶은데… 방법이 없을까요??….
DNSSEC는 DNS를 클라우드 플레어로 변경하면 바뀔겁니다.
https://extrememanual.net/27181
32bit는 적용을해도 ensi우회가 되지 않나요? 4가지 초록불 다뜨는데
www.cloudflare.com에 접속하는 중에 오류가 발생했습니다. 상대방이 지원하지 않는 보안 프로토콜 버전을 사용합니다. 오류 코드: SSL_ERROR_UNSUPPORTED_VERSION 라고 뜹니다 어떻게 해야하나요
클라우드 플레어 브라우저 보안 검사 페이지 자체를 못들어갑니다.ㅎㅎ
또 문제가 발생하는군요 이렇게 설정하고 나서 오히려 토렌트맵 같은 유명 사이트에 들어가지 못합다. 그래서 다시 원상태로 했습니다