[about] [index] [prev] [2021-09-27 22:42:54+03:00] [6ee3045d8842b6ba21bd11338c3a61e217f26770]

Обфускация трафика Wireguard

https://lists.zx2c4.com/pipermail/wireguard/2021-September/007155.html
https://lists.zx2c4.com/pipermail/wireguard/2018-September/003292.html
Автор не раз повторяет что проблема DPI/цензуры и проблема простого и
эффективного VPN-а -- разные задачи. Поэтому нефиг пытаться встраивать
DPI-resistance в протокол. Солидарен и согласен. Я это называю "гонкой
вооружений", а он "игрой в кошки мышки" -- что вообще более корректно,
действительно.

[leave comment]
comment 0:
From: kmeaw
Date: 2021-09-28 17:54:50Z

Тем не менее, я бы сделал так, чтобы preshared key (если установлен)
использовался в каком-нибудь потоковом шифре для того, чтобы поксорить
содержимое пакета целиком. То есть использовал бы его не только для
расчёта ключа шифрования данных, но и по заголовкам прошёлся.

Тогда пакеты с данными при ненулевом preshared key будут неотличимы от
мусора, останется только добить случайными данными служебные пакеты.
comment 1:
From: Sergey Matveev
Date: 2021-09-28 19:40:59Z

*** kmeaw [2021-09-28 20:49]: [...]
Сделать то можно, потому что не сложно, ну и чтобы было, но наверное
авторам Wireguard не хочется делать именно подобных вещей "чтобы было".
Или чёткая ясность что оно даёт сильное преимущество, или не стоит
ничего усложнять без веской причины. И обфускация/whatever -- точно не
относится к задачам эффективного VPN-а.

>Тем не менее, я бы сделал так, чтобы preshared key (если установлен)
>использовался в каком-нибудь потоковом шифре для того, чтобы поксорить
>содержимое пакета целиком.

Ну тут вот с ходу мысли: если шифропоследовательность (то, с чем мы
будем XORить пакет) будет одна и та же для каждого пакета, то XOR между
двумя пакетами покажет что там данные то не совсем рандомны и будут
видны заголовки. Я понимаю что это просто небольшое увеличение порога
входа для работы DPI (теперь ему XOR-ить пакеты надо и сличать), но это
именно та самая же "игра в кошки мышки" -- мы чуть-чуть усложним, потом
"они" чуть-чуть, потом мы, и так до бесконечности.

Если при каждом шифровании честно использовать новый выхлоп потокового
шифра, то... а как понять какой nonce/IV/counter использовать при
дешифровании? Ведь пакеты переупорядочиваются, пропадают. Можно
использовать в пределах какого-нибудь окна метод проб и ошибок. Но это
уже дорого и код усложнит. Передавать зашифрованный nonce? Вариант. Но
вот и начинается усложнение бесконечное.