본문 바로가기
다양한 정보

충격! 정부의 감청, 불법유해사이트 차단 원리 간단 설명

by GrapherStory 2019. 2. 13.


이건 좋지 않은 징조일까요?


알 수 없는 이유로 글을 쓰다 중간에 다 날리고 말았습니다.


임시저장도 되지 않아 순간 절망했지만,

제가 작업하며 켜둔 포스팅 미리보기 화면이 살아있어

그걸 토대로 다시 천천히 작성합니다..




안녕하세요. 


어제에 이어 정부의 불법유해사이트 차단에 대해 포스팅을 진행하려고 하는데요. 오늘은 어제 이야기하지 못했던 가장 중요한 이야기를 해볼까 합니다.


'정부는 어떻게 우리가 그 사이트에 접속하려 한단 사실을 알 수 있을까?'


정부가 시행한 불법유해사이트 차단 방법에 대해 간단히 설명하면서, 이번 사태의 문제점을 설명해보도록 하겠습니다.


네트워크_정부의감청


본론에 앞서 알고 가자!


일단 오늘 내용을 진행하기 위해서는 우리가 인터넷을 보는 과정과 DNS라는 개념을 알고 넘어가야 합니다. 일일이 외우지 않아도 그냥 큰 흐름만 이해하시면 되겠습니다.


우리가 인터넷을 보는 과정은 과거 포스팅한 내용을 참고하시면 되겠습니다.


#http와 우리가 인터넷을 보는 과정


위의 내용을 아셨다는 가정하에 DNS만 집고 넘어가겠습니다.



DNS는 Domain Name System의 약자로 IP 주소와 도메인 주소를 변환시켜주는 역할을 합니다.


쉽게 우리가 구글에 접속하려고 할 때 'www.google.com'을 입력하잖아요?


이때 주소창에 입력한 'www.google.com'은 구글 서버의 실제 주소가 아닙니다.


그냥 우리가 식별하기 편하도록 만든 도메인 주소죠.


구글의 실제 주소 역시 숫자로 이루어진 IP 주소입니다. 'XXX.XXX.XXX.XXX'의 형식으로 말이죠.



그러니까 구글에 접속하기 위해 서버 IP 주소로 접속을 해야 하는데 외우기도 번거롭고 불편하잖아요?


그래서 'www.google.com'이라는 주소로 접속할 수 있게끔 도와주는 역힐을 하는 것이 DNS란 녀석입니다.




그럼 이제 본론으로 들어가볼까요?




정부가 불법유해사이트를 차단하는 방법 : 1차 URL 차단


지금까지 정부가 불법유해사이트를 차단했던 방법을 간단하게 설명해드리겠습니다.


1차 차단은 사이트 주소인 URL을 확인해서 차단하는 방법이었습니다.


그럼 순서대로 알아볼까요?



1. 정부는 불법적이고 유해하다고 판단되는 사이트들의 목록을 만들었습니다.

: 블랙리스트라고 하겠습니다.


2. 우리는 어떤 사이트에 접속하기 위해 인터넷 브라우저에 도메인 주소를 입력합니다.

: 구글에 접속해야지. 'www.google.com' 입력


3. 먼저 인터넷 브라우저는 해당 도메인 주소를 가지고 DNS에 이 서버의 IP 주소를 물어봅니다.

: DNS야. 'www.google.com'의 IP 주소가 뭐야?


4. DNS는 요청받은 주소를 인터넷 브라우저에게 알려줍니다.

: 'www.google.com'의 주소는 '8.8.8.8'이야


5. 인터넷 브라우저는 DNS에게 받은 IP 주소로 홈페이지를 보기 위한 데이터를 달라고 요청합니다.

: '8.8.8.8'아. 홈페이지 보고 싶으니까 데이터 좀 보내줘



여기서,


---- 원래의 과정


6. 데이터 요청을 받은 구글 서버는 인터넷 브라우저에게 데이터를 전송합니다.


7. 데이터를 받은 인터넷 브라우저는 해당 데이터를 토대로 구글의 홈페이지를 우리에게 보여줍니다.



하지만,


---- 정부의 불법유해사이트 차단 : 1차 URL 차단


6. 정부의 HTTP 감청 서버는 우리의 데이터 요청 메시지를 훔쳐보고, 해당 요청 사이트가 블랙리스트에 있는지 확인합니다. 

: 이때 우리에게 인터넷을 공급하는 통신사(ISP)의 협력을 받습니다.


7. 만약 요청 사이트가 블랙리스트라면, 감청 서버가 그 사이트 대신 인터넷 브라우저에게 응답을 합니다.


8. 데이터를 받은 인터넷 브라우저는 해당 데이터를 토대로 페이지를 띄우고, 그 페이지는 우리를 납치하여 Warning 페이지로 이동시킵니다.




하지만 이 방법은 곧 실패하고 말았습니다.


왜냐하면 다음과 같은 방법들로 파훼가 가능했기 때문이죠.


- 우리의 데이터 요청 메시지를 읽지 못하도록 암호화 기술인 HTTPS를 사용하자!

> http로 접속하지 말고, https로 접속하면 해결


- 그냥 외국 IP 주소 이용할래

> VPN을 사용하여 해외 IP 주소로 변경하면 해결



여기서 가장 각광받았던 방법이 HTTPS입니다.

다른 방법은 해외의 리소스를 사용하기 때문에 속도와 안정성이 떨어질 수 밖에 없는데요.

HTTPS는 일단 안전하고 속도 저하도 크지 않으며, 간편했기 때문입니다.


하지만 이에 대응하여 정부가 2차 차단 시도를 시행했습니다.




정부가 불법유해사이트를 차단하는 방법 : 2차 DNS 오염


사람들이 URL 차단을 피하기 위해서 HTTPS를 사용한 데이터 통신을 했기 때문에 정부는 그 전단계에서 거치게 되는 DNS를 이용하여 어떠한 조치를 취합니다.


그것이 바로 DNS 오염인데요.


DNS 오염이란 중국에서 사용하고 있는 대표적인 인터넷 검열 방법 중 하나로, DNS의 정보를 변조하는 것입니다. 


물론 인터넷제공업체(ISP, 통신사)에 지시해서 말이죠.


다시 3번으로 가봅시다.



3. 일단 인터넷 브라우저는 해당 도메인 주소를 가지고 DNS에 이 서버의 IP 주소를 물어봅니다.

: DNS야. 'www.google.com'의 IP 주소가 뭐야?



여기서, 


---- 원래의 과정


4. DNS는 요청받은 주소를 인터넷 브라우저에게 정상적으로 알려줍니다.

: 'www.google.com'의 주소는 '8.8.8.8'이야


5. 위의 5,6,7번 과정을 거쳐 정상적으로 해당 사이트를 볼 수 있게 됩니다.



하지만,


---- 정부의 불법유해사이트 차단 : 2차 DNS 오염


*정부는 인터넷제공업체에게 지시하여 DNS 데이터를 변조시킵니다. 블랙리스트 사이트에 대한 주소 요청이 있을 경우, Warning 페이지의 IP 주소를 알려주라고 말이죠.


4. DNS는 블랙리스트 사이트에 대한 요청을 받을 경우, Warning 페이지의 IP 주소를 알려줍니다.


5. 데이터를 받은 인터넷 브라우저는 해당 데이터를 토대로 본래의 사이트와는 다른 페이지를 표시하게 됩니다.




하지만 이 방법도 아주 간단한 방법으로 뚫리고 마는데요.


- 국내 인터넷제공업체의 DNS를 쓰지 말고, 외국의 DNS를 사용하자!

> 간단하게 DNS 주소만 바꾸면 해결




그래서 정부는 더 강력한 방법을 사용하기 시작합니다.




정부가 불법유해사이트를 차단하는 방법 : 3차 DNS 감청


이때부터 조금씩 일이 커지기 시작합니다. 


사람들이 자신의 영역 내에 있는 DNS가 아닌 다른 DNS를 이용한다는 사실을 알고, 이제는 사람들이 보내는 모든 DNS 요청을 감청하여 블랙리스트에 관련된 것들을 전부 차단하는 것이었습니다.


다시 3번으로 가봅시다.


3. 일단 인터넷 브라우저는 해당 도메인 주소를 가지고 DNS에 이 서버의 IP 주소를 물어봅니다.

: DNS야. 'www.google.com'의 IP 주소가 뭐야?



여기서, 


---- 정부의 불법유해사이트 차단 : 3차 DNS 감청


4. 정부는 네트워크상에서 DNS 질의 패킷을 전부 확인하여 블랙리스트와 대조합니다.


5. 만약 그 내용에 블랙리스트 사이트가 있다면 아예 해당 패킷을 버립니다. 


6. 정상적인 응답을 받지 못한 인터넷 브라우저는 페이지를 열지 못하게 됩니다.



이렇게 DNS 감청이 시작되니 사용자들은 아예 DNS 요청까지 정부가 확인하지 못하도록 HTTPS로 암호화 하게 되는데요.


그런데 며칠 전..



정부가 불법유해사이트를 차단하는 방법 : 4차 SNI 필드차단


네트워크_정부의감청2


'아, 이건 또 뭔.. SNI 필드차단이 뭐야?'


정말 끝이 없네요. 


이번 내용을 이해하기 위해서는 HTTPS의 역할도 파악하셔야 하는데요.


그럼 HTTPS가 어떤 역할을 하는지 알아보기 위해 위의 5번으로 돌아가봅시다.



5. 인터넷 브라우저는 DNS에게 받은 IP 주소로 홈페이지를 보기 위한 데이터를 달라고 요청합니다.

: '8.8.8.8'아. 홈페이지 보고 싶으니까 데이터 좀 보내줘


여기서 https를 이용하면, 데이터를 달라고 요청하기 전에 서버와 함께 접속을 위한 어떠한 '준비'를 합니다.


a. 먼저 접속하려는 사이트에 대한 데이터를 가지고 서버에 접속합니다. 


b. 서버는 데이터를 확인하고 자신의 인증서를 전송합니다.

: 서버의 인증서를 보내는 이유는 자신이 안전하다는 '인증'을 확인시켜주기 위함입니다.


c. 인증서를 받아 서버가 안전한지 확인을 한 뒤 일련의 암/복호화 과정을 통해 서로 연결하여 데이터 통신을 합니다.


이러한 암/복호화 과정을 거치기 때문에 우리와 서버 사이에서 일어나는 데이터 통신이 암호화되어, 감청을 해도 해석하지 못해서 막지 못했던 것입니다.



근데 어떻게 또 막혔냐구요?


정부가 이 '준비' 과정을 이용한 것입니다.


우리가 접속하려는 사이트에 대한 데이터를 가지고 서버에 접속하잖아요?


여기에 SNI라는 것이 있어요. 


Server Name Incation의 약자로 직역하면 '서버 이름 표시'입니다.


근데 문제는 HTTPS 연결을 준비하는 과정이기 때문에 이 SNI는 암호화되지 않고 평문으로 전송됩니다.


예전부터 말이 많았던 네트워크 통신의 보안 헛점이었는데, 이것을 정부가 이용한 것이죠.


하지만 현재 SNI 필드의 암호화가 진행되고 있기 때문에, 추후 완성된다면 정부의 이번 차단 방법도 막히게 되는데요.


그때는 정부가 또다른 방법을 이용해서 막으려고 하겠죠. 


현재 다음 차단 방법으로 예상되고 가장 유력한 방법은, SNI의 바로 다음 단계인 서버 인증서 감청이라고 합니다.




정부의 감청, 검열 이대로 괜찮은가?


뭔가 시사 프로그램의 타이틀처럼 적어봤는데요. 하하


사실 이건 웃으면서 이야기할 것이 아니라 굉장히 심각한 문제라고 생각합니다. 


대한민국 헌법 제2장 17조 : 모든 국민은 사생활의 비밀과 자유를 침해받지 아니한다.

대한민국 헌법 제2장 18조 : 모든 국민은 통신의 비밀을 침해받지 아니한다.


이건 우리나라 헌법인데요.


음...


정부가 해왔던, 하고 있는, 할 예정인 방법들이 과연 이 헌법에 적법한 행위일까요?


이미 청와대 게시판에는 청원들이 올라오고 있고 소규모 시위까지 등장할만큼 중대한 사항임에도 불구하고, 역시나 국내 최대 포털사이트라고 불리는 네이버는 현재 '이 화제만 빼고' 평화롭게 잘 돌아가고 있습니다. 아마 매번 나오는 이야기지만 어떠한 연관이 없을 수는 없겠죠.



성인이 성인사이트를 이용하는 것에 규제를 하는 것도 이상하고, 사람들의 인터넷을 감청하는 방식으로 시행하는 것도 이상합니다.


우리나라는 이미 과거부터 주요 사회적 이슈에 대해서 다른 OECD 국가에 비해 금지된 항목들이 많기는 한데요.


특정 사이트들을 금지하는 것과 민간인의 인터넷 활동을 검열하는 것은 차원이 다르다고 보여집니다.



또한 여전히 무적의 방법이 되고 있는 VPN도 이제는 문제시되어 차단하자는 움직임이 조금씩 보이고 있으니.. 참 암담한 미래가 예상됩니다.


지금도 문제지만, 불법유해사이트를 막기 위한 방법으로 사용되는 기술들이 우리가 모르는 새에 어떻게 변질될 지는 아무도 모르니까요.



오랜만에 네트워크 관련 포스팅이면서 큰 볼륨의 화제를 다루다보니 힘이 조금 많이 들어간 것 같네요.


다음으로 준비 중인 포스팅은 차단된 사이트 우회하는 다양한 방법들과 이번 사태로 인해 벌어질 수 있는 상황들에 대해서인데요.


글솜씨가 모자라지만 열심히 작성해보겠습니다.


그럼 긴 글 읽어주셔서 감사합니다.



#SNI 차단된 사이트 우회 방법과 최근 동향에 대해

#파이어폭스 ESNI 설정 방법

#모바일 프라이버시를 지키자! 인트라(Intra)

#HTTPS SNI 우회 프로그램! GoodbyeDPI

#초간단 차단된 사이트 우회 방법!? 구글 번역 이용하기


#정부의 불법유해사이트(+HTTPS) 차단 우회, 해결방법?



댓글