Релиз NNCP 0.7, утилит для безопасной передачи файлов/почты в режиме store-and-forward

Состоялся релиз Node-to-Node copy (NNCP), набора утилит для безопасной передачи файлов и электронной почты в режиме store-and-forward. Поддерживается работа на POSIX-совместимых операционных системах. Утилиты написаны на языке Go и распространяются под лицензией GPLv3+.

Утилиты ориентированы на помощь в построении небольших одноранговых friend-to-friend сетей (дюжины узлов) со статической маршрутизацией для безопасной передачи файлов в режиме fire-and-forget, запросов на файлы и электронной почты. Все передаваемые пакеты зашифрованы (end-to-end) и явно аутентифицируются по известным публичным ключам знакомых. Луковое (как в Tor) шифрование применяется для всех промежуточных пакетов. Каждый узел может выступать как в роли клиента, так и сервера и использовать и push и poll модель поведения.

Отличием NNCP от решений UUCP и FTN (FidoNet Technology Network), кроме вышеупомянутого шифрования и аутентификации, является поддержка из коробки сетей флоппинет и компьютеров, физически изолированных (air-gapped) от небезопасных локальных и публичных сетей. Особенностью NNCP также является лёгкая интеграция (наравне с UUCP) с текущими почтовыми серверами, такими как Postfix и Exim.

Из возможных областей применения NNCP отмечается организация отправки/приема почты на устройства без постоянного подключения к интернету, передачи файлов в условиях нестабильного сетевого соединения, безопасной передачи очень больших объёмов данных на физических носителях, создание защищённых от MitM-атак изолированных сетей передачи данных, обхода сетевой цензуры и слежки. Так как ключ для дешифровки находится только у получателя, независимо от путей доставки пакета по сети или через физические носители, третье лицо не может прочитать содержимое, даже перехватив отправление. В свою очередь аутентификация по цифровой подписи не позволяет сформировать фиктивное отправление по видом другого отправителя.

Среди новшеств NNCP 0.7, по-сравнению с первой версией, можно отметить:

  • Настоящий размер передаваемого пакета шифруется и к нему можно добавить любое количество фиктивных данных, скрывая реальный размер передаваемых данных от внешнего наблюдателя.
  • Online TCP демоны постоянно проверяют исходящую очередь на появление новых пакетов и сразу же оповещают о них удалённую сторону.
  • TCP соединения можно держать открытыми неограниченно долгое время — экономя на handshake-ах и TCP round-trip-ах.
  • Команда nncp-caller позволяет выполнять вызовы к нодам по встроенному cron-расписанию, с указанием допустимых приоритетов пакетов, времени соединения, очередей отправки/приёма.
  • Большие файлы можно автоматически разбивать на небольшие куски (chunk-и), позволяя передавать любые объёмы данных несколькими итерациями «поверх» маленьких по ёмкости накопителей данных.
  • Возможность шифрования конфигурационного файла Balloon-усиленной парольной фразой, а также создания его урезанной версии, чтобы хоть как-то использовать NNCP в местах с вероятностью компрометации приватных ключей.

© OpenNet