Релиз анонимной сети I2P 0.9.36 и C++-клиента i2pd 2.20 с поддержкой нового протокола
Состоялся релиз анонимной сети I2P 0.9.36 (эталонная реализация на Java), а также релиз i2pd 2.20 (I2P Daemon), полнофункциональной реализации клиента I2P на языке C++.
Новые версии примечательны добавлением поддержки нового транспортного протокола NTCP2. Новый протокол сделан на основе Noise Protocol Framework и дополнительно использует хэш HMAC-SHA256 и систему обмена ключами x25519 на основе эллиптических кривых. Главными особенностями NTCP2 являются возможность эффективно противостоять системам распознавания трафика (DPI) и снижение нагрузки на CPU в процессе работы.
Из-за применения более быстрых алгоритмов шифрования NTCP2 подходит для применения на маломощных встраиваемых устройствах, смартфонах и домашних маршрутизаторах. По сравнению с ранее предлагаемым протоколом NTCP в NTCP2 требуется определение не двух, а трех ключей (ключ x25519, ключ для шифрования и ключ для цифровой подписи), а при доставке ключей используется несколько вызовов HMAC-SHA256. Кроме того, вместо ElGamal для согласования ключей применяется x25519, а для шифрования вместо связки AES-256-CBC/Adler32 используется AEAD/Chaha20/Poly1305. Для запутывания информации о длине пакета дополнительно используется SipHash.
NTCP2 будет включен по-умолчанию в следующем релизе I2P, но протестировать его можно уже сейчас, указав в конфигурации "i2np.ntcp2.enable=true". В I2P новый адрес NTCP2 задается в старом стиле с добавлением дополнительных параметров, что позволяет одновременно принимать соединения NTCP и NTCP2. В i2pd адрес NTCP2 определяется полностью отдельно от старого адреса NTCP.
Так же в релизе I2P 0.9.36 отмечаются следующие изменения:
- Во встроенный торрент-клиент I2P Snark добавлен режим упорядоченной загрузки файлов, от первой части до последней;
- Jetty обновлен до версии 9.2.25.v20180606;
- Улучшена производительность основных транспортных протоколов;
- Исправлен инсталлятор для Windows 10;
- Исправлены мелкие ошибки и проведена оптимизация производительности.
I2P представляет собой многослойную анонимную распределенную сеть, работающую поверх обычного интернета, активно использующую сквозное (end-to-end) шифрование, гарантирующую анонимность и изолированность. В сети I2P можно анонимно создавать web-сайты и блоги, отправлять мгновенные сообщения и электронную почту, обмениваться файлами и организовывать P2P-сети. Базовый I2P-клиент написан на языке Java и может работать на широком спектре платформ, таких как Windows, Linux, macOS, Solaris и т. п. I2pd представляет собой независимую реализацию клиента I2P на языке C++ и распространяется под модифицированной лицензией BSD.