Выпуск новой стабильной ветки Tor 0.4.6

Представлен выпуск инструментария Tor 0.4.6.5, используемого для организации работы анонимной сети Tor. Версия Tor 0.4.6.5 признана первым стабильным выпуском ветки 0.4.6, которая развивалась последние пять месяцев. Ветка 0.4.6 будет сопровождаться в рамках штатного цикла сопровождения – выпуск обновлений будет прекращён через 9 месяцев или через 3 месяца после релиза ветки 0.4.7.x. Длительный цикл поддержки (LTS) обеспечен для ветки 0.3.5, обновления для которой будут выпускаться до 1 февраля 2022 года. Одновременно сформированы выпуски Tor 0.3.5.15, 0.4.4.9 и 0.4.5.9 в которых устранены DoS-уязвимости, позволяющие вызвать отказ в обслуживании клиентов onion-сервисов и релеев.

Основные изменения:

  • Добавлена возможность создания onion-сервисов на базе третьей версии протокола с аутентификацией доступа клиентов через файлы в каталоге ‘authorized_clients’.
  • Для релеев добавлен признак, позволяющий оператору узла понять, что релей не включён в консенсус в процессе выбора серверами директорий (например, когда слишком много релеев на одном IP-адресе).
  • Обеспечена возможность передавать сведения о перегрузке в данных extrainfo, которые могут использоваться при балансировке нагрузки в сети. Передача метрики контролируется при помощи опции OverloadStatistics в torrc.
  • В подсистему защиты от DoS-атак добавлена возможность ограничения интенсивности соединений клиентов к релеям.
  • В релеях реализована публикация статистики о числе onion-сервисов на базе третьей версии протокола и объёме их трафика.
  • Из кода для релеев удалена поддержка опции DirPorts, которая не используется для данного типа узлов.
  • Проведён рефакторинг кода. Подсистема защиты от DoS-атак перемещена в менеджер subsys.
  • Прекращена поддержка старых onion-сервисов на базе второй версии протокола, который был объявлен устаревшим год назад. Полностью удаление кода, связанного со второй версией протокола ожидается осенью. Вторая версия протокола была разработана около 16 лет назад и из-за применения устаревших алгоритмов в современных условиях не может считаться безопасной. Два с половиной года назад в выпуске 0.3.2.9 пользователям была предложена третья версия протокола для onion-сервисов, примечательная переходом на 56-символьные адреса, более надёжной защитой от утечек данных через серверы директорий, расширяемой модульной структурой и использованием алгоритмов SHA3, ed25519 и curve25519 вместо SHA1, DH и RSA-1024.
  • Устранены уязвимости:
    • CVE-2021-34550 – обращение к области памяти вне выделенного буфера в коде для парсинга дескрипторов onion-сервисов на базе третьей версии протокола. Атакующий может через размещение специально оформленного дескриптора onion-сервиса инициировать крах любого клиента, попытавшегося обратиться к этому onion-сервису.
    • CVE-2021-34549 – возможность проведения атаки для вызова отказа в обслуживании релеев. Атакующий может сформировать цепочки с идентификаторами, вызывающими коллизии в хэш-функции, обработка которых приводит к большой нагрузке на CPU.
    • CVE-2021-34548 – релей мог выполнить спуфинг ячеек RELAY_END и RELAY_RESOLVED в наполовину закрытых потоках, что позволяло завершить поток, который был создан без участия данного релея.
    • TROVE-2021-004 – добавлены дополнительные проверки сбоев при обращении генератору случайных чисел OpenSSL (с вызываемой по умолчанию реализацией RNG в OpenSSL подобные сбои не проявляются).
Release. Ссылка here.