최근 수정 시각 : 2024-10-30 16:59:46

GoodbyeDPI

SecretDPI에서 넘어옴
GoodbyeDPI
개발자 <colbgcolor=#fff,#1f2023> ValdikSS
플랫폼 파일:Windows 로고.svg
라이선스 아파치 라이선스
링크 GitHub 다운로드

1. 개요2. 사용 방법
2.1. 응용: Windows 부팅 시 cmd 팝업 없이 프로그램 자동 실행시키기
3. 작동 방식
3.1. 수동적 DPI (Passive DPI)3.2. 능동적 DPI (Active DPI)
4. 장점5. 단점
5.1. 이용 불가 서비스
6. GUI 변종 버전
6.1. GoodbyeDPI GUI6.2. SecretDPI
7. 기타
7.1. 관련 문서

1. 개요

러시아 개발자 ValdikSS가 개발한 오픈 소스 소프트웨어로 특정 웹 사이트에 대한 접근을 차단하는 '심층 패킷 분석( DPI)'을 우회하는 프로그램이다. 아파치 라이선스로 배포되며, 소스 코드 GitHub에 공개되어 있다. 2019년 2월부터 자행된 방심위의 HTTPS 차단 등의 인터넷 검열로 많은 사이트가 차단되면서 알려지기 시작했다.

수동적 DPI(Deep Packet Inspection; 심층 패킷 분석) 차단 및 능동적 DPI 차단을 우회시켜 주는 Windows용 프로그램. 방심위가 차단한 사이트에 접속하거나 우회 상태를 항상 유지할때 매우 유용하게 쓰인다.

그러나 후술하겠지만, 프로그램 자체만으론 통신 암호화 등의 보안기능을 제공하지 않으므로 보안이 중요하다면 VPN의 사용 또는 ESNI 지원 사이트의 이용을 고려하는 것이 좋다.

DNS 오염 방지를 위해 DNS를 반드시 1.1.1.1 또는 8.8.8.8로 변경하도록 하고, Windows 11을 사용한다면 HTTPS를 통한 DNS 옵션도 켜주자.

2023년 12월 14일 전후해서 GoodbyeDPI v0.2.2를 사용하거나 다운로드 할경우 WinDivert64.sys를 변조파일로 인식하여 윈도우 디펜더에 의해 구동이 차단되고 있다. 이유는 변조(크랙)된 파일이 들어있다는 것인데.. 탐지값을 보면 윈도우OS 정품인증 크랙이 있다고 하는데, 이는 본 프로그램과 관계 없는 내용이다. 일단 오탐지로 보이고 디펜더에서 해당 프로그램 사용을 허가해주면 구동이 정상적으로 되지만, 그래도 불안하다면 마이크로소프트에서 수검사/ 악성코드 DB수정할때 까지 본문 하단에 있는 한국 코드로 만든 SecretDNS를 쓰길 바란다. (중국, 러시아, 튀르키예 변종 버전들은 동의없이 광고를 띄우는 악성 애드웨어로 전락한지 오래이므로 추천하지 않는다.)

2. 사용 방법

  1. 프로그램을 구동하기 전 DNS 설정 바꾸기
    DNS 변경 없이 이용한다면 DNS 변조로 인한 검열에 제대로 대응할 수 없으므로 꼭 바꾸어 주어야 한다.[1] DNS over HTTPS 문서 참조. 물론 GoodbyeDPI에서도 후술할--dns-addr [value] 옵션을 통해서 DNS를 변경할 수 있는 방법을 제공하고 있고, 이 옵션도 반드시 추가해야 하지만, 이와 별개로 상황에 따라서 GoodbyeDPI를 못 쓸 때도 있고, 이때 통신사 DNS에 사이트 접속 정보를 제공해서 좋을 건 전혀 없으니 제어판에서도 직접 설정해두자.[설정방법][DoH] 다만 PC에 네트워크 어댑터가 2개 이상이라면 네트워크 어댑터별로 일일이 설정해주어야 한다. PC의 설정을 건드리기가 곤란하고, 집 밖에서 쓸 일이 없다면 공유기에서 설정해주어도 된다.
  2. 프로그램 실행하기
    goodbyedpi 폴더 안을 보면, x86 폴더와 x86_64 폴더가 있다. 32비트 윈도우라면 x86 폴더를, 64비트 윈도우라면 x86_64 폴더로 들어가 goodbyedpi.exe를 실행시키면 된다. 프로그램의 cmd창이 떠 있는 동안 실행되며, 창을 닫으면 종료된다.
  3. 차단된 사이트에 접속이 잘 되는지 확인하기
    프로그램의 cmd창이 떠 있는 동안 차단된 사이트에 접속을 시도해서 올바르게 웹페이지가 표시되는지 확인한다.

