NNCP 8.8.0 のリリース、ストア アンド フォワード モードでファイル/コマンドを転送するためのユーティリティ

ファイル、電子メール、およびストア アンド フォワード モードで実行するコマンドを安全に転送するためのユーティリティ セットである Node-to-Node CoPy (NNCP) のリリース。 POSIX 互換オペレーティング システムでの動作をサポートします。 ユーティリティは Go で作成され、GPLv3 ライセンスに基づいて配布されます。

これらのユーティリティは、安全なファイア アンド フォーゲット ファイル転送、ファイル リクエスト、電子メール、およびコマンド リクエストのための静的ルーティングを備えた小規模なピアツーピアの友人間ネットワーク (数十ノード) の構築を支援することに重点を置いています。 送信されるすべてのパケットは (エンドツーエンドで) 暗号化され、友人の既知の公開キーを使用して明示的に認証されます。 オニオン (Tor と同様) 暗号化がすべての中間パケットに使用されます。 各ノードはクライアントとサーバーの両方として機能し、プッシュ動作モデルとポーリング動作モデルの両方を使用できます。

NNCP、UUCP、および FTN (FidoNet Technology Network) ソリューションの違いは、前述の暗号化と認証に加えて、安全でないローカルおよびパブリックから物理的に隔離された (エアギャップされた) フロピネット ネットワークおよびコンピュータに対するすぐに使用できるサポートです。ネットワーク。 NNCP は、Postfix や Exim などの現在のメール サーバーと (UUCP と同等に) 簡単に統合できるという特徴もあります。

NNCP の応用分野としては、インターネットに常時接続していないデバイスへのメールの送受信の整理、ネットワーク接続が不安定な状態でのファイルの転送、物理メディア上の非常に大量のデータの安全な転送、外部から保護された隔離されたデータ伝送ネットワークの作成などが挙げられます。ネットワーク検閲と監視を回避する MitM 攻撃。 復号キーは受信者のみが所有するため、パケットがネットワーク経由で配信されるか物理メディア経由で配信されるかに関係なく、たとえパッケージが傍受されたとしても、第三者が内容を読み取ることはできません。 さらに、デジタル署名認証では、別の送信者を装った架空のメッセージを作成することはできません。

NNCP 8.8.0 の革新点を、以前のニュース (バージョン 5.0.0) と比較して以下に示します。

  • BLAKE2b ハッシュの代わりに、BLAKE3 ハッシュを使用するいわゆる MTH: マークル ツリーベースのハッシュがファイルの整合性をチェックするために使用されます。 これにより、ダウンロード中にパケットの暗号化された部分の整合性を計算でき、将来はパケットを読み取らなくても済みます。 これにより、整合性チェックを無制限に並列化することもできます。
  • 新しい暗号化パケット形式は、データのサイズが事前に不明な場合でも完全にストリーミングに適しています。 転送完了のシグナリングは、認証されたサイズで、暗号化されたストリーム内に直接送信されます。 以前は、転送されたデータのサイズを確認するには、データを一時ファイルに保存する必要がありました。 そのため、「nncp-exec」コマンドには「-use-tmp」オプションがまったく不要になりました。
  • BLAKE2b KDF および XOF 関数は、使用される暗号化プリミティブの数を減らし、コードを簡素化するために BLAKE3 に置き換えられました。
  • アドレス「ff02::4e4e:4350」へのマルチキャストを通じてローカルネットワーク上の他のノードを検出できるようになりました。
  • マルチキャスト グループ (FidoNet エコー会議や Usenet ニュース グループに類似) が登場し、XNUMX つのパケットで複数のグループ メンバーにデータを送信できるようになり、各メンバーが残りの署名者にもパケットを中継します。 マルチキャスト パケットを読み取るにはキー ペアの知識が必要ですが (明示的にグループのメンバーである必要があります)、中継はどのノードでも行うことができます。
  • パケット受信の明示的な確認がサポートされるようになりました。 送信者は送信後にパケットを削除できず、受信者から特別な ACK パケットを受信するまで待機します。
  • Yggdrasil オーバーレイ ネットワークの組み込みサポート: オンライン デーモンは、サードパーティの Yggdrasil 実装を使用したり、仮想ネットワーク インターフェイス上の IP スタックと完全に連携したりすることなく、本格的な独立したネットワーク参加者として機能できます。
  • ログでは、構造化文字列 (RFC 3339) の代わりに、GNU Recutils ユーティリティで使用できる recfile エントリが使用されます。
  • オプションで、暗号化されたパケット ヘッダーを「hdr/」サブディレクトリ内の別個のファイルに保存できるため、ZFS などの大きなブロック サイズのファイル システムでのパケット リストの取得操作が大幅に高速化されます。 以前は、パケット ヘッダーを取得するには、デフォルトでディスクから 128KiB ブロックのみを読み取る必要がありました。
  • 新しいファイルのチェックでは、オプションで kqueue および inotify カーネル サブシステムを使用して、システム コールの数を減らすことができます。
  • ユーティリティによって開かれたファイルが減り、ファイルを閉じて再度開く頻度が減ります。 パッケージの数が多い場合、以前は、開くことができるファイルの最大数に制限が生じる可能性がありました。
  • 多くのチームが、パッケージのダウンロード/アップロード、コピー、処理 (トス) などの操作の進捗状況と速度を示し始めました。
  • 「nncp-file」コマンドは、単一のファイルだけでなくディレクトリも送信して、その内容を含む pax アーカイブをその場で作成できます。
  • オンライン ユーティリティは、オプションで、パッケージが正常にダウンロードされた後、別の「nncp-toss」デーモンを実行せずに、すぐにパケット トスを呼び出すことができます。
  • 別の参加者へのオンライン通話は、タイマーがトリガーされたときだけでなく、発信パケットがスプール ディレクトリに現れたときにもオプションで行うことができます。
  • 従来サポートしていた FreeBSD および GNU/Linux に加え、NetBSD および OpenBSD OS での操作性を保証します。
  • 「nncp-daemon」は、UCSPI-TCP インターフェイスと完全な互換性があります。 指定したファイル記述子にログを記録する機能 (たとえば、「NNCPLOG=FD:4」を設定する) と組み合わせることで、daemontools のようなユーティリティでの実行が完全に容易になります。
  • プロジェクトのアセンブリは REDO システムに完全に転送されました。

出所: オープンネット.ru

コメントを追加します