Το WireGuard θα "έρθει" στον πυρήνα του Linux - γιατί;

Στα τέλη Ιουλίου, οι προγραμματιστές της σήραγγας VPN WireGuard πρότειναν σετ μπαλωμάτων, το οποίο θα κάνει το λογισμικό διοχέτευσης VPN μέρος του πυρήνα Linux. Ωστόσο, η ακριβής ημερομηνία υλοποίησης της «ιδέας» παραμένει άγνωστη. Κάτω από την περικοπή θα μιλήσουμε για αυτό το εργαλείο με περισσότερες λεπτομέρειες.

Το WireGuard θα "έρθει" στον πυρήνα του Linux - γιατί;
/ φωτογραφία Tambako The Jaguar CC

Εν συντομία για το έργο

Το WireGuard είναι μια σήραγγα VPN επόμενης γενιάς που δημιουργήθηκε από τον Jason A. Donenfeld, Διευθύνοντα Σύμβουλο της Edge Security. Το έργο αναπτύχθηκε ως απλοποιημένη και μια γρήγορη εναλλακτική στο OpenVPN και το IPsec. Η πρώτη έκδοση του προϊόντος περιείχε μόνο 4 χιλιάδες γραμμές κώδικα. Για σύγκριση, το OpenVPN έχει περίπου 120 χιλιάδες γραμμές και το IPSec - 420 χιλιάδες.

Επί λόγια προγραμματιστές, το WireGuard είναι εύκολο στη διαμόρφωση και επιτυγχάνεται ασφάλεια πρωτοκόλλου μέσω αποδεδειγμένων κρυπτογραφικών αλγορίθμων. Κατά την αλλαγή δικτύου: Το Wi-Fi, το LTE ή το Ethernet πρέπει να επανασυνδέονται στον διακομιστή VPN κάθε φορά. Οι διακομιστές WireGuard δεν τερματίζουν τη σύνδεση, ακόμα κι αν ο χρήστης έχει λάβει μια νέα διεύθυνση IP.

Παρά το γεγονός ότι το WireGuard σχεδιάστηκε αρχικά για τον πυρήνα του Linux, οι προγραμματιστές έχει φροντιστεί και σχετικά με μια φορητή έκδοση του εργαλείου για συσκευές Android. Η εφαρμογή δεν έχει αναπτυχθεί ακόμη πλήρως, αλλά μπορείτε να τη δοκιμάσετε τώρα. Για αυτό χρειάζεστε γίνετε ένας από τους δοκιμαστές.

Γενικά, το WireGuard είναι αρκετά δημοφιλές και μάλιστα ήταν εφαρμόστηκε αρκετοί πάροχοι VPN, όπως οι Mullvad και AzireVPN. Δημοσιεύτηκε στο διαδίκτυο ένα μεγάλο αριθμό οδηγούς εγκατάστασης αυτή την απόφαση. Για παράδειγμα, υπάρχουν οδηγοί, τα οποία δημιουργούνται από χρήστες και υπάρχουν οδηγοί, εκπονήθηκε από τους συντάκτες του έργου.

Τεχνικές λεπτομέρειες

В επίσημη τεκμηρίωση (σελ. 18) σημειώνεται ότι η απόδοση του WireGuard είναι τέσσερις φορές μεγαλύτερη από αυτή του OpenVPN: 1011 Mbit/s έναντι 258 Mbit/s, αντίστοιχα. Το WireGuard είναι επίσης μπροστά από την τυπική λύση για Linux IPsec - έχει 881 Mbit/s. Το ξεπερνά και στην ευκολία εγκατάστασης.

Αφού ανταλλάξουν τα κλειδιά (η σύνδεση VPN έχει αρχικοποιηθεί όπως το SSH) και δημιουργηθεί η σύνδεση, το WireGuard χειρίζεται μόνο του όλες τις άλλες εργασίες: δεν χρειάζεται να ανησυχείτε για τη δρομολόγηση, τον έλεγχο κατάστασης κ.λπ. Θα γίνουν μόνο πρόσθετες προσπάθειες διαμόρφωσης απαιτείται εάν θέλετε να χρησιμοποιήσετε συμμετρική κρυπτογράφηση.

Το WireGuard θα "έρθει" στον πυρήνα του Linux - γιατί;
/ φωτογραφία Άντερς Χόιμπιεργκ CC

