Состоялся релиз анонимной сети I2P 2.3.0 и C++-клиента i2pd 2.48.0. I2P представляет собой многослойную анонимную распределенную сеть, работающую поверх обычного интернета, активно использующую сквозное (end-to-end) шифрование, гарантирующую анонимность и изолированность. Сеть строится в режиме P2P и образуется благодаря ресурсам (пропускной способности), предоставляемым пользователями сети, что позволяет обойтись без применения централизованно управляемых серверов (коммуникации внутри сети основаны на применении шифрованных однонаправленных туннелей между участником и peer-ами).
В сети I2P можно анонимно создавать web-сайты и блоги, отправлять мгновенные сообщения и электронную почту, обмениваться файлами и организовывать P2P-сети. Для построения и использования анонимных сетей для клиент-серверных (сайты, чаты) и P2P (обмен файлами, криптовалюты) приложений, применяются I2P-клиенты. Базовый I2P-клиент написан на языке Java и может работать на широком спектре платформ, таких как Windows, Linux, macOS, Solaris и т.п. I2pd представляет собой независимую реализацию клиента I2P на языке C++ и распространяется под модифицированной лицензией BSD.
В новом выпуске устранена уязвимость (CVE-2023-36325), которая может использоваться для определения маршрутизатора, через который подключается искомый пользователь. Уязвимость вызвана ошибкой в реализации структуры хранения “фильтр Блума“, используемой для отсеивания сообщений с дублирующимися идентификаторами messageID. Проблема связана с тем, что
для клиентов и самого маршрутизатора использовался общий фильтр Блума, что позволяло атакующему отправить пользователю специально оформленное I2NP-сообщение с уникальным идентификатором messageID, после чего отправить то же сообщение напрямую на маршрутизатор и на основе его реакции определить проходило ли через него сообщение с данным идентификатором ранее (если сообщение проходило, то его идентификатор уже занесён в фильтр Блума и маршрутизатор его сразу отбросит из-за недопустимости дубликатов). Проблема решена через разделение фильтров Блума для маршрутизатора и туннелей клиентов.
Из других изменений в новом выпуске выделяются:
- Оптимизированы поиск в netDb и ограничение интенсивности отправки пакетов (rate-limit).
- Улучшено поведение маршрутизаторов, работающих в режиме floodfill.
- Добавлен дополнительный I2P-провайдер по умолчанию – not_bob.
- Предоставлена возможность задания максимального времени жизни записей в чёрном списке заблокированных IP-адресов.
- Добавлен API для изменения графического интерфейса DTG из плагинов (например, можно добавить элементы в меню апплета для системного лотка).