Γιατί η αντιγραφή του ca.key σε κάθε πελάτη VPN καταστρέφει την CA
Ο πελάτης επαληθεύει το δημόσιο πιστοποιητικό της CA; δεν χρειάζεται ποτέ το κλειδί που υπογράφει. Η αντιγραφή του ca.key σε κάθε συσκευή παραδίδει την εξουσία έκδοσης σε όποιον πάρει ένα αντίγραφο.
Κάπου στις οδηγίες εγκατάστασης, ένας κατάλογος αντιγράφεται ολόκληρος σε κάθε φορητό υπολογιστή επειδή αυτό ήταν ευκολότερο από το να αποφασιστεί ποια αρχεία ανήκουν εκεί. Αυτός ο κατάλογος περιέχει το ca.key, και τη στιγμή που φτάνει σε δεύτερη συσκευή η αρχή πιστοποιητικών παύει να είναι αρχή. Κάθε κάτοχος μπορεί πλέον να εκδίδει ταυτότητες στις οποίες θα βασιστεί το υπόλοιπο δίκτυο.
Αξίζει να ξεδιαλύνουμε αυτή τη σύγχυση μία φορά, γιατί τα δύο αρχεία μοιάζουν και κάνουν αντίθετα πράγματα.
Υλικό επαλήθευσης και υλικό υπογραφής
Ο πελάτης χρειάζεται το δημόσιο πιστοποιητικό της CA για να ελέγξει ότι το πιστοποιητικό που παρουσιάζει ένας ομότιμος έχει υπογραφεί από αυτή την αρχή. Αυτό είναι έργο επαλήθευσης και δεν χρειάζεται κανένα μυστικό. Η υπογραφή του πιστοποιητικού ενός ομότιμου είναι άλλο έργο, που εκτελείται μία φορά από όποιον διαχειρίζεται την CA, με το ιδιωτικό κλειδί που δεν εγκαταλείπει ποτέ την προστατευμένη αποθήκευσή του. Ο διαχωρισμός των δύο έργων είναι όλο το νόημα της αποστολής δύο αρχείων.
Έτσι, το ca.crt ανήκει στο προφίλ και το ca.key δεν ανήκει πουθενά κοντά του. Τα ονόματα αρχείων είναι σύμβαση, όχι εγγύηση, γι’ αυτό ο τύπος πρέπει να εξετάζεται και όχι να συνάγεται από το όνομα.
Μια αρχιτεκτονική με ενδιάμεση CA ή υπηρεσία έκδοσης σε απευθείας σύνδεση δεν αποτελεί εξαίρεση. Είναι ο συνήθης τρόπος να κρατάμε την ικανότητα υπογραφής μακριά από τα τελικά σημεία ενώ εκδίδονται πιστοποιητικά συσκευών σε κλίμακα.
Τι πρέπει να αποδεικνύει ο πελάτης με το δικό του κλειδί
Κάθε συσκευή αποκτά το δικό της ζεύγος κλειδιών και το δικό της πιστοποιητικό, υπογεγραμμένο μία φορά από την CA. Ο πελάτης παρουσιάζει αυτό το πιστοποιητικό και αποδεικνύει την κατοχή του αντίστοιχου ιδιωτικού κλειδιού, και ο διακομιστής αποφασίζει αν θα το δεχτεί. Αυτή είναι η ταυτότητα που ανακαλείται όταν χαθεί ένας φορητός υπολογιστής.
Η αντίθεση μετράει περισσότερο μετά από κλοπή. Με ταυτότητες ανά συσκευή, ένας εκτεθειμένος πελάτης αφαιρείται με ανάκληση ή με αφαίρεση του ομότιμου, και ο υπόλοιπος στόλος συνεχίζει να λειτουργεί.
Ένα κλειδί αρχής που διέρρευσε δεν αντιμετωπίζεται έτσι. Κάθε πιστοποιητικό που υπέγραψε ποτέ ή θα μπορούσε να υπογράψει γίνεται ύποπτο, οπότε η απάντηση είναι αντικατάσταση της εμπιστοσύνης και όχι μία ανάκληση. Αυτό είναι έργο, όχι αίτημα υποστήριξης.
| File | Role | Belongs on |
|---|---|---|
ca.crt | Public certificate used to verify signatures | Every client profile |
ca.key | Private key that issues certificates | Protected CA storage only |
| client key pair | Proves one device's identity | That device alone |
Διαβάστε ένα αρχείο πριν το αντιγράψετε οπουδήποτε
Δύο εντολές σας λένε τι είδους αντικείμενο κρατάτε χωρίς να εκτυπώσουν κανένα μυστικό. Η πρώτη αναφέρει το υποκείμενο και τη σημαία CA σε ένα πιστοποιητικό· η δεύτερη επικυρώνει ένα κλειδί και αναφέρει τον τύπο του. Εκτελέστε και τις δύο στα αρχεία του πακέτου που πρόκειται να διανείμετε. Ό,τι επικυρώνεται ως ιδιωτικό κλειδί δεν ανήκει σε κατάλογο πελάτη.
openssl x509 -in ca.crt -noout -subject -ext basicConstraints openssl pkey -in ca.key -noout -check
Αν η δεύτερη εντολή πετύχει σε αρχείο που βρίσκεται σε πακέτο πελάτη, σταματήστε και θεωρήστε το πακέτο παραβιασμένο. Η έξοδος που λέει ότι ένα κλειδί είναι έγκυρο λέει επίσης ότι είναι παρόν, και η παρουσία είναι όλο το πρόβλημα.
Προσέξτε και την άλλη κατεύθυνση: ένα προφίλ πελάτη περιέχει νόμιμα το ιδιωτικό κλειδί αυτού του πελάτη. Η διαγραφή κάθε κλειδιού που βρίσκετε σπάει τη σύνδεση χωρίς να βελτιώνει τίποτα, γι’ αυτό το αντικείμενο πρέπει να αναγνωριστεί πριν αφαιρεθεί.
Περιορισμός ενός κλειδιού που έχετε ήδη διανείμει
Μην υποθέτετε ότι η διαγραφή του τοπικού αντιγράφου αντιστρέφει την έκθεση. Όποιος είχε το αρχείο μπορεί να το αντέγραψε, και η ασφαλής υπόθεση είναι ότι το έκανε. Ακολουθήστε τη διαδικασία περιστατικών του διαχειριστή και αντικαταστήστε την άγκυρα εμπιστοσύνης, επανεκδίδοντας πιστοποιητικά συσκευών υπό νέα CA.
Έπειτα αλλάξτε τη συσκευασία που δημιούργησε το πρόβλημα. Στέλνετε μια λίστα καταλόγου με ρητή λίστα επιτρεπόμενων αρχείων, κρατάτε το κλειδί της CA σε μηχάνημα που δεν ενώνεται ποτέ με τον στόλο πελατών, και καταγράφετε ποιο σύστημα το φυλάει.
Αν η αρχή πρέπει να εκδίδει συχνά, μετακινήστε την υπογραφή πίσω από μια υπηρεσία ή μια ενδιάμεση αρχή με στενό πεδίο και σύντομη ισχύ. Έτσι ένα μελλοντικό λάθος εκθέτει ένα υποσύνολο της έκδοσης και όχι τη ρίζα εμπιστοσύνης όλης της ανάπτυξης.