Η σύνδεση VPN που ελέγχει διαπιστευτήρια σε έναν κατάλογο περιλαμβάνει δύο ξεχωριστές συνδέσεις δικτύου. Η σύνδεση του χρήστη με την πύλη προστατεύεται από το δικό της πιστοποιητικό του VPN και τη ρύθμιση του πρωτοκόλλου. Η σύνδεση της πύλης με τον κατάλογο είναι μια άλλη συνεδρία με δικές της ρυθμίσεις TLS, δικό της trust store και δικούς της τρόπους αποτυχίας. Τίποτα στο πρώτο δεν εγγυάται τίποτα για το δεύτερο.

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

Δύο συνδέσεις, δύο αποφάσεις εμπιστοσύνης

Η εξωτερική συνεδρία είναι αυτό που βλέπει ο χρήστης: ένα πιστοποιητικό δεσμευμένο στο όνομα υπολογιστή του VPN, επικυρωμένο από τον πελάτη, που μεταφέρει την ανταλλαγή ελέγχου ταυτότητας. Η εσωτερική συνεδρία ανήκει στον πελάτη καταλόγου μέσα στην πύλη, ο οποίος ανοίγει τη δική του σύνδεση και είτε διαπραγματεύεται TLS είτε όχι. Κάθε πλευρά επικυρώνει τον συνομιλητή με τον οποίο μιλά, χρησιμοποιώντας υλικό από διαφορετικό αρχείο ρυθμίσεων. Ένα κακώς ρυθμισμένο εσωτερικό σκέλος παραμένει αόρατο από την πλευρά του χρήστη, επειδή το εξωτερικό σκέλος λειτουργεί ακριβώς όπως προβλέπεται.

Γι’ αυτό η αποτυχία είναι σιωπηλή και όχι θορυβώδης. Μια πύλη που δεν ελέγχει ποτέ το πιστοποιητικό του καταλόγου εξακολουθεί να ελέγχει σωστά την ταυτότητα των χρηστών· απλώς την ελέγχει μέσω καναλιού που δεν επαλήθευσε.

StartTLS και LDAPS, επιλεγμένα συνειδητά

Το StartTLS ανοίγει ως απλό LDAP και αναβαθμίζεται επί τόπου, συνήθως στη θύρα 389. Το LDAPS ξεκινά TLS μαζί με τη σύνδεση, συνήθως στη 636. Και τα δύο είναι νόμιμα και ο προσαρμογέας πρέπει να ταιριάζει με αυτό που προσφέρει ο κατάλογος. Το να απαιτείς StartTLS διαφέρει από το να το δοκιμάζεις και να συνεχίζεις όταν η αναβάθμιση αποτύχει, και ακριβώς αυτή η διαφορά είναι το σημείο όπου ένας κωδικός bind μπορεί να διαρρεύσει. Ρυθμίστε την αυστηρή λειτουργία και μην επιτρέπετε ανασφαλή εναλλακτική διαδρομή για bind με κωδικό πρόσβασης.

ldapsearch -H ldap://dc1.corp.example -ZZ -x -D "CN=VPN Bind,OU=Service Accounts,DC=corp,DC=example" -W -b "DC=corp,DC=example" "(sAMAccountName=example-user)" dn

Η επιλογή -ZZ είναι όλο το νόημα: το ερώτημα αποτυγχάνει αντί να προχωρά σιωπηλά χωρίς την αναβάθμιση. Τα ονόματα και οι λογαριασμοί σε αυτή τη γραμμή είναι παραδείγματα. Η τεκμηρίωση TLS του OpenLDAP καλύπτει τις ρυθμίσεις εμπιστοσύνης πίσω από αυτό.

Ποιο trust store διαβάζει ο πελάτης LDAP;

Η βιβλιοθήκη πελάτη του OpenLDAP διαβάζει τη δική της ρύθμιση εμπιστοσύνης, είτε από το αρχείο συστήματος είτε από ρύθμιση ειδική για πρόσθετο. Η οδηγία CA του VPN ισχύει για ομοτίμους VPN και δεν αποτελεί απόδειξη ότι η βιβλιοθήκη LDAP διαβάζει το ίδιο αρχείο. Χρησιμοποιήστε το όνομα υπολογιστή του καταλόγου που καλύπτει πραγματικά το πιστοποιητικό, μαζί με την αλυσίδα έκδοσης που εμπιστεύεται η βιβλιοθήκη. Στο Active Directory, αναπτύξτε πιστοποιητικό υπηρεσίας καταλόγου με τη σωστή χρήση ελέγχου ταυτότητας διακομιστή αντί να συμπεραίνετε από ένα εμφανιζόμενο όνομα.

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

Ο λογαριασμός bind παραμένει ξεχωριστό πρόβλημα

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

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

Δύο συνδέσεις, δύο ιδιοκτήτες, δύο ημερομηνίες ανανέωσης. Το να τις κρατάτε ξεχωριστές στην τεκμηρίωση είναι αυτό που κρατά την είσοδο έντιμη.

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