[О блоге] [наверх] [пред] [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 в протокол. Солидарен и согласен. Я это называю "гонкой
вооружений", а он "игрой в кошки мышки" -- что вообще более корректно,
действительно.

    [оставить комментарий]
    комментарий 0:
    From: kmeaw
    Date: 2021-09-28 17:54:50Z
    
    Тем не менее, я бы сделал так, чтобы preshared key (если установлен)
    использовался в каком-нибудь потоковом шифре для того, чтобы поксорить
    содержимое пакета целиком. То есть использовал бы его не только для
    расчёта ключа шифрования данных, но и по заголовкам прошёлся.
    
    Тогда пакеты с данными при ненулевом preshared key будут неотличимы от
    мусора, останется только добить случайными данными служебные пакеты.
    
    комментарий 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? Вариант. Но
    вот и начинается усложнение бесконечное.