Τι αποδεικνύει και τι δεν αποδεικνύει μια προδιαγραφή πρωτοκόλλου VPN
Μια προδιαγραφή καθορίζει μορφές μηνυμάτων, αλγορίθμους και παραδοχές απειλών. Δεν μπορεί να εγγυηθεί για την έκδοση που εγκαταστήσατε ούτε για τον τρόπο που ο πάροχος διαχειρίζεται τον λογαριασμό σας.
Ένα έγγραφο πρωτοκόλλου είναι σύμβαση μεταξύ υλοποιήσεων, και η προσεκτική ανάγνωσή του σας λέει τι θα ανταλλάξουν δύο συμβατοί ομότιμοι και ποιες ιδιότητες σκόπευαν να εξασφαλίσουν οι σχεδιαστές. Δεν σας λέει ποιο εκτελέσιμο τρέχει στον διακομιστή με τον οποίο συνδέεστε, πώς διαμορφώθηκε αυτός ο διακομιστής ή τι συμβαίνει μετά στην εγγραφή του λογαριασμού σας. Αυτά είναι τρία διαφορετικά είδη απόδειξης, και το να αντιμετωπίζετε την προδιαγραφή ως και τα τρία είναι ο τρόπος με τον οποίο ένα όνομα πρωτοκόλλου αρχίζει να κάνει δουλειά που δεν μπορεί. Το να κρατάτε τα τρία χωριστά είναι όλη η άσκηση.
Το έγγραφο είναι η αρχή ενός επιχειρήματος, όχι το συμπέρασμά του.
Τι καθορίζει στην πραγματικότητα το έγγραφο
Για το WireGuard, η περιγραφή του πρωτοκόλλου ορίζει μια χειραψία Noise IK, ένα σταθερό σύνολο αρχικών στοιχείων, διατάξεις μηνυμάτων και την πλαισίωση μεταφοράς που μεταφέρει έπειτα πακέτα. Για το IKEv2 το συγκρίσιμο τεκμήριο είναι το RFC 7296, που καθορίζει ανταλλαγές, φορτία και τη διαπραγμάτευση προτάσεων. Και στις δύο περιπτώσεις το πεδίο είναι ακριβές: τα μηνύματα, η μηχανή καταστάσεων και οι παραδοχές υπό τις οποίες ισχύουν οι στόχοι ασφάλειας.
Οι προαιρετικές λειτουργίες περιπλέκουν την ανάγνωση. Μια ιδιότητα που ισχύει για μία χειραψία μπορεί να μην εφαρμόζεται σε ανάπτυξη με διαφορετική ρύθμιση ελέγχου ταυτότητας ή εφεδρική διαμόρφωση.
Πού σταματούν οι εγγυήσεις
Η τυπική ανάλυση απαντά σε ερώτημα για ένα μοντέλο. Η εργασία επαλήθευσης του WireGuard χρησιμοποιεί συμβολικό μοντέλο στον αποδεικτή Tamarin, που μπορεί να δείξει ότι ο σχεδιασμός αντιστέκεται σε ορισμένες επιθέσεις δεδομένων των παραδοχών του· δεν δείχνει ότι μια παραδοθείσα υλοποίηση στον χώρο χρήστη δεν έχει σφάλμα ασφάλειας μνήμης. Σε αυτό το χάσμα μεταξύ μοντέλου και μηχανής ζουν τα πραγματικά περιστατικά. Το να διαβάζετε μια απόδειξη ως πιστοποιητικό υλοποίησης είναι σφάλμα κατηγορίας.
Η εμπροσθοφυλαγμένη μυστικότητα δείχνει το ίδιο όριο. Η ιδιότητα εξαρτάται από την καταστροφή των κλειδιών όπως προβλέπει το πρωτόκολλο, και αυτό είναι ιδιότητα της υλοποίησης και του περιβάλλοντός της, όχι της μορφής του μηνύματος. Ένας σχεδιασμός που ορίζει διαγραφή δεν μπορεί να την επιβάλει σε πλατφόρμα που μεταφέρει μνήμη στον δίσκο.
Οι στρωματοποιημένες εξαρτήσεις διευρύνουν κι άλλο το χάσμα: η βιβλιοθήκη TLS πίσω από σήραγγα βασισμένη σε TLS, η διεπαφή πυρήνα που χρησιμοποιεί σήραγγα χώρου χρήστη και η γεννήτρια τυχαίων αριθμών βρίσκονται όλες έξω από το κείμενο του πρωτοκόλλου.
Ακολουθήστε τα byte μέσα στην έκδοση
Περάστε από το έγγραφο στα τεκμήρια εντοπίζοντας εκδόσεις και συγκρίνοντάς τις έπειτα με ό,τι πραγματικά εξυπηρετεί κίνηση. Ένα προϊόν που ονομάζει πρωτόκολλο μπορεί να προσθέσει συστατικά παροχής, τηλεμετρίας και διαχείρισης που η προδιαγραφή δεν περιγράφει ποτέ.
openvpn --version | head -3 wg --version dpkg -l | grep -E 'openvpn|wireguard|libssl' ss -lunp | grep -E '1194|51820' sha256sum ./wireguard-tools_1.0.20210914_amd64.deb
Οι αναπαραγώγιμες εκδόσεις και τα δημοσιευμένα αθροίσματα ελέγχου καθιστούν δυνατή τη σύνδεση ενός δέντρου πηγαίου κώδικα με ένα διανεμόμενο εκτελέσιμο. Χωρίς αυτόν τον σύνδεσμο, ο δημοσιευμένος κώδικας αποδεικνύει μόνο ότι η επιθεώρηση είναι δυνατή, όχι ότι το αρχείο που εκτελείται αντιστοιχεί σε αυτόν.
Η διαμόρφωση ανήκει στο ίδιο βήμα. Τα σύνολα κρυπτογράφησης, οι επιτρεπόμενοι ομότιμοι και οι ρυθμίσεις δρομολόγησης είναι επιλογές ανάπτυξης, και μια συμβατή έκδοση που διαμορφώθηκε απρόσεκτα παράγει ακόμη αδύναμη σήραγγα.
Κρατήστε τις επιχειρησιακές πρακτικές χωριστά
Οι εγγραφές λογαριασμών, τα δεδομένα πληρωμών και οι υποβολές υποστήριξης είναι αποφάσεις του παρόχου που κανένα κείμενο πρωτοκόλλου δεν περιορίζει. Μια έκθεση ελέγχου καλύπτει ονομαστικά συστατικά εντός δηλωμένου πεδίου, και μια πολιτική απορρήτου περιγράφει προθέσεις και πρακτικές· καμία δεν υποκαθιστά την άλλη, και καμία δεν είναι κρυπτογραφική δήλωση.
Το ακριβές συμπέρασμα είναι σωρευτικό: η προδιαγραφή εξηγεί τον σχεδιασμό, η έκδοση και η διαμόρφωση εξηγούν τη σήραγγα, και οι τεκμηριωμένες πρακτικές του παρόχου εξηγούν ό,τι η σήραγγα δεν βλέπει ποτέ. Πείτε ποιο από αυτά επαληθεύσατε, και ο ισχυρισμός παραμένει αληθής.