Οι λέξεις προκοινόχρηστο κλειδί εμφανίζονται στην τεκμηρίωση των IPsec, OpenVPN και WireGuard, αλλά περιγράφουν τρία διαφορετικά αντικείμενα. Το ένα είναι μυστικό πιστοποίησης, το άλλο προστατεύει ένα κανάλι ελέγχου και το τρίτο προσθέτει υλικό σε μια χειραψία που έχει ήδη ταυτότητες. Αν τα θεωρήσετε ανταλλάξιμα, θα πάρετε μια σύνδεση που αποτυγχάνει σε στάδιο που κανείς δεν περίμενε. Διαβάστε τι κάνει το πεδίο σε αυτό το πρωτόκολλο πριν αντιγράψετε μια τιμή μέσα του.

Τρία πρωτόκολλα, τρεις έννοιες

Κάθε πρωτόκολλο ορίζει το έργο του κλειδιού στη δική του προδιαγραφή, και τα έργα δεν επικαλύπτονται. Ένα μυστικό πιστοποίησης αποδεικνύει ότι δύο ομότιμοι γνωρίζουν την ίδια τιμή. Ένα κλειδί καναλιού ελέγχου προστατεύει τη διαπραγμάτευση που ακολουθεί. Ένα πρόσθετο στη χειραψία αλλάζει το πρόγραμμα κλειδιών χωρίς να αλλάζει ποιοι είναι οι ομότιμοι.

Κανένας από αυτούς τους ρόλους δεν πιστοποιεί άνθρωπο, και αυτή η σύγχυση κοστίζει τον περισσότερο χρόνο. Ένα προκοινόχρηστο κλειδί εγκαθίσταται σε συσκευές ή πύλες πριν από την ανταλλαγή, οπότε κάθε κάτοχος φαίνεται ίδιος στην άλλη πλευρά. Αυτή η ιδιότητα είναι πλεονέκτημα για ζεύξη μεταξύ δύο δρομολογητών και ρίσκο για υπηρεσία απομακρυσμένης πρόσβασης με ονομαστούς υπαλλήλους. Κρατήστε το διαπιστευτήριο του λογαριασμού και το κρυπτογραφικό μυστικό σε ξεχωριστές στήλες του εγγράφου που περιγράφει την ανάπτυξη.

Τα IPsec και OpenVPN χρησιμοποιούν τη λέξη διαφορετικά

Το IKEv2 μπορεί να πιστοποιήσει έναν ομότιμο με προκοινόχρηστο μυστικό αντί για πιστοποιητικά, και η τιμή πρέπει να συμφωνεί και στις δύο πλευρές. Επειδή το ίδιο μυστικό συνήθως ρυθμίζεται για μια ομάδα ομότιμων, κάθε κάτοχος μπορεί να υποδυθεί τους άλλους, και η ανταλλαγή δεν κερδίζει καμία εμπροσθοφυλακή μυστικότητα από κλειδιά ταυτότητας που ποτέ δεν είχε.

Οι επιλογές tls-auth και tls-crypt του OpenVPN προσαρτούν ένα στατικό κλειδί στο κανάλι ελέγχου, προσθέτοντας υπογραφή HMAC ή κρυπτογραφώντας την ίδια τη διαπραγμάτευση. Αυτό το κλειδί δεν είναι κωδικός χρήστη και δεν αντικαθιστά το πιστοποιητικό πελάτη. Η διάκριση μετράει στην ανανέωση, όταν μια αλλαγή κωδικού αφήνει το κλειδί του καναλιού ελέγχου ανέπαφο.

Το PSK του WireGuard προσθέτει, δεν ταυτοποιεί

Οι ομότιμοι του WireGuard έχουν ήδη δημόσια και ιδιωτικά κλειδιά Curve25519, και η χειραψία πιστοποιεί αυτές τις ταυτότητες. Ένα προαιρετικό προκοινόχρηστο κλειδί αναμειγνύεται στο κλειδί αλυσίδας και προσθέτει συμμετρικό υλικό πάνω από την ανταλλαγή δημόσιων κλειδιών.

Από μόνο του δεν παρέχει ταυτότητα ούτε λογαριασμό χρήστη, οπότε ένας διαχειριστής δεν μπορεί να ξεχωρίσει δύο κατόχους από το PSK τους. Και οι δύο πλευρές πρέπει να φέρουν την ίδια τιμή, αλλιώς η χειραψία αποτυγχάνει χωρίς χρήσιμο μήνυμα σφάλματος. Γι' αυτό η εναλλαγή πρέπει να σχεδιάζεται και για τις δύο πλευρές ταυτόχρονα και όχι ως επεξεργασία ενός αρχείου.

Ελέγξτε διανομή, εναλλαγή και αφαίρεση

Η διανομή είναι το αδύναμο σημείο κάθε σχεδίου που χρησιμοποιεί ένα μυστικό σε πολλά σημεία. Μια τιμή που επικολλάται σε παράθυρο συνομιλίας, αποθηκεύεται σε αποθετήριο ή επαναχρησιμοποιείται μεταξύ περιβαλλόντων συγκεντρώνει αντίγραφα που κανείς δεν μπορεί να απαριθμήσει, και κάθε αντίγραφο διευρύνει ήσυχα την ακτίνα ζημιάς.

Το κείμενο Base64 δεν είναι κρυπτογράφηση. Ένα μυστικό δίπλα σε δημόσιο πιστοποιητικό στον ίδιο κατάλογο παραμένει μυστικό σε ανοιχτή μορφή.

openssl rand -base64 32
sudo wg show wg0 preshared-keys
sudo grep -R -n 'psk' /etc/ipsec.d/ 2>/dev/null

Κάντε εναλλαγή σε τακτικό πρόγραμμα και μετά από κάθε ύποπτη έκθεση, ενημερώνοντας κάθε προβλεπόμενο ομότιμο πριν ανακαλέσετε την παλιά τιμή. Έπειτα δοκιμάστε τη ζεύξη και από τις δύο πλευρές, γιατί ένα κλειδί που δεν ταιριάζει αποτυγχάνει στη χειραψία και μοιάζει ακριβώς με πρόβλημα τείχους προστασίας.

Καταγράψτε ποιο μυστικό προστατεύει ποιο στάδιο, ώστε μια επαναφορά κωδικού να μη θεωρηθεί ποτέ ανανέωση κρυπτογραφικού κλειδιού. Αυτή η μία γραμμή γλιτώνει μια ώρα κάθε φορά που κάποιος ελέγχει την ανάπτυξη.

Σχετικά άρθρα