Αυτοϋπογεγραμμένο ή δημόσιο CA για VPN: τι αλλάζει στην πραγματικότητα
Τα αυτοϋπογεγραμμένα και τα δημόσια πιστοποιητικά κρυπτογραφούν ένα τούνελ VPN με τον ίδιο τρόπο. Η πραγματική διαφορά είναι ποιος εγγυάται τον διακομιστή και ποιος πρέπει να εμπιστευτεί αυτόν τον ισχυρισμό.
Φτάνετε στη σελίδα πιστοποιητικών μιας ρύθμισης VPN, βλέπετε μια δωρεάν αυτοϋπογεγραμμένη επιλογή δίπλα σε ένα πληρωμένο δημόσιο CA, και το ερώτημα ακούγεται σαν επιλογή ασφαλείας. Στην πραγματικότητα είναι επιλογή κοινού. Και οι δύο επιλογές κρυπτογραφούν το τούνελ με τα ίδια βασικά δομικά στοιχεία, και οι δύο γίνονται άχρηστες αν διαρρεύσει το ιδιωτικό κλειδί. Αυτό που τις χωρίζει είναι ποιος κάνει τον ισχυρισμό για την ταυτότητα του διακομιστή και ποιος βρίσκεται σε θέση να ελέγξει αυτόν τον ισχυρισμό.
Ένα πιστοποιητικό κάνει δύο δουλειές που συγχέονται
Ένα πιστοποιητικό δεσμεύει ένα δημόσιο κλειδί σε ένα όνομα, και το κλειδί κάνει τη δουλειά της κρυπτογράφησης και της υπογραφής. Η υπογραφή στο πιστοποιητικό είναι μια ξεχωριστή δήλωση: κάποια αρχή επαλήθευσε ότι το όνομα ανήκει σε αυτόν τον κάτοχο του κλειδιού. Ένα αυτοϋπογεγραμμένο πιστοποιητικό κάνει αυτή τη δήλωση για τον εαυτό του, κάτι που δεν είναι καθόλου ισχυρισμός τρίτου μέρους.
Οι δημόσιοι ιστότοποι χρειάζονται την έκδοση τρίτου μέρους, επειδή οι επισκέπτες φτάνουν χωρίς προηγούμενη σχέση και βασίζονται στο αποθετήριο εμπιστοσύνης του προγράμματος περιήγησης. Ένας πελάτης VPN δεν είναι ξένος. Του δίνετε το πιστοποιητικό CA, ή καρφιτσώνετε το πιστοποιητικό του διακομιστή, μέσα στο προφίλ που εγκαθιστά, ώστε η επαλήθευση να γίνεται απέναντι ακριβώς στην αρχή που επιλέξατε. Κανένα εμπορικό CA δεν χρειάζεται να εμπλακεί για να σημαίνει κάτι αυτός ο έλεγχος.
Η ισχύς της συνεδρίας που προκύπτει προέρχεται από το μέγεθος του κλειδιού και τη σουίτα κρυπτογράφησης, όχι από τον υπογράφοντα. Γι' αυτό το να αποκαλεί κανείς ένα αυτοϋπογεγραμμένο πιστοποιητικό "λιγότερο κρυπτογραφημένο" είναι απλώς λάθος· είναι λιγότερο ευρέως εγγυημένο, κάτι που είναι διαφορετική ιδιότητα.
Πού ένα δημόσιο CA κερδίζει την αμοιβή του
Η πιο σαφής περίπτωση είναι η σελίδα διαχείρισης. Αν συνάδελφοι, εργολάβοι ή οποιοσδήποτε άλλος χωρίς έτοιμο προφίλ πρέπει να ανοίξει τη διεπαφή web του διακομιστή VPN χωρίς προειδοποίηση του προγράμματος περιήγησης, ένα δημόσια έμπιστο πιστοποιητικό αφαιρεί αυτή την τριβή. Το πρόγραμμα περιήγησης εμπιστεύεται ήδη τον υπογράφοντα, οπότε δεν υπάρχει τίποτα να εισαγάγετε και τίποτα να εξηγήσετε.
Αυτή η ευκολία έχει κόστη που αξίζει να αναφερθούν πριν αγοράσετε. Η ανανέωση πρέπει να αυτοματοποιηθεί, αλλιώς ο ιστότοπος σπάει με χρονοδιάγραμμα, τα δημόσια πιστοποιητικά εκθέτουν το όνομα κεντρικού υπολογιστή στα αρχεία διαφάνειας πιστοποιητικών, και τα όρια ρυθμού έκδοσης τιμωρούν ένα σενάριο που επαναλαμβάνει πολύ πρόθυμα. Κανένα από αυτά δεν είναι λόγος να αποφύγετε ένα δημόσιο CA, αλλά είναι επιχειρησιακή εργασία που ένα ιδιωτικό CA μεταφέρει αλλού.
Αυτό που δεν κάνει ένα δημόσιο πιστοποιητικό είναι να πιστοποιεί τους χρήστες σας. Η ταυτότητα του πελάτη είναι ξεχωριστή απόφαση, που λαμβάνεται με πιστοποιητικά πελάτη, κωδικούς πρόσβασης ή δεύτερο παράγοντα, και το CA που υπογράφει τον διακομιστή δεν λέει τίποτα για το ποιος επιτρέπεται να συνδεθεί σε αυτόν.
Πού ταιριάζει ένα ιδιωτικό CA σε ένα VPN
Για ένα ιδιωτικό VPN με γνωστό σύνολο πελατών, η λειτουργία του δικού σας CA είναι η συμβατική επιλογή. Δημιουργείτε το CA μία φορά, υπογράφετε το πιστοποιητικό του διακομιστή με ένα όνομα που θα χρησιμοποιούν οι πελάτες, και διανέμετε το πιστοποιητικό CA μέσα σε κάθε προφίλ. Κάθε πελάτης επαληθεύει τότε τον διακομιστή απέναντι στην αρχή σας, και κανένα εξωτερικό μέρος δεν μαθαίνει το όνομα κεντρικού υπολογιστή.
Τα κόστη είναι πραγματικά αλλά περιορισμένα. Τα προγράμματα περιήγησης θα προειδοποιήσουν όταν κάποιος ανοίξει απευθείας τη σελίδα διαχείρισης, επειδή το πρόγραμμα περιήγησης δεν έχει λόγο να εμπιστεύεται το CA σας. Η διανομή προφίλ γίνεται μέρος της ένταξης, και η εναλλαγή του CA σημαίνει να αγγίξετε κάθε πελάτη. Αυτές είναι αποδεκτές τιμές για μια υπηρεσία με δέκα ή πενήντα γνωστούς χρήστες και επώδυνες για ένα δημόσιο τελικό σημείο με χιλιάδες.
Μία προϋπόθεση κάνει όλη τη ρύθμιση έγκυρη: η επαλήθευση πρέπει να συμβεί. Ένας πελάτης ρυθμισμένος να αγνοεί σφάλματα πιστοποιητικών δέχεται οποιονδήποτε διακομιστή παρουσιάζει οποιοδήποτε πιστοποιητικό, οπότε η εγγύηση ταυτότητας εξαφανίζεται ενώ η κρυπτογράφηση παραμένει. Αυτή η ρύθμιση είναι η πραγματική αδυναμία στις περισσότερες ιστορίες του τύπου "το αυτοϋπογεγραμμένο είναι ανασφαλές".
Το ιδιωτικό κλειδί του CA καθορίζει τι μπορείτε να κάνετε αργότερα
Η έκπληξη συνήθως φτάνει μήνες αργότερα, όταν θέλετε να προσθέσετε μια συσκευή. Η έκδοση πιστοποιητικού πελάτη απαιτεί το ιδιωτικό κλειδί του CA, και το ίδιο ισχύει για την παραγωγή λίστας ανάκλησης. Αν κληρονομήσατε έναν διακομιστή που έχει τα αρχεία πιστοποιητικού και κλειδιού αλλά όχι το κλειδί CA, δεν μπορείτε να υπογράψετε τίποτα νέο. Οι επιλογές σας είναι να ξαναχτίσετε το PKI και να δώσετε σε κάθε πελάτη ένα νέο πιστοποιητικό CA, ή να περάσετε σε έλεγχο ταυτότητας με κωδικό πρόσβασης, που είναι διαφορετικό μοντέλο ασφαλείας και δεν αποκαθιστά ό,τι χάθηκε.
Δύο μικρότερες παγίδες ζουν στην ίδια περιοχή. Τα σενάρια easy-rsa υποθέτουν ότι στέκεστε στον κατάλογο που τα περιέχει, οπότε ένα σφάλμα για αρχείο που λείπει συνήθως σημαίνει λάθος τοποθεσία και όχι κατεστραμμένη εγκατάσταση. Και ένα σχέδιο μόνο με πιστοποιητικά είναι απολύτως νόμιμο: μπορείτε να απαιτείτε πιστοποιητικά πελάτη χωρίς προ-κοινόχρηστο κλειδί, αρκεί κάθε πελάτης να έχει ένα και ο διακομιστής να επαληθεύει την αλυσίδα.
Εκδώστε ένα πιστοποιητικό ανά συσκευή αντί για ένα κοινό πιστοποιητικό πελάτη για όλη την ομάδα. Ένας χαμένος φορητός υπολογιστής σας κοστίζει τότε μία μόνο ανάκληση αντί για επανέκδοση για όλους.
Ελέγξτε τι κληρονομήσατε
Πριν σχεδιάσετε οποιαδήποτε αλλαγή, διαβάστε το πιστοποιητικό που έχετε ήδη:
$ openssl x509 -in server.crt -noout -subject -issuer -dates
subject=CN = vpn.example.net
issuer=CN = vpn.example.net
notAfter=Nov 3 09:00:00 2027 GMT
$ openssl verify -CAfile ca.crt server.crt
server.crt: OK
Αν ο εκδότης ισούται με το υποκείμενο, το πιστοποιητικό είναι αυτοϋπογεγραμμένο, που είναι επιλογή σχεδίασης και όχι ελάττωμα. Οι ημερομηνίες σας λένε πότε η ανανέωση γίνεται πρόβλημα κάποιου, και μια επιτυχής επαλήθευση απέναντι στο CA που σκοπεύετε να διανείμετε επιβεβαιώνει ότι η αλυσίδα λειτουργεί πριν τη δοκιμάσει έστω ένας πελάτης.
Στη συνέχεια επιλέξτε με βάση το κοινό και τη διανομή: δημόσιο CA όταν άγνωστα προγράμματα περιήγησης πρέπει να εμπιστευτούν τη σελίδα διαχείρισης, ιδιωτικό CA όταν κάθε πελάτης λαμβάνει ένα προφίλ που ελέγχετε. Καμία από τις δύο απαντήσεις δεν είναι περισσότερο κρυπτογραφημένη από την άλλη.