Από την πλευρά του πελάτη μοιάζει με τυχαία αποσύνδεση μία ώρα μετά την έναρξη μιας συνεδρίας που δουλεύει. Το εικονίδιο στη γραμμή εργασιών εξαφανίζεται, η σήραγγα ξαναχτίζεται και το αρχείο καταγραφής δείχνει αποτυχία ταυτοποίησης αντί για σφάλμα δικτύου. Αυτό που συνέβη στην πραγματικότητα είναι ότι η συνεδρία επαναδιαπραγματεύτηκε και η δεύτερη χειραψία χρειάστηκε διαπιστευτήρια των οποίων ο πελάτης δεν είχε πλέον έγκυρο αντίγραφο. Ένας κωδικός μίας χρήσης που λειτούργησε στη σύνδεση δεν μπορεί να λειτουργήσει ξανά, οπότε η ανανέωση κλειδιού αποτυγχάνει ακριβώς όπως έχει σχεδιαστεί.

Η διόρθωση είναι μια απόφαση για το τι πρέπει να παρουσιάσει η δεύτερη χειραψία, όχι ένα μεγαλύτερο χρονόμετρο επανάληψης.

Παρακολουθήστε την ανταλλαγή από τη σκοπιά του πελάτη

Στη σύνδεση ο πελάτης στέλνει το όνομα χρήστη, τον κωδικό πρόσβασης και έναν κωδικό από τη συσκευή token, και ο διακομιστής δέχεται τον συνδυασμό. Έπειτα η συνεδρία τρέχει μέχρι να ενεργοποιηθεί ένα έναυσμα επαναδιαπραγμάτευσης, που ξεκινά μια νέα χειραψία TLS μέσα στην υπάρχουσα σήραγγα. Αυτή η χειραψία ζητά ξανά ταυτοποίηση. Αν η διαδρομή ταυτοποίησης του διακομιστή περιμένει κωδικό πρόσβασης συν έναν τρέχοντα κωδικό μίας χρήσης, ο πελάτης δεν έχει νέο κωδικό να προσφέρει εκτός αν ο χρήστης είναι παρών για να πληκτρολογήσει έναν.

Οι περισσότεροι πελάτες δεν ανοίγουν προτροπή στη μέση της συνεδρίας, οπότε η χειραψία λήγει και η σήραγγα πέφτει. Ο χρήστης βλέπει επανασύνδεση, όχι προτροπή ταυτοποίησης, και γι' αυτό η πρώτη αναφορά συνήθως κατηγορεί το δίκτυο.

Το auth-gen-token αλλάζει ποιος απαντά στη δεύτερη ερώτηση

auth-gen-token είναι η επιλογή που επιτρέπει στον διακομιστή να εκδώσει token μετά από επιτυχή σύνδεση, και οι μεταγενέστερες επαναδιαπραγματεύσεις παρουσιάζουν αυτό το token αντί να επαναλαμβάνουν τον κωδικό πρόσβασης και τον κωδικό. Το εγχειρίδιο τεκμηριώνει τη διάρκεια ζωής και τη συμπεριφορά ανανέωσής του, και το token πρέπει να αντιμετωπίζεται ως διαπιστευτήριο με δική του λήξη. Στην προεπιλεγμένη διαδρομή ο διακομιστής επικυρώνει το token μόνος του αντί να καλεί ξανά τον εξωτερικό ταυτοποιητή κωδικού πρόσβασης.

Με μια εξωτερική ενσωμάτωση ταυτοποίησης, αυτή η διαίρεση αλλάζει. Το πρόσθετο πρέπει να κατανοεί την κατάσταση του token και να εφαρμόζει τους δικούς του ελέγχους, γιατί ο διακομιστής δεν είναι πλέον το μόνο στοιχείο που αποφασίζει αν η συνεδρία συνεχίζεται. Το να αντιμετωπίζεται το token ως έναν ακόμη αριθμητικό κωδικό μίας χρήσης δεν είναι υλοποίηση της λειτουργίας.

Αποφασίστε τι συμβαίνει με την κατάσταση του λογαριασμού

Ένα token που επιβιώνει της πρόσβασης ενός λογαριασμού είναι τρύπα πολιτικής. Αποφασίστε πώς ένας απενεργοποιημένος λογαριασμός, μια αφαιρεμένη συμμετοχή σε ομάδα ή μια ανακληθείσα συσκευή τίθενται σε ισχύ ενώ το token είναι ακόμη έγκυρο. Οι σύντομες διάρκειες ζωής των token μικραίνουν το παράθυρο· μια ρητή διαδρομή ανάκλησης το κάνει σκόπιμο. Γράψτε την απάντηση πριν ενεργοποιήσετε την επιλογή, γιατί η προεπιλεγμένη διαδρομή δεν συμβουλεύεται τον εξωτερικό ταυτοποιητή σε κάθε επαναδιαπραγμάτευση.

Σε εγκατάσταση με πολλούς διακομιστές, το μυστικό υπογραφής token πρέπει να μοιράζεται, αλλιώς ο πελάτης μπορεί να σταλεί σε κόμβο που δεν μπορεί να επικυρώσει το token του.

Δοκιμάστε τη λήξη και την επανασύνδεση, όχι μόνο τη σύνδεση

Μειώστε το διάστημα επαναδιαπραγμάτευσης σε προφίλ δοκιμής ώστε η δεύτερη χειραψία να συμβεί ενώ παρακολουθείτε, και μετά ακολουθήστε και τα δύο αρχεία καταγραφής. Επιβεβαιώστε ότι το token εκδίδεται στη σύνδεση, παρουσιάζεται στην ανανέωση κλειδιού και ανανεώνεται ή επανεκδίδεται σύμφωνα με τη διαμορφωμένη διάρκεια ζωής. Έπειτα εξαναγκάστε λήξη του token και πλήρη επανασύνδεση, γιατί ένας πελάτης που επανασυνδέεται καθαρά μπορεί να αποτύχει στη διαδρομή ανανέωσης κλειδιού.

Δοκιμάστε την αφαίρεση λογαριασμού τελευταία. Αυτή η περίπτωση σας λέει αν η πολιτική που γράψατε εφαρμόζεται ή απλώς τεκμηριώνεται.

Μην το διορθώσετε απενεργοποιώντας την ανανέωση

Το να θέσετε το διάστημα επαναδιαπραγμάτευσης στο μηδέν και στα δύο άκρα αφαιρεί το σύμπτωμα και μαζί του την εναλλαγή κλειδιών. Αυτό κρύβει ένα πρόβλημα επανάχρησης διαπιστευτηρίων πίσω από μια αλλαγή πολιτικής που κανείς δεν εξέτασε. Κρατήστε την ανανέωση και επιλέξτε ανάμεσα σε token από τον διακομιστή και σε νέα διαδραστική πρόκληση με βάση το αν υπάρχει χρήστης.

Ένα μεγαλύτερο χρονόμετρο επανάληψης δεν κάνει έναν αναλωμένο κωδικό ξανά έγκυρο. Απλώς καθυστερεί την αποσύνδεση και κάνει το αρχείο καταγραφής δυσανάγνωστο.

Σχετικά άρθρα