После пяти лет разработки опубликован (https://gnunet.org/en/#gnunet-0.11.0-release) новый значительный выпуск фреймворка GNUnet 0.11 (https://gnunet.org), предназначенного для построения защищённых децентрализованных P2P-сетей. Создаваемые при помощи GNUnet сети не имеют единой точки отказа и способны гарантировать неприкосновенность частной информации пользователей, в том числе исключить возможные злоупотребления со стороны спецслужб и администраторов, имеющих доступ к узлам сети. GNUnet поддерживает создание P2P-сетей поверх TCP, UDP, HTTP/HTTPS, Bluetooth и WLAN, может работать в режиме F2F (Friend-to-friend). Поддерживается обход NAT, в том числе с использованием UPnP и ICMP. Для адресации размещения данных возможно использование распределённой хэш таблицы (DHT). Предоставляются средства для развёртывания mesh-сетей.
Система отличается низким потреблением ресурсов и использованием многопроцессной архитектуры для обеспечения изоляции между компонентами. Предоставляются гибкие средства для ведения логов и накопления статистики. Для разработки конечных приложений 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-адреса.
- Платформа для построения децентрализованных социальных сетей Secushare (https://secushare.org/), использующая протокол PSYC (http://about.psyc.eu/) и поддерживающая распространение уведомлений в режиме multicast с применением end-to-end шифрования для того, чтобы получить доступ к сообщениям, файлам, чатам и обсуждениям могли только авторизированные получатели (те кому сообщения не адресованы, включая администраторов узлов, не смогут их прочитать);
- Система для организации шифрованной электронной почты pretty Easy privacy (https://pep.foundation/), применяющая GNUnet для защиты метаданных и поддерживающая различные криптографическими протоколами (https://www.pep.security/docs/general_information.html#the-p...) для верификации ключей;
- Платёжная система GNU Taler (https://www.opennet.me/opennews/art.shtml?num=44544), предоставляющая анонимность для покупателей, но отслеживающая транзакции продавцов для обеспечения прозрачности и предоставления налоговой отчётности. Поддерживается работа с различными существующими валютами и электронными деньгами, в том числе с долларами, евро и биткоинами.
Основные новшества GNUnet 0.11:
- В состав включён сервис децентрализованного обмена атрибутами идентификации reclaimID (https://github.com/reclaimID), использующий (https://arxiv.org/pdf/1805.06253.pdf) GNS (GNU Name System) и шифрование на основе атрибутов (Attribute-Based Encryption (https://ru.wikipedia.org/wiki/Attribute-based_Encryption)) для обеспечения выборочного предоставления и отзыва прав доступа;
- Весь код на языке Python, за исключением gnunet-qr, переведён на Python 3.7;
- Решены проблемы безопасности в логике работы криптографических операций обмена секретными идентификаторами (secret sharing).
- Экспериментальный код SecuShare (https://secushare.org/) не вошёл в состав релиза и доступен в форме отдельного Git-репозитория (https://git.gnunet.org/secushare.git);
- В утилиту Ascension (https://gnunet.org/git/ascension.git) добавлена поддержка импорта DNS-зон в GNS (GNU Name System) при помощи AXFR-запросов;
- Переработана система сборки;
- Добавлена возможность сборки с библиотекой libidn2 для поддержки интернационализованных доменных имён (IDN), соответствующих спецификации IDNA2008 (например, домен.рф);
- Обеспечена экспериментальная поддержка сборки и выполнения на платформах NetBSD и macOS;
- Введён в строй новый сайт (https://gnunet.org) и существенно переработана документация (старый сайт сохранён как old.gnunet.org (https://old.gnunet.org)).
URL: http://lists.gnu.org/archive/html/gnunet-developers/2019-02/...
Новость: https://www.opennet.me/opennews/art.shtml?num=50222