Αυτοϋπογεγραμμένο πιστοποιητικό πελάτη; Ο διακομιστής VPN εξακολουθεί να το απορρίπτει
Ένα πιστοποιητικό πελάτη πρέπει να αλυσιδώνεται στην CA που εμπιστεύεται ο διακομιστής, και ένα αυτοϋπογεγραμμένο δεν θα το κάνει ποτέ. Δείτε τι μπορεί να κάνει ένα CSR και τι να ζητήσετε.
Ο διαχειριστής στέλνει μια διεύθυνση και ένα όνομα χρήστη, και ο πελάτης ζητά ένα αρχείο CA, ένα πιστοποιητικό και ένα κλειδί. Η τοπική δημιουργία αυτών των τριών φαίνεται το προφανές επόμενο βήμα. Παράγεται ένα πιστοποιητικό στο οποίο πιστεύει μόνο το δικό σας μηχάνημα. Η εμπιστοσύνη του διακομιστή είναι αγκυρωμένη σε μια CA που δεν ελέγχετε, οπότε η χειραψία τελειώνει πριν αρχίσει.
Η εμπιστοσύνη ζει στον διακομιστή, όχι στο προφίλ σας
Η πιστοποίηση με πιστοποιητικό είναι μια σύγκριση. Ο πελάτης παρουσιάζει ένα πιστοποιητικό· η πύλη ελέγχει αν το υπέγραψε μία από τις CA στη διαμόρφωσή της.
Το προφίλ σας ονομάζει το αρχείο CA που πρέπει να χρησιμοποιήσει ο πελάτης για να επαληθεύσει τον διακομιστή. Δεν μπορεί να ονομάσει μια CA που πρέπει να χρησιμοποιήσει ο διακομιστής για να σας επαληθεύσει. Αυτό το μισό της διαμόρφωσης δεν είναι δικό σας.
Ένα πιστοποιητικό φτιαγμένο από εσάς αποτυγχάνει σε αυτή τη σύγκριση ακόμη και όταν είναι τεχνικά άψογο. Έχει έγκυρη υπογραφή, υποκείμενο και ημερομηνίες, αλλά ο εκδότης είναι μια CA που η πύλη δεν έχει ακούσει ποτέ. Το σφάλμα εμφανίζεται κατά τη χειραψία, αφού ο διακομιστής έχει ήδη ζητήσει πιστοποιητικό. Τίποτα στο προφίλ του πελάτη δεν μπορεί να αλλάξει την απάντηση.
Γιατί ένα αυτοϋπογεγραμμένο πιστοποιητικό δεν μπορεί να υποκαταστήσει
Ένα αυτοϋπογεγραμμένο πιστοποιητικό υπογράφεται με το δικό του κλειδί. Η υπογραφή επαληθεύεται με το ίδιο αρχείο, γεγονός που το κάνει αυτοσυνεπές και άχρηστο ως διαπιστευτήριο για την πύλη κάποιου άλλου.
Η πύλη δεν ρωτά αν το πιστοποιητικό είναι εσωτερικά συνεπές. Ρωτά αν το υπέγραψε αξιόπιστος εκδότης.
Γι' αυτό τα μηνύματα σφάλματος μπερδεύουν. Ο πελάτης μπορεί να αναφέρει αποτυχία επαλήθευσης που ακούγεται σαν πρόβλημα διακομιστή, ενώ ο διακομιστής καταγράφει άγνωστο εκδότη. Και τα δύο περιγράφουν την ίδια αναντιστοιχία από αντίθετες άκρες.
Η διαδρομή CSR κρατά το ιδιωτικό σας κλειδί
Μπορείτε ακόμη να κάνετε το μεγαλύτερο μέρος της δουλειάς τοπικά. Δημιουργήστε ένα ζεύγος κλειδιών, φτιάξτε ένα αίτημα υπογραφής πιστοποιητικού γύρω από το δημόσιο μισό και στείλτε το αίτημα στον διαχειριστή. Μόνο το αίτημα φεύγει από το μηχάνημά σας. Το ιδιωτικό μισό μένει εκεί που το δημιουργήσατε.
openssl req -new -newkey rsa:3072 -nodes -keyout client.key -out client.csr -subj "/CN=laptop-01"
Ο διαχειριστής υπογράφει το αίτημα με τη CA του και επιστρέφει ένα πιστοποιητικό. Το ιδιωτικό σας κλειδί δεν ταξίδεψε ποτέ, και το αποτέλεσμα αλυσιδώνεται στην άγκυρα που εμπιστεύεται η πύλη.
Οι διαχειριζόμενες υπηρεσίες συχνά παραλείπουν το CSR και εκδίδουν ολόκληρο το πακέτο. Είναι μια λογική ανταλλαγή όταν ο ίδιος πάροχος τερματίζει ήδη τη σήραγγα και κατέχει την CA. Η φύλαξη του κλειδιού δεν βελτιώνεται επειδή το κρατάτε, γιατί ο πάροχος θα μπορούσε να κόψει ένα νέο ανά πάσα στιγμή.
Τα πακέτα εισάγονται, δεν εγκαθίστανται
Τα πακέτα προμηθευτών με ονόματα που ηχούν ασφαλή είναι συχνά προφίλ OpenVPN. Περιέχουν διαμόρφωση και μερικές φορές πιστοποιητικά, και δεν εγκαθιστούν τίποτα. Εισαγάγετε το αρχείο σε έναν πελάτη που μιλά το πρωτόκολλο, και η σύνδεση έχει διαμορφωθεί.
Ο κανόνας χειρισμού προκύπτει από τα περιεχόμενα. Αν το προφίλ ενσωματώνει ιδιωτικό κλειδί, είναι διαπιστευτήριο και αξίζει την ίδια φροντίδα με έναν κωδικό πρόσβασης: χωρίς email, χωρίς αποθετήριο, χωρίς κοινόχρηστο φάκελο λήψεων. Όταν ο διαχειριστής παραδίδει ca.crt, client.crt και client.key χωριστά, αποθηκεύστε τα μαζί με περιοριστικά δικαιώματα και δείξτε το προφίλ σε αυτά.
Προσθέστε τους ελέγχους που μπορεί να παρέλειψε ο διαχειριστής
Ένα προφίλ που παράγεται από δρομολογητή μερικές φορές δεν έχει επαλήθευση ομοτίμου. Το remote-cert-tls server απαιτεί το πιστοποιητικό του ομοτίμου να φέρει τον σκοπό πιστοποίησης διακομιστή, ώστε ένα πιστοποιητικό πελάτη να μην μπορεί να αναπαραχθεί ως διακομιστής. Αυτή η μία γραμμή είναι μια μικρή αλλαγή με σαφή αιτιολόγηση.
Το verify-x509-name πηγαίνει παραπέρα όταν ο διαχειριστής μπορεί να ονομάσει το αναμενόμενο υποκείμενο ή το SAN. Και τα δύο είναι μικρές προσθήκες σε ένα προφίλ, και τα δύο είναι υπερασπίσιμα. Επιθεωρήστε τι λάβατε πριν το εισαγάγετε.
openssl x509 -in client.crt -noout -issuer -subject -dates
openssl verify -CAfile ca.crt client.crt
Οι ρυθμίσεις επαλήθευσης δεν είναι επισκευή μιας σπασμένης αλυσίδας. Αν ο εκδότης είναι λάθος, η απάντηση είναι πιστοποιητικό από τη σωστή CA, όχι μια σημαία που απενεργοποιεί τον έλεγχο. Η απενεργοποίηση της επαλήθευσης μετατρέπει μια αποτυχία πιστοποίησης σε απαρατήρητη.
Ζητήστε ένα πακέτο: το πιστοποιητικό της αρχής ως PEM, ένα πιστοποιητικό πελάτη υπογεγραμμένο από αυτή την αρχή, ένα κλειδί που δημιουργήσατε ή που έφτασε μέσω καναλιού που εμπιστεύεστε, και το ακριβές όνομα διακομιστή που πρέπει να παρουσιάσει το πιστοποιητικό. Σημειώστε την ημερομηνία λήξης στο ίδιο μήνυμα, γιατί ένα ληγμένο πιστοποιητικό μοιάζει με βλάβη δικτύου μήνες αργότερα.