Фреймворк-альтернатива сетевым гигантам стала быстрее и надёжнее.
Вышла версия фреймворка GNUnet 0.25 — инструмента для построения распределённых сетей без единого центра управления. Этот проект ориентирован на защиту приватности и устойчивость к отказам: администраторы отдельных узлов не получают возможности злоупотреблять правами доступа, а сама архитектура исключает наличие единой точки уязвимости.
GNUnet позволяет организовывать пиринговое взаимодействие поверх различных транспортов: TCP, UDP, HTTP(S), Bluetooth и беспроводных сетей. Есть режим friend-to-friend, поддержка обхода NAT (включая UPnP и ICMP), работа с распределённой хэш-таблицей для адресации, а также механизмы для построения mesh-инфраструктур. Для управления правами применяется reclaimID — система обмена атрибутами личности на базе GNU Name System и шифрования с привязкой к атрибутам.
Архитектура платформы многопроцессная: разные модули изолированы друг от друга, что улучшает стабильность. Для анализа работы предусмотрены журналы и система сбора статистики. Разработчики приложений могут использовать API на языке Си или готовые обвязки для других языков. Вместо потоков предлагается модель обработки событий, а для тестирования доступны инструменты развёртывания экспериментальных сетей с тысячами участников.
На базе GNUnet развивается целый набор прикладных решений. Среди них — GNU Name System, децентрализованная альтернатива DNS, в которой вместо иерархии серверов используется граф связей, а запросы и ответы шифруются таким образом, что даже промежуточные узлы не могут понять, какое имя разрешается. В GNS целостность обеспечивается за счёт криптографии на основе Curve25519 и ECDSA.
Система также включает: – сервис анонимного обмена файлами, использующий протокол GAP для передачи данных только в зашифрованном виде; – механизм создания скрытых сервисов в домене .gnu с поддержкой IPv4 и IPv6-туннелей и трансляций между ними; – приложение GNUnet Conversation для голосовых вызовов через GNS, где трафик зашифрован, но IP-адреса собеседников остаются видимыми; – социальную платформу Secushare, использующую протокол PSYC и multicast-уведомления со сквозным шифрованием; – систему электронных расчётов GNU Taler, которая обеспечивает анонимность покупателю и прозрачность транзакций для продавца; – мессенджер GNUnet Messenger на базе протокола CADET, предоставляющий защищённые групповые чаты со сквозным шифрованием.
Главные изменения релиза 0.25 связаны с фундаментальными модулями. Подсистема CORE, отвечающая за маршрутизацию и обмен сообщениями, получила переработку и поддержку новых защищённых каналов. В них используется KEMTLS — вариант протокола согласования ключей, в котором применяются X25519, XChaCha20 и Poly1305, а также ряд идей из DTLS 1.3.
Ещё одно нововведение — сервис PILS (Peer Identity Lifecycle). Он позволяет генерировать разные идентификаторы одного и того же участника в зависимости от контекста подключения: например, при работе из дома и при выходе в сеть из другой страны будут формироваться разные учётные данные, что усложняет отслеживание перемещений.
Кроме того, заметно ускорена работа с зонами в GNS: операции передачи DNS-данных теперь выполняются быстрее, добавлены инструменты для зеркалирования и импорта зон из файлов. В сборочной системе прекращена поддержка AutoTools, что также отражает переход на более современный процесс разработки.
GNUnet 0.25 подтверждает курс проекта на построение экосистемы децентрализованных приложений, которые обеспечивают приватность и независимость пользователей в условиях растущего давления на сетевую анонимность.