Состоялся (https://lists.cypherpunks.ru/pipermail/nncp-devel/2018-June/...) релиз Node-to-Node copy (http://www.nncpgo.org/Ob-utilitakh.html) (NNCP), набора утилит для безопасной передачи файлов, электронной почты и команд для исполнения в режиме store-and-forward (https://en.wikipedia.org/wiki/Store_and_forward). Поддерживается работа на POSIX-совместимых операционных системах. Утилиты написаны на языке Go и распространяются под лицензией GPLv3+.
Утилиты ориентированы на помощь в построении небольших одноранговых friend-to-friend (https://ru.wikipedia.org/wiki/Friend-to-friend) сетей (дюжины узлов) со статической маршрутизацией для безопасной передачи файлов в режиме fire-and-forget, запросов на файлы, электронной почты и запросов на выполнение команд. Все передаваемые пакеты зашифрованы (http://www.nncpgo.org/Encrypted.html) (end-to-end) и явно аутентифицируются по известным публичным ключам знакомых. Луковое (как в Tor) шифрование применяется для всех промежуточных пакетов. Каждый узел может выступать как в роли клиента, так и сервера и использовать и push и poll модель поведения.
Отличием (http://www.nncpgo.org/Sravnenie.html) NNCP от решений UUCP (https://ru.wikipedia.org/wiki/Uucp) и FTN (https://ru.wikipedia.org/wiki/FTN) (FidoNet Technology Network), кроме вышеупомянутого шифрования и аутентификации, является поддержка из коробки сетей флоппинет (https://ru.wikipedia.org/wiki/%D0%A4%D0%...) и компьютеров, физически изолированных (air-gapped (https://ru.wikipedia.org/wiki/%D0%92%D0%...(%D1%81%D0%B5%D1%82%D0%B8_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85))) от небезопасных локальных и публичных сетей. Особенностью NNCP также является лёгкая интеграция (наравне с UUCP) с текущими почтовыми серверами, такими как Postfix и Exim.
Из возможных областей применения NNCP отмечается (http://www.nncpgo.org/Scenarii-ispolxzovaniya.html) организация отправки/приёма почты на устройства без постоянного подключения к интернету, передачи файлов в условиях нестабильного сетевого соединения, безопасной передачи очень больших объёмов данных на физических носителях, создание защищённых от MitM-атак изолированных сетей передачи данных, обхода сетевой цензуры и слежки. Так как ключ для дешифровки находится только у получателя, независимо от путей доставки пакета по сети или через физические носители, третье лицо не может прочитать содержимое, даже перехватив отправление. В свою очередь аутентификация по цифровой подписи не позволяет сформировать фиктивное отправление по видом другого отправителя.
Среди новшеств NNCP 3.3, по-сравнению с предыдущей новостью (https://www.opennet.me/opennews/art.shtml?num=46476 ) (версия 0.7), можно отметить:
- Как и в UUCP, теперь можно делать удалённый вызов (http://www.nncpgo.org/nncp_002dexec.html) команд. Отправка почты стала удалённым выполнением команды sendmail. Например, это можно использовать для того, чтобы по узким каналам связи с низкой задержкой (например сотовая сеть) запросить удалённую систему сделать полное зеркалирование сайта/страницы и подготовить ответ для передачи по толстым каналам с большой задержкой (для копирования на диски/ленты);
- Команда nncp-bundle позволяет создавать bundles (http://www.nncpgo.org/Bundles.html) пригодные для потоковой записи пакетов на ленты, компакт-диски и блочные устройства без файловых систем. Ранее невозможно было удобно обмениваться пакетами используя ленточные накопители без создания промежуточного архива;
- Возможность (http://www.nncpgo.org/nncp_002dtoss.html) создания .seen-файлов, отмечающих что заданный пакет был обработан ранее. Это позволяет обрабатывать огромные объёмы пакетов за несколько проходов чтения (с ленты, дисков) без их полного копирования в spool. Кроме того, позволяет избегать дублирования при обмене пакетами по нескольким параллельным каналам связи;
- Включение (https://www.freshports.org/net/nncp/) NNCP в порты FreeBSD;
- Отправитель может задать предпочитаемый приоритет для ответных пакетов на запросы файлов и исполнения команд;
- Возможность переопределять промежуточные ноды через которые будет отправлен пакет прямо из командной строки, не меняя конфигурационный файл;
- Алгоритм шифрования Twofish заменён на ChaCha20 (https://en.wikipedia.org/wiki/ChaCha20), существенно ускоряя работу на слабых процессорах;
- Приоритеты пакетов, вместо целого числа 1-255, теперь можно задавать (http://www.nncpgo.org/Niceness.html) человекочитаемыми именами вида: NORMAL, BULK+20, PRIORITY-15, F+3;
- Огромное количество поправок для удобства: возможность делать tossing только для заданного типа пакетов, возможность переопределять путь до spool директории, команда nncp-rm для удаления различных файлов из spool директории, прерывание низкоприоритетных online-передач более высокоприоритетными, и множество других.
URL: https://lists.cypherpunks.ru/pipermail/nncp-devel/2018-June/...
Новость: https://www.opennet.me/opennews/art.shtml?num=48756