Ανακαλέσατε το λάθος πιστοποιητικό VPN; Επιλογές αποκατάστασης και όρια
Προσδιορίστε τον εκδότη, τον σειριακό αριθμό και τον κωδικό αιτίας πριν αγγίξετε την CA. Η μόνιμη ανάκληση, η αναστολή πιστοποιητικού και μια παύση εισδοχής είναι τρεις επισκευές.
Κάποιος ανακάλεσε ένα πιστοποιητικό στην κονσόλα της CA και τώρα ένας χρήστης δεν μπορεί να συνδεθεί. Η πρώτη παρόρμηση είναι να βρεθεί η αναίρεση, και για τις περισσότερες PKI δεν υπάρχει: η ανάκληση είναι ένα δηλωμένο γεγονός για έναν σειριακό αριθμό, και η υποστηριζόμενη επιστροφή είναι ένα νέο πιστοποιητικό, όχι μια ανεστραμμένη εγγραφή. Περάστε τους παρακάτω ελέγχους με σειρά, γιατί ποια επισκευή επιτρέπεται εξαρτάται από τον κωδικό αιτίας και από το αν το κλειδί εκτέθηκε ποτέ.
Προσδιορίστε το πιστοποιητικό, όχι το πρόσωπο
Τα κοινά ονόματα επαναλαμβάνονται. Ένας χρήστης που εγγράφηκε ξανά το προηγούμενο τρίμηνο μπορεί να έχει δύο πιστοποιητικά με το ίδιο CN και διαφορετικούς σειριακούς αριθμούς, και η ανάκληση του ενός αφήνει το άλλο σε λειτουργία. Καθορίστε πρώτα το ακριβές αντικείμενο:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Σημειώστε τον σειριακό αριθμό, τον εκδότη, την ημερομηνία ανάκλησης και την αιτία που καταγράφεται στο CRL. Στη συνέχεια επιβεβαιώστε ποιες συσκευές παρουσιάζουν αυτόν τον σειριακό αριθμό, γιατί ένα ανακαλεσμένο πιστοποιητικό μπορεί να είναι ακόμη εγκατεστημένο σε φορητό υπολογιστή, τηλέφωνο και εφεδρικό δρομολογητή, και μια αντικατάσταση που φτάνει μόνο σε ένα από αυτά δημιουργεί δεύτερο περιστατικό.
Ένας γρήγορος έλεγχος συμπεριφοράς επιβεβαιώνει την κατάσταση χωρίς να αλλάξει τίποτα:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Αν αναφέρει το πιστοποιητικό ως ανακληθέν, το CRL και ο πελάτης συμφωνούν· αν επαληθεύεται καθαρά, ο πελάτης που κρατάτε δεν είναι ο ανακληθείς, και η αναζήτηση συνεχίζεται.
Ελέγξτε αν η CA χρησιμοποίησε αναστολή ή μόνιμη ανάκληση
Το RFC 5280 ορίζει το certificateHold ως προσωρινή κατάσταση και το removeFromCRL ως το σήμα που την απελευθερώνει. Αυτός ο κύκλος ζωής είναι πραγματικός, αλλά δεν είναι ένα γενικό κουμπί αναίρεσης. Η ανάγνωση του κωδικού αιτίας σας λέει αν ο εκδότης είχε ποτέ την πρόθεση να υποστηρίξει την απελευθέρωση.
Η παγίδα είναι να υποθέσετε ότι μια προσωρινή πρόθεση σημαίνει προσωρινή εγγραφή. Αν η καταχώριση της CA φέρει keyCompromise ή cessationOfOperation, το πιστοποιητικό έχει ανακληθεί μόνιμα, ανεξάρτητα από το τι σκόπευε το άτομο που πάτησε το κουμπί. Αντίστροφα, μια καταχώριση με ένδειξη certificateHold σε CA που δεν υλοποιεί απελευθέρωση αναστολής είναι μόνιμη στην πράξη, γιατί τίποτα δεν θα δημοσιεύσει ποτέ την απελευθέρωση.
Οι CA που βασίζονται στο OpenSSL δείχνουν το όριο. Η εντολή ca δέχεται τιμές -crl_reason, συμπεριλαμβανομένων των certificateHold και removeFromCRL, αλλά δεν παράγει CRL δέλτα — η τεκμηρίωση του OpenSSL CA αναφέρει αυτόν τον περιορισμό για την έξοδο CRL της. Ένα πλήρες CRL που απλώς παραλείπει τον σειριακό αριθμό είναι διαφορετικό μοντέλο δημοσίευσης από ένα δέλτα που λέει "αυτή η εγγραφή απελευθερώθηκε", οπότε η επικόλληση του removeFromCRL σε CA VPN βασισμένη στο OpenSSL δεν παράγει την απελευθέρωση που ορίζουν τα πρότυπα.
Αν το κλειδί μπορεί να εκτέθηκε, αντικαταστήστε το
Ένα ανακαλεσμένο πιστοποιητικό είναι μια δήλωση ότι αυτό το κλειδί μπορεί να μην είναι πλέον αξιόπιστο. Αν η ανάκληση ήταν ουσιαστικά σωστή — φορητός υπολογιστής χάθηκε, κλειδί αντιγράφηκε σε κοινόχρηστο δίσκο, ιδιωτικό κλειδί επικολλήθηκε σε δελτίο — η επαναφορά του ίδιου πιστοποιητικού αντιστρέφει μια απόφαση ασφαλείας που λειτουργούσε όπως έπρεπε.
Εκδώστε ένα νέο ζεύγος κλειδιών μέσω της διαδικασίας εγγραφής, διανείμετε το νέο προφίλ και αφήστε τον παλιό σειριακό αριθμό ανακληθέντα για όλη τη διάρκεια ζωής του. Ενημερώστε ό,τι καθηλώνει την ταυτότητα με σειριακό αριθμό ή αποτύπωμα, συμπεριλαμβανομένων λιστών εισδοχής, απογραφών συσκευών και παρακολούθησης που περιμένει συγκεκριμένο πιστοποιητικό.
Το επιχείρημα της ευκολίας για την επαναφορά του παλιού είναι πραγματικό, αλλά πρέπει να απαντηθεί ρητά και όχι σιωπηλά. Το "ο χρήστης χρειάζεται πρόσβαση σήμερα" είναι λόγος να επιταχυνθεί η έκδοση, όχι λόγος να αρθεί η ανάκληση ενός κλειδιού για το οποίο δεν μπορείτε να δώσετε λόγο.
Αν ήταν διοικητικό λάθος, αντικαταστήστε υπό έλεγχο
Όταν η ανάκληση ήταν απλώς λανθασμένη και το κλειδί δεν εκτέθηκε ποτέ, η επισκευή είναι ακόμη μια ελεγχόμενη αντικατάσταση και όχι μια επεξεργασία. Χρησιμοποιήστε την υποστηριζόμενη διαδικασία του εκδότη, διατηρήστε τον σειριακό αριθμό και το ιστορικό έκδοσης ανέπαφα, και αποφύγετε τις δύο δελεαστικές συντομεύσεις: την αναστροφή του χαρακτήρα κατάστασης στο index.txt από R πίσω σε V, και τη διαγραφή της γραμμής έκδοσης ώστε ένα νέο πιστοποιητικό να μπορεί να επαναχρησιμοποιήσει τον σειριακό αριθμό.
Σε CA OpenSSL η βάση δεδομένων χωρίζεται με στηλοθέτες και διαβάζεται εύκολα λάθος, κάτι που κάνει τη χειροκίνητη επεξεργασία ελκυστική:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Διαβάστε την, μην τη γράφετε. Η επεξεργασία του αρχείου αλλάζει το επόμενο CRL χωρίς κανένα ίχνος ελέγχου, και οποιαδήποτε δεύτερη παρουσία CA ή αντίγραφο ασφαλείας που κρατά ακόμη την αρχική γραμμή θα διαφωνήσει μαζί της αργότερα.
Αφού εκδώσετε την αντικατάσταση, δημοσιεύστε ένα νέο CRL μέσω του κανονικού μηχανισμού και αφήστε τους πελάτες να το παραλάβουν. Η αφαίρεση ενός CRL, η συντόμευση της διάρκειάς του στο μηδέν ή η απενεργοποίηση του ελέγχου ανάκλησης στο προφίλ πελάτη διορθώνει έναν χρήστη αποδυναμώνοντας κάθε άλλη ανάκληση που έχει δημοσιεύσει ποτέ η CA.
Επιβεβαιώστε μια νέα εισδοχή και κρατήστε το αρχείο
Δοκιμάστε με νέα σύνδεση, όχι με τη συνεδρία που ήταν ήδη ανοιχτή. Μια ζωντανή σήραγγα μπορεί να μην επανεκτελέσει τους ελέγχους εισδοχής που κάνει μια νέα χειραψία, και οι προσωρινές μνήμες CRL σημαίνουν ότι ο πελάτης μπορεί να συνεχίζει να συνδέεται μέχρι να ανανεωθεί. Αποσυνδεθείτε, συνδεθείτε ξανά και επιβεβαιώστε στο αρχείο καταγραφής του διακομιστή ποιος σειριακός αριθμός έγινε δεκτός.
Καταγράψτε τι συνέβη όσο είναι ακόμη φρέσκο: ποιος σειριακός αριθμός ανακλήθηκε, από ποιον, με ποια αιτία, ποια αντικατάσταση εκδόθηκε και πότε το CRL δημοσιεύτηκε ξανά. Αυτό το αρχείο κάνει δυνατή την επόμενη αναθεώρηση ανάκλησης και είναι επίσης η απόδειξη ότι το λάθος αντιμετωπίστηκε αντί να κρυφτεί.
Για σύντομες αναστολές στο μέλλον, χρησιμοποιήστε έναν μηχανισμό παύσης εισδοχής αν η ανάπτυξη διαθέτει — λογαριασμός απενεργοποιημένος στο επίπεδο ταυτότητας, μέλος ομάδας που αφαιρέθηκε, προφίλ πελάτη που κρατήθηκε. Αυτό κρατά μια προσωρινή απόφαση πολιτικής χωριστά από το ερώτημα αν ένα εκδοθέν πιστοποιητικό είναι ακόμη αξιόπιστο, και ακριβώς αυτή η διάκριση χάθηκε την πρώτη φορά.