구욷바이DPI

From Hidden Wiki
Revision as of 03:23, 12 March 2019 by Reipumom (talk | contribs) (→‎개요)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

||

<-3><bgcolor=#24292E>
{{{#white {{{+1 굿바이DPI}}}[br]GoodbyeDPI}}} || ||<#24292E> {{{#white 개발자}}} ||<(><-2><#FFFFFF> [[1]] || ||<#24292E> {{{#white 플랫폼}}} ||<(><-2><#FFFFFF> [[Microsoft Windows|width=16]] || ||<#24292E> {{{#white 라이선스}}} ||<(><-2><#FFFFFF> 아파치 라이선스 || ||<#24292E> {{{#white 링크}}} ||<(><-2><#FFFFFF> [웹사이트] [[2]] || [목차] 수동적 DPI#s-3(Deep Packet Inspection; 심층 패킷 분석) 차단 및 능동적 DPI 우회 프로그램.

개요

러시아 개발자 ValdikSS가 개발한 오픈 소스 소프트웨어로 특정 웹 사이트에 대한 접근을 차단하는 '심층 패킷 분석(DPI#s-3)'을 우회하는 윈도우용 프로그램이다. 아파치 라이선스로 배포되며, 소스 코드GitHub에 공개되어 있다.

구욷바이DPI (GoodbyeDPI, 굳바이DPI, 굿바이DPI)

2019년 2월 시작된 한국 정부의 https 및 SNI 관련 추가 조치로 많은 사이트가 차단되면서 알려지기 시작했으며 실제로 우회 접속할 수 있다.

작동방식

간단히 말하면 검열에 자주 사용되는 패킷을 차단하거나 패킷을 분석하기 어렵게 변조하는 것이다.

제작자의 설명에 따르면 광분배기나 포트 미러링을 이용한 수동적 DPI는 데이터를 완전히 막지는 않고 요청한 사이트보다 더 빨리 응답하게 하는 방식이고, 능동적 DPI는 데이터를 막는 방식인데, 수동적 DPI는 막고 능동적 DPI는 우회한다고 되어있다. 사용자단에서 패킷#s-1을 가로채고 필터를 걸 수 있도록 [[3]]라는 드라이버를 로드시킨다. 콘솔#s-2 창이 떠 있는 동안만 작동하고, 창을 닫으면 종료된다.[* PC에 따라 창을 닫아도 드라이버가 종료되지 않기도 하는데, 컴퓨터를 끄면 종료된다.]

수동적 DPI (Passive DPI)

대부분 수동적 DPI는 목적지 웹사이트가 응답하는 것 보다 더 빨리 HTTP 302 리디렉션(HTTP) 혹은 TCP Reset(HTTPS) 패킷을 보낸다. 이 패킷들은 보통 IP Identification 필드가 {{{0x0000}}} 혹은 {{{0x0001}}}인데, 이를 GoodbyeDPI가 차단시킨다고 한다.

능동적 DPI (Active DPI)

능동적 DPI는 좀 더 까다로운데, 현재 6가지 방법을 사용하여 이를 회피하고 있다.

1.첫 데이터 패킷#s-1을 TCP 단에서 단편화
1.keep-alive 패킷을 TCP 단에서 단편화
1.Host 헤더를 hoSt로 교체
1.Host 헤더 이름과 값 사이의 공백 제거
1.HTTP 메소드(GET, POST 등)와 URI 사이에 공백 추가
1.Host 헤더 값에 대소문자 섞기 (test.com -> tEsT.cOm)

이 방법들이 TCPHTTP 표준에 완전히 부합하기 때문에 웹사이트들이 제대로 보이면서도 DPI 및 검열을 피할 수 있다. 공백 추가는 HTTP/1.1 규격에는 맞지만 웹 표준을 지키지 않는 일부 웹사이트 접속이 제대로 되지 않을 수 있다.

사용법

배포처에서 다운로드 후 관리자 권한으로 x86_64(64비트) 또는 x86(32비트) 폴더의 {{{goodbyedpi.exe [옵션]}}}을 실행하면 된다. 자세한 옵션은 [웹사이트] 및 [된 가이드] 참조 명령어가 복잡할 수도 있어 cmd 파일도 같이 배포되고 있다. 이를 실행하면 콘솔 창이 뜨는데, 이 창이 떠 있는 동안 우회가 작동하게 된다.

{{{service_install_}}}로 시작하는 cmd 파일을 실행시키면 윈도우 서비스에 등록해서 매 부팅 시 마다 항상 작동하도록 할 수 있다. {{{service_remove.cmd}}}로 서비스를 삭제할 수 있다.

옵션

{{{goodbyedpi.exe}}} 뒤에 각종 옵션을 붙이면 해당 설정대로 우회를 시도한다. 아래는 제작자가 만들어 놓은 프리셋으로, 명령줄에 {{{goodbyedpi.exe -1}}} 과 같은 식으로 입력하면 아래의 복잡한 옵션을 입력한 것과 동일한 효과가 난다.

|| {{{-1}}} ||{{{-p -r -s -f 2 -k 2 -n -e 2}}} ||가장 호환성 높은 방식, 가장 느림. 기본값 || || {{{-2}}} ||{{{-p -r -s -f 2 -k 2 -n -e 40}}} ||HTTPS의 속도가 더 빠르지만 여전히 호환성 높음.|| || {{{-3}}} ||{{{-p -r -s -e 40}}} ||HTTP 및 HTTPS 속도가 더 빠름. 2019년 2월 현재 한국의 검열에 대응할 수 있는 옵션.|| || {{{-4}}} ||{{{-p -r -s}}} ||가장 빠름.||

{{{-1}}} 부터 {{{-4}}}까지 차례로 적용시켜 보면서 가장 빠른 설정을 사용하면 된다.

장점

1. VPN에 비해 속도가 빠르다.
1. 외부 DNS 서버를 거쳐 가는 DNS-over-HTTPSDNS-over-TLS 보다도 빠르다.
1. DNS-over-HTTPS / DNS-over-TLS 만으로 우회가 불가능한 ISP 단에서의 차단(warning.or.kr으로 리디렉션 되는)까지 우회한다.
1. 현재 파이어폭스 브라우저를 사용하면서 Cloudflare 서버에 접속할 때에만 적용되는 ESNI와 다르게 모든 브라우저 및 모든 웹사이트에 적용된다.

GoodbyeDPI가 사용하는 방법은 어디까지나 DPI를 이용한 인터넷 검열에 대해 편법으로 우회하는 방식이고, 실제 패킷이 암호화되는 것은 아니므로 GoodbyeDPI의 방식이 다른 기술보다 우월하다고 생각하지는 말자.

GUI 버전

CLI이기 때문에 상기한 사용법이 초보자에게는 어려울 수 있어 다른 개발자들이 GUI 버전으로 만들어 배포하고 있다.

GoodbyeDPI GUI

* 제작자: [[4]]
* 웹사이트: [웹사이트] [[5]]

터키 개발자 Include-sys가 제작하는 GUI 엔진으로, cmd 파일을 GUI로 실행시킬 수 있게 만들었다. 한국어 ui를 포함시켜달라는 pull request가 작성되었으며 개발자가 이를 확인했고 주말에 한국어를 포함한 버전을 릴리즈하겠다고 밝힌 상태. [[6]]

2월 19일 버그픽스와 한국어가 추가된 버전(1.03)이 업데이트 되었다. [[7]]

SecretDPI

* 제작자: [[8]]
* 웹사이트: [[9]] [[10]]

칼무리 개발자로 유명한 오길호의 GUI 엔진. 한국 사정에 맞게 최적화된 설정을 사용한다. 자세한 설명은 웹사이트 참조.

기타

* 파일:GOODBYEDPI 설명.png

ISP에서의 리셋 패킷 신호를 씹고 사이트에 접속시켜주는 과정을 설명한 짤방이다.

* 2019년 2월 현재 HTTPS 차단 논란으로 다운로드 수가 늘고 있다.

관련 문서

* 2018년 해외 불법 사이트 차단
* 2019년 인터넷 검열 논란
* DPI#s-3
* DNS
* HTTPS
* SNI

분류:오픈 소스 소프트웨어 분류:컴퓨터 보안