GNUnet

08.03.2021

GNUnet — программный пакет для безопасного P2P-соединения, не нуждающегося в серверах. Проект возник в 2001 году и был вдохновлён целым рядом технических идей, призванных обеспечить безопасный файлообмен в пиринговых сетях.

Основная цель проекта — создание надёжной, открытой, равноправной и анонимной сети обмена информацией. Планируется предоставление множества интернет-услуг, а сама сеть стремится стать платформой для разработки децентрализованных служб следующего поколения. Использует Drupal в качестве системы управления содержимым и Mantis для отслеживания ошибок.

За основу GNUnet были взяты существующие Freenet и Mnet, однако GNUnet существенно отличается от каждой из них.

Первый реализованный сервис позволяет обмениваться файлами анонимно и без какой либо сетевой цензуры. GNUnet может использовать для передачи данных как стандартные протоколы TCP и UDP, так и необычные для P2P HTTP, причём с возможностью работы через прокси-сервер, а также SMTP. Кроме того, GNUnet может работать за NAT.

В данный момент в проект входит демон gnunetd, несколько библиотек и два фронтенда: gnunet-gtk и gnunet-qt, соответственно написанные с использованием GTK и Qt.

Сервисы и модули

Для идентификации объектов и сервисов GNUnet использует URI. Любой объект в сети GNUnet идентифицируется с помощью URI, который в текущей версии выглядит как gnunet://module/identifier, где module — имя модуля сети, а identifier — уникальный хеш, идентифицирующий сам объект.

Самым популярным и наиболее стабильным сервисом является служба File Sharing, предназначенная для анонимного децентрализованного файлообмена. Поддерживается поиск, публикация и скачивание как отдельных файлов, так и целых каталогов. Благодаря сложному механизму маршрутизации запросов и ответов пользователь не может знать, от кого он принимает или кому передаёт файл.

В GNUnet можно настраивать степень анонимности от 0 (не анонимно) до бесконечности, по умолчанию используется 1. Передаваемые файлы закодированы с помощью ECRS (англ. An Encoding for Censorship-Resistant Sharing) и обрабатываются соответствующим модулем.

В GNUnet также существует простейший чат, и планируются ещё несколько служб, например, анонимная P2P-почта.