2.1. 응용: Windows 부팅 시 cmd 팝업 없이 프로그램 자동 실행시키기

아주 기본적인 사용법은 위에 서술한 게 끝이지만, 매번 윈도우를 부팅할 때마다 더블 클릭해서 프로그램을 켜는 것은 매우 귀찮은 일이다. 하지만 GoodbyeDPI의 진가는 자동 실행 파일을 작성 또는 편집 후 실행하여 윈도우 부팅시 편하게 자신이 설정한 옵션 그대로 자동 실행하게끔 만들 수 있다는 점이다. 정말 어떤 창도 알림도 띄우지 않고 마치 윈도우에 포함된 기능인 것마냥 매우 조용히 실행된다. 후술하겠지만 옵션을 잘 설정하면 이 프로그램이 켜져 있는 상태에서 게임을 해도 전혀 문제가 없다.
  1. 명령어에 대한 이해
    GoodbyeDPI는 사용자가 직접 설정할 수 있는 옵션 명령어를 제공하고 있다. 한국 내 검열 우회에 꼭 필요한 핵심 부분은 굵게 처리하였다.
    [value]는 설정값을 의미한다.
-p 수동 DPI 차단
-r Host 를 hoSt로 교체
-s host 헤더의 빈칸 제거
-m Host 헤더를 섞기 (test.com → tEsT.cOm)
-f [value] 설정값에 맞춰서 HTTP 패킷 쪼개기. 값이 작을수록 더 많이 쪼개진다.
-k [value] HTTP 지속성 (keep-alive)패킷 쪼개기. 값이 작을수록 더 많이 쪼개진다.
-n do not wait for first segment ACK when -k is enabled
-e [value] 설정값에 맞춰서 HTTPS 패킷 쪼개기. 값이 작을수록 더 많이 쪼개진다.
-a additional space between Method and Request-URI (enables -s, may break sites)
-w try to find and parse HTTP traffic on all processed ports (not only on port 80)
--port [value] additional TCP port to perform fragmentation on (and HTTP tricks with -w)
--ip-id [value] handle additional IP ID (decimal, drop redirects and TCP RSTs with this ID). This option can be supplied multiple times.
--dns-addr [value] 사용자가 지정한 IP로 UDP DNS 요청 보내기 (실험적 기능)[4]
--dns-port [value] redirect UDP DNS requests to the supplied port (53 by default)
--dnsv6-addr [value] redirect UDPv6 DNS requests to the supplied IPv6 address (experimental)
--dnsv6-port [value] redirect UDPv6 DNS requests to the supplied port (53 by default)
--dns-verb print verbose DNS redirection messages
--blacklist [txtfile][5] perform HTTP tricks only to host names and subdomains from supplied text file. This option can be supplied multiple times.
이 많은 옵션을 이해하는 것이 어렵다면, 제작자가 미리 만들어 놓은 프리셋을 사용할 수도 있다. 단 이 프리셋 모드들은 DNS 변경 옵션이 적용되지 않았으므로 참고하자.
* 새로운 옵션으로 더 안정적이고 호환성 있고 빠르다.
-5 -f 2 -e 2 --auto-ttl --reverse-frag --max-payload 기본값[6]
-6 -f 2 -e 2 --wrong-seq --reverse-frag --max-payload
* 기존 옵션
-1 -p -r -s -f 2 -k 2 -n -e 2 HTTPS와 HTTP의 파편화값을 2로 설정 후 진행한다.
-2 -p -r -s -f 2 -k 2 -n -e 40 HTTPS의 파편화값을 40으로, HTTP의 파편화값을 2으로 설정 후 진행한다.
-3 -p -r -s -e 40 HTTPS의 파편화값을 40으로 설정후 진행한다. HTTP 파편화 안 함. 지정된 프리셋 중에는 SNI 검열에 대항할 수 있는 최소설정이다.[7]
-4 -p -r -s HTTPS 및 HTTP 파편화를 진행하지 않음. 한국에선 SNI 검열에 대응할 수 없어 있으나 마나한 설정이다.
1. 프로그램 폴더 내에 미리 내장된 자동 실행 파일 확인하기
goodbyedpi 폴더 내의 service_install_로 시작하는 .cmd 파일들이 있는데, 이것들이 바로 GoodbyeDPI 제작자가 예시로 넣어놓은 자동 실행 파일들이다. 이 파일들을 관리자 권한으로 실행하고 cmd 창이 뜬 후 엔터 키를 몇 번 누르면 창이 닫히고 프로그램 실행에 들어감에 동시에 GoodbyeDPI가 윈도우 서비스에 등록되며, 이후 윈도우를 부팅할 때마다 해당 자동 실행 파일에 표기된 옵션 명령어에 맞추어 설정된 GoodbyeDPI가 실행된다.
기본적으로 들어있는 자동 실행 배치 파일은 service_install_russia_blacklist.cmd, service_install_russia_blacklist_dnsredir.cmd 이 2개만 들어있으며, 약간의 차이는 있지만 -1 프리셋이 기본으로 적용되어 있다. 따라서 자신이 원하는 옵션을 적용하고 싶다면 메모장으로 옵션을 직접 편집해주어야 한다.
1. 기본 제공된 자동 실행 파일을 편집하여 자신이 원하는 옵션으로 설정 후 커스텀 자동 실행 파일을 만들어 실행하기
service_install_russia_blacklist.cmd를 메모장으로 열어보면 다음과 같다.
@ECHO OFF
PUSHD "%~dp0"
set _arch=x86
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (set _arch=x86_64)
IF DEFINED PROCESSOR_ARCHITEW6432 (set _arch=x86_64)

