Ένα αίτημα για πιστοποιητικό φτάνει στα εισερχόμενά σας: ένας προμηθευτής χρειάζεται το πιστοποιητικό πελάτη σας, ένας νέος load balancer χρειάζεται το wildcard, ένας συνάδελφος χρειάζεται το πιστοποιητικό υπογραφής για να βγάλει μια έκδοση. Το αρχείο που ζητούν μπορεί να είναι αβλαβές ή μπορεί να είναι το ιδιωτικό κλειδί με το οποίο οποιοσδήποτε μπορεί να υποδυθεί την υπηρεσία σας, και τα δύο συχνά ταξιδεύουν στο ίδιο πακέτο αρχείων.
Για να στείλετε με ασφάλεια ένα ιδιωτικό πιστοποιητικό μέσω ασφαλούς συνδέσμου, βρείτε πρώτα ποιο από τα δύο μέρη χρειάζεται πραγματικά, κλειδώστε το ιδιωτικό κλειδί ώστε να είναι άχρηστο χωρίς κωδικό πρόσβασης, στείλτε το αρχείο με έναν σύνδεσμο μίας χρήσης που καταστρέφεται μετά από μία λήψη και στείλτε τον κωδικό από άλλο δρόμο. Ο οδηγός αυτός περνά από κάθε βήμα, με τις εντολές.
Το πιστοποιητικό είναι δημόσιο. Το κλειδί δεν είναι.
Ένα πιστοποιητικό περιέχει ένα δημόσιο κλειδί, το υποκείμενο για το οποίο εκδόθηκε, τον εκδότη και τις ημερομηνίες ισχύος. Είναι φτιαγμένο για να δίνεται: κάθε πρόγραμμα περιήγησης που συνδέεται στον ιστότοπό σας το λαμβάνει. Το ιδιωτικό κλειδί είναι το ξεχωριστό μυστικό που αποδεικνύει ότι το πιστοποιητικό είναι δικό σας. Όποιος το έχει μπορεί να αποκρυπτογραφήσει κίνηση που προορίζεται για εσάς, να υπογράψει στο όνομά σας ή να στήσει έναν διακομιστή που παριστάνει ότι είστε εσείς.
Το πρώτο ερώτημα λοιπόν είναι αν ο παραλήπτης χρειάζεται καθόλου το κλειδί.
| Ο παραλήπτης θέλει να | Χρειάζεται | Ευαίσθητο; |
|---|---|---|
| Εμπιστευτεί την υπηρεσία σας ή επαληθεύσει μια υπογραφή | Το πιστοποιητικό (και ίσως την αλυσίδα της CA) | Όχι |
| Εγκαταστήσει TLS σε διακομιστή ή συσκευή που διαχειρίζεται | Πιστοποιητικό, αλυσίδα και ιδιωτικό κλειδί | Ναι |
| Υπογράψει κώδικα ή έγγραφα ως ο οργανισμός σας | Πιστοποιητικό και ιδιωτικό κλειδί | Ναι, ιδιαίτερα |
| Κάνει έλεγχο ταυτότητας σε σύστημα με πιστοποιητικό πελάτη | Πιστοποιητικό και ιδιωτικό κλειδί | Ναι |
Αν η απάντηση είναι η πρώτη γραμμή, στείλτε το αρχείο .crt ή .cer με όποιον τρόπο θέλετε και σταματήστε εδώ. Όλα όσα ακολουθούν αφορούν τις γραμμές όπου το κλειδί πρέπει να μετακινηθεί.
Ελέγξτε τι περιέχει το αρχείο πριν το στείλετε
Οι καταλήξεις αρχείων παραπλανούν. Ένα .pem μπορεί να περιέχει πιστοποιητικό, κλειδί ή και τα δύο. Ένα .pfx ή .p12 συνήθως περιέχει πιστοποιητικό, αλυσίδα και κλειδί, προστατευμένα με κωδικό πρόσβασης. Ελέγξτε πριν από την αποστολή:
# what is in this PEM?
openssl x509 -in cert.pem -noout -subject -issuer -dates
grep -c "PRIVATE KEY" cert.pem # 0 means no key inside
# what is in this PFX? (prompts for the password)
openssl pkcs12 -in bundle.pfx -info -noout
Επιβεβαιώστε ότι το υποκείμενο είναι αυτό που ζήτησε ο παραλήπτης και ότι η ημερομηνία λήξης δεν έχει περάσει. Η αποστολή λάθος πιστοποιητικού είναι συχνή. Η αποστολή λάθος πιστοποιητικού μαζί με το κλειδί του είναι παραβίαση ασφαλείας.
Πακετάρετε το κλειδί ώστε να είναι άχρηστο από μόνο του
Αν το κλειδί πρέπει να ταξιδέψει, μην το στείλετε ποτέ γυμνό. Βάλτε το σε μια μορφή κρυπτογραφημένη με κωδικό πρόσβασης, τον οποίο θα στείλετε χωριστά.
# bundle certificate, chain and key into a password-protected PFX
openssl pkcs12 -export -out service.pfx \
-inkey service.key -in service.crt -certfile chain.crt
# or encrypt a PEM key on its own
openssl pkey -in service.key -aes-256-cbc -out service.enc.key
Χρησιμοποιήστε έναν μακρύ κωδικό που δημιούργησε ένας διαχειριστής κωδικών πρόσβασης. Ο κωδικός είναι ο δεύτερος παράγοντας: όποιος αποκτήσει το αρχείο εξακολουθεί να μην μπορεί να το χρησιμοποιήσει, και όποιος αποκτήσει τον κωδικό δεν έχει πού να τον εφαρμόσει.
Στείλτε το αρχείο με ασφαλή σύνδεσμο μίας χρήσης
Ο σύνδεσμος είναι το βήμα της παράδοσης, και ο στόχος είναι να μη μείνει αντίγραφο του αρχείου σε κανένα μήνυμα μετά.
- Επαληθεύστε τον παραλήπτη με μια πηγή που ήδη εμπιστεύεστε: το ticket, την επαφή του προμηθευτή που έχετε στο αρχείο, ένα τηλεφώνημα. Ένα αίτημα για πιστοποιητικό από μια απρόσμενη διεύθυνση θέλει τηλεφώνημα, όχι απάντηση.
- Δημιουργήστε έναν μυστικό σύνδεσμο με το αρχείο συνημμένο. Από έναν λογαριασμό LinkPilot όπου έχετε συνδεθεί, ανοίξτε την ενότητα «Μυστικοί σύνδεσμοι», επιλέξτε «Νέος μυστικός σύνδεσμος» και επισυνάψτε το PFX ή το κρυπτογραφημένο PEM. Κάθε αρχείο έχει όριο 9 MB, χιλιάδες φορές μεγαλύτερο από οποιοδήποτε πακέτο κλειδιού. Το συνημμένο κρυπτογραφείται στο πρόγραμμα περιήγησής σας πριν από το ανέβασμα και διαγράφεται την πρώτη φορά που θα γίνει λήψη του.
- Ορίστε τη λήξη στο πραγματικό χρονικό περιθώριο. Μία ώρα αν ο παραλήπτης περιμένει, 24 ώρες αν υπάρχει διαφορά ώρας. Η μία και μοναδική λήψη είναι ο κύριος έλεγχος. Η λήξη είναι η δικλίδα ασφαλείας για έναν σύνδεσμο που δεν ανοίγει κανείς.
- Ορίστε το όριο προβολών σε μία. Αν δύο μηχανικοί χρειάζονται και οι δύο το πακέτο, ο καθένας παίρνει δικό του σύνδεσμο.
- Προσθέστε φράση πρόσβασης στον σύνδεσμο σε λογαριασμό Pro, αν θα περάσει από κανάλι που βλέπουν και άλλοι.
- Στείλτε τον σύνδεσμο με μία γραμμή εξήγησης: ποιο πιστοποιητικό, ποιο σύστημα, πότε λήγει.
- Στείλτε τον κωδικό του αρχείου από άλλο κανάλι. Με γραπτό μήνυμα στο κινητό, με τηλεφώνημα ή με δεύτερο μυστικό σύνδεσμο που ακολουθεί άλλη διαδρομή. Ποτέ στο ίδιο μήνυμα με τον σύνδεσμο του αρχείου και ποτέ στο όνομα του αρχείου.
Αν το κλειδί είναι κείμενο PEM και είναι μικρό, μπορείτε να το επικολλήσετε απευθείας στο δωρεάν εργαλείο μυστικών συνδέσμων αντί να επισυνάψετε αρχείο. Το κείμενο κρυπτογραφείται στο πρόγραμμα περιήγησής σας και καταστρέφεται στο πρώτο άνοιγμα με τον ίδιο τρόπο.
Πείτε στον παραλήπτη τι να κάνει με αυτό
Στείλτε τις οδηγίες εγκατάστασης μαζί με το μήνυμα εξήγησης, όχι μαζί με τον κωδικό:
- Ποιο αρχείο να περιμένει, τη μορφή του και το σύστημα στο οποίο ανήκει.
- Πού να το αποθηκεύσει: στον φάκελο πιστοποιητικών του διακομιστή, με δικαιώματα μόνο για τον λογαριασμό υπηρεσίας, ή στον χώρο πιστοποιητικών του λειτουργικού συστήματος. Όχι στις Λήψεις, όχι σε κοινόχρηστο δίσκο.
- Να διαγράψει το αντίγραφο που κατέβασε μόλις το εισαγάγει, και να μην το κάνει ποτέ commit σε αποθετήριο.
- Να επιβεβαιώσει την παραλαβή με το όνομα αρχείου και το αποτύπωμα (fingerprint), ποτέ στέλνοντας πίσω το αρχείο:
openssl x509 -in service.crt -noout -fingerprint -sha256
Μετά την αποστολή
Ελέγξτε ότι ο σύνδεσμος εμφανίζεται ως «revealed» (εμφανίστηκε) και ότι ο παραλήπτης επιβεβαιώνει ότι το αποτύπωμα ταιριάζει. Οι λογαριασμοί Pro βλέπουν στο ιστορικό ενεργειών (audit log) την ακριβή ώρα της λήψης. Αν ο σύνδεσμος ανοίχτηκε πριν φτάσει σε αυτόν ο παραλήπτης ή αν το αρχείο στάλθηκε σε λάθος διεύθυνση, μην περιμένετε ενδείξεις κατάχρησης: ανακαλέστε το πιστοποιητικό στην CA που το εξέδωσε, δημιουργήστε νέο ζεύγος κλειδιών, εκδώστε το ξανά και αντικαταστήστε το πιστοποιητικό παντού όπου είναι εγκατεστημένο.
Καταγράψτε ποιος παρέλαβε ποιο πιστοποιητικό και πότε, και κρατήστε αυτή την καταγραφή. Το αρχείο πρέπει να υπάρχει στα συστήματα που το χρειάζονται και πουθενά στο ενδιάμεσο.
