Tor внедряет CGO: новый слой шифрования и защита трафика

PavRC

Jabber: [email protected]
Administrator
Регистрация
10 Апр 2015
Сообщения
6,596
Реакции
91
Посмотреть вложение 14121

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
 
Сверху Снизу