Представлен выпуск инструментария Tor 0.3.1.7, используемого для организации работы анонимной сети Tor. Tor 0.3.1.7 признан первым стабильным выпуском ветки 0.3.1, которая развивалась последние пять месяцев.
Основные новшества:
- Задействован более компактный формат документа со сведениями о состоянии сети (consensus), загружаемого клиентами для выбора шлюзов. Новый вариант включает только изменения по сравнению с уже имеющейся у клиента версией документа, что позволяет существенно сократить объём передаваемого трафика (до 94%), необходимого для поддержания актуальной информации о сети;
- Для сжатия трафика с серверов директорий теперь могут применяться алгоритмы zstd и lzma. Так как lzma требует больших процессорных ресурсов при сжатии, он применяется только для документов, которые сжимаются один раз, а раздаются многократно;
- На стороне шлюзов ресурсоёмкие операции сжатия и генерация данных об отличиях в документах вынесены в рабочие потоки (worker threads), которые не блокируют выполнение основного потока;
- Новая система добавочного заполнения, устойчивая к системам анализа трафика, получающим сведения при помощи протокола Netflow;
- В сборочную систему добавлена экспериментальная возможность сборки компонентов, написанных на языке Rust (пока подобные компоненты отсутствуют, добавлена лишь тестовая заглушка). Для включения поддержки Rust добавлена сборочная опция «—enable-rust»;
- В число обязательных сборочных зависимостей добавлена утилита pkg-config (требуется для сборки с zstd и lzma);
- В файлах конфигурации torrc добавлена поддержка директивы «%include» для вставки содержимого других файлов.
Кроме того, представлены корректирующие выпуски прошлых веток Tor 0.2.8.15, 0.2.9.12 и 0.3.0.11. Кроме исправления накопившихся ошибок в новых выпусках устранена уязвимость (CVE-2017-0380) в коде обеспечения работы скрытых сервисов, которая может привести к записи в лог содержимого стека. Проблема проявляется только при установке значения 0 в опции SafeLogging (по умолчанию выставляется 1).