Основы

Обфускация против шифрования

Эти два слова часто употребляют так, будто они означают одно и то же. Это не так, и именно эта разница решает, какой протокол подойдёт для конкретной сети.

3 мин чтенияПоследняя проверка

Они отвечают на разные вопросы

Шифрование
Отвечает на вопрос «может ли наблюдатель это прочитать?». Оно преобразует полезную нагрузку так, что восстановить её может только владелец ключа. Его гарантия математическая, хорошо изученная, и корректно реализованный современный шифронабор не является слабым местом ни одной реальной системы.
Обфускация
Отвечает на вопрос «может ли наблюдатель понять, что это такое?». Она придаёт форму тем частям соединения, которые шифрование оставляет видимыми — структуре рукопожатия, размерам пакетов, таймингу, метаданным, — чтобы поток не выделялся как принадлежащий определённому протоколу. Её гарантия эмпирическая и действует только против классификаторов, которые ещё не научились её видеть.

Эта асимметрия важна. Шифрование либо работает, либо сломано, и оно не ухудшается оттого, что кто-то пригляделся внимательнее. Обфускация — это состязание: она работает, пока другая сторона не обновит классификаторы, и поэтому её сопровождают непрерывно, а не выпускают один раз.

Разные противники

Какое свойство от какого противника защищает
ОпасениеШифрованиеОбфускация
Кто-то читает ваш трафик в общем Wi-FiРешает этоНе относится к делу
Оператор сети записывает, какие сайты вы посещаетеЧастично — имена хостов всё равно утекаютПомогает, убирая этот признак
Фильтр отбрасывает трафик, опознанный как VPNНе помогаетВ этом весь смысл
Оператор принципиально отбрасывает любой шифрованный потокНе помогаетПомогает, если поток похож на разрешённый трафик
Кто-то скомпрометировал конечную точку, к которой вы подключаетесьНе помогаетНе помогает

Прочтите первый столбец сверху вниз — и картина ясна: шифрование про конфиденциальность от наблюдателя, обфускация про выживание перед привратником. Протокол, у которого есть одно и нет другого, отказывает вполне определённым и предсказуемым образом.

Как обфускацию делают на практике

Есть три основные стратегии, и они различаются по цене и по тому, надолго ли их хватает.

Рандомизация
Сделать трафик не похожим ни на что: никаких фиксированных заголовков, никакой узнаваемой структуры, равномерно случайные байты с первого пакета. Это ломает сопоставление по шаблону. И это отказывает против сети, которая блокирует всё, что не смогла опознать, потому что неклассифицируемый трафик — ровно то, что такая сеть отбрасывает.
Имитация
Сделать трафик похожим на конкретный разрешённый протокол, обычно HTTPS. Это выживает в сетях с запретом по умолчанию, но только если имитация достоверна на всех уровнях; частичная имитация заметнее, чем её отсутствие, потому что само расхождение становится сигнатурой.
Туннелирование внутри настоящего протокола
Не имитировать разрешённый протокол, а действительно его использовать, неся туннель внутри его подлинной сессии. Имитировать нечего, значит и ошибиться не в чем. Цена — накладные расходы и, как правило, пропускная способность.

Чего стоит обфускация

Ничто из этого не бесплатно, и о цене лучше говорить прямо, а не делать вид, что её нет.

  • Пропускная способность. Набивать пакеты, чтобы скрыть их размеры, — значит отправлять байты, которые ничего не несут. Заворачивание туннеля во второй протокол добавляет заголовки к каждому пакету.
  • Задержка. Дополнительные слои означают дополнительную обработку на обоих концах, а выравнивание ритма отправки — намеренный отказ отправлять пакеты сразу, как только они готовы.
  • Хрупкость. Имитация должна поспевать за тем, что имитирует. Браузеры меняются; необслуживаемый слой обфускации сам превращается в характерный отпечаток.
  • Сложность. Больше движущихся частей — больше мест, где ошибка реализации выдаст ровно тот признак, ради устранения которого этот слой и существует.

В нефильтруемой сети эти издержки не покупают ничего, и поэтому обфускацию нужно уметь выключать. Держать её включённой по умолчанию всюду — значит менять реальную производительность на защиту от проблемы, которой у вас может и не быть.

Что это значит на практике

  1. Определите, от чего вы защищаетесь. Защита сессии в недоверенной сети кафе — задача шифрования, и она уже решена любым приличным протоколом.
  2. Если трафик блокируют, а не читают, это задача обфускации, и выбор протокола здесь имеет большое значение.
  3. Предпочитайте подходы, согласованные на всех уровнях, тем, которые просто необычны. Необычность сама по себе признак.
  4. Держите простую быструю конфигурацию доступной для сетей, которые не фильтруют, и применяйте замаскированную только там, где она окупает свою цену.

Частые вопросы

Обфусцированный VPN безопаснее?

В криптографическом смысле нет — обфускация не добавляет конфиденциальности сверх того, что уже даёт шифрование. Она добавляет устойчивость к опознанию и блокировке. Если вас ничего не блокирует, это издержки без выгоды.

Замедляет ли обфускация VPN?

Обычно да, в той или иной мере. Набивка, дополнительные протокольные слои и намеренное выравнивание ритма расходуют полосу или добавляют задержку. Насколько — зависит от техники; туннелирование внутри настоящего протокола обходится дороже всего.

Можно ли обнаружить обфускацию?

Любую конкретную технику обфускации рано или поздно обнаружат, потому что это шаблон, а шаблоны выучиваются. Поэтому область непрерывно движется, и поэтому к заявлениям о вечной необнаружимости стоит относиться скептически.

Как это применяет HushTunnel

HushTunnel использует VLESS вместе с REALITY и XTLS — те самые решения, которые описаны в этих руководствах, — и не хранит записей о посещаемых вами сайтах.

Все руководства