Релиз GNUnet 0.10, фреймворка для построения безопасных P2P-сетей

После двух лет разработки увидел свет значительный выпуск фреймворка GNUnet 0.10, предназначенного для построения децентрализованных безопасных P2P-сетей, не имеющих единой точки отказа и способных гарантировать неприкосновенность частной информации пользователей, в том числе исключить возможные злоупотребления со стороны спецслужб и администраторов, имеющих доступ к узлам сети. GNUnet поддерживает создание P2P-сетей поверх TCP, UDP, HTTP/HTTPS, Bluetooth и WLAN, может работать в режиме F2F (Friend-to-friend). Для адресации размещения данных возможно использование распределённой хэш таблицы (DHT). Предоставляются средства для развёртывания mesh-сетей. Поддерживается обход NAT, в том числе с использованием UPnP и ICMP. Система отличается низким потреблением ресурсов и использованием многороцессной архитектуры для обеспечения изоляции между компонентами. Предоставляются гибкие средства для ведения логов и накопления статистики.

Для разработки конечных приложений GNUnet предоставляет обширный API, который может быть использован в программах на языке Си, а через биндинги и на других языках программирования. Для упрощения разработки вместо потоков предлагается использовать циклы обработки событий (event loop) и процессы. В состав входит тестовая библиотека для автоматического развёртывания экспериментальных сетей, охватывающих десятки тысяч пиров.

На базе технологий GNUnet развивается несколько готовых приложений:

Сервис для анонимного обмена файлами, не позволяющий проанализировать информацию за счёт передачи данных только в зашифрованном виде и не дающий отследить кто разместил, искал и скачал файлы благодаря использованию протокола GAP. Система VPN для создания скрытых сервисов в домене ».gnu» и проброса туннелей IPv4 и IPv6 поверх P2P-сети. Дополнительно поддерживаются схемы трансляции IPv4-в-IPv6 и IPv6-в-IPv4, а также создание туннелей IPv4-поверх-IPv6 и IPv6-поверх-IPv4. Система доменный имён GNS (GNU Name System), выступающая в качестве полностью децентрализованной и недоступной для цензуры замены DNS. GNS может применяться бок о бок с DNS и использоваться в традиционных приложениях, таких как web-браузеры. Целостность и неизменность записей обеспечивается за счёт использования криптографических средств. На данном этапе развития полная анонимность в GNS не гарантируется: сохранение приватности предоставлено только для запросов (другие участники и сторонние наблюдатели не могут расшифровать запросы и ответы, но могут определить какой из пиров связан с определённым доменом). Сервис GNUnet Conversation для совершения голосовых вызовов поверх GNUnet. Для идентификации пользователей используется GNS, содержимое голосового трафика передаётся в зашифрованном виде. Анонимность пока не предоставляется — другие пиры могут отследить соединение между двумя пользователями и определить их IP-адреса. В версии GNUnet 0.10 значительно пересмотрены используемые в системе криптографические примитивы. В частности, осуществлён переход от RSA 2048 к использованию методов шифрования по публичным ключам на базе криптографии по эллиптическим кривым Curve25519 (EdDSA и ECDHE). Как следствие новый выпуск GNUnet стал обратно не совместим с прошлыми версиями, что было использовано для одновременного проведения общей модернизации протокола. Новый выпуск пока рекомендован только для ознакомительного использования, так как сеть на базе новой версии GNUnet ещё не слишком велика для обеспечения достаточного уровня анонимности и новый код не прошел полное тестирование в условиях реального применения. Кроме того, для сборки GNUnet 0.10 требуются самые свежие выпуски библиотек libgcrypt 1.6 и libgnurl 7.34.0, пока не попавшие в репозитории большинства дистрибутивов.

Другие новшества GNUnet 0.10:

Новое приложение GNUnet Conversation для организации голосовой связи; Новый комбинированный многопроцессный графический интерфейс gnunet-gtk; Новый инструмент gnunet-bcd для создания бизнес-карт GNS; Новый инструмент gnunet-qr для импорта QR-кодов GNS; Использование EdDSA и ECDHE для обеспечения шифрования по открытым ключам между пирами; Для CORE-соединений используется 12-уровневый цикличный секретный код; Использование ECDSA для системы доменных имён GNS и управления идентификацией; Унификация средств управления идентификацией для GNS и сервиса обмена файлами; Обеспечение невозможности отличить KSK- и SKS-запросы в сервисе обмена файлами; Добавлен флаг для скрытия видимости пиров, работающих в режиме F2F (Friend-to-friend); Поддержка шифрованных mesh-туннелей типа «точка-точка»; Реализация средств управления интенсивностью потока (контроля перегрузки) для mash-туннелей; Улучшение схемы отзыва ключей, приватности запросов, обработки скрытых записей и укорачивания имён; Обновление документации для разработчиков и инструкций по установке для пользователей.

© OpenNet