TCP · AEAD · 2022-blake3-aes-256-gcm

Shadowsocks 2022

Shadowsocks 2022 (SIP022) шифрует каждый байт 2022-blake3-aes-256-gcm и отсекает повторы. Как он работает, где уместен и почему Colitu пробует его последним.

Shadowsocks 2022 — пятый и последний режим, который Colitu Adaptive Connect пробует на Android и iOS, и один из TCP-режимов, которые на Windows и Linux упорядочиваются по времени подключения. В отличие от остальных четырёх, он не пытается быть на что-то похожим: с первого байта соединение Shadowsocks выглядит как случайные данные.

Что это такое

Shadowsocks — один из старейших открытых протоколов зашифрованного прокси. «2022» означает спецификацию SIP022 — переработку, которая устранила слабые места прежних версий. Она требует надёжный предварительно согласованный ключ вместо пароля, использует BLAKE3 для получения сессионных ключей и добавляет защиту от повторов на основе меток времени. Спецификация охватывает и TCP, и UDP. Серверы Colitu запускают его на sing-box с методом 2022-blake3-aes-256-gcm в многопользовательском режиме: ключ сервера плюс отдельный ключ в данных подключения каждого пользователя.

Как это работает

  1. Ключи. У приложения есть ключ сервера и собственный ключ пользователя — оба по 256 бит, полученные по зашифрованному каналу после входа.
  2. Новый ключ для каждого соединения. Для каждого соединения клиент выбирает случайную соль длиной 32 байта и с помощью BLAKE3 получает из ключа и соли сессионный подключ. Поэтому каждая сессия шифруется новым ключом.
  3. Заголовок запроса. Первое сообщение содержит заголовок фиксированной длины с типом сообщения, меткой времени и длиной, а за ним — заголовок переменной длины с адресом назначения и необязательным дополнением (padding). Всё это зашифровано и аутентифицировано AES-256-GCM.
  4. Защита от повторов. Сервер отклоняет запросы, метка времени которых слишком далека от его часов (SIP022 допускает 30 секунд), и запоминает недавно использованные соли, поэтому записанное соединение нельзя воспроизвести повторно.
  5. Ответ. Первый ответ сервера содержит соль клиента, что привязывает ответ именно к этому запросу.
  6. Данные. Дальше данные идут зашифрованными и аутентифицированными блоками. Узнаваемого рукопожатия нет ни на одном этапе.

Зачем Colitu использует Shadowsocks 2022

Shadowsocks 2022 лёгкий: нет TLS-рукопожатия, мало накладных расходов на пакет и быстрый старт. Кроме того, он не похож ни на один другой режим. Фильтрам, настроенным на TLS или QUIC, здесь не за что зацепиться, поэтому в сети, которая по своим причинам мешает TLS или QUIC к незнакомым адресам, он всё ещё может пройти. Как последний режим в очереди, он даёт Adaptive Connect ещё один вариант совершенно другого рода.

Где он силён

  • Сети со слабой фильтрацией: минимальные накладные расходы и низкая задержка.
  • Сети, которые мешают именно TLS или QUIC: здесь нет рукопожатия TLS или QUIC, которому можно помешать.
  • Маломощные устройства: AES-GCM аппаратно ускоряется на большинстве современных процессоров.

Ограничения и когда он не лучший выбор

  • Нет маскировки. «Похоже на случайные данные» — само по себе признак. Исследователи описывали системы фильтрации, которые эвристически помечают полностью зашифрованный трафик. В сетях с агрессивным DPI режимы на основе Reality срабатывают чаще, поэтому на мобильных Shadowsocks 2022 идёт последним.
  • Нет сертификата. Безопасность целиком держится на секретности предварительно согласованных ключей; у сервера нет удостоверения на основе открытого ключа.
  • Нет прямой секретности (forward secrecy). Эфемерного обмена ключами нет: сессионные ключи выводятся из долговременных, поэтому тот, кто получил бы эти ключи, смог бы расшифровать записанные сессии. У режимов на основе TLS такой слабости нет.
  • Зонду нечего показать. Сервер не даёт проверяющему полезного ответа, но, в отличие от Reality, за ним нет и настоящего сайта.
  • TCP на каналах с потерями. В мобильной сети или плохом Wi-Fi он замедляется, как любой TCP-протокол; Hysteria2 там обычно быстрее.

Как его использует Adaptive Connect

На Android и iOS Shadowsocks 2022 идёт последним — после Hysteria2, VLESS Reality, VLESS XHTTP и Trojan. Его пробуют, когда ни один из четырёх других режимов не прошёл проверку трафика. На Windows и Linux он упорядочивается вместе с другими TCP-режимами по измеренному времени подключения. Если и Shadowsocks 2022 не проходит проверку, значит, сеть не пропускает ни один из пяти режимов; что проверить дальше, описано в статье VPN не подключается.

Безопасность и шифрование

  • Шифр: AES-256-GCM — AEAD-шифр: каждый блок и зашифрован, и аутентифицирован, поэтому любое изменение обнаруживается.
  • Получение ключей: BLAKE3 выводит новый сессионный подключ из предварительно согласованного ключа и случайной соли для каждого соединения.
  • Защита от повторов: метки времени плюс кеш недавно использованных солей.
  • Ключи пользователей: данные подключения каждого пользователя содержат отдельный ключ в дополнение к ключу сервера.
  • Обращение с ключами: ключи передаются приложению в зашифрованном виде и нигде не публикуются.
  • Без журналов доступа: см. страницу безопасности.

Источники

Попробуйте

Shadowsocks 2022 входит во все приложения Colitu как последний резерв, и настраивать ничего не нужно. Скачайте Colitu или посмотрите список локаций.