echo This script should be run with administrator privileges.
echo Right click - run as administrator.
echo Press any key if you're running it as administrator.
pause
sc stop "GoodbyeDPI"
sc delete "GoodbyeDPI"
sc create "GoodbyeDPI" binPath= "\"%CD%\%_arch%\goodbyedpi.exe\" -1 --blacklist \\"%CD%\blacklist.txt\\"" start= "auto"
sc description "GoodbyeDPI" "Passive Deep Packet Inspection blocker and Active DPI circumvention utility"
sc start "GoodbyeDPI"

POPD
여기서 볼드체로 표시한 곳이 사용자가 원하는 옵션으로 바꿀 수 있는 부분이다.
예를 들어, HTTPS 검열과 warning.or.kr를 우회하면서 속도가 좀 더 빠르고 이글루스 같은 사이트가 깨지는 것을 원치 않으며, Cloudflare DNS를 사용하여 DNS 오염 검열까지 우회하고자 한다면, 아래 문장을 빈 메모장에 붙여넣기를 하면 된다.
@ECHO OFF
PUSHD "%~dp0"
set _arch=x86
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (set _arch=x86_64)
IF DEFINED PROCESSOR_ARCHITEW6432 (set _arch=x86_64)

echo This script should be run with administrator privileges.
echo Right click - run as administrator.
echo Press any key if you're running it as administrator.
pause
sc stop "GoodbyeDPI"
sc delete "GoodbyeDPI"
sc create "GoodbyeDPI" binPath= "\"%CD%\%_arch%\goodbyedpi.exe\" -f 30 -k 30 -n -e 30 --dns-addr 1.1.1.1 start= "auto"
sc description "GoodbyeDPI" "Passive Deep Packet Inspection blocker and Active DPI circumvention utility"
sc start "GoodbyeDPI"

POPD
옵션을 잘 설정할 자신이 있다면 원하는 대로 명령어를 맘껏 편집해도 된다. 물론 그렇게 설정된 옵션은 당연히 차단된 사이트에 접속할 수 있는 구성이어야 한다.
수정이 완료되었다면, 자신이 원하는 다른 이름으로 저장하되[8], 확장자를 .cmd로 지정해주어야 한다. 이후 이 파일을 프로그램이 있는 폴더에 넣은 다음 관리자 권한으로 실행 후 엔터를 쳐주면 끝.
1. 차단된 사이트에 접속이 잘 되는지 확인하기
이후 자동 실행이 잘 되는지 컴퓨터를 재부팅해 보자. 재부팅 후 서비스 관리자(실행 - services.msc 입력)에 GoodByeDPI가 Running 상태로 표시되어 있다면 별다른 문제 없이 잘 설정됐다는 의미이다. 차단된 사이트 접속이 잘 되는지 확인해보자.[9]
  • GoodbyeDPI 자동 실행 기능을 끄고자 할 경우
    자동 실행을 하지 않게 하려면 service_remove.cmd로 서비스를 삭제해야 한다. 이 역시 관리자 권한으로 실행해야 한다.

