Αλλαγή κωδικού πρόσβασης VPN χωρίς αποκλεισμό κάθε συσκευής
Η αλλαγή του κωδικού δεν ενημερώνει τα αποθηκευμένα αντίγραφα. Καταγράψτε κάθε πελάτη, αντικαταστήστε την αποθηκευμένη τιμή στον ιδιοκτήτη της και σταματήστε τον βρόχο επαναλήψεων.
Τρία τηλέφωνα, ένας δρομολογητής και ένας έλεγχος παρακολούθησης κρατούν ακόμη τον παλιό κωδικό πρόσβασης, και ένα από αυτά επανασυνδέεται κάθε ενενήντα δευτερόλεπτα. Ο κωδικός του λογαριασμού άλλαξε πριν από δέκα λεπτά, οπότε καθένας από αυτούς τους πελάτες υποβάλλει τώρα μια τιμή που ο διακομιστής απορρίπτει. Αυτή είναι η στιγμή που σπάει ο μύθος: μια αλλαγή κωδικού αγγίζει τον λογαριασμό, όχι τα αντίγραφα της παλιάς τιμής σε κάθε συσκευή. Αυτό που ακολουθεί είναι η δουλειά που δεν έκανε η αλλαγή.
Ο μύθος: μια αλλαγή, παντού ταυτόχρονα
Η πεποίθηση είναι ότι μια αλλαγή κωδικού αποσυνδέει τα πάντα και επιβάλλει καθαρή επανασύνδεση. Δεν το κάνει, επειδή ο διακομιστής παρακολουθεί μόνο ποια διαπιστευτήρια δέχτηκε τελευταία, ενώ οι πελάτες κρατούν ό,τι αποθήκευσαν. Μια συσκευή με αποθηκευμένο κωδικό τον επαναλαμβάνει με το δικό της χρονοδιάγραμμα και αποτυγχάνει ήσυχα μέχρι κάποιος να προσέξει ότι ο λογαριασμός είναι κλειδωμένος. Μόλις δεχτείτε ότι τα αντίγραφα ζουν έξω από τον λογαριασμό, η εναλλαγή παύει να μοιάζει με μία μόνο ενέργεια.
Τίποτα από αυτά δεν επιχειρηματολογεί κατά της εναλλαγής. Επιχειρηματολογεί υπέρ του να αντιμετωπίζονται τα αποθηκευμένα αντίγραφα ως μέρος της αλλαγής και όχι ως υστερόσκέψη. Ο αποκλεισμός συνήθως προέρχεται από παράλληλες επαναλήψεις: κάθε συσκευή συνεχίζει να υποβάλλει την παλιά τιμή με το δικό της χρονοδιάγραμμα μέχρι να ενεργοποιηθεί ο μετρητής. Τότε ο λογαριασμός φαίνεται να δέχεται επίθεση, ενώ απλώς του προσφέρονται διαπιστευτήρια που κανείς δεν αντικατέστησε. Αυτή η διάκριση έχει σημασία, επειδή η λύση είναι μια λίστα συσκευών και όχι μια αυστηρότερη πολιτική αποκλεισμού.
Καταγράψτε τα αντίγραφα πριν την εναλλαγή
Γράψτε την καταγραφή πριν ανοίξετε τη φόρμα κωδικού. Καταγράψτε κάθε πελάτη, σενάριο, αυτοματισμό και διαχειριζόμενο προφίλ που ταυτοποιείται ως αυτός ο λογαριασμός: το τηλέφωνο που συνδέεται μόνο του, τον δρομολογητή που ρυθμίστηκε πριν από δύο χρόνια, το φορητό που ξυπνά μόνο τις Δευτέρες, και τον έλεγχο παρακολούθησης που προσπαθεί κάθε λεπτό. Για καθένα, σημειώστε πού αποθηκεύονται τα διαπιστευτήρια, αν η συσκευή είναι προσβάσιμη κατά την αλλαγή και ποια διαδρομή ανάκτησης υπάρχει αν δεν μπορεί να επανασυνδεθεί. Αυτή η λίστα μετατρέπει μια επικίνδυνη αλλαγή σε προγραμματισμένη, και πρέπει να υπάρχει πριν σταματήσει να λειτουργεί ο παλιός κωδικός.
Οι συσκευές εκτός σύνδεσης είναι η κλασική παράλειψη. Ένα φορητό σε ένα συρτάρι επιστρέφει τρεις εβδομάδες αργότερα και παρουσιάζει την παρωχημένη τιμή στην χειρότερη δυνατή στιγμή. Σημειώστε και τη θέση και το χρονοδιάγραμμά του, γιατί θα πρέπει να το κυνηγήσετε αντί να το περιμένετε.
Σε έναν στόλο Linux η αναζήτηση είναι μηχανική και όχι έξυπνη. Αναζητήστε προφίλ που αναφέρονται σε αρχείο διαπιστευτηρίων και μετά τα ίδια τα αρχεία διαπιστευτηρίων, γιατί η δεύτερη λίστα είναι αυτή που πρέπει να ξαναγραφτεί. Επαναλάβετε την άσκηση για πελάτες επιφάνειας εργασίας και τηλέφωνα, όπου ο χώρος αποθήκευσης είναι προφίλ ή καταχώριση κλειδοθήκης και όχι διαδρομή. Ο στόχος είναι μια λίστα με την οποία μπορείτε να δουλέψετε, όχι μια σάρωση που ισχυρίζεται ότι βρίσκει κάθε αντίγραφο.
grep -rl auth-user-pass /etc/openvpn /etc/NetworkManager
grep -rl auth-user-pass ~/.config 2>/dev/null
Μετρήστε τα αντίγραφα απέναντι στους ανθρώπους που τα κατέχουν. Μια συσκευή που κανείς δεν διεκδικεί είναι μια συσκευή που κανείς δεν θα ενημερώσει, και είναι επίσης εκείνη που πιθανότατα θα συνεχίσει να επαναλαμβάνει.
Ποιο μυστικό εναλλάσσετε πραγματικά
Ένας κωδικός λογαριασμού είναι μόνο ένα διαπιστευτήριο σε μια ανάπτυξη VPN. Μια φράση πρόσβασης κλειδιού, μια ταυτότητα πιστοποιητικού και ένα προαιρετικό μυστικό ομότιμου έχουν καθένα τη δική του διαδρομή αντικατάστασης και τον δικό του ιδιοκτήτη. Η αλλαγή του κωδικού λογαριασμού δεν κάνει τίποτα για μια συσκευή που ταυτοποιείται με πιστοποιητικό, και η επανέκδοση πιστοποιητικού δεν κάνει τίποτα για έναν πελάτη που κρατά αποθηκευμένο κωδικό. Ονομάστε το μυστικό πριν ονομάσετε τη λύση.
Αν η εναλλαγή καθοδηγείται από υποψία και όχι από πολιτική, η διαδικασία περιστατικού υπερισχύει του σχεδίου ευκολίας. Ανακαλέστε ό,τι απαιτούν τα στοιχεία και δεχτείτε την επιπλέον δουλειά στη λίστα συσκευών. Αυτή η απόφαση ανήκει στον υπεύθυνο του περιστατικού, όχι σε όποιον τυχαίνει να κρατά τη φόρμα επαναφοράς κωδικού.
Αντικαταστήστε την αποθηκευμένη τιμή εκεί που ζει
Αλλάξτε τα διαπιστευτήρια μέσω του μηχανισμού που τεκμηριώνει η υπηρεσία, μετά ενημερώστε το αποθηκευμένο αντίγραφο ή εκτελέστε τη ροή σύνδεσης σε κάθε συσκευή που σκοπεύετε να κρατήσετε. Μην επεξεργάζεστε μια παραγόμενη διαμόρφωση πίσω από έναν διαχειριστή που την ξαναγράφει, γιατί ο διαχειριστής επαναφέρει την παλαιότερη τιμή στην επόμενη εκτέλεση και η επεξεργασία γίνεται καθυστερημένη βλάβη. Ενημερώστε την πηγή που διαβάζει ο διαχειριστής ή χρησιμοποιήστε το δικό του χώρο διαπιστευτηρίων του πελάτη. Όπως και να έχει, η συσκευή πρέπει να καταλήξει με τη νέα τιμή στο σημείο που ο πελάτης διαβάζει πραγματικά.
Ένας πελάτης που αποθηκεύει αρχείο κωδικού χρειάζεται το ξαναγραμμένο αρχείο, ενώ ένας πελάτης που ρωτά χρειάζεται ολοκληρωμένη σύνδεση. Το NetworkManager κρατά το μυστικό μέσα στο προφίλ σύνδεσης, οπότε η αλλαγή περνά από το nmcli και όχι από επεξεργαστή κειμένου:
nmcli connection modify work vpn.secrets "password=NEW"
nmcli connection up work
Ένα προφίλ που διαβάζει αρχείο διαπιστευτηρίων είναι τρίτη περίπτωση. Αντικαταστήστε το περιεχόμενο αυτού του αρχείου, κρατήστε τα δικαιώματά του κλειστά και επαναφορτώστε τον πελάτη αντί να επεξεργαστείτε το προφίλ που δείχνει σε αυτό. Το προφίλ δεν άλλαξε· άλλαξε μόνο το μυστικό που διαβάζει.
Επανασυνδέστε κάθε προοριζόμενη συσκευή μία φορά, σκόπιμα, και δείτε ποιες αποτυγχάνουν. Αν μια συσκευή συνεχίζει να αποτυγχάνει, κοιτάξτε τον λογαριασμό στον οποίο δείχνει και τον χώρο που διαβάζει πριν αλλάξετε ξανά τον κωδικό, γιατί μια δεύτερη αλλαγή πολλαπλασιάζει τα αντίγραφα που χρειάζονται ενημέρωση. Μια συσκευή που αποτυγχάνει δύο φορές συνήθως δείχνει σε λάθος λογαριασμό ή διαβάζει έναν χώρο που δεν έχετε βρει ακόμη. Διορθώστε το και μετά επανασυνδέστε.
Οι συνεδρίες και τα διακριτικά ζουν περισσότερο από τον κωδικό
Η αλλαγή κωδικού δεν αποδεικνύει ότι οι υπάρχουσες συνεδρίες ή τα ξεχωριστά πιστοποιητικά ανακλήθηκαν. Ορισμένες υπηρεσίες κρατούν μια συνεδρία ζωντανή μέχρι να λήξει ή να τερματιστεί ρητά, και τα εκδοθέντα διακριτικά φέρουν τη δική τους διάρκεια ζωής. Ελέγξτε τι κάνει πραγματικά η υπηρεσία αντί να υποθέσετε ότι η αλλαγή ήταν καθολική. Αν η αλλαγή καθοδηγήθηκε από υποψία, τερματίστε τις συνεδρίες ρητά και επιβεβαιώστε το αποτέλεσμα.
Η καθοδήγηση για τον κύκλο ζωής διαπιστευτηρίων στο NIST SP 800-63B κρατά τους αυθεντικοποιητές και τις συνεδρίες σε ξεχωριστές κατηγορίες, γι’ αυτό μια αλλαγή κωδικού και μια καθολική αποσύνδεση είναι διαφορετικές λειτουργίες. Αντιμετωπίστε τις ως δύο εργασίες με δύο κριτήρια ολοκλήρωσης. Η πρώτη τελειώνει όταν λειτουργεί η νέα τιμή, και η δεύτερη όταν οι παλιές συνεδρίες έχουν φύγει.
Καταγράψτε την ολοκλήρωση χωρίς να γράψετε τον νέο κωδικό στην εγγραφή. Ένα αρχείο καταγραφής εναλλαγής που περιέχει τα διαπιστευτήρια είναι ένα νέο περιστατικό που περιμένει σε κοινόχρηστο δίσκο. Σημειώστε την ημερομηνία, τις συσκευές που ενημερώθηκαν και τις συσκευές που εκκρεμούν.