Tor переходит на CGO: зачем сети новая схема шифрования
Tor Project готовит важное обновление внутреннего шифрования трафика между реле: вместо устаревшей схемы tor1 внедряется Counter Galois Onion (CGO). На языке пользователя это выглядит скучно - браузер просто продолжит работать. На языке атакующего меняется главное: незаметно “помечать” и подменять ячейки внутри цепочки становится значительно сложнее, а компрометация текущих ключей хуже помогает разбирать историю трафика. Ниже - разбор, что именно меняется, почему это долго откладывали и какие ограничения у Tor останутся даже после CGO.Что такое tor1 и почему к нему накопились претензии
Tor десятилетиями использовал схему tor1 для защиты ячеек (клеток) трафика внутри цепочки реле. Она проектировалась в эпоху, когда “нормой” были более простые конструкции, а требования к встроенной аутентификации и устойчивости к подмене еще не стали обязательной частью дизайна.Проблема не в том, что tor1 “сломана целиком”, а в том, что в ней оставалось окно для атак на целостность. Такие окна редко дают атакующему “прочитать все”, но иногда позволяют надежнее сопоставлять потоки и подтверждать гипотезы о маршруте.
Мини-вывод: tor1 была рабочей, но морально старой, и Tor Project долго шел к моменту, когда ее можно заменить без риска для совместимости сети.
В чем уязвимость старой модели: шифрование без аутентификации
Ключевая претензия к tor1 - использование режима AES-CTR без встроенной аутентификации. Это означает, что злоумышленник на маршруте потенциально мог менять отдельные биты в зашифрованных данных так, чтобы получатель не всегда “сразу” понял, что поток тронули.На практике этот класс угроз чаще обсуждают в контексте tagging-атак: когда модификация в одной точке и наблюдение в другой позволяют привязать одно и то же соединение к конкретному маршруту. Это не универсальный “взлом Tor”, а инструмент для тех, кто и так имеет сильные позиции в сети или на периметре.
Мини-вывод: отсутствие жесткой проверки целостности внутри самой конструкции делало подмену трафика тем, что нельзя было “гарантированно пресечь на уровне протокола”.
Что такое CGO простыми словами: шифрование плюс доказуемая целостность
CGO (Counter Galois Onion) - это новая конструкция, которая делает целостность частью дизайна. Там, где раньше можно было попытаться “аккуратно подвинуть” поток, теперь любое изменение превращается в событие, которое ломает проверку и заметно для следующего узла.Схематично это выглядит так: данные защищаются широкоблочным шифрованием, а поверх строится цепочка аутентификационных тегов. Каждый следующий шаг зависит от корректности предыдущего, поэтому незаметное вмешательство перестает быть локальной проблемой одной ячейки.
Мини-вывод: CGO закрывает именно криптографическое окно для подмены, а не “делает Tor невидимым для всего”.
Цепочки тегов: почему подмена ломает не только текущую ячейку
Одна из сильных идей CGO - tag chaining. В этой модели изменения в одном месте портят не только конкретный фрагмент, но и всю последующую последовательность, потому что проверка целостности завязана на цепочку.Это важно именно против tagging-атак: атакующему нужно, чтобы “пометка” пережила маршрут и была различима в конце. Если же любая модификация приводит к разрушению дальнейшей структуры, “метка” перестает быть устойчивой и перестает работать как надежный идентификатор.
Мини-вывод: CGO делает вмешательство дорогим и шумным, а значит снижает прикладную ценность подобных техник для наблюдателя.
Обновление ключей на каждом шаге: что дает “прямая секретность”
Вторая важная часть CGO - регулярное обновление ключевого материала. Если упростить, ключи не “живут” долго в одной форме: после обработки ячейки они трансформируются так, чтобы даже компрометация текущего состояния хуже раскрывала прошлое.В старых моделях слабое место часто формулируют так: “получил ключ - получил возможность разбирать накопленное”. В CGO задумка обратная: история трафика должна оставаться труднодоступной даже при неприятном сценарии, когда активный ключовый материал оказался скомпрометирован.
Мини-вывод: CGO уменьшает ценность “захвата ключа” как универсального рычага и делает ретроспективный анализ менее выгодным.
Усиленная проверка целостности: почему уход от SHA-1 здесь принципиален
Tor Project отдельно подчеркивает, что CGO убирает из слоя шифрования устаревшие элементы и вводит более строгую проверку целостности с полноценным коротким (16-байтным) кодом. Это не про “красоту криптографии”, а про практику: чем проще подделать проверку, тем больше у атакующего вариантов на маршруте.Для сети Tor важно, чтобы подмена обнаруживалась как можно ближе к месту вмешательства, а не превращалась в “странный сбой” где-то дальше. Поэтому жесткая связка служебных параметров и проверок - это не усложнение ради усложнения, а способ сделать атаки менее тихими.
Мини-вывод: CGO повышает вероятность раннего обнаружения вмешательства и снижает шанс, что подмена пройдет незаметно для ретранслятора.
Как пройдет переход: Tor и Arti, тестирование и “незаметное” переключение
CGO внедряется сразу в двух мирах: классической реализации Tor и Rust-клиенте Arti. На момент анонса проект описывает поддержку как экспериментальную, с постепенным тестированием, после которого переключение станет стандартным и автоматическим.Важный момент для пользователей: это обновление уровня протокола, а не настройка “в интерфейсе”. При нормальном ходе внедрения большинство людей действительно не увидит кнопки “включить CGO”, просто в один момент сеть начнет использовать новый механизм там, где он поддерживается.
Мини-вывод: эффект будет похож на обновление дорожных правил - внешне все то же, но внутри меняется то, что считалось допустимым поведением в сети.
Чего CGO не обещает: какие угрозы у Tor останутся
CGO закрывает важный криптографический класс атак, но не отменяет фундаментальные ограничения Tor. Если противник способен наблюдать вход и выход одновременно (особенно в масштабе провайдера или магистрали), сохраняются риски корреляции по времени и объему.Также CGO не заменяет прикладные правила безопасности: выходной узел не делает контент “магически безопасным”, если приложение не использует сквозное шифрование (например, HTTPS). И CGO не лечит утечки на уровне браузера, расширений и поведения пользователя.
Мини-вывод: CGO усиливает Tor как транспорт, но “анонимность” все равно зависит от модели угроз и дисциплины на уровне приложений.
FAQ: коротко о главных вопросах
- CGO ускорит Tor? В первую очередь это обновление безопасности. Производительность важна, но смысл перехода - закрыть окно для подмены трафика.
- Нужно ли что-то включать вручную? По плану Tor Project переключение должно быть автоматическим после завершения тестирования.
- Это “конец” для наблюдателей? Нет. Это минус один важный криптографический инструмент, но корреляция трафика и анализ метаданных никуда не исчезают.
- Значит ли это, что Tor раньше был “дырявый”? Скорее, он нес историческое наследие в конкретном слое. CGO - точечное исправление давно обсуждаемого дизайна.
- Arti тут при чем? Это Rust-реализация Tor. Внедрение CGO одновременно в Tor и Arti снижает риск “двух разных сетей” и ускоряет консолидацию протокола.
- Что это меняет для обычного пользователя? Меньше шансов, что кто-то на маршруте сможет тихо вмешиваться в поток и использовать это для привязки соединений.
Итог
Переход Tor на Counter Galois Onion - это редкий случай, когда протокол становится взрослее, не меняя привычный пользовательский опыт. CGO закрывает класс атак, основанных на незаметной модификации ячеек, усиливает проверку целостности и уменьшает ценность компрометации ключей для анализа истории трафика.Но это не “волшебная кнопка”. Tor останется системой, где безопасность складывается из криптографии, сетевой реальности и поведения пользователя. CGO просто делает одну из старых слабостей гораздо менее удобной для тех, кто любит работать тихо.
Редакция PavRC