3. 작동 방식

간단히 말하면 검열에 자주 사용되는 패킷을 차단하거나, 송신 패킷을 잘게 쪼개거나, 패킷의 일부 내용을 변조하는 것이다.

제작자의 설명에 따르면 광분배기나 포트 미러링을 이용한 수동적 DPI 차단은 데이터를 완전히 막지는 않고 요청한 사이트보다 더 빨리 응답하게 하는 방식이고, 능동적 DPI 차단은 데이터를 막는 방식인데, 수동적 DPI는 막고 능동적 DPI는 우회한다고 되어있다.

사용자단에서 패킷을 가로채고 필터를 걸 수 있도록 WinDivert라는 드라이버를 로드시킨다. 콘솔 창이 떠 있는 동안만 작동하고, 창을 닫으면 종료된다.[10]

윈도우는 콘솔 창의 X 버튼으로 종료할 때 콘솔 창에서 구동 중인 프로그램이 종료 시그널을 받지 못하므로 프로그래머틱컬 한 정의가 더 필요한 실정이다. 따라서 정상적인 종료 방법은 Ctrl + C나 Ctrl + Break 같은 고전 형태의 종료 방법을 써야 한다. MS 내부 개발진들도 협력이 얼마나 안 되는지 알 수 있다. 일단 프로그램이 너무 거대하기도 하고.[11] CLI 이 동작하는 방식을 생각해보면 의외로 당연한 내용이다.

3.1. 수동적 DPI (Passive DPI)

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

3.2. 능동적 DPI (Active DPI)

능동적 DPI는 좀 더 까다로운데, 현재 6가지 방법을 사용하여 이를 회피하고 있다.
  1. 첫 데이터 패킷을 TCP 단에서 단편화 (내용 → 내(flush)용)
  2. keep-alive 패킷을 TCP 단에서 단편화 (Connection: keep-alive 상태에서 우회 무한 루프 반복 적용)
  3. HTTP Host 헤더를 hoSt로 교체 (host: test.test → hoSt: test.test)
  4. HTTP Host 헤더 이름과 값 사이의 공백 제거 (host: test.test → host:test.test)
  5. HTTP 메소드(GET, POST 등)와 URI 사이에 공백 추가 (GET / HTTP1.1 → GET / HTTP1.1)[12]
  6. HTTP Host 헤더 값에 대소문자 섞기 (test.com → tEsT.cOm)

이 방법들이 TCP HTTP 표준에 완전히 부합하기 때문에 웹 사이트들이 제대로 보이면서도 DPI 및 warning.or.kr을 포함한 검열을 피할 수 있다. 다만 패킷 단편화 적용 시 값을 작게 주면 웹 표준을 지키지 않는 일부 웹사이트 접속이 제대로 되지 않을 수 있다. 대표적으로 이글루스가 있다.

4. 장점

  • 윈도우 서비스로 등록시키면 이후 부팅 시 별도 조작 없이도 자동 실행되며, 이 과정에서 어떤 창도, 알림도 띄우지 않는다.
  • VPN은 물론 외부 DNS 서버를 거쳐 가는 DNS-over-HTTPS DNS-over-TLS보다도 속도가 빠르다. 희한하게도 핑 변화가 거의 없어서 켜놓고 게임해도 전혀 불편하지 않다.[13][14]
  • HTTP 평문 패킷 단편화도 지원하기 때문에 DNS-over-HTTPS / DNS-over-TLS로 우회가 불가능한 비암호화 패킷 대상 중간자 공격 검열( warning.or.kr로 리디렉션되는 그것)까지 우회한다.
  • 현재 파이어폭스 브라우저를 사용하면서 Cloudflare 서버에 접속할 때에만 적용되는 ESNI와 다르게 모든 브라우저 및 모든 웹사이트에 적용된다.
  • 한국에서 막힌 사이트임과 동시에 VPN 우회 접속이 차단되어 있는 사이트도 들어갈 수 있다.

