자유민주주의를 주창하는 국가라도 권력을 가진자는 국민의 모든 자유를 항상 보장하지 않고 무언가를 통제하려 한다. 그런 현상은 수십년간 많은 피를 흘려가며 자유민주주의를 쟁취한 우리나라도 예외는 아니어서 불법유해사이트를 차단한다는 목적하에 도메인주소를 기반으로 하는 필터링 정책을 편다.
그렇다보니 조금만 노골적인 성적인 정보가 포함된 게시물이 올려져 있는 사이트로 들어가는 URL 링크를 클릭하게 되면 다음과 같은 경고페이지가 뜨며 접속이 차단되는 것을 볼 수 있다.
하지만 가끔은 “이거 너무 심한거 아니야? 내가 나이가 몇살인데.. 이정도의 성인물도 보지 못하게 하는거지?”라는 생각이 들 때도 있다.
게다가 성인정보가 포함된 사이트가 아닌 경우에도 접근이 차단되는 경우가 있다. 대표적인 경우가 Torrent 파일을 배포하는 사이트인데 불법성인물을 배포한다는 이유로 상당수의 사이트가 차단되어 있다.
SNI(Server Name Indication) 차단 기술
불법적인 정보의 배포를 차단하기 위해 초창기에는 IP를 차단했었다. 하지만 IP 변경은 DNS주소의 변경없이 너무도 쉽게 변경이 가능하기 때문에 DNS를 차단하는 방식으로 금방 바뀌었다.
하지만 DNS 주소 또한 짧게는 30분에서 길어야 12시간 정도면 변경이 가능하기 때문에 신속한 대응이 어렵다. 게다가 해외의 DNS서버를 이용하면 영구히 우회가 가능했다. 해외의 DNS서버를 운영하는 ISP에서는 우리나라의 통제를 따라야할 의무가 없기 때문이다.
그래서 등장한 것이 HTTP 프로토콜의 헤더에 포함되어 있는 호스트정보(도메인주소에 해당)를 필터링해 차단하는 방식이다. 이렇게 하게되면 해외의 DNS 서버를 이용하도록 DNS서버 주소를 바꿔도 접근을 차단하는 것이 가능하다. 게다가 우리나라의 ISP는 말을 잘듣는다.
그랬더니 이제 사이트들이 HTTPS라는 암호화된 HTTP프로토콜을 지원하기 시작했다. HTTPS 프로토콜로 암호화를 하면 헤더에 포함되어 있는 호스트정도도 암호화되어 ISP에서 필터링을 할 수 없기 때문이다.
이에 대한민국정부의 방송통신위원회는 SNI 필터링 기술을 들고나왔다. 이는 웹브라우저와 웹서버가 암호화통신을 하기 위해 준비하는 과정(핸드쉐이킹이라고 함)에서 주고받는 패킷에 포함된 확장필드 중 하나인 server_name 이라는 필드에 포함되어 있는 도메인주소를 필터링하는 방식이다. 이 방법도 암호화된 SNI 방식을 사용하면 우회할 수 있으나 이는 브라우저와 웹 사이트가 모두 이 방식을 지원해야 하는데 포스팅을 하는 시점까지 우리나라에서 많이 사용되는 브라우저 중에서 ESNI를 지원하는 브라우저는 파이어폭스가 유일하다.
그렇다보니 크롬, IE, 엣지 브라우저를 사용하는 사용자들을 위해 몇개의 SNI 우회툴을 만들어 배포하는 개발자들이 등장했다. 그 중 하나를 소개한다.
SecretSNI (길호넷)
SNI 우회툴 몇개의 평가와 동작방식을 검토했는데 길호넷(https://kilho.net/)에서 배포하는 SecretSNI가 가장 가볍고 안정적인 것으로 확인되었다.
먼저 다음의 주소에서 SecretSNI를 다운로드 받는다.
다운로드 받은 파일의 압축을 해제하면 다음과 같이 몇개의 파일이 보인다.
그중에서 SecretSNI.exe를 실행한다. 관리자 권한으로 실행해준다.
이 SecretSNI를 유해한 프로그램으로 인식하고 차단하려할 수 있다. 아래쪽의 “추가정보”를 클릭한다.
“실행 버튼”이 보인다.
다음과 같이 실행된다.
“실행하기”를 클릭하면 “실행중”으로 바뀐다.
그 상태에서 https://~~~로 시작하는 주소를 크롬이나 IE의 주소창에 입력하면 Warning 페이지가 아닌 해당 사이트에 접속이 가능하다.
#SNI필터링우회 #DNS필터링우회 #SecretSNI