이달 들어 정부가 HTTPS 사이트를 검열하겠다고 나섰다. 이 소식에 수많은 인터넷 커뮤니티가 불평과 불만을 쏟아냈다. 불법 영상물 차단이라는 '목적'을 위해 채택한 HTTPS 사이트 검열이라는 '수단'이 국민 개개인에 대한 '검열'로 이어질 거라는 우려가 일었다. 청와대 국민 신문고에는 HTTPS 사이트 검열에 반대한다는 글이 올라왔고 일주일 만에 25만 명이 서명했다. 정부 측에서는 방송통신위원장이 직접 해명에 나섰다.
그러나 정부 측 설명을 듣고도 여전히 사람들은 의심의 눈초리를 거두지 않고 있다. 오늘은 HTTPS가 무엇인지, 과연 정부의 말처럼 이번 조치가 개인정보에 대한 검열로 이어질 가능성은 없는지 살펴보자.
◇HTTPS란 무엇이고, 왜 탄생했는가
HTTPS 사이트는 HTTP 사이트보다 안전하다. HTTPS란 'Hyper Text Transfer Protocol over SSL/TLS'의 약자로 종전의 HTTP 방식에 SSL/TLS라는 통신 암호화 방법을 추가하여 컴퓨터와 서버 사이의 통신을 암호화하고 인터넷 사용자와 서비스 제공자가 안전하게 데이터를 주고받을 수 있도록 만든 통신 방식이다.
HTTPS는 공통키 암호 방식과 공개키 암호 방식이라는 두 가지 암호화 방식을 사용해 데이터 해킹을 방지한다. 두 방식 모두 암호키를 사용해 데이터를 암호화한다. 암호키란 같은 암호 알고리즘을 여러 사람이 함께 사용하기 위한 수단이다. 통신을 사용하는 사람 모두가 완전히 같은 암호를 사용한다면 누구나 쉽게 다른 사람의 암호를 풀 수 있을 것이다.
이래서는 암호를 사용하는 의미가 없다. 암호가 암호로서 성립하기 위해서는 수많은 통신 사례를 하나하나 차별화해야 한다. 암호키를 사용하면 데이터를 보내는 사람과 받는 사람만 풀 수 있는 개별 암호가 생겨나기 때문에 이 문제를 해결할 수 있다.
공통키 암호 방식은 암호화와 복호화(암호를 풀어 원래 메시지로 변환하는 과정) 때 같은 암호키를 사용한다. 서비스 사용자와 서버만 이용할 수 있는 암호키를 생성하여 오직 이 암호키로만 해독할 수 있는 데이터를 주고받는다.
공통키 암호 방식은 암호화, 복호의 처리가 빠른 게 장점이다. 하지만 공통으로 사용하는 암호키를 상대방에게 건네야 한다는 조건이 붙는다. 암호키를 건네는 순간은 암호화할 수 없기 때문에 이 암호키 자체를 해커에게 뺏길 수 있다는 일말의 불안이 남는 방식이다.
반면 공개키 암호 방식은 공개키와 비밀키라는 두 종류의 암호키를 사용한다. 이 두 암호키는 쌍으로 작동한다. 비밀키로 암호화한 데이터는 이것과 쌍을 이루는 공개키를 사용해야만 해독할 수 있다.
반대로 공개키로 암호화한 데이터를 풀기 위해서는 반드시 비밀키가 필요하다. 공개키 암호 방식은 흡사 열쇠와 자물쇠의 관계와 닮아있다. 비밀키는 서버에만 저장된다. 서버와 통신을 주고받는 상대방은 비밀키가 아닌 공개키를 받는다. 만일 사용자에게 공개키를 전달하는 과정 중 해커가 끼어들어 암호키 유출 사태가 벌어진다고 하더라도 서버만이 가진 비밀키 없이는 암호 해독할 수 없기 때문에 데이터 보안을 강화할 수 있다. 하지만 공개키 암호 방식은 암호화 처리가 느리다는 약점을 가진다.
SSL 방식은 두 방식을 혼합한 하이브리드 암호화 방식이다. 인터넷 사용자가 HTTPS 사이트를 통해 서버에 접속을 시도하면 우선 SSL 서버가 증명서를 사용자에게 전달한다. 증명서 속에는 공개키가 포함되어 있다. 사용자 측의 브라우저는 전달받은 SSL 증명서를 확인하고 안전성을 살펴본 후 서버와 공유할 수 있는 공통키를 제작한다.
다음으로 공통키를 공개키를 통해 암호화하여 서버 측에 전송하면 서버는 이미 갖고 있던 비밀키로 전달받은 암호를 풀어 사용자와의 공통키를 획득한다. 이후 둘 사이의 통신은 공통키를 통해 진행된다. 요는 안전한 공개키 암호 방식을 통해 혹시 모를 공통키 유출 사태를 방지하고 주된 통신은 빠른 속도를 자랑하는 공통키 암호 방식을 사용하는 것이다.
◇HTTPS 차단이 논란이 된 이유
그렇다면 정부는 어떤 방법으로 HTTPS를 통해 암호화된 통신을 선별적으로 차단한다는 걸까? 원리적으로 한번 암호화된 데이터는 공통키 또는 공개키 없이는 해독할 수 없다. 따라서 HTTPS를 통해 데이터가 암호화되면 제삼자는 인터넷 사용자와 서버 사이에 어떤 데이터가 오고 갔는지 알아낼 방법이 없다. 정부는 암호키를 통해 암호화가 이루어지기 전 단계, 즉 사용자가 서버에 접속해 접속 의사를 타진하는 단계에서 선별적 접속 차단을 하고 있다. 이 차단 방식을 SNI(Server Name Indicator)라고 한다. 이 기술은 HTTPS를 통한 암호화가 일어나기 전 찰나의 순간을 들춰본다.
따라서 정부는 SNI라는 편지 봉투에 적혀 있는 주소를 보고 사용자가 어느 사이트에 접속하려 했는지를 알 수 있을 뿐, 편지 봉투 속 암호화된 편지 내용까지 파악하는 것은 불가능하다. 다만 인터넷 사용자가 접속하고자 시도한 사이트를 미리 확인하고 선별적으로 차단한다는 행위도 엄연한 인터넷 검열이자 개인의 자유권 침해로 봐야 한다는 반대 측의 주장도 무시할 수 없다.
게다가 접속 사이트 도메인까지 모조리 암호화하는 ESNI라는 신기술이 개발 중이다. 이 기술이 상용화되면 정부는 또 다른 방법을 찾아야 할 것이다. 그땐 정말 편지 속 데이터까지 감청하지 않으면 목적을 달성할 수 없을지도 모른다. 정부가 이번 조치를 통해 얻고자 한 이득에 비해 너무 많은 사회적 혼란을 일으키지는 않았는지 우려되는 부분이다.
글: 이형석 과학칼럼니스트