5. 단점

  • 검열된 사이트를 접속할 수 있게 해준다는 특징 때문에 보안이 강화되었다는 오해를 사기 쉽다. GoodbyeDPI가 사용하는 방법은 어디까지나 SNI를 악용한 인터넷 검열에 대해 네트워크 패킷을 전부 쪼개서 SNI을 알아보기 어렵게 하여 우회하는 방식일 뿐, SNI 및 그것이 포함된 client hello 패킷 암호화를 제공하는 건 아니므로 GoodbyeDPI의 방식이 다른 기술보다 우월하다고 생각하면 안 된다. 패킷 암호화가 꼭 필요하다면 VPN 등을 사용하는 것이 좋다. 이 내용의 연장선으로 사용자의 IP를 숨기는 기능 역시 없다. 애당초 속도 보고 쓰는 수단이지 익명성 보고 쓰는 수단이 아니다.
  • 게다가 파편화된 패킷을 강제로 합치는 기술은 그다지 어려운 편이 아니다. 차후에 무력화가 될 수도 있다. 지금도 별도의 사제 방화벽을 운용하는 네트워크에서는 사용이 불가능한 경우가 많다. 2020년 6월경부터 상대적으로 패킷 크기가 작은 HTTP 프로토콜에서 제대로 작동하지 않는 경우가 종종 생긴다. 이 사건이 본 수단을 무력화하기 위한 과정중에 나온 오류로 추정된다. 2022년 현재 메이저한 사이트들은 GoodbyeDPI의 활성화 여부에 상관없이 접속불가 상태(VPN 사용시는 접속가능)인데, 마이너한 사이트들은 활성화 여부에 상관없이 접속가능해진 상황. 여담으로 다수가 인지하기엔 상당히 짧은 시간이었지만 정반대인 상황도 직전에 잠깐 있었다.
  • Windows 전용이다. 위의 압도적인 장점들과 비슷한 종류의 우회 프로그램들 대부분이 HTTP 패킷 단편화를 지원하지 않는다는 점을 생각하면 매우 아쉽다. 그래서 macOS를 포함한 리눅스, 유닉스 계열에서 비슷한 방식으로 인터넷 우회를 하려면 GreenTunnel같은 다른 프로그램을 찾아봐야 한다.[15]
  • 극히 일부의 사례이기는 하지만, 자신이 이용하는 사이트/서비스 및 애플리케이션의 이용에 문제가 생길 수도 있다. 예를 들어, 이글루스는 파편화 값을 빡세게 잡으면 레이아웃이 깨지는 현상이 일어난다. 한술 더 떠서 웹 페이지에 아무것도 안 뜨거나 파편화된 패킷의 송수신을 아예 거부하는 서버들도 있다.[16] 주로 몇몇 정부 기관 사이트에서 이런 현상이 종종 발견되곤 한다. 의도적으로 차단한 경우, 최적화 과정에서 막힌 경우, 사이트 자체의 오류인 경우로 나뉜다. 또한 극히 일부 프로그램이 GoodbyeDPI를 실행할 경우 제대로 작동하지 않을 수도 있다.[17] 이런 사이트 및 프로그램은 GoodbyeDPI의 작동을 중지한 후에야 이용할 수 있다. 이 경우 블랙리스트를 쓰는게 더 편하다.
  • 일부 네트워크에서의 사용 또는 VPN과 병용 및 일부 설정값에 따라 구글에서의 검색 활동에 지장이 생길 수도 있다. 이런 케이스의 경우 틈만 나면 'Google의 시스템이 컴퓨터 네트워크에서 비정상적인 트래픽을 감지했습니다. 이 페이지는 로봇이 아니라 실제 사용자가 요청을 보내고 있는지를 확인하는 페이지입니다. 왜 이런 현상이 발생하는 거죠?' 라는 메시지가 출력되면서 CAPTCHA 인증을 요구하는데, 오류로 이를 여러번 요구하는 경우가 존재한다.

