Το WireGuard θα "έρθει" στον πυρήνα του Linux - γιατί;
Στα τέλη Ιουλίου, οι προγραμματιστές της σήραγγας VPN WireGuard πρότειναν σετ μπαλωμάτων, το οποίο θα κάνει το λογισμικό διοχέτευσης VPN μέρος του πυρήνα Linux. Ωστόσο, η ακριβής ημερομηνία υλοποίησης της «ιδέας» παραμένει άγνωστη. Κάτω από την περικοπή θα μιλήσουμε για αυτό το εργαλείο με περισσότερες λεπτομέρειες.
Το 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. Η εφαρμογή δεν έχει αναπτυχθεί ακόμη πλήρως, αλλά μπορείτε να τη δοκιμάσετε τώρα. Για αυτό χρειάζεστε γίνετε ένας από τους δοκιμαστές.
В επίσημη τεκμηρίωση (σελ. 18) σημειώνεται ότι η απόδοση του WireGuard είναι τέσσερις φορές μεγαλύτερη από αυτή του OpenVPN: 1011 Mbit/s έναντι 258 Mbit/s, αντίστοιχα. Το WireGuard είναι επίσης μπροστά από την τυπική λύση για Linux IPsec - έχει 881 Mbit/s. Το ξεπερνά και στην ευκολία εγκατάστασης.
Αφού ανταλλάξουν τα κλειδιά (η σύνδεση VPN έχει αρχικοποιηθεί όπως το SSH) και δημιουργηθεί η σύνδεση, το WireGuard χειρίζεται μόνο του όλες τις άλλες εργασίες: δεν χρειάζεται να ανησυχείτε για τη δρομολόγηση, τον έλεγχο κατάστασης κ.λπ. Θα γίνουν μόνο πρόσθετες προσπάθειες διαμόρφωσης απαιτείται εάν θέλετε να χρησιμοποιήσετε συμμετρική κρυπτογράφηση.
Όπως σημειώνουν οι συντάκτες του xakep.ru, η αυτοσυναρμολόγηση από κείμενα πηγής είναι επίσης εύκολη. Αρκεί να ανοίξετε τη διεπαφή και να δημιουργήσετε δημόσια και ιδιωτικά κλειδιά:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard δεν χρησιμοποιεί διεπαφή για εργασία με πάροχο κρυπτογράφησης Cryptoapi. Αντίθετα, χρησιμοποιείται ένας κρυπτογράφηση ροής ChaCha20, κρυπτογραφικό ένθετο απομίμησης Poly1305 και ιδιόκτητες κρυπτογραφικές συναρτήσεις κατακερματισμού.
Σε αυτήν την περίπτωση, το 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, καθώς και πολλά άλλα ενδιαφέροντα πράγματα. Όλα αυτά αναφέρονται σε λίστα υποχρεώσεων συντάκτες του έργου.