brunch

매거진 ToIssue

You can make anything
by writing

C.S.Lewis

by 신현묵 Feb 13. 2019

http? SNI 필드 차단? 이건 '감청'과 '검열'

검열과 차단. 그리고, 개인의 권리.

이 이슈는 매우 단순한 '고민'에서 출발했다고 생각되었고.. 그냥, 막으면 되는 것 아닌가라는 순진한 생각의 결과물이었지만... 대단히 위험한 행위라고 생각한다.


이건 '감청'과 '검열'에 해당되는 행위이다.


기존의 웹사이트 차단 방식인 'URL 차단'방식은 'http'라는 단어를 'https'로 살짝 바꿔서 호출하면 대부분의 URL 차단을 회피할 수 있었다. (* 정말 다 알고들 있었다. 그냥, 귀찮게 하는 것이 전부였을 뿐... )


그래서, 이렇게 쉽게 우회하는 https의 암호화되지 않은 SNI필드를 대상으로 검열을 하고 차단을 하겠다는 생각에서 시작된 것으로 보인다.


SNI(Server Name Indication)은 TLS( Transport Layer Security)의 확장 표준 중의 하나이고, 보통 SSL이라는 인증서에서 사용하는 방식이다. ( 표준 정식 명칭은 TLS이지만, SSL이라는 용어가 더 많이 사용된다. 과거, 넷스케이프 커뮤니케이션스가 개발한 SSL(Serure Sockets Layer)를 기반으로 인터넷 표준화 기구에서 표준으로 인증받았고, 지금도 널리 사용되고 있다. )


일반적으로 HTTPS프로토콜은 HTTP 프로토콜보다 안전하기 때문에 인터넷에서 널리 사용되는 보안 프로토콜이다. ( 분명, HTTP 프로토콜은 중간자 공격이나 도청이 매우 손쉽기 때문에 위험하다. )


재미있는 것은 한국 웹사이트들은 TLS인증기관에게서 제대로 된 검증을 받지 못해서, SPKI인증 오류 등에 문제가 있다는 에피소드는 이야기하면 좋겠다. 또한, TLS자체는 201년부터 뚫어서 보는 것은 일도 아니며, 허점들에 대해서는 많은 보안 취약점이 있다고 알려져 있는 보안 프로토콜이기도 하다. ( NSA에서는 이미 대부분 감청하고 있기는 할 내용이기는 하다. 원래, 그들은 거의 초법적인 존재들이기 때문에... )


좌우지간, 이야기의 주제는 그것이 아니라 이 방법이 나온 것은 하나의 웹서버를 여러 웹사이트가 서비스하면서 인증서 인증에 문제가 생길 때에 1:1 관계가 아니라, 하나의 웹서버에서 여러 도메인의 웹사이트를 서비스하는 경우에도 인증서를 활용한 HTTPS를 활성화할 수 있고, 이 때문에 TLS표준에서는 SNI암호화를 평문 형태로 전송하면서 구동되는 일종의 '허점'에 대해서 검열의 하나의 방식으로 사용했기 때문이다.


이 부분은 사실상 '보안상 허점'에 해당되는 부분으로 엔지니어들에게는 잘 알려진 내용이다. 이 이슈에 대해서는 TLS 1.3을 기준으로 ESNI(Encryted SNI) 서비스가 2018년 12월부터 지원은 시작되었지만, 현재의 대부분의 브라우저에서는 이 기능이 동작하지 않는다. ( 향후, 브라우저들이 ESNI로 모두 전환된다면.. 그다지 쓸모없는 이야기가 될 것이기도 하다. )


---- 개발자가 아니면 어려운 내용들이니 하여간 건너뛰고....


말이 길어졌지만. 이 이야기의 화두는 다음과 같이 정리할 수 있다.


1. https의 사용자와 웹서버 사이의 통신이 암호화되는 구역 전에 SNI 패킷을 주고받아야 하는데, 이 부분이 평문 방식이기 때문에 이 부분을 '검열'의 한 방법으로 사용하면서 문제가 된 것이다.

2. 기존에는 URL 차단만 수행하다가, https 차단하기 위해서 DNS 스푸핑 기법으로 차단하고, 2019년 2월 11일 드디어 KT를 시작으로 SNI필드 '감청'을 통한 차단을 시작한 것이다.


문제는 기존에는 단순한 '차단'을 하던 정부의 통제방식에서 사용자와 웹서버 사이의 '정보'에 대한 정보를 '검열'하기 위해서 '감청'을 하기 시작했다는 것이 현재 가장 중요한 이슈다. ( 이 구역의 데이터는 분명하게 개인의 영역에 해당된다고 봐야 한다. )


물론, 정부는 '오해'라고 설명한다.

https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=005&aid=0001172180


하지만, 엔지니어의 입장에서 본다면... 이것은 '감청'에 해당되는 '검열'이 맞다.

( 사용자가 웹서버랑 주고받는 https 프로토콜의 버그 영역이라고 하더라도, 권력기관이 감청하는 행위는 분명한 국민의 기본권 침해라고 생각한다. 실제 데이터와 전송내용을 파악하지 못한다고 해도, 이건 검열이다. )


작은 '검열'이라고 하더라도, 사용자와 웹서버 간의 정보를 '검열'하는 방식에 대해서는 동의할 수 없다. 더 중요한 것은 이러한 방법으로 '차단'을 하더라도, '우회'할 수 있는 방법이 너무도 많다는 것을 엔지니어들은 이야기한다. ( 사실, 이 문제로 얼마나 많은 사이트를 차단할 수 있을까? 그 실효성도... )


분명한 것은 헌법에 명시된 국민의 기본권에 대한 침해에 해당되고, 이는 음란물을 차단하거나, 도박사이트를 차단했다고 하더라도 그 성과가 좋다고 평가하는 것은 기본적인 개념에 대한 문제가 있다고 지적을 하고 싶다.


분명한 것은 이번 '검열'과 '차단'을 위한 '감청'에 대해서는 사과하고, 관련자에 대해서 엄벌을 취해야 한다. 이는 분명한 기본권에 대한 침해라고 생각한다.

매거진의 이전글 세운상가, 재정비사업... 동상이몽.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari