การเปิดตัว NNCP 8.8.0 ยูทิลิตี้สำหรับการถ่ายโอนไฟล์/คำสั่งในโหมดจัดเก็บและส่งต่อ

การเปิดตัว Node-to-Node CoPy (NNCP) ซึ่งเป็นชุดยูทิลิตี้สำหรับการถ่ายโอนไฟล์ที่ปลอดภัย อีเมล และคำสั่งจัดเก็บและส่งต่อ รองรับการทำงานบนระบบปฏิบัติการที่รองรับ POSIX ยูทิลิตี้นี้เขียนด้วยภาษา Go และเผยแพร่ภายใต้ลิขสิทธิ์ GPLv3

ยูทิลิตี้นี้ได้รับการออกแบบเพื่อช่วยสร้างเครือข่ายแบบเพื่อนต่อเพื่อนแบบ peer-to-peer ขนาดเล็ก (หลายสิบโหนด) พร้อมการกำหนดเส้นทางแบบคงที่สำหรับการถ่ายโอนไฟล์แบบ fire-and-forget ที่ปลอดภัย คำขอไฟล์ อีเมล และคำขอดำเนินการตามคำสั่ง แพ็กเก็ตที่ส่งทั้งหมดจะถูกเข้ารหัส (จากต้นทางถึงปลายทาง) และตรวจสอบความถูกต้องอย่างชัดเจนกับกุญแจสาธารณะที่รู้จักของเพื่อน การเข้ารหัสหัวหอม (เช่นเดียวกับใน Tor) ถูกนำไปใช้กับแพ็กเก็ตระดับกลางทั้งหมด แต่ละโหนดสามารถทำหน้าที่เป็นทั้งไคลเอนต์และเซิร์ฟเวอร์ และใช้ทั้งพฤติกรรมแบบพุชและโพล

ความแตกต่างระหว่างโซลูชัน NNCP และ UUCP และ FTN (FidoNet Technology Network) นอกเหนือจากการเข้ารหัสและการรับรองความถูกต้องที่กล่าวมาข้างต้น คือการสนับสนุนแบบสำเร็จรูปสำหรับเครือข่ายฟล็อปปี้เน็ตและคอมพิวเตอร์ที่แยกทางกายภาพ (ช่องว่างอากาศ) จากเครือข่ายท้องถิ่นและเครือข่ายสาธารณะที่ไม่ปลอดภัย . NNCP ยังมีคุณสมบัติการผสานรวมที่ง่ายดาย (เทียบเท่ากับ UUCP) กับเมลเซิร์ฟเวอร์ปัจจุบัน เช่น Postfix และ Exim

ในด้านที่เป็นไปได้ของแอปพลิเคชัน NNCP การจัดระเบียบการส่ง / รับเมลไปยังอุปกรณ์โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตแบบถาวร การถ่ายโอนไฟล์ในสภาพการเชื่อมต่อเครือข่ายที่ไม่เสถียร การถ่ายโอนข้อมูลจำนวนมากอย่างปลอดภัยบนสื่อทางกายภาพ การสร้างข้อมูลที่แยกได้อย่างปลอดภัย เครือข่ายการถ่ายโอนได้รับการป้องกันจากการโจมตี MitM ผ่านการเซ็นเซอร์และการเฝ้าระวังเครือข่าย เนื่องจากคีย์ถอดรหัสจะใช้กับผู้รับเท่านั้น ไม่ว่าแพ็กเก็ตจะถูกส่งผ่านเครือข่ายหรือผ่านสื่อทางกายภาพอย่างไร บุคคลที่สามจึงไม่สามารถอ่านเนื้อหาได้ แม้ว่าจะสกัดกั้นการส่งก็ตาม ในทางกลับกัน การตรวจสอบลายเซ็นดิจิทัลจะไม่อนุญาตให้คุณสร้างการจัดส่งที่ปลอมแปลงภายใต้หน้ากากของผู้ส่งรายอื่น

ในบรรดานวัตกรรมของ NNCP 8.8.0 เมื่อเทียบกับข่าวก่อนหน้า (เวอร์ชัน 5.0.0):

  • แทนที่จะใช้แฮช BLAKE2b สิ่งที่เรียกว่า MTH: Merkle Tree-based Hashing จะใช้เพื่อตรวจสอบความสมบูรณ์ของไฟล์ โดยใช้แฮช BLAKE3 สิ่งนี้ทำให้คุณสามารถคำนวณความสมบูรณ์ของส่วนที่เข้ารหัสของแพ็คเกจได้ในระหว่างการดาวน์โหลด โดยไม่ต้องอ่านในภายหลัง นอกจากนี้ยังช่วยให้การตรวจสอบความสมบูรณ์แบบขนานไม่จำกัดอีกด้วย
  • รูปแบบแพ็กเก็ตที่เข้ารหัสใหม่นั้นเป็นมิตรกับการสตรีมอย่างสมบูรณ์เมื่อไม่ทราบขนาดของข้อมูลล่วงหน้า การส่งสัญญาณเสร็จสิ้นการส่งสัญญาณด้วยขนาดที่ได้รับการรับรองความถูกต้องจะไปอยู่ในสตรีมที่เข้ารหัส ก่อนหน้านี้ เพื่อที่จะทราบขนาดของข้อมูลที่ส่ง จำเป็นต้องบันทึกลงในไฟล์ชั่วคราว ดังนั้นคำสั่ง "nncp-exec" จึงสูญเสียตัวเลือก "-use-tmp" เนื่องจากไม่จำเป็นอย่างยิ่ง
  • ฟังก์ชัน BLAKE2b KDF และ XOF ถูกแทนที่ด้วย BLAKE3 เพื่อลดจำนวนการเข้ารหัสแบบดั้งเดิมที่ใช้และทำให้โค้ดง่ายขึ้น
  • ขณะนี้สามารถตรวจจับโหนดอื่นๆ ในเครือข่ายท้องถิ่นผ่านมัลติคาสต์ได้ที่ที่อยู่ "ff02::4e4e:4350"
  • กลุ่มมัลติคาสต์ปรากฏขึ้น (คล้ายกับการประชุม FidoNet echo conference หรือกลุ่มข่าว Usenet) ทำให้หนึ่งแพ็กเก็ตสามารถส่งข้อมูลไปยังสมาชิกจำนวนมากของกลุ่ม โดยที่แต่ละกลุ่มจะถ่ายทอดแพ็กเก็ตไปยังผู้ลงนามรายอื่นด้วย การอ่านแพ็กเก็ตแบบหลายผู้รับจำเป็นต้องมีความรู้เกี่ยวกับคู่คีย์ (คุณต้องเป็นสมาชิกของกลุ่มอย่างชัดเจน) แต่การถ่ายทอดสามารถทำได้โดยโหนดใดก็ได้
  • เพิ่มการสนับสนุนสำหรับการรับทราบการรับแพ็กเก็ตอย่างชัดเจน ผู้ส่งอาจเลือกที่จะไม่ลบแพ็กเก็ตหลังจากที่ถูกส่งไปแล้ว โดยรอให้แพ็กเก็ต ACK พิเศษได้รับจากผู้รับ
  • การสนับสนุนในตัวสำหรับเครือข่ายโอเวอร์เลย์ Yggdrasil: เดมอนออนไลน์สามารถทำหน้าที่เป็นผู้เข้าร่วมเครือข่ายอิสระเต็มรูปแบบ โดยไม่ต้องใช้การใช้งาน Yggdrasil ของบุคคลที่สามและการทำงานเต็มรูปแบบกับสแต็ก IP บนอินเทอร์เฟซเครือข่ายเสมือน
  • แทนที่จะเป็นสตริงที่มีโครงสร้าง (RFC 3339) บันทึกจะใช้รายการ recfile ที่สามารถใช้กับยูทิลิตี้ GNU Recutils
  • ส่วนหัวของแพ็กเก็ตที่เข้ารหัสสามารถจัดเก็บไว้ในไฟล์แยกกันในไดเร็กทอรีย่อย "hdr/" ได้ ซึ่งจะช่วยเร่งการดำเนินการรายการแพ็กเก็ตบนระบบไฟล์บล็อกขนาดใหญ่ เช่น ZFS ได้อย่างมาก ก่อนหน้านี้ การเรียกข้อมูลส่วนหัวของแพ็กเก็ตตามค่าเริ่มต้นจำเป็นต้องมีเพียงบล็อก 128KiB เท่านั้นที่จะอ่านจากดิสก์
  • การตรวจสอบไฟล์ใหม่สามารถเลือกใช้ kqueue และ inotify ระบบย่อยเคอร์เนลได้ ทำให้การเรียกระบบน้อยลง
  • โปรแกรมอรรถประโยชน์จะเก็บไฟล์ที่เปิดไว้น้อยลง มีโอกาสน้อยที่จะถูกปิดและเปิดใหม่ ด้วยแพ็คเกจจำนวนมาก ก่อนหน้านี้จึงสามารถจำกัดจำนวนไฟล์ที่เปิดได้สูงสุด
  • คำสั่งหลายคำสั่งเริ่มแสดงความคืบหน้าและความเร็วของการดำเนินการ เช่น การดาวน์โหลด/อัพโหลด การคัดลอก และการประมวลผล (โยน) แพ็คเกจ
  • คำสั่ง "nncp-file" สามารถส่งได้ไม่เพียงแต่ไฟล์เดียวเท่านั้น แต่ยังส่งไดเร็กทอรีด้วย สร้างไฟล์เก็บถาวร pax พร้อมเนื้อหาได้ทันที
  • ยูทิลิตี้ออนไลน์สามารถเลือกเรียกใช้กระบวนการประมวลผลแพ็คเกจ (การโยน) ทันทีหลังจากการดาวน์โหลดแพ็คเกจสำเร็จ โดยไม่ต้องรัน daemon "nncp-toss" แยกต่างหาก
  • การโทรแบบออนไลน์ไปยังผู้เข้าร่วมรายอื่นสามารถเกิดขึ้นได้ไม่เพียงแต่เมื่อตัวจับเวลาเริ่มทำงานเท่านั้น แต่ยังเกิดขึ้นเมื่อแพ็กเก็ตขาออกปรากฏในไดเร็กทอรีสปูลด้วย
  • ความสามารถในการทำงานภายใต้ระบบปฏิบัติการ NetBSD และ OpenBSD มีให้ นอกเหนือจาก FreeBSD และ GNU/Linux ที่รองรับก่อนหน้านี้
  • "nncp-daemon" เข้ากันได้กับอินเทอร์เฟซ UCSPI-TCP โดยสมบูรณ์ เมื่อรวมกับความสามารถในการล็อกไปยังตัวอธิบายไฟล์ที่ระบุ (เช่น การตั้งค่า "NNCPLOG=FD:4") จึงเป็นมิตรอย่างยิ่งที่จะรันภายใต้ยูทิลิตี้ที่คล้ายกับ daemontools
  • การประกอบโปรเจ็กต์ถูกโอนไปยังระบบทำซ้ำโดยสมบูรณ์

ที่มา: opennet.ru

เพิ่มความคิดเห็น