Έκδοση NNCP 8.8.0, βοηθητικά προγράμματα για τη μεταφορά αρχείων/εντολών σε λειτουργία αποθήκευσης και προώθησης

Κυκλοφόρησε το Node-to-Node CoPy (NNCP), ένα σύνολο βοηθητικών προγραμμάτων για ασφαλή μεταφορά αρχείων, email και εκτέλεση εντολών αποθήκευσης και προώθησης. Υποστηρίζει λειτουργία σε λειτουργικά συστήματα συμβατά με POSIX. Τα βοηθητικά προγράμματα είναι γραμμένα σε Go και διατίθενται με την άδεια χρήσης GPLv3.

Αυτά τα βοηθητικά προγράμματα έχουν σχεδιαστεί για να βοηθούν στην κατασκευή μικρών δικτύων peer-to-peer friend-to-friend (δεκάδες κόμβων) με στατική δρομολόγηση για ασφαλείς μεταφορές αρχείων τύπου fire-and-forget, αιτήματα αρχείων, email και αιτήματα εκτέλεσης εντολών. Όλα τα μεταδιδόμενα πακέτα κρυπτογραφούνται από άκρο σε άκρο και ελέγχονται ρητά με τη χρήση γνωστών δημόσιων κλειδιών των peers. Η κρυπτογράφηση onion (όπως το Tor) εφαρμόζεται σε όλα τα ενδιάμεσα πακέτα. Κάθε κόμβος μπορεί να λειτουργήσει είτε ως πελάτης είτε ως κεντρικός υπολογιστής. υπηρέτης και να χρησιμοποιούν μοντέλα συμπεριφοράς push και poll.

Το NNCP διαφέρει από τις λύσεις UUCP και FTN (FidoNet Technology Network), εκτός από την προαναφερθείσα κρυπτογράφηση και έλεγχο ταυτότητας, παρέχοντας άμεση υποστήριξη για δίκτυα δισκέτας και υπολογιστές που είναι φυσικά απομονωμένοι (με κενό αέρα) από μη ασφαλή τοπικά και δημόσια δίκτυα. Το NNCP διαθέτει επίσης εύκολη ενσωμάτωση (όπως το UUCP) με τις τρέχουσες υπηρεσίες email. διακομιστές, όπως τα Postfix και Exim.

Πιθανοί τομείς εφαρμογής για το NNCP περιλαμβάνουν την οργάνωση αποστολής/λήψης αλληλογραφίας σε συσκευές χωρίς μόνιμη σύνδεση στο Διαδίκτυο, τη μεταφορά αρχείων σε συνθήκες ασταθούς σύνδεσης δικτύου, την ασφαλή μεταφορά πολύ μεγάλων ποσοτήτων δεδομένων σε φυσικά μέσα, τη δημιουργία απομονωμένων δικτύων μετάδοσης δεδομένων που προστατεύονται από επιθέσεις MitM και την παράκαμψη της λογοκρισίας και της επιτήρησης δικτύου. Δεδομένου ότι το κλειδί αποκρυπτογράφησης βρίσκεται μόνο στον παραλήπτη, ανεξάρτητα από τη διαδρομή παράδοσης του πακέτου μέσω του δικτύου ή μέσω φυσικών μέσων, ένα τρίτο μέρος δεν μπορεί να διαβάσει το περιεχόμενο, ακόμη και αν υποκλέψει το μήνυμα. Με τη σειρά του, η αυθεντικοποίηση μέσω ψηφιακής υπογραφής δεν επιτρέπει τη δημιουργία ενός πλασματικού μηνύματος με το πρόσχημα ενός άλλου αποστολέα.

Μεταξύ των καινοτομιών του NNCP 8.8.0, σε σύγκριση με τα προηγούμενα νέα (έκδοση 5.0.0):

  • Αντί για το hash BLAKE2b, χρησιμοποιείται το λεγόμενο MTH: Merkle Tree-based Hashing, το οποίο χρησιμοποιεί το hash BLAKE3, για τον έλεγχο της ακεραιότητας των αρχείων. Αυτό σας επιτρέπει να υπολογίσετε την ακεραιότητα του κρυπτογραφημένου μέρους του πακέτου απευθείας κατά τη λήψη, χωρίς να απαιτείται η ανάγνωσή του αργότερα. Αυτό επιτρέπει επίσης απεριόριστη παραλληλοποίηση του ελέγχου ακεραιότητας.
  • Η νέα κρυπτογραφημένη μορφή πακέτου είναι απόλυτα φιλική προς τη ροή δεδομένων όταν το μέγεθος των δεδομένων δεν είναι γνωστό εκ των προτέρων. Η σηματοδότηση του τέλους της μεταφοράς, με ένα πιστοποιημένο μέγεθος, πηγαίνει απευθείας μέσα στην κρυπτογραφημένη ροή. Προηγουμένως, για να μάθετε το μέγεθος των μεταφερόμενων δεδομένων, ήταν απαραίτητο να τα αποθηκεύσετε σε ένα προσωρινό αρχείο. Έτσι, η εντολή "nncp-exec" έχει χάσει την επιλογή "-use-tmp" καθώς είναι εντελώς περιττή.
  • Οι συναρτήσεις BLAKE2b KDF και XOF έχουν αντικατασταθεί από την BLAKE3 για να μειωθεί ο αριθμός των κρυπτογραφικών πρωτογενών που χρησιμοποιούνται και να απλοποιηθεί ο κώδικας.
  • Είναι πλέον δυνατός ο εντοπισμός άλλων κόμβων στο τοπικό δίκτυο μέσω πολλαπλής διανομής στη διεύθυνση "ff02::4e4e:4350".
  • Έχουν εμφανιστεί ομάδες πολλαπλής διανομής (ανάλογες με τις διασκέψεις echo conferences του FidoNet ή τις ομάδες συζήτησης του Usenet), επιτρέποντας την αποστολή δεδομένων σε ένα μόνο πακέτο σε πολλά μέλη της ομάδας, με κάθε μέλος να αναμεταδίδει επίσης το πακέτο στους άλλους υπογράφοντες. Η ανάγνωση ενός πακέτου πολλαπλής διανομής απαιτεί γνώση του ζεύγους κλειδιών (πρέπει ρητά να είστε μέλος της ομάδας), αλλά η αναμετάδοση μπορεί να γίνει από οποιονδήποτε κόμβο.
  • Έχει προστεθεί υποστήριξη για ρητή επιβεβαίωση παραλαβής πακέτου. Ο αποστολέας δεν μπορεί να διαγράψει το πακέτο μετά την αποστολή του, περιμένοντας να λάβει ένα ειδικό πακέτο ACK από τον παραλήπτη.
  • Ενσωματωμένη υποστήριξη για το δίκτυο επικάλυψης Yggdrasil: οι διαδικτυακοί δαίμονες μπορούν να λειτουργήσουν ως πλήρεις ανεξάρτητοι συμμετέχοντες στο δίκτυο, χωρίς να χρησιμοποιούν υλοποιήσεις Yggdrasil τρίτων και να λειτουργούν πλήρως με τη στοίβα IP σε μια εικονική διεπαφή δικτύου.
  • Αντί για δομημένες γραμμές (RFC 3339), το αρχείο καταγραφής χρησιμοποιεί εγγραφές recfile που μπορούν να χρησιμοποιηθούν με τα βοηθητικά προγράμματα GNU Recutils.
  • Προαιρετικά, οι κρυπτογραφημένες κεφαλίδες πακέτων μπορούν να αποθηκευτούν σε ξεχωριστά αρχεία στον υποκατάλογο "hdr/", επιταχύνοντας σημαντικά τις λειτουργίες καταχώρισης πακέτων σε συστήματα αρχείων μεγάλου μεγέθους μπλοκ, όπως το ZFS. Προηγουμένως, η απόκτηση μιας κεφαλίδας πακέτου απαιτούσε την ανάγνωση μόνο ενός μπλοκ 128KiB από τον δίσκο από προεπιλογή.
  • Ο έλεγχος για νέα αρχεία μπορεί προαιρετικά να χρησιμοποιήσει τα υποσυστήματα πυρήνα kqueue και inotify, πραγματοποιώντας λιγότερες κλήσεις συστήματος.
  • Τα βοηθητικά προγράμματα διατηρούν λιγότερα ανοιχτά αρχεία και αυτά κλείνονται και ανοίγονται ξανά λιγότερο συχνά. Προηγουμένως, με μεγάλο αριθμό πακέτων, ήταν δυνατό να αντιμετωπίσετε το όριο στον μέγιστο αριθμό ανοιχτών αρχείων.
  • Πολλές ομάδες άρχισαν να παρουσιάζουν πρόοδο και ταχύτητα σε λειτουργίες όπως η λήψη/μεταφόρτωση, η αντιγραφή και η επεξεργασία (ρίψη) πακέτων.
  • Η εντολή "nncp-file" μπορεί να στείλει όχι μόνο μεμονωμένα αρχεία, αλλά και καταλόγους, δημιουργώντας ένα αρχείο pax με το περιεχόμενό τους εν κινήσει.
  • Τα διαδικτυακά βοηθητικά προγράμματα μπορούν προαιρετικά να ενεργοποιήσουν αμέσως τη διαδικασία tossing μετά από μια επιτυχημένη λήψη ενός πακέτου, χωρίς να ξεκινήσουν έναν ξεχωριστό δαίμονα "nncp-toss".
  • Μια ηλεκτρονική κλήση προς έναν άλλο συμμετέχοντα μπορεί προαιρετικά να πραγματοποιηθεί όχι μόνο με το συμβάν ενεργοποίησης του χρονοδιακόπτη, αλλά και με την εμφάνιση ενός εξερχόμενου πακέτου στον κατάλογο spool.
  • Εξασφαλισμένη λειτουργικότητα σε NetBSD και OpenBSD OS, επιπλέον των προηγουμένως υποστηριζόμενων FreeBSD και GNU/Linux.
  • Το "nncp-daemon" είναι πλήρως συμβατό με τη διεπαφή UCSPI-TCP. Σε συνδυασμό με τη δυνατότητα σύνδεσης σε έναν καθορισμένο περιγραφέα αρχείου (π.χ. ορίζοντας "NNCPLOG=FD:4"), είναι απολύτως φιλικό προς εκτέλεση με βοηθητικά προγράμματα τύπου daemontools.
  • Η συναρμολόγηση του έργου έχει μεταφερθεί πλήρως στο σύστημα ανακατασκευής.

Πηγή: opennet.ru