본문 바로가기
CS/ETC

특정 사이트를 차단하는 네 가지 방법

 

 

 

 사이트를 차단 방법에는 차단하고자 하는 사이트 목록을 이용해 인터넷 서비스 사업자(ISP) 에서 근본적으로 접근을 차단하는 것과 사용자가 개인 기기에서 차단용 소프트웨어를 직접 설치하고 차단하고 싶은 사이트를 등록해 자발적으로 차단하는 방법, 사이트 운영자가 직접 연령 제한 등을 걸어서 인증을 받은 사람이 아닌 경우 접속을 하지 못하게 만드는 방법이 있다. 하단에서는 그 중 첫 번째 방법을 세분화해 URL차단, IP차단, DNS차단, SNI차단으로 나누어 소개한다.

 

이미지 출처: 파일 내 기입, 김승주 고려대 정보보호대학원 교수님 블로그

 

 위 그림은 차후 설명할 네 가지의 차단 방법을 인터넷 접속 과정을 기준으로 설명한 표이다. 사용자가 원하는 웹사이트에 접속하기 위해서는 사이트의 IP가 필요하다. 그러나 모든 사람들이 일일이 사이트의 IP를 찾아 치기엔 번거로움이 있기 때문에 사이트에 접속 시 DNS에서 주소창에 입력된 도메인에 맞는 IP주소를 찾아 반환하면 사용자와 IP주소의 사이트가 인터넷으로 연결된다. 이 때 사용자의 브라우저에서 사이트에 화면을 구성하는 데이터를 요청하면 사이트에서는 해당하는 데이터를 전송해 사용자에게 보여주는 식이다. 

 

 

01. HTTP 차단

 

 HTTP차단은 이천 년대 초반, 한국에서 유해사이트를 처음 지정할 때 쓰인 차단 방법이다. HTTP과정은 접속하고자 하는 사이트로부터 데이터를 받는 과정에서 어떠한 암호화도 되어 있지 않다는 큰 단점이 있는데, 이를 이용해 DNS에 도메인의 주소를 요청하고 IP를 받은 뒤 해당 아이피를 ISP에 반환하면 특정 도메인의 주소를 그대로 확인 가능하다. 그러므로 만약 그 주소가 차단해야 할 사이트로 분류되어 있을 경우 차단이 필요하다고 판단, 본 주소가 아닌 불법·유해 정보(사이트)에 대한 차단 안내 사이트(warning.or.kr)의 데이터를 반환한다.

 

 그러나 이는 데이터를 주고받는 과정에서 암호화가 되어있지 않기 때문에 사용가능한 방법이다. 이것을 파훼하기 위해서는 도메인에 사이트 주소를 입력할 때 http대신 https를 써주면 접속하고자 하는 사이트와의 요청 과정이 TLS암호화를 이용해 자동적으로 암호화되고 http로 접속했을 때와는 달리 온전한 주소가 없기 때문에 ISP에서는 본 도메인이 차단이 필요한 사이트로 지정되었는지 아닌지 확인할 수 없다. 따라서 차단된 사이트에도 손쉽게 접속이 가능하다. 다만 이 방법은 https를 지원하지 않는 사이트에서는 사용이 불가능하다. 

 

 

 

02. IP 차단

 

 IP 차단은 정부에서 차단하고 싶은 사이트가 가진 IP 주소로의 접근을 막는 방법이다. 사용자가 DNS에 요청한 도메인과 상응하는 IP주소가 차단 목록에 지정되어 있을 경우 접속을 불가능하게 한다. 이를 피할 수 있는 방법은 국가 단위의 검열임을 착안해 VPN을 통해 자신이 위치한 국가가 아닌 타국의 네트워크에 연결해 접속하는 방법밖에 없다. 그러나 IP 차단 방법은 근래 클라우드 서비스가 대세가 되면서 같은 IP 주소에서 여러 사이트를 제공하는 경우가 종종 생기면서 하나를 차단하고자 여러 사이트를 막게 될 수도 있다는 가능성 탓에 과잉 검열로 여겨질 수 있으므로 지금 와서는 사이트 차단 방법에 잘 쓰이지 않는다.

 

 

 

03. DNS 차단

 

이미지 출처: https://aws-labs.com/what-is-a-dns-leak-and-how-to-fix-it/

 DNS는 주소 입력창에 도메인을 입력하면 그에 알맞은 IP 주소를 반환해주는 서버이다. 이미지에서 볼 수 있듯 본 과정에서 도메인을 주고 IP주소를 받아오는 과정은 암호화가 되어 있지 않다. DNS차단은 크게 DNS오염과 DNS변조 방식으로 나눌 수 있는데, 두 방법 모두 값을 주고받을 때 암호화가 되어있지 않음을 이용해 사이트를 차단한다. SNI차단이 상용화 되기 전까지는 대한민국에서도 가장 보편적으로 사용한 사이트 차단 방법이다.

 

 DNS오염은 통신사 DNS서버를 사용할 때만 적용이 가능하다. 통신사 DNS 서버로 들어오는 쿼리 요청 중 차단이 필요한 사이트로 지정된 도메인이 있다면 반환되는 IP주소로 본래 도메인에 알맞은 주소가 아닌 차단 안내 사이트의 IP주소를 제공한다. 원래 필요한 IP주소는 A였지만, DNS오염에 의해 차단 안내 사이트의 주소를 받은 사용자는 본인도 모르는 사이에 차단 안내 사이트의 데이터를 요청하게 된다. 이는 DNS 서버를 통신사가 아닌 다른 DNS서버를 이용하는 것으로 간단히 우회할 수 있다.

 

 이러한 허점을 보완하기 위해 DNS변조 방식이 등장했다. DNS변조에서는 통신사로 들어오는 쿼리 요청뿐만이 아니라 존재하는 모든 DNS패킷을 열어보고 차단 대상 도메인이 있다면 본 IP주소 대신 차단 안내 사이트의 IP주소를 반환한다. DNS오염은 통신사 DNS를 사용하지 않는 것으로 간단히 차단 문제를 해결할 수 있었지만 DNS변조 방식에서는 사용된 다른 DNS 서버까지 전부 확인하기 때문에 해당 방법이 통하지 않는다. 그 경우 http차단을 우회했던 것과 같은 방식으로 DNS와의 통신을 암호화하는 방법으로 해당 도메인을 확인할 수 없게 만들어 차단을 피할 수 있다. 

 

 

 

04. SNI 차단

 

이미지 출처: "[ 단독]‘불법사이트 차단 조치' 위헌 심판 받는다", <서울경제>, 2019-08-12 (https://www.sedaily.com/NewsVIew/1VMXWOF16I)

 

 SNI차단은 사람들이 HTTP차단을 피하기 위해 https형식을 사용하자 이를 다시 차단하기 위해 나온 방법으로, 대한민국에서는 2019년 2월 11일 심의 사례부터 적용되었다. 

 

 사용자가 DNS서버로부터 IP주소를 받은 뒤 접속하고자 하는 사이트에 https방식을 사용해 데이터를 요청할 때 암호화되기 전의 원래 주소가 드러나게 되는데, 그 부분을 SNI이라고 한다. SNI차단은 여기서 재빨리 암호화되지 않은 주소를 확인하고 만약 그것이 차단이 필요한 사이트로 판단되어 있다면 에러를 발생시켜 접속을 차단하는 차단 방식이다. 이 과정에서는 가짜 주소를 보내는 등의 과정이 개입하지 않았기에 이전 방법의 결과와는 달리 브라우저에 차단 안내 사이트가 아닌 사이트에 연결할 수 없습니다, 혹은 네트워크 에러 등의 문구가 적힌 창이 뜬다.

 

 상단 그림은 이런 SNI차단 방법을 간략화해서 설명하고 있으며, 실적용이 되기 전에는 하단에 적힌 관련 입장처럼 웹서버에서 홈페이지로 넘어가는 과정에서의 차단이라면 정부가 사용자의 데이터를 엿볼 수 있으니 검열이 아니냐는 주장 또한 있었다. 그러나 방송통신위원회 측에서는 암호화되지 않은 SNI필드 값만 확인하는 것이지 다른 개인정보를 보는 게 아니므로 검열이 아니라는 입장을 고수했다.

 

 SNI차단 기술이 도입된 2019년, 실제로 기술이 적용된 통계를 살펴보면 도박 정보가 전체의 70.1%를 차지했고 음란 정보, 불법 의약품 판매가 뒤를 이었다. 도박의 경우 대부분이 허가되지 않은 스포츠 토토나 전자복권 발행, 카지노 등 사행성 게임을 운영하는 사이트로 이루어져 있기 때문에 SNI필드 차단 기술이 가장 많이 적용된 것으로 보인다. 

 

 그러나 현재 쓰이는 SNI차단에도 허점이 존재한다. DNS변조 방식을 회피하는 것과 같은 방식으로 SNI과정을 암호화하면 이전과 달리 잠시 드러나는 주소가 없어지기 때문에 본 사이트가 차단이 필요한지의 여부를 확인할 수가 없어 차단을 피하는 게 가능하다. 이를 ESNI(Encrypted SNI)라고 부른다.

 

 

 

 

 

 

 

 

 

-

 

모 수업 중간고사 과제로 작성한 레포트의 일부분으로, 누군가에게 도움이 될까 싶어 올려둡니다. 혹시 오류가 있다면 정정해주세요. 

'CS > ETC' 카테고리의 다른 글

MVC 패턴과 MTV 패턴  (0) 2020.09.03