5.1. 이용 불가 서비스

  • 일부 정부기관, 공공기관, 관공서 홈페이지(외국 일부 기관 포함)
  • 국민증권 홈페이지
  • 닌텐도 e숍
  • 붕괴3rd PC 버전
  • 비비큐 홈페이지
  • 이글루스
  • 일부 콜 오브 듀티 시리즈[18]: Goodbye DPI가 돌아가는 상태에서 실행 시 얼마 안가서(1~2초 내외) 게임이 강제종료된다. 안티치트 프로그램과 충돌하는듯 보이며 이는 DPI 계열 프로그램들은 전부 해당된다. 또한 실행하고 있지 않더라도 한번이라도 GoodbyeDPI를 실행했다면 남은 캐시 파일이 실행을 방해하므로 참고하자.
  • DOAX: 9003 오류가 뜨면 필시 DPI 계열 프로그램이 백그라운드에서 돌아가는 중인 것이다.
  • 에듀윌: 로그인 시도를 하면 VPN으로 인지하여 503 서비스 에러를 띄우며 로그인을 차단한다.
  • MVOpenVC: 정부에서 지원하는 영상회의용 소프트웨어인데 웹페이지에서 보내는 프로그램 실행 링크가 정상적으로 작동하지 않는다.
  • 유비소프트 커넥트: 로그인을 하려면 수십 번은 시도해야 한다.
  • LG U+ 홈페이지 중 일부(요금제 목록 등)
  • 한국철도공사 홈페이지
  • 경기도 사이버도서관
  • TBS 홈페이지: 일부 페이지는 접속이 불가하며, 일부 페이지는 CSS가 깨진 채 표시된다.
  • 서울대학교 물리천문학부 천문학전공 홈페이지: 접속 자체가 이루어지지 않는다. 물리학전공 홈페이지는 문제가 없다.
  • 카카오 서비스 게임, 카카오맵: dpi를 꺼야 로그인이 제대로 가능하다.
  • KTX 명절 예매 페이지
  • 인벤
  • 사람인
  • 디시인사이드

6. GUI 변종 버전

GoodbyeDPI 원본은 실행 시 cmd 창을 띄우는 등 다소 투박해보이는 면이 있어서인지 다른 개발자들이 깔끔하고 보기 좋은 GUI 변종 버전을 만들어 배포하고 있다. 그래도 원본이 설정할 수 있는 기능이 더 많고 안정적이므로 지속적으로 사용하기 위해서는 원본의 사용 방법을 익혀두는 것이 바람직하다.

6.1. GoodbyeDPI GUI


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

2019년 2월 19일 버그픽스와 한국어가 추가된 버전(1.0.3)이 업데이트되었다. 다운로드

2019년 2월 24일 1.0.5 버전을 끝으로 갱신되지 않고 있다. 다만 GoodbyeDPI 파일을 새로운 버전으로 바꾸는 식으로 수동 업데이트는 가능하다.
windows defender를 실행시키면 GoodbyeDPI가 win32/presenoker라는 램상주 프로그램을 깔아놓는다고 경고한다. 이 바이러스는 애드웨어이며 사용자에게 원하지 않는 광고를 계속 노출시킨다

해당 이유로 터키 버젼은 사용을 추천하지 않는다.

===# -SafeVisit- #===
  • 제작자: SafeVisit[19]
  • 웹사이트: https://safevisit.org/ko

GoodbyeDPI와 같은 WinDivert 라이브러리를 활용한 윈도우용 프로그램. GoodbyeDPI의 런처가 아닌 라이브러리를 활용해서 제작되었다. 자세한 설명은 웹사이트 참조. 용량도 굉장히 적으며, GUI 형태라 사용법이 직관적이다.

GoodbyeDPI에서 드라이버 언로드가 안 되어 사이트 이동 시 느려지는 문제점이 있는데, 이 프로그램은 그런 문제점을 해결하였다. 그래서 GoodbyeDPI는 치명적인 드라이버 언로드 문제가 있어 해당 부분에서 문제 발생 시 SafeVisit을 사용하기를 권장한다. 그리고 패킷 사이즈 조절 옵션이 있어서 호환성 문제 해결이 용이하고, 안드로이드도 지원한다. 다만 안드로이드용은 패킷 사이즈 옵션이 없어서 상대적으로 평이 안 좋은 편.

악성프로그램 카카오인코더와 SafeVisit 와 동일 개발자로 확인. https://meeco.kr/mini/27509106 카카오인코더는 이전에 채굴 프로그램을 설치한 사례가 있으며, 애드웨어 설치도 수시로 행해졌기에 SafeVisit도 언제 같은 행위를 할지 모르는 상황이다.

2021년 8월 기준으로, Safevisit을 설치하면 각종 애드웨어가 함께 설치되는 것이 드러났다. .exe 파일의 특성상 한 번 악성코드를 잘못 설치하면 연쇄적인 멀웨어 설치가 발생하여 삭제하기 곤란해질 수 있으니 웬만하면 사용하지 말도록 하자.

나무위키에 카카오인코더safevisit 항목은 개발자가 스스로 셀프 홍보를 위해 문서에 내용을 등록했었고, 위 두 프로그램의 부정적인 내용을 주기적으로 삭제하는 문서 히스토리 증거가 있으니 주의가 필요하다.

6.2. SecretDPI

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

현재는 개발이 종료되었으며, 자체 개발 코드로 만든 SecretDNS의 사용을 권장하고 있다.

7. 기타

7.1. 관련 문서



[1] DNS는 특성상 클라이언트/서버의 IP 주소와 도메인을 알고 있을 수밖에 없다. 이걸 모른다면, 도메인을 통한 사이트 접속이 되지 않는다. 이때는 IP 주소를 직접 입력해서 접속해야 한다(...). 아니나 다를까 2020년 9월 26일경부터 DNS 변조를 통한 검열이 다시 시행되었다. DNS의 변경 없이 패킷 파편화만으로 Pornhub의 접속이 어려워졌다. [설정방법] Cloudflare의 DNS 서버 주소를 참고로 적어두었으나 다른 서버를 사용하고 싶다면 DNS 문서를 참고할 것. 제어판>네트워크 공유>어댑터 설정 변경>자신이 지금 쓰고 있는 이더넷 어댑터 우클릭>속성>인터넷 프로토콜 버전 4 (TCP/IPv4) 더블 클릭>다음 DNS 서버 주소 사용>기본 1.1.1.1 보조 1.0.0.1>확인을 눌러서 닫기. IPv6의 경우 기본 2606:4700:4700::1111 보조 2606:4700:4700::1001이다. 적용 방식은 IPv4 같이 프로토콜 버전 6에서 해당 작업을 똑같이 해주면 된다. [DoH] 만약 Windows 11을 사용하고 있다면 운영 체제 수준에서 DNS over HTTPS를 적용할 수 있다. 설정>네트워크 및 인터넷>속성>'DNS 서버 할당' 오른쪽의 편집 버튼 클릭>수동>IPv4 스위치를 켜고 DNS 주소를 기본 1.1.1.1 보조 1.0.0.1로 입력>DNS 암호화 옵션을 기본/보조 모두 '암호화된 항목만(HTTPS를 통한 DNS)'로 변경>확인을 눌러서 닫기. IPv6에도 적용할 경우 IPv6 스위치도 켜고 기본 2606:4700:4700::1111 보조 2606:4700:4700::1001로 설정하면 된다. 이 페이지에 접속했을 때 'Using DNS over HTTPS (DoH)' 항목 옆에 'Yes'가 표시되면 성공. [4] 실험적 기능이라고 써있긴 하지만, 실사용에 아무 문제가 없고, 상술했었던 DNS 오염에 대응해야 하니 반드시 지정하도록 하자. 반응속도가 가장 빠른 1.1.1.1이 가장 추천된다. [5] --blacklist blacklist.txt 방식으로 쓰는 게 대표적이다. 이 옵션은 블랙리스트 파일을 지정해서 파일 내의 사이트들에만 작동하게 하고, 그 외의 사이트들은 모두 무시(whitelist)하게 된다. 분명 특정 사이트들의 접속에 문제가 있기 때문에 만들어진 것으로 보인다. 일반적으로는 사용할 필요가 없는 옵션인데, 만약 많은 사이트 접속에 문제가 있다면, 자신만의 블랙리스트를 만들어서 사용하면 된다. 포함된 blacklist.txt 파일은 antizapret.prostovpn.org에서 domains-export.txt 파일로 배포하는 것이며, 러시아에서 차단하고 있는 목록이다. 0_russia_update_blacklist_file.cmd 파일을 실행하면 위 사이트에서 다운로드하는데, bitsadmin을 이용하기 때문에 엄청 느리다. 또한 기존 파일에 허락없이 그대로 덮어쓰니 사용에 각별한 주의가 요구된다. [6] warning.or.kr에는 대응할 수 없다. [7] 다만 기존의 warning.or.kr에는 대응할 수 없다. [8] 예시로 제공된 파일들은 보존해놓는 것이 좋다. 커스텀 파일들이 문제를 일으킬 때 참고할 수 있기 때문. [9] 참고로 해당 사이트의 이름은 Petbucket.com으로, 애완동물용 의약품을 구매하는 사이트이다. 이게 왜 차단되었냐면, 한국에서는 의약품을 온라인에서 살 수 없다고 한다. 그게 전용 약이라 할지라도. (...) [10] PC에 따라 창을 닫아도 드라이버가 종료되지 않기도 하는데, 컴퓨터를 끄면 종료된다. [11] 그래서 더 구현이 간단한 종료를 대기하는 PAUSE를 실행시키고 아무 키를 누르면 종료를 실행하는 방법을 많이 쓴다. [12] 나무위키에서 공백 문자 2개는 한 개로 합쳐져서 보이므로 임의로 전각 공백으로 대체하였다. [13] PC나 공유기에서 MTU 값을 조절해서 GoodbyeDPI와 비슷하게 패킷을 쪼갤 수는 있지만, 속도가 많이 느리고, 게임은 상상도 할 수 없을 것이다. [14] 일부 게임들의 안티 치트에서 패킷 변조로 실행이 안 되는 경우가 있고 다른 서비스나 프로그램에 비해서 빠른 거지 사용하지 않는 것보다는 속도가 느리다. [15] iOS, macOS에 한할 경우 GoodbyeDPI가 사용하는 방식 중 제일 대한민국에서 효과가 좋은 방법인 RST 무시가 기술적으로 안 된다. IP 레이어에서 소켓을 뚫으려면 root 퍼미션이 필요하기 때문으로, 그나마 macOS는 한정적인 방법으로 루트를 딸 수 있지만 iOS는 탈옥이 아닌 이상 불가능하다. 이런 경우는 대신 원래 VPN에서 사용하는 "패킷 터널링" 메커니즘을 가로채서 TCP 단편화나 암호화되지 않은 HTTP의 경우 내용까지 변조를 시행하는데, 그나마도 iOS 12부터 지원하기 시작한 no Nagle을 사용한다 해도 패킷이 원하는 대로 가리란 보장이 없다. 아래 UnicornHTTPS가 사용하는 메커니즘이 이것이다. [16] 단순히 비표준 사이트로 인한 사이트 깨짐과는 완전히 다른 현상으로, 파편화 값을 널널하게 잡아도 메인 화면조차 보여주질 않는다. [17] 콜 오브 듀티 블랙 옵스 4 콜 오브 듀티 모던 워페어에서는 충돌이 일어나서 게임이 튕겨버린다. # 위에서 서술한 것처럼 파편화된 패킷의 송수신을 거부하는 건지, 아니면 단순 프로그램 충돌인지는 불명. 콜 오브 듀티 모던 워페어 기준, GoodbyeDPI를 한번이라도 사용한 적이 있다면, GoodbyeDPI를 완전히 종료한다 하더라도 상기한 게임에서 튕긴다. 이를 해결하는 방법은 서비스 설정에서 GoodbyeDPI 서비스 시작 설정을 수동으로 설정한 뒤 재부팅을 하는 것이다. 따라서 상기한 게임을 플레이할 경우 GoodbyeDPI 서비스를 등록하지 말고, 이미 등록한 경우에는 시작 설정을 수동으로 변경하자. (프로그램 충돌이 아니라 내부 안티 치트에서 패킷 변조로 판단해서 게임 실행 불가 처리하는 것으로 확인된다. 만약 충돌이라면 이미 해당 내용으로 블랙 옵스 4부터 메일을 보냈으나 다른 스튜디오에서 다른 엔진으로 제작한 모던 워페어에서도 동일한 증상이 발생하기 어렵다.) [18] 콜 오브 듀티: 모던 워페어, 콜 오브 듀티: 모던 워페어 II, 콜 오브 듀티: 워존 퍼시픽, 콜 오브 듀티: 뱅가드만 해당. 자체 개발 안티치트 엔진인 Ricochet 안티치트가 적용된 게임들이다. [19] 카카오인코더를 개발했다. 이 Cacao인코더는 다음카카오와는 관련이 전혀 없으며, 동영상 인코더를 가장하고 몰래 채굴을 하는 악성코드 프로그램.