вторник, 16 апреля 2019 г.

GoodbyeDPI - утилита для обхода пассивных и активных DPI под Windows


Программа предназначена для обхода систем глубокого анализа трафика (Deep Packet Inspection) и получения доступа к заблокированным сайтам. Работает с пассивными (подключенными с помощью оптического сплиттера или с зеркалированием трафика) и активными (подключенными последовательно) DPI. Предназначена для Windows 7, 8, 8.1 и 10. Для запуска требуются права администратора.

Режимы работы программы:
  • -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
  • -4 эквивалентно -p -r -s лучшая скорость соединения

Возможные опции:
  • -p блокировка пассивного DPI
  • -r смена регистра в HTTP-запросе (замена Host на hoSt)
  • -s удаление пробела после двоеточия в строке со значением хоста
  • -m смешанный регистр заголовка хоста (test.com -> tEsT.cOm)
  • -f [значение] установка значения фрагментации для запросов HTTP (что приводит к разбиению запроса на два пакета)
  • -k [значение] установка значения фрагментации для длительных HTTP-сессий (persistent,keep-alive)
  • -n не ожидать подтверждения получения сегмента при включенной опции -k
  • -e [значение] установка значения фрагментации для запросов HTTPS
  • -a добавление пробельных символов между некоторыми полями (может приводить к отказу некоторыми серверами)
  • -w попытаться найти и проанализировать HTTP-трафик на всех обработанных портах (не только на порту 80)
  • --port [значение] дополнительный TCP-порт для выполнения фрагментации (и HTTP-трюки с -w)
  • --dns-addr [значение] перенаправлять DNS-запросы UDP на подставленный IP-адрес (экспериментально)
  • --dns-port [значение] перенаправлять DNS-запросы UDP на подставленный порт (по умолчанию 53)
  • --dns-verb печать подробных сообщений перенаправления DNS
  • --blacklist [txt-файл] выполнять HTTP трюки только для имен хостов и поддоменов из подставленного текстового файла. Этот параметр может быть использован несколько раз.

При запуске программы без параметров активируются опции, направленные на максимальную совместимость с провайдерами в угоду скорости. Чтобы понять, можно ли вообще обойти DPI вашего провайдера программой, запустите скрипт "3_all_dnsredir_hardcore.cmd", и попробуйте зайти на заблокированные сайты. Если заблокированные сайты стали открываться, попробуйте запустить "1_russia_blacklist.cmd". Если этот файл не работает, используйте "1_russia_blacklist_dnsredir.cmd".

Некоторые провайдеры, например, Мегафон и Yota, не пропускают фрагментированные пакеты по HTTP, и сайты перестают открываться вообще. С такими провайдерами используйте опцию -3 -a

Как работает программа
Большинство пассивных DPI отправляют HTTP-перенаправление (301 Redirect) при попытке зайти на заблокированный сайт. Поле IP Identification пакетов, отправляемых пассивным DPI, всегда равно 0x0000 или 0x0001 (актуально для провайдеров РФ). Такие пакеты и блокирует GoodbyeDPI.

Активные DPI перехитрить труднее. На данный момент поддерживаются следующие опции:
  1. Фрагментация первых пакетов на TCP-уровне
  2. Замена заголовка Host на hoSt
  3. Удаление пробела между именем параметра Host и его значением (Host:rutracker.org вместо Host: rutracker.org)
  4. Добавление дополнительного пробела между методом HTTP (GET, POST, и т.д.) и URI
  5. Изменение регистра значения заголовка Host (rUtRaCkEr.rU)

Эти методы не должны влиять на работоспособность веб-сайтов, т.к. они полностью соответствуют стандарту TCP и HTTP, но их достаточно для противодействия классификации трафика и обхода цензуры. Добавление дополнительного пробела может влиять на работоспособность веб-сайтов, хоть и полностью соответствует спецификации стандарта HTTP/1.1 (см. 19.3 Tolerant Applications).

Преимущества программы
  • Работает автономно, без обращения к какому-либо серверу
  • Работает на уровне системы, с браузерами, торрент-клиентами и другим ПО
  • Не требует настройки



     » Авторская статья на Habr
     » Страничка проекта на GitHub
     » Зеркало на Bitbucket
     » Программа для запуска GoodbyeDPI с понятным интерфейсом

1 комментарий:

  1. Спасибо большое.
    Shadow Boss, есть вопрос о " Наглой Рыжей Морде ". Не могу найти статью « Детальная настройка браузера Firefox ». На Хабре - пропала, поисковики - не находят!? Мож у Вас
    осталась копия?
    P.S. Если Вы прочитаете этот коммент то, ikoshakin@mail.ru

    ОтветитьУдалить