obfs4

obfs4 (obfsproxy 4-е поколение) — pluggable transport для Tor, самый ходовой. Задача: сделать так, чтобы трафик между клиентом и Tor-мостом выглядел как случайный шум, без узнаваемых сигнатур.

Как работает

  1. Клиент и мост заранее знают общий NodeID (публичный ключ моста).
  2. Клиент шлёт handshake, шифрованный так, что каждый его байт статистически неотличим от случайного. Никаких магических констант, никаких фиксированных длин.
  3. Мост проверяет что клиент знает ключ (защита от активного пробинга: если у тебя нет ключа, ты не отличишь ответ моста от случайного шума).
  4. После handshake — весь дальнейший трафик тоже равномерно случайный.

DPI видит в проводе поток байт с идеальной энтропией. Не HTTP, не TLS, не что-то знакомое. И детектор не может тестить активным пробингом — «на любой байт получаешь случайные байты в ответ», не отличишь настоящий obfs4-сервер от чёрной дыры.

Криптография

IAT-mode

Inter-Arrival Time mode — искусственно рандомизирует задержки и размеры пакетов. Три значения:

В большинстве случаев IAT-MODE=0 достаточно. Включать при сильном DPI (Иран, Китай, Туркменистан).

Формат bridge line

obfs4 IP:PORT FINGERPRINT cert=BASE64_CERT iat-mode=0

Где:

Ограничения

Запуск собственного obfs4-моста

Помогает Tor и людям, у которых заблокировано. На VPS:

apt install tor obfs4proxy
# В /etc/tor/torrc:
BridgeRelay 1
ORPort 9001
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:9002
ExtORPort auto
ContactInfo your@email
Nickname MyBridge

Ждёшь пару недель, чтобы мост попал в BridgeDB и стал доступен другим.

См. также