Μπορείτε να μοιραστείτε ένα δημόσιο κλειδί VPN; Ελέγξτε αυτά τα τρία πράγματα
Η δημοσίευση του δημόσιου μισού είναι το πώς λειτουργεί το πρωτόκολλο· η δημοσίευση του ιδιωτικού μισού παραδίδει μια ταυτότητα. Τρεις έλεγχοι αποφασίζουν ποια τιμή κρατάτε.
Μπορείτε να δώσετε το δημόσιο κλειδί VPN σε ένα peer, σε έναν πάροχο ή σε ένα φόρουμ και η σήραγγα εξακολουθεί να στέκει. Το ιδιωτικό κλειδί δεν μπορείτε να το παραδώσετε, ούτε στην υποστήριξη, χωρίς να παραδώσετε την ταυτότητα που αποδεικνύει αυτό το κλειδί. Η απόφαση σπάνια μένει τόσο καθαρή, επειδή οι άνθρωποι μπερδεύουν ποιο μισό του ζεύγους κοιτούν και επειδή ορισμένες εγκαταστάσεις αντιμετωπίζουν τη δημόσια τιμή ως όνομα. Τρεις έλεγχοι το ξεκαθαρίζουν: ποιο μισό έχετε, σε τι το δεσμεύει η εγκατάσταση και τι κοστίζει η αντικατάσταση.
Έλεγχος πρώτος: ποιο μισό του ζεύγους βρίσκεται στο πρόχειρό σας
Τα ασύμμετρα κλειδιά υπάρχουν σε ζεύγη, και η κατεύθυνση της παραγωγής είναι όλο το νόημα. Στο WireGuard το ιδιωτικό κλειδί είναι 32 τυχαία byte και το δημόσιο κλειδί υπολογίζεται από αυτό· η αντίστροφη πορεία δεν γίνεται. wg genkey γράφει την ιδιωτική τιμή, wg pubkey παράγει τη δημόσια, και μόνο η δεύτερη ανήκει σε μήνυμα προς ένα peer.
wg genkey | tee private.key | wg pubkey > public.key
chmod 600 private.key
openssl x509 -noout -pubkey -in server.crt
Ο κόσμος των πιστοποιητικών χρησιμοποιεί τον ίδιο διαχωρισμό με περισσότερα κινούμενα μέρη. Ένα πιστοποιητικό διακομιστή φέρει δημόσιο κλειδί και ονόματα, και υπογράφεται από ιδιωτικό κλειδί αρχής πιστοποίησης που δεν φεύγει ποτέ από την αρχή. Ένας πελάτης που επαληθεύει αυτόν τον διακομιστή χρειάζεται το πιστοποιητικό της αρχής, το οποίο είναι δημόσιο, και δεν έχει καμία χρήση για το ιδιωτικό κλειδί υπογραφής της αρχής.
Αν δεν είστε βέβαιοι ποια τιμή κρατάτε, κοιτάξτε τον δείκτη και όχι το όνομα αρχείου. Ένα μπλοκ PEM που αρχίζει με -----BEGIN PRIVATE KEY-----, ή η παλαιότερη μορφή BEGIN RSA PRIVATE KEY, είναι το μυστικό μισό. Μια τιμή που μπορείτε να επικολλήσετε χωρίς αυτόν τον δείκτη είναι υποψήφια για κοινοποίηση, υπό την αίρεση των δύο επόμενων ελέγχων.
Έλεγχος δεύτερος: σε τι δεσμεύει η εγκατάσταση αυτή τη δημόσια τιμή
Η κρυπτογραφική ασφάλεια και η ανωνυμία είναι διαφορετικές ιδιότητες. Το δημόσιο κλειδί ενός peer WireGuard είναι σταθερό αναγνωριστικό μέσα στην εγκατάσταση: η ρύθμιση του διακομιστή το απαριθμεί, η χειραψία το ονομάζει και ένας διαχειριστής που διαβάζει αρχεία καταγραφής βλέπει την ίδια συμβολοσειρά κάθε φορά που αυτό το peer συνδέεται. Δημοσιεύστε το κλειδί δίπλα σε μια ερώτηση για τη ρύθμισή σας και έχετε συνδέσει αυτή τη συμβολοσειρά με όλα τα υπόλοιπα στη δημοσίευση.
Τα πιστοποιητικά διαρρέουν ταυτότητα εξ αρχής σχεδιασμού. Τα πεδία Subject και subject alternative name είναι αναγνώσιμα, και για τα δημόσια έμπιστα πιστοποιητικά TLS το ίδιο το πιστοποιητικό δημοσιεύεται στα αρχεία Certificate Transparency, τα οποία είναι αναζητήσιμα. Τίποτα από αυτά δεν εκθέτει ιδιωτικό κλειδί, και όλα αυτά εκθέτουν μια σχέση.
Εδώ διαφέρουν οι εγκαταστάσεις, και αυτό κρίνει την απάντηση. Ένα πρόχειρο δοκιμαστικό peer σε διακομιστή εργαστηρίου είναι διαφορετικό αντικείμενο από το κλειδί που αναγνωρίζει το άκρο σημείο μεταξύ εγκαταστάσεων μιας εταιρείας, ακόμη κι αν τα byte μοιάζουν ίδια.
Έλεγχος τρίτος: τι μπορείτε να ανακαλέσετε, και πόσο γρήγορα
Ο τρίτος έλεγχος χωρίζει τα δύο μισά εντελώς. Ένα δημόσιο κλειδί που έχει δημοσιευτεί μπορεί να αντικατασταθεί σύμφωνα με το πρόγραμμά σας. Ένα ιδιωτικό κλειδί που έχει δημοσιευτεί δεν ανακαλείται: η διαγραφή του αντιγράφου σας δεν αγγίζει αντίγραφα που έχουν ήδη ληφθεί, και κάθε peer που το εμπιστευόταν τώρα εμπιστεύεται κάτι που κρατά ένας εξωτερικός.
Η ανάκληση είναι ενέργεια ρύθμισης, όχι κρυπτογραφική ενέργεια. Το WireGuard δεν παρέχει λίστα ανάκλησης, οπότε αφαιρείτε το peer:
wg set wg0 peer <peer-public-key> remove
# then delete the [Peer] block from the config so it does not return on restart
OpenVPN οι εγκαταστάσεις που βασίζονται σε πιστοποιητικά ανακαλούν το πιστοποιητικό και δημοσιεύουν ένα CRL που ο διακομιστής ελέγχει πραγματικά μέσω crl-verify. Χωρίς αυτή την οδηγία η λίστα ανάκλησης είναι διακόσμηση. Όπως και να έχει, η σειρά είναι ίδια: εκδώστε αντικατάσταση, διανείμετε την μέσω του υποστηριζόμενου καναλιού και μετά αποσύρετε την παλιά ταυτότητα.
Τα λάθη που προκύπτουν όταν συνενώνονται οι τρεις έλεγχοι
Οι περισσότερες πραγματικές διαρροές δεν είναι ένα άτομο που αποφασίζει να δημοσιεύσει ένα ιδιωτικό κλειδί. Είναι ένα ολόκληρο προφίλ κολλημένο σε φόρουμ: WireGuard .conf με γραμμή PrivateKey, ή πακέτο .ovpn με ενσωματωμένο μπλοκ κλειδιού, ή στιγμιότυπο οθόνης παραθύρου πελάτη που τυχαίνει να περιλαμβάνει το πεδίο κλειδιού. Η δημόσια τιμή ήταν μάλλον εντάξει· ταξίδεψε μαζί με το μέρος που δεν ήταν.
Οι ροές εργασίας υποστήριξης είναι η δεύτερη πηγή. Κανένα νόμιμο βήμα επαλήθευσης δεν χρειάζεται το ιδιωτικό σας κλειδί, επειδή η άλλη πλευρά παράγει ό,τι χρειάζεται από το δημόσιο μισό. Όταν μια φόρμα ή ένα άτομο ζητά την ιδιωτική τιμή, η σωστή απάντηση είναι η δημόσια μαζί με την τοπική εντολή που την παράγει.
Τα αρχεία καταγραφής και τα στιγμιότυπα οθόνης ανήκουν στην ίδια κατηγορία. Η διαγνωστική έξοδος μπορεί να φέρει υλικό κλειδιών, αναγνωριστικά συνεδρίας και εσωτερικές διευθύνσεις, και η δημοσίευση όλων αυτών για να απαντηθεί μία ερώτηση ανταλλάσσει μια μικρή ευκολία με μεγαλύτερη έκθεση.
Όταν διαρρεύσει μια ιδιωτική τιμή, αποσύρετε την ταυτότητα
Αν μια ιδιωτική τιμή διέρρευσε, θεωρήστε αυτή την ταυτότητα αποσυρμένη. Δημιουργήστε νέο ζεύγος, εγκαταστήστε το δημόσιο μισό εκεί όπου τα peer το περιμένουν, αφαιρέστε το παλιό peer ή ανακαλέστε το παλιό πιστοποιητικό και ελέγξτε τα σημεία όπου το δημοσιεύσατε. Δεν μπορείτε να διαγράψετε αντίγραφα που δεν ελέγχετε, οπότε η αφαίρεση αφορά το μέλλον, όχι το παρελθόν.
Έπειτα γράψτε τη διανομή: ποιο κλειδί ανήκει σε ποια συσκευή, ποιος κρατά αντίγραφο, πώς παραδίδεται μια αντικατάσταση και ποιος αφαιρεί ένα αποσυρμένο peer. Αυτά είναι τα μέρη που ξεχνούν οι άνθρωποι, και αυτά κρίνουν πόσο καιρό μια διαρροή παραμένει χρήσιμη.