Για να εγκαταστήσετε, θα χρειαστείτε μια διανομή με πυρήνα Linux παλαιότερο από 4.1. Μπορεί να βρεθεί στα αποθετήρια μεγάλων διανομών Linux.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Όπως σημειώνουν οι συντάκτες του xakep.ru, η αυτοσυναρμολόγηση από κείμενα πηγής είναι επίσης εύκολη. Αρκεί να ανοίξετε τη διεπαφή και να δημιουργήσετε δημόσια και ιδιωτικά κλειδιά:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard δεν χρησιμοποιεί διεπαφή για εργασία με πάροχο κρυπτογράφησης Cryptoapi. Αντίθετα, χρησιμοποιείται ένας κρυπτογράφηση ροής ChaCha20, κρυπτογραφικό ένθετο απομίμησης Poly1305 και ιδιόκτητες κρυπτογραφικές συναρτήσεις κατακερματισμού.

Το μυστικό κλειδί δημιουργείται χρησιμοποιώντας Πρωτόκολλο Diffie-Hellman με βάση την ελλειπτική καμπύλη Curve25519. Όταν κατακερματίζονται, χρησιμοποιούν συναρτήσεις κατακερματισμού BLAKE2 и SipHash. Λόγω της μορφής χρονικής σφραγίδας TAI64N Το πρωτόκολλο απορρίπτει πακέτα με μικρότερη τιμή χρονικής σφραγίδας, ως εκ τούτου αποτροπή DoS- и επανάληψη επιθέσεων.

Σε αυτήν την περίπτωση, το WireGuard χρησιμοποιεί τη συνάρτηση ioctl για τον έλεγχο του I/O (που χρησιμοποιήθηκε στο παρελθόν netlink), γεγονός που καθιστά τον κώδικα καθαρότερο και απλούστερο. Μπορείτε να το επιβεβαιώσετε κοιτάζοντας κωδικός διαμόρφωσης.

Σχέδια προγραμματιστών

Προς το παρόν, το WireGuard είναι μια μονάδα πυρήνα εκτός δέντρου. Αλλά ο συγγραφέας του έργου είναι ο Jason Donenfeld Μιλάει, ότι ήρθε η ώρα για πλήρη εφαρμογή στον πυρήνα του Linux. Γιατί είναι απλούστερη και πιο αξιόπιστη από άλλες λύσεις. Ο Ιάσονας από αυτή την άποψη υποστηρίζει Ακόμη και ο ίδιος ο Linus Torvalds αποκάλεσε τον κώδικα WireGuard «έργο τέχνης».

Κανείς όμως δεν μιλάει για τις ακριβείς ημερομηνίες για την εισαγωγή του WireGuard στον πυρήνα. ΚΑΙ μετά βίας Αυτό θα συμβεί με την κυκλοφορία του πυρήνα Linux του Αυγούστου 4.18. Ωστόσο, υπάρχει πιθανότητα αυτό να συμβεί στο πολύ κοντινό μέλλον: στην έκδοση 4.19 ή 5.0.

Όταν το WireGuard προστίθεται στον πυρήνα, οι προγραμματιστές θέλω ολοκληρώστε την εφαρμογή για συσκευές Android και ξεκινήστε να γράφετε μια εφαρμογή για iOS. Υπάρχουν επίσης σχέδια για ολοκλήρωση υλοποιήσεων στο Go and Rust και μεταφορά τους σε macOS, Windows και BSD. Σχεδιάζεται επίσης η εφαρμογή του WireGuard για πιο «εξωτικά συστήματα»: DPDK, FPGA, καθώς και πολλά άλλα ενδιαφέροντα πράγματα. Όλα αυτά αναφέρονται σε λίστα υποχρεώσεων συντάκτες του έργου.

Υ.Γ. Λίγα ακόμη άρθρα από το εταιρικό μας blog:

Η κύρια κατεύθυνση της δραστηριότητάς μας είναι η παροχή υπηρεσιών cloud:

Εικονική υποδομή (IaaS) | Φιλοξενία PCI DSS | Cloud FZ-152 | Φιλοξενία SAP | Εικονική αποθήκευση | Κρυπτογράφηση δεδομένων στο cloud | Αποθήκευση στο cloud

Πηγή: www.habr.com

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