소소한 일상 기록

얼마 전 이슈가 되어서 글을 썼지만( https://misol.kr/blog/1933 ), 다시 한번 다른 기술 방법으로 이슈가 되면서 글을 다시 적어본다.

며칠 전부터 KT 망에서 SNI 차단이라는 것이 시행되기 시작했다. 법에 어긋나는 사이트로의 접속을 차단하겠다는 목적이다. 목적을 실현하는 일 자체에는 찬성이다. 다만, 방법에 문제를 제기하고 싶은 마음이다.

저 차단의 목적 자체에 반대하는 사람들과 찬성하는 사람들이 있는 것으로 비치고 있어서 오해를 막기 위해서 먼저 분명히 다시 한번 언급 하고 간다. 불법 사이트에 접속되지 않도록 노력하는 것 자체에는 찬성이다.

문제 제기를 하기 위해서는 차단 방법에 대한 가벼운 이해가 있어야 하기 때문에 역할극을 하려고 한다. 컨텐츠를 제공하는 사이트의 서버를 '서울대학교'라 하고, 컨텐츠 서버의 아이피 주소를 알려주는 서버(DNS resolver)를 '중계상인' 이라 하자. 컨텐츠를 즐기고 싶은 사람의 컴퓨터(Client)를 '접속자'라고 하겠다. '중계상인'들은 각 '지역 명소'들(도메인 주소)의 '도로명 주소'(아이피 주소)를 알려주는 역할을 한다. '중계상인'은 '국내 중계상인'(KT, LG U+ 등 통신사 DNS resolver)과 '해외 중계상인'(Cloudflare, Google, IBM 등 해외 회사의 DNS resolver)이 있다. '컨텐츠'는 도서 대출에 비유해보도록 하겠다.  '접속자'는 '서울대학교' 도서관에서 '국어사전'을 빌려보려고 한다.

'접속자'가 '서울대학교' 도서관에서 '국어사전'을 빌려보기 위해서는 어떤 과정을 거쳐야할까? 먼저 '서울대학교' 도서관의 위치를 알아야 한다. '국내 중계상인'에게 '서울대학교'의 위치를 문의했다. '국내 중계상인'은 '서울 중구 세종대로 110'를 알려준다. 이 주소는 '서울시청'의 주소이다. '접속자'는 '서울대학교'에 접속하는데 실패하고, 도서 대출에도 당연히 실패한다. 이 방식이 이전까지 시행했던 DNS 변조 방식이다. 주소를 다르게 알려주어서 접속에 실패하도록 하는 것이다. 이렇게 되자, 많은 '접속자'들은 '해외 중계상인'들을 이용하기 시작했다. '해외 중계상인'들은 '서울 관악구 관악로 1'이라는 주소를 알려주었고, '접속자'들은 '서울대학교'에 무사히 도착해서 도서 대출을 할 수 있었다. 즉, DNS resolver 를 해외 DNS(Cloudflare 의 1.1.1.1, 구글의 8.8.8.8, IBM 의 9.9.9.9 등)로 바꾸어서 차단을 회피하는 사람들이 늘었다.

하지만, 이 '중계상인'과의 대화는 공개적인 대화다. 다른 사람들이 대화를 엿듣는게 가능하고, '해외 중계상인'에게 주소를 묻는 '접속자'에게 더 빠르게 '서울 중구 세종대로 110' (서울시청) 을 외치기만 하면, '접속자'는 '서울대학교'가 아닌 '서울시청'으로 향했다. 즉, DNS resolver 로의 패킷을 감청했다. 이것이 SK broadband 등의 회사가 시행해서 논란이 되었던 사건이다.

이렇게 되자, '접속자'들은 '해외 중계상인'과 암호로 통신하기 시작했다. '서울대학교'의 주소를 큰 소리로 묻지 않고 'ㅅㅇㄷㅎㄱ???'와 같이 둘 사이에 약속된 암호로 소통(DNS over HTTPS, DNS over TLS, DNSCrypt 등)하기 시작하자, 앞선 시도는 무력화 되었다.

이렇게 되자, '서울대학교'로 가는 '접속자'를 알기 위해서 전국의 문 앞을 '감시자'(Deep Packet Inspection)가 지키기 시작했다. 본래 이 감시자는 '길 관리자'들이 길의 통행량을 관리하기 위해서 개발했던 것인데, 다른 용도로도 사용하기 시작했다. 이 '감시자'는 길을 걸어다니는 모든 '접속자'들에게 목적지를 묻기 시작했다. '접속자'들은 모두 거짓말을 못 하는 사람들이라, '서울대학교'로 가는 '접속자'들은 '감시자'들에게 차단되기 시작했다. 목적지로 '서울대학교'를 말한 사람들 (Server Name Indication; SNI)에게 다른 목적지(Redirection)로 가도록 할 수는 없었지만(HTTPS 인증서 오류), '서울대학교'로 가지 않도록 할 수는 있었다 ("블랙아웃").

하지만, 이 시도도 곧 무력화될 예정이거나 무력화되고 있다. '접속자'들이 목적지를 알려줄 때도 암호를 말하기 시작한 것이다. (Encrypted Server Name Indication; ESNI) 이 암호는 '대학교' 마다 알아보는 곳도 있고 아직까지 해독기를 갖추지 못한 곳 (ESNI는 컨텐츠 서버에서도 지원을 해야 한다. Cloudflare 등 이를 지원하는 중계 서버를 이용하는 방법도 있다)도 있지만, '접속자'들이 항의를 해대는 탓에, 전국 '대학교'에 보급될 확률이 높다.

 

너무 비유를 해서 알기 쉽지 못했을 수도 있다. 하지만, 웹 접속자들이 감시 당하고 있다는 사실은 변하지 않는다. DNS 로의 요청은 사실 클라이언트에 캐싱이 되기 때문에, 약간은 간접적으로 정보수집이 된다. 예를 들면 해당 사이트를 짧은 시간에 자주 방문 (게시판 페이지를 여러개 봤다든지) 하는 것까지는 기록될 수 없다. 하지만, SNI 는 페이지를 열어볼 때마다 헤더에 포함된 정보기 때문에, 이를 기록하고 통계를 내면 훨씬 직접적인 정보다. 클라이언트가 얼마나 자주 얼마나 깊이 해당 사이트를 들여다봤는지 알기 쉽게 통계를 낼 수도 있다.

앞서 말했지만, 불법사이트는 제거되어야 하고, 사이트 운영자는 처벌되어야 한다. 불법 영상이나 정보의 유통에 철퇴를 내려야 한다는 사실은 충분히 지지한다. 하지만, SNI 차단은 이에 대한 정공법이 아니다. 게다가 이 장비로 다른 마음을 먹는다면 네이버를 얼마나 자주 접속하는지, 소녀시대 팬 사이트에는 얼마나 자주 접속하는지, 논문 사이트에는 얼마나 자주 접속하는지, 어떤 정치인의 개인 홈페이지는 얼마나 자주 접속하는지 한번 접속하면 몇개의 페이지를 열어보는지 등의 정보를 알아낼 수 있다. 지나치게 직접적이다.

어떤 정책을 시행할 때는 이 정책이 선례가 되어서 후대에 악용될 소지는 없는지, 정말 이 방법이 정답인지 등을 긴 안목으로 보았으면 한다.

불법 정보 유통이 문제라면, 사이트의 컨텐츠 서버 자체를 압수, 운영자 체포 (사법 공조로 해결한 사례가 밤토끼 등 있다.)해서 해결하는 것이 정공법이다. 운영자를 체포하게 되면 해당 운영자로 생긴 피해에 대해서 민사소송 (실제로 밤토끼 운영자에 대해 네이버 웹툰 등이 피해배상소송을 하고 있다.)으로 이어질 수도 있다. 불법 정보를 유통하는 사람 입장에서는 이쪽이 경제적으로나 사회적으로 강한 처벌을 받는 것 아닐까? 솔직히, 사이트 도메인을 차단하는 것으로는 불법 정보가 차단될거라는 생각이 들지 않는다. 도메인 주소를 만드는데는 10분이 채 걸리지 않는다. 도메인 주소 차단에 매달리는 현 정부의 정책은 밑빠진 독에 물을 부으면서 '나 노력하고 있소'라고 생색내는 것에 불과하다.

제대로된 운영자 처벌과 서버 압수를 통한 정보 유통 차단을 하길 바란다. 전국민의 통신 내용을 열어보려는 것은 부작용만 많을 뿐 문제는 해결되지 않는 방법이라는 것을 다시 한번 생각해보길 바란다.

List of Articles
Science and Technology SNI 차단? HTTPS 차단? DNS 차단? 그게 뭐야? 1 2019.02.14 471
Requesting to the server, please wait.