http://m.mcst.go.kr/m/s_notice/notice/noticeView.jsp?pTp=P&pTpCD=0302000000&pSeq=16672
현재 정부의 검열 방식은, HTTP 데이터가 통신하는 길목에 검문소를 설치하여 유해 사이트로 지정된 사이트에 연결하려고 할 경우에 연결을 강제로 끊어버리는 방식입니다.
HTTP 데이터에는 이 데이터가 어디로 전송되어야 한다는 Host 정보가 담겨 있는데, 현재의 검열 방식은 이 Host 헤더를 뜯어서 블랙리스트 도메인과 일치하는지 확인 후 일치하면 패킷을 강제로 warning.or.kr 사이트로 보내 버립니다.
다만 HTTPS에서는 이 데이터가 암호화된 채로 전송되기 때문에, 정부 기관의 힘이 닿는 네트워크 장비에서는 데이터의 출발/목적지 IP밖에 알 수 없습니다.
상황이 이래서, 현재의 검열 방식은 거의 유명무실해졌습니다.
이 상황에서 HTTPS 연결을 차단하는 방식은 크게 세 가지입니다.
1. 목적지 IP를 무차별 밴
이번에 러시아의 AWS 차단 사태가 이런 방식입니다. 유해 사이트가 운영되고 있는 것으로 추정되는 서버의 IP를 찾아서 블랙리스트에 넣어버리면, 해당 서버에 대한 접근을 물리적으로 막을 수 있습니다.
다만 이래버리면 해당 서버에 있는 다른 웹 사이트까지 접근이 막혀버리기 때문에 여러모로 좋지 않은 방법입니다.
2. DNS 요청을 감청하여 차단
우리가 브라우저에서 입력하는 웹 사이트 주소(ex: www.clien.net )는 특정 IP를 가리키고 있는데, 이러한 도메인들이 어떤 IP를 가리키고 있는지는 네트워크의 DNS 서버에 저장되어 있습니다.
컴퓨터는 이 IP 주소를 알아내기 위해 DNS 서버에 특정 방식으로 통신을 시도하는데(비유하자면 길이 13만개쯤 뚫려 있고, DNS 통신은 그중 항상 하나의 길로만 가는 것입니다), 정부는 이 길 중간에 검문소를 설치하여 블랙리스트에 오른 도메인의 IP를 찾으려고 하면 그 연결을 끊어 버리거나 warning.or.kr 서버의 IP를 원래 IP 대신 전달해 줍니다.
3. SSL Handshake의 SNI 부분을 감청
SSL(HTTPS)가 암호화된 통신이라는 건 다들 아실텐데, 이 암호화를 위해서는 먼저 서버와 평문(암호화되지 않은) 통신을 하여 암호화 키를 받아내는 과정이 필요합니다.
이 과정에서 서버의 도메인이 평문으로 노출되게 되는데, 이를 떼어내 블랙리스트에 오른 도메인과 일치할 경우 정부가 연결을 강제로 끊어 버립니다.
정부는 HTTPS 차단을 시도하기 위해 2번과 3번 방식을 혼합하여 쓸 계획인 듯 합니다.
굳이 2번과 3번을 섞어 쓰는 이유는, 2번의 경우에는 DNS over HTTPS라고 하여 DNS 패킷을 암호화한 채로 전달하면 종래와 마찬가지의 이유로 감청이 유명무실해 질 수 있기 때문입니다.
근데 어쨌던 DNS 감청은 임시방편이고, 결국 SNI 패킷을 이용한 감청 기술이 나오면 의미가 없어지니 걱정입니다.
속도나 여러면에서 지금 가장 만족도 높은 DNS가 CF같아요.
그리고 다른 방법으론 VPN이 있겠구요.
정부가 대놓고 전국민을 상대로 감청을 하고 있는데도 국민 대다수가 인지하지 못하는 현실이 참 그렇네요.
말씀하신대로 정부가 감청 및 차단을 시도하는데 이슈가 안되는게 참 안타깝습니다.
하지만 기술의 발전이 창과 방패의 관계이니 완전히 막지는 못할 것 같지만.. 불편함은 계속 지속되겠네요
제발 좀 그만 해라. 이 유교탈레발 거지 발싸개같은 것들아