Π Π΅Π»ΠΈΠ· NNCP 5.0.0, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²/ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 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 5.0.0, ΠΏΠΎ-ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒΡŽ (вСрсия 3.3), ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ:

  • ЛицСнзия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с GPLv3+ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π½Π° GPLv3-only, ΠΈΠ·-Π·Π° нСдовСрия ΠΊ Π€ΠΎΠ½Π΄Ρƒ БПО послС ΡƒΡ…ΠΎΠ΄Π° Π ΠΈΡ‡Π°Ρ€Π΄Π° Π‘Ρ‚ΠΎΠ»Π»ΠΌΠ°Π½Π° ΠΈΠ· Π½Π΅Π³ΠΎ;
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ AEAD ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ChaCha20-Poly135 128 KiB Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. Π­Ρ‚ΠΎ позволяСт сразу ΠΆΠ΅ Π½Π° Π»Π΅Ρ‚Ρƒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, вмСсто Π²Ρ‹Ρ…ΠΎΠ΄Π° с ошибкой Π² ΠΊΠΎΠ½Ρ†Π΅ чтСния всСго ΡˆΠΈΡ„Ρ€ΠΎΡ‚Π΅ΠΊΡΡ‚Π°;
  • Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° смСнился с YAML Π½Π° Hjson. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° послСднСго сущСствСнно ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ мСньшС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ, ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌ удобствС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ;
  • zlib Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сТатия Π·Π°ΠΌΠ΅Π½Ρ‘Π½ Π½Π° Zstandard: Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ скорости сТатия ΠΏΡ€ΠΈ сущСствСнно Π±ΠΎΠ»Π΅Π΅ высокой эффСктивности;
  • nncp-call ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΠΏΡ†ΠΈΡŽ просмотра ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (-list) Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ сторонС, Π±Π΅Π· ΠΈΡ… скачивания. А Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ скачивания ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (-pkts);
  • nncp-daemon ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΠΏΡ†ΠΈΡŽ -inetd, позволяя Π΅ΠΌΡƒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ inetd ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· SSH;
  • Online соСдинСния ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎ TCP, Π½ΠΎ ΠΈ вызывая внСшниС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠ±Ρ‰Π°ΡΡΡŒ Ρ‡Π΅Ρ€Π΅Π· stdin/stdout. НапримСр: nncp-call gw.stargrave.org «|ssh gw.stargrave.org nncp-daemon -inetd»;
  • Π”Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊ umask (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π° доступа Ρ‚ΠΈΠΏΠ° 666/777) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ глобального выставлСния umask Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», упрощая использованиС ΠΎΠ±Ρ‰Π΅ΠΉ spool-Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ срСди Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ;
  • ПолноС использованиС систСмы Go ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru