검색결과 리스트
글
https 차단을 우회하는 방법 - GoodbyeDPI [2019.02.13]
블로그를 운영하면서 생각하였던 목표 중 하나는 방문하는 분들께서 조금이나마 도움을 드리고자 하는 방향으로 글을 쓰는 것이었습니다. 비록 제가 공부하는 분야들 중에서 인터넷에서 자세히 나오지 않는 부분에 대한 글들이 대부분이라 방문하는 모든 분들께 만족할 수 없기에 조회수는 제가 쓴 글들이 하루에 한 개씩 읽히는 정도로 생각해왔지요.
그러던 어느날 정말로 깜짝 놀랄 만한 일이 벌어졌습니다.
무려 3년 전에 작성하였던 글의 조회수가 갑자기 폭등하는 상황이 벌어진 것입니다. 제가 작성하였던 글이지만 대체 무슨 논란이 벌어져서 이런 현상이 일어났는지 생각해보니 최근 몇몇 해외 사이트가 접속되지 않는 현상이 나타난다는 이야기를 친구로부터 들었던 것이 기억이 났습니다.
도대체 무슨 상황이길래 우리나라의 인터넷 세상에서 이토록 난리가 난 것일까요?
우선 이를 설명하기 위해 우리는 https의 원리에 대해 알아보도록 하겠습니다.
기존의 http는 컴퓨터 간의 정보를 교환하는 프로토콜(Protocol) 역할을 합니다. http는 초창기에 만들어진 연결이다 보니 암호화가 되어 있지 않아 보안이 매우 취약합니다.
반면 https의 경우 기존 http에 TLS(SSL) 암호화가 적용되어 데이터 전송의 매체인 패킷(Packet)을 암호화하여 이를 도중에 감청을 시도하더라도 암호를 해독하기 위한 key가 없으면 내용을 알아낼 수 없도록 설계되어 있습니다. 그렇기에 특정 사이트를 차단을 시도한다 하더라도 이를 막을 수 있는 방법이 없었던 것입니다.
그런데 이러한 https 프로토클을 막을 수 있는 방법이 하나 있습니다. 바로 DNS Spoofing을 사용하는 것이지요.
이번 https 차단 사태에서 사용된 방법으로 우리가 인터넷으로 접속할 때엔 해당 서버의 IP주소를 사용해야 하지만 숫자로 되어 있는 주소를 외우기엔 어렵기 때문에 이를 도메인 (예를 들어 https://elecs.tistory.com) 을 입력하면 DNS 서버가 해당 도메인의 IP 주소를 사용자에게 가르쳐 줌으로서 원하는 사이트에 접속할 수 있는 것이지요.
그런데 이러한 역할을 해주는 DNS 서버를 변조하여 다른 사이트로 바꿔버리면 사용자는 해당 홈페이지에 접속할 수 없는 상황이 벌어집니다. 만약 해당 사이트가 인터넷뱅킹 사이트였는데 해커가 보이스피싱 사이트로 DNS를 변조한다면 막대한 피해가 생기는 것이지요.
문제는 앞으로 이보다 더 나아가 SNI(Server Name Indication) 필드를 감청하여 차단하는 방식을 적용하게 되면 이는 통신보호법 제 5조 2항이 '헌법불합치' 판정으로 인해 헌법에 위배되는 행위가 됩니다. 만약 이를 허용하게 된다면 타인이 자신이 접속하는 사이트를 알 수 있으며 이는 매우 심각한 인권 침해가 될 수 있다는 것이지요.
이러한 상황이 염려되기 때문에 많은 사람들이 국민청원으로 목소리를 내고 있는 것이지요. 그렇다면 지금 상황에서 https가 차단된 해외 사이트 접속은 불가능한 것일까요?
현재의 상황에서 차단된 해외 사이트에 접속할 수 있는 방법으로 러시아 개발자가 만든 GoodbyeDPI를 사용하여 심층 패킷 감청(Deep Packet Inspection)을 피하는 것입니다. 흔히 우리나라에서 불법 사이트에 접속하였을 때 나타나는 Warning 사이트의 원리가 DPI를 사용하는 것인데 이를 우회하는 것이지요
먼저 GoodbyeDPI 공식 사이트에 접속하여 프로그램을 다운로드 받습니다.
https://github.com/Include-sys/GUI-for-GoodbyeDPI
접속하시면 아래와 같은 화면이 나타나는데 자신의 컴퓨터 환경(32비트 or 64비트)에 해당되는 링크를 클릭하여 다운로드 받습니다.
프로그램이 인터넷 접속에 영향을 주기 때문에 보안경고가 나타납니다. '자세히' 버튼을 눌러 실행 버튼을 누르면 실행 전 경고 화면이 나타납니다. 해당 화면에서도 실행 버튼을 눌러주면 GoodbyeDPI 프로그램을 실행하실 수 있습니다.
위와 같은 화면이 나오면 빨간색으로 표시된 버튼을 누르면 프로그램이 실행됩니다. 이제 https 차단을 우회하여 해외 사이트에 접속하실 수 있습니다.
이 프로그램의 문제점으로 창을 닫는다고 해서 프로그램이 종료되지 않습니다. 작업 관리자(ctrl+alt+delete) 버튼을 눌러 직접 프로세스를 선택한 후 '작업 끝내기'를 눌러 프로그램을 완전히 종료시킵니다.
'공대생의 팁' 카테고리의 다른 글
C++ 클래스 객체를 stream으로 통신 및 전달방법 - Boost Serialization(2) [Class를 TCP 소켓 통신으로 전송] (0) | 2019.03.08 |
---|---|
C++에서 Boost ASIO를 사용하여 TCP 비동기(Unblocked) 통신 프로그래밍 (10) | 2019.03.07 |
Co-visibility graph(공가시성 그래프) (0) | 2019.01.22 |
Pixel Intensity(화소 강도) (2) | 2019.01.13 |
Nonparametric methods(비모수적 접근법) (0) | 2018.12.31 |