Κυκλοφόρησε το WireGuard VPN για Windows και το WireGuardNT 1.0

Ο Jason A. Donenfeld, συγγραφέας του WireGuard VPN, κυκλοφόρησε την πρώτη σημαντική έκδοση του λογισμικού-πελάτη WireGuard για Windows 1.0, καθώς και τα προγράμματα οδήγησης WireGuardNT 1.0 με θύρα VPN WireGuard για τον πυρήνα των Windows 10 και 11, υποστηρίζοντας αρχιτεκτονικές AMD64, x86 και ARM64. Ο κώδικας των στοιχείων του πυρήνα των Windows διατίθεται με άδεια GPLv2 και το λογισμικό-πελάτης διατίθεται με άδεια MIT.

Η θύρα βασίζεται στον κώδικα της κύριας υλοποίησης WireGuard για τον πυρήνα Linux, ο οποίος έχει μετατραπεί ώστε να χρησιμοποιεί οντότητες πυρήνα των Windows και τη στοίβα δικτύου NDIS. Σε σύγκριση με την υλοποίηση wireguard-go, η οποία εκτελείται σε χώρο χρήστη και χρησιμοποιεί τη διεπαφή δικτύου Wintun, το WireGuardNT προσφέρει σημαντικές βελτιώσεις στην απόδοση εξαλείφοντας τους διακόπτες περιβάλλοντος και αντιγράφοντας περιεχόμενα πακέτων από τον πυρήνα στον χώρο χρήστη. Όπως και με τις υλοποιήσεις για Linux, OpenBSD και FreeBSD, όλη η λογική επεξεργασίας πρωτοκόλλου στο WireGuardNT εκτελείται απευθείας σε επίπεδο στοίβας δικτύου.

Η έκδοση 1.0 χαρακτηρίστηκε ως ορόσημο, σηματοδοτώντας την επίλυση μιας σειράς ζητημάτων και την εκπλήρωση των προβλεπόμενων εργασιών, όπως: η χρήση της συνάρτησης NdisWdfGetAdapterContextFromAdapterHandle() αντί της λιγότερο ασφαλούς αποθήκευσης της κατάστασης του προγράμματος οδήγησης στο πεδίο Reserved και η χρήση μη τεκμηριωμένων μετατοπίσεων· η σωστή και άμεση παρακολούθηση του μεγέθους MTU (Maximum Transmission Unit - Μέγιστη Μονάδα Μετάδοσης) μέσω της υποκλοπής κλήσεων συστήματος· η χρήση του προτύπου C23 στον κώδικα.

Να σας υπενθυμίσουμε ότι το VPN WireGuard υλοποιείται βάσει σύγχρονων μεθόδων κρυπτογράφησης, παρέχει πολύ υψηλές επιδόσεις, είναι εύκολο στη χρήση, είναι απαλλαγμένο από επιπλοκές και έχει αποδειχθεί καλά σε πολλές μεγάλες υλοποιήσεις που επεξεργάζονται μεγάλους όγκους κίνησης. Το έργο αναπτύσσεται από το 2015 και έχει υποβληθεί σε έλεγχο και επίσημη επαλήθευση των μεθόδων κρυπτογράφησης που χρησιμοποιούνται. Το WireGuard χρησιμοποιεί την έννοια της δρομολόγησης κρυπτογράφησης βάσει κλειδιού, η οποία περιλαμβάνει τη συσχέτιση ενός ιδιωτικού κλειδιού με κάθε διεπαφή δικτύου και τη χρήση δημόσιων κλειδιών για δέσμευση.

Η ανταλλαγή δημόσιων κλειδιών για τη δημιουργία μιας σύνδεσης είναι παρόμοια με το SSH. Για τη διαπραγμάτευση κλειδιών και τη σύνδεση χωρίς την εκτέλεση ξεχωριστού δαίμονα στον χώρο χρήστη, χρησιμοποιείται ο μηχανισμός Noise_IK από το Noise Protocol Framework, παρόμοιος με τη διατήρηση των authorized_keys στο SSH. Η μεταφορά δεδομένων πραγματοποιείται μέσω ενθυλάκωσης σε πακέτα UDP. Υποστηρίζεται η αλλαγή. διευθύνσεις IP Διακομιστές VPN (περιαγωγής) χωρίς διακοπή σύνδεσης με αυτόματη αναδιαμόρφωση πελάτη.

Η κρυπτογράφηση χρησιμοποιεί τον κρυπτογράφηση ροής ChaCha20 και τον αλγόριθμο ελέγχου ταυτότητας μηνυμάτων Poly1305 (MAC), που αναπτύχθηκε από τους Daniel J. Bernstein, Tanja Lange και Peter Schwabe. Τα ChaCha20 και Poly1305 τοποθετούνται ως ταχύτερα και πιο ασφαλή ανάλογα των AES-256-CTR και HMAC, η εφαρμογή λογισμικού των οποίων επιτρέπει την επίτευξη σταθερού χρόνου εκτέλεσης χωρίς τη χρήση ειδικής υποστήριξης υλικού. Για τη δημιουργία του κοινόχρηστου μυστικού κλειδιού, το πρωτόκολλο Elliptic Curve Diffie-Hellman χρησιμοποιείται στην υλοποίηση Curve25519, που προτάθηκε επίσης από τον Daniel Bernstein. Ο αλγόριθμος BLAKE2s (RFC7693) χρησιμοποιείται για κατακερματισμό.

Πηγή: opennet.ru