Το VPN WireGuard περιλαμβάνεται στον πυρήνα Linux 5.6

Σήμερα ο Linus μετέφερε στον εαυτό του το net-next υποκατάστημα με διασυνδέσεις VPN WireGuard. Σχετικά με αυτή την εκδήλωση сообщили στη λίστα αλληλογραφίας του WireGuard.

Το VPN WireGuard περιλαμβάνεται στον πυρήνα Linux 5.6

Η συλλογή κώδικα για τον νέο πυρήνα Linux 5.6 βρίσκεται σε εξέλιξη. Το WireGuard είναι ένα γρήγορο VPN επόμενης γενιάς που εφαρμόζει σύγχρονη κρυπτογραφία. Αρχικά αναπτύχθηκε ως μια απλούστερη και πιο βολική εναλλακτική λύση στα υπάρχοντα VPN. Ο συγγραφέας είναι ο Καναδός ειδικός σε θέματα ασφάλειας πληροφοριών Jason A. Donenfeld. Τον Αύγουστο του 2018, το WireGuard υμνήθηκε από τον Linus Torvalds. Εκείνη την εποχή, άρχισε η εργασία για την συμπερίληψη του VPN στον πυρήνα του Linux. Η διαδικασία κράτησε λίγο περισσότερο.

"Βλέπω ότι ο Jason έχει κάνει ένα αίτημα έλξης για να συμπεριλάβει το WireGuard στον πυρήνα", έγραψε ο Linus στις 2 Αυγούστου 2018. — Μπορώ για άλλη μια φορά να δηλώσω την αγάπη μου για αυτό το VPN και να ελπίζω σε μια συγχώνευση σύντομα; Ο κώδικας μπορεί να μην είναι τέλειος, αλλά τον κοίταξα και σε σύγκριση με τη φρίκη του OpenVPN και του IPSec, είναι ένα πραγματικό έργο τέχνης».

Παρά τις επιθυμίες του Linus, η συγχώνευση κράτησε για ενάμιση χρόνο. Το κύριο πρόβλημα αποδείχθηκε ότι συνδέεται με ιδιόκτητες υλοποιήσεις κρυπτογραφικών συναρτήσεων, οι οποίες χρησιμοποιήθηκαν για τη βελτίωση της απόδοσης. Μετά από μακρές διαπραγματεύσεις τον Σεπτέμβριο του 2019 ήταν λήφθηκε μια συμβιβαστική απόφαση μεταφράστε τις ενημερώσεις κώδικα στις λειτουργίες Crypto API που είναι διαθέσιμες στον πυρήνα, για τις οποίες οι προγραμματιστές του WireGuard έχουν παράπονα στον τομέα της απόδοσης και της γενικής ασφάλειας. Αλλά αποφάσισαν να διαχωρίσουν τις εγγενείς λειτουργίες κρυπτογράφησης WireGuard σε ένα ξεχωριστό API Zinc χαμηλού επιπέδου και τελικά να τις μεταφέρουν στον πυρήνα. Τον Νοέμβριο, οι προγραμματιστές του πυρήνα κράτησαν την υπόσχεσή τους και σύμφωνος μεταφέρετε μέρος του κώδικα από το Zinc στον κύριο πυρήνα. Για παράδειγμα, στο Crypto API περιλαμβάνεται γρήγορες υλοποιήσεις των αλγορίθμων ChaCha20 και Poly1305 που προετοιμάζονται στο WireGuard.

Τέλος, στις 9 Δεκεμβρίου 2019, ο David S. Miller, υπεύθυνος για το υποσύστημα δικτύωσης του πυρήνα Linux, δέχτηκε το στον επόμενο κλάδο μπαλώματα με την υλοποίηση διεπαφής VPN από το έργο WireGuard.

Και σήμερα, 29 Ιανουαρίου 2020, οι αλλαγές πήγαν στο Linus για συμπερίληψη στον πυρήνα.

Το VPN WireGuard περιλαμβάνεται στον πυρήνα Linux 5.6

Ισχυρισμένα πλεονεκτήματα του WireGuard σε σχέση με άλλες λύσεις VPN:

  • Εύχρηστος.
  • Χρησιμοποιεί σύγχρονη κρυπτογραφία: Noise protocol frame, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF κ.λπ.
  • Συμπαγής, ευανάγνωστος κώδικας, ευκολότερος στην έρευνα για τρωτά σημεία.
  • Υψηλή απόδοση.
  • Ξεκάθαρο και περίτεχνο προσδιορισμός.

