发布 NNCP 8.8.0,用于以存储转发模式传输文件/命令的实用程序

发布节点到节点 CoPy (NNCP),这是一组用于安全文件传输、电子邮件和存储转发命令的实用程序。 支持在 POSIX 兼容操作系统上工作。 这些实用程序是用 Go 语言编写的,并根据 GPLv3 许可证分发。

这些实用程序旨在帮助构建小型点对点朋友对朋友网络(数十个节点),并具有静态路由,以实现安全的“即发即忘”文件传输、文件请求、电子邮件和命令执行请求。 所有传输的数据包都经过加密(端到端),并根据朋友的已知公钥进行显式身份验证。 洋葱(如 Tor)加密应用于所有中间数据包。 每个节点都可以充当客户端和服务器,并使用推送和轮询行为。

NNCP 与 UUCP 和 FTN(FidoNet 技术网络)解决方案之间的区别,除了上述加密和身份验证之外,还支持开箱即用的软盘网络和与不安全的本地和公共网络物理隔离(气隙)的计算机。 NNCP 还具有与当前邮件服务器(例如 Postfix 和 Exim)轻松集成(与 UUCP 同等)的功能。

在 NNCP 的可能应用领域中,组织向没有永久连接到 Internet 的设备发送/接收邮件、在网络连接不稳定的情况下传输文件、在物理介质上安全地传输大量数据、创建隔离数据网络免受中间人攻击,绕过网络审查和监视。 由于解密密钥仅由接收者掌握,因此无论数据包如何通过网络或物理介质传递,第三方都无法读取内容,即使通过拦截发送也是如此。 反过来,数字签名身份验证不允许您以其他发件人的名义创建虚构的货件。

NNCP 8.8.0的创新之处,相比之前的消息(5.0.0版本):

  • 所谓的 MTH(基于 Merkle 树的哈希)代替 BLAKE2b 哈希,使用 BLAKE3 哈希来检查文件的完整性。 这使您可以在下载过程中计算包加密部分的完整性,而无需稍后读取。 它还允许无限并行完整性检查。
  • 当事先未知数据大小时,新的加密数据包格式完全适合流式传输。 具有经过验证的大小的传输完成信令直接进入加密流内部。 以前,为了找出传输数据的大小,需要将它们保存到临时文件中。 因此“nncp-exec”命令丢失了“-use-tmp”选项,因为它完全没有必要。
  • BLAKE2b KDF 和 XOF 函数已被 BLAKE3 取代,以减少使用的加密原语数量并简化代码。
  • 现在可以通过地址“ff02​​4::4e4350e:XNUMX”处的多播来检测本地网络中的其他节点。
  • 多播组出现了(类似于 FidoNet echo 会议或 Usenet 新闻组),允许一个数据包向该组的许多成员发送数据,其中每个成员还将数据包转发给其他签名者。 读取多播数据包需要了解密钥对(您必须明确是该组的成员),但任何节点都可以完成中继。
  • 添加了对数据包接收的显式确认的支持。 发送方可以选择在发送数据包后不删除数据包,等待从接收方收到特殊的 ACK 数据包。
  • 对 Yggdrasil 覆盖网络的内置支持:在线守护进程可以充当成熟的独立网络参与者,而无需使用第三方 Yggdrasil 实现以及在虚拟网络接口上与 IP 堆栈进行成熟的合作。
  • 日志使用可与 GNU Recutils 实用程序一起使用的 recfile 条目,而不是结构化字符串 (RFC 3339)。
  • 或者,加密的数据包标头可以存储在“hdr/”子目录中的单独文件中,从而大大加快 ZFS 等大型块文件系统上的数据包列表操作。 以前,默认情况下,检索数据包标头仅需要从磁盘读取 128KiB 块。
  • 检查新文件可以选择使用 kqueue 和 inotify 内核子系统,从而减少系统调用。
  • 实用程序保留的打开文件较少,它们不太可能被关闭和重新打开。 对于大量包,以前可能会遇到打开文件最大数量的限制。
  • 许多命令开始显示操作的进度和速度,例如下载/上传、复制和处理(扔)包。
  • “nncp-file”命令不仅可以发送单个文件,还可以发送目录,动态创建包含其内容的 pax 存档。
  • 在线实用程序可以选择在成功下载包后立即调用包处理(抛掷)过程,而无需运行单独的“nncp-toss”守护程序。
  • 对另一个参与者的在线呼叫不仅可以在计时器触发时进行,还可以在传出数据包出现在假脱机目录中时进行。
  • 除了之前支持的 FreeBSD 和 GNU/Linux 之外,还提供了 NetBSD 和 OpenBSD 操作系统下的工作能力。
  • “nncp-daemon”与 UCSPI-TCP 接口完全兼容。 再加上记录到指定文件描述符的能力(例如,设置“NNCPLOG=FD:4”),在类似 daemontools 的实用程序下运行是完全友好的。
  • 项目的组装完全转移到重做系统中。

来源: opennet.ru

添加评论