Όλη η βασική λογική του WireGuard καταλαμβάνει λιγότερες από 4000 γραμμές κώδικα, ενώ το OpenVPN και το IPSec απαιτούν εκατοντάδες χιλιάδες γραμμές.

«Το WireGuard χρησιμοποιεί την έννοια της δρομολόγησης κλειδιού κρυπτογράφησης, η οποία περιλαμβάνει την προσάρτηση ενός ιδιωτικού κλειδιού σε κάθε διεπαφή δικτύου και τη χρήση δημόσιων κλειδιών για τη δέσμευσή του. Τα δημόσια κλειδιά ανταλλάσσονται για να δημιουργηθεί μια σύνδεση με παρόμοιο τρόπο με το SSH. Για να διαπραγματευτείτε κλειδιά και να συνδεθείτε χωρίς να εκτελείτε ξεχωριστό δαίμονα στο χώρο χρήστη, ο μηχανισμός Noise_IK από Πλαίσιο πρωτοκόλλου θορύβουπαρόμοια με τη διατήρηση των authorized_keys στο SSH. Η μετάδοση δεδομένων πραγματοποιείται μέσω ενθυλάκωσης σε πακέτα UDP. Υποστηρίζει την αλλαγή της διεύθυνσης IP του διακομιστή VPN (περιαγωγή) χωρίς αποσύνδεση της σύνδεσης με αυτόματη επαναδιαμόρφωση του πελάτη, - γράφει Opennet.

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

Ευρήματα δοκιμές απόδοσης από την επίσημη ιστοσελίδα:

Εύρος ζώνης (megabit/s)
Το VPN WireGuard περιλαμβάνεται στον πυρήνα Linux 5.6

Ping (ms)
Το VPN WireGuard περιλαμβάνεται στον πυρήνα Linux 5.6

Διαμόρφωση δοκιμής:

  • Intel Core i7-3820QM και Intel Core i7-5200U
  • Κάρτες Gigabit Intel 82579LM και Intel I218LM
  • Linux 4.6.1
  • Διαμόρφωση WireGuard: 256-bit ChaCha20 με Poly1305 για MAC
  • Πρώτη διαμόρφωση IPsec: 256-bit ChaCha20 με Poly1305 για MAC
  • Δεύτερη διαμόρφωση IPsec: AES-256-GCM-128 (με AES-NI)
  • Διαμόρφωση OpenVPN: AES 256-bit ισοδύναμη σουίτα κρυπτογράφησης με HMAC-SHA2-256, λειτουργία UDP
  • Η απόδοση μετρήθηκε χρησιμοποιώντας iperf3, δείχνει το μέσο αποτέλεσμα σε 30 λεπτά.

Θεωρητικά, μόλις ενσωματωθεί στη στοίβα δικτύου, το WireGuard θα πρέπει να λειτουργεί ακόμα πιο γρήγορα. Αλλά στην πραγματικότητα αυτό δεν θα συμβαίνει απαραίτητα λόγω της μετάβασης στις κρυπτογραφικές λειτουργίες Crypto API που είναι ενσωματωμένες στον πυρήνα. Ίσως δεν έχουν ακόμη βελτιστοποιηθεί όλα στο επίπεδο απόδοσης του εγγενούς WireGuard.

«Από την άποψή μου, το WireGuard είναι γενικά ιδανικό για τον χρήστη. Όλες οι αποφάσεις χαμηλού επιπέδου λαμβάνονται στις προδιαγραφές, επομένως η διαδικασία προετοιμασίας μιας τυπικής υποδομής VPN διαρκεί μόνο λίγα λεπτά. Είναι σχεδόν αδύνατο να μπλέξετε τη διαμόρφωση - писали στο Habré το 2018. — Διαδικασία εγκατάστασης περιγράφεται αναλυτικά στον επίσημο ιστότοπο, θα ήθελα να σημειώσω ξεχωριστά το εξαιρετικό Υποστήριξη OpenWRT. Αυτή η ευκολία χρήσης και η συμπαγής βάση του κώδικα επιτεύχθηκε με την εξάλειψη της διανομής των κλειδιών. Δεν υπάρχει πολύπλοκο σύστημα πιστοποιητικών και όλος αυτός ο εταιρικός τρόμος· τα σύντομα κλειδιά κρυπτογράφησης διανέμονται όπως τα κλειδιά SSH».

Το έργο WireGuard αναπτύσσεται από το 2015, έχει ελεγχθεί και επίσημη επαλήθευση. Η υποστήριξη WireGuard είναι ενσωματωμένη στο NetworkManager και στο systemd και οι ενημερώσεις κώδικα του πυρήνα περιλαμβάνονται στις βασικές διανομές των Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph και ALT.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο