Πρώτα η μέθοδος EAP: ποιο hash κωδικού μπορεί να χρησιμοποιήσει ένα VPN
Το VPN επαληθεύει το μυστικό, όχι το hash του ιστού. Διαβάστε τη μέθοδο και μετά ελέγξτε τι κρατά η αποθήκη πριν υποσχεθείτε ότι οι ίδιοι κωδικοί θα συνεχίσουν να λειτουργούν.
Πολλές ομάδες έχουν μια σύνδεση ιστού που λειτουργεί και ένα VPN που απορρίπτει κάθε κωδικό από τον ίδιο πίνακα. Η διαδικτυακή εφαρμογή συγκρίνει ένα hash που υπολόγισε η ίδια, ενώ το τούνελ ζητά από τον πελάτη να αποδείξει κατοχή ενός μυστικού με τρόπο που ο διακομιστής πρέπει να μπορεί να ελέγξει. Αυτές είναι διαφορετικές απαιτήσεις από το αποθηκευμένο υλικό. Στο κενό μεταξύ τους κολλάνε οι περισσότερες από αυτές τις προσπάθειες.
Διαβάστε τη μέθοδο και μετά το σχήμα
Γράψτε ποια απόδειξη απαιτεί η επιλεγμένη μέθοδος πριν κοιτάξετε οποιοδήποτε σχήμα. Μια μέθοδος πρόκλησης-απόκρισης χρειάζεται υλικό από το οποίο ο διακομιστής μπορεί να υπολογίσει την αναμενόμενη απόκριση, που στην πράξη σημαίνει τον κωδικό ή μια συμβατή παράγωγη μορφή. Μια μέθοδος που μεταφέρει τον κωδικό μέσα σε προστατευμένο τούνελ χρειάζεται τον ίδιο τον κωδικό στον επαληθευτή. Διαβάστε την τεκμηρίωση της μεθόδου για την απαίτηση του επαληθευτή και όχι για τη διαμόρφωση του πελάτη, γιατί οι απαιτήσεις του πελάτη είναι συνήθως το εύκολο μέρος.
Ένα hash με αλάτι που παράγει ένα σύγχρονο πλαίσιο ιστού δεν παρέχει κανένα από τα δύο. Επαληθεύει μία συγκεκριμένη σύγκριση και δεν μπορεί να επιστρέψει στο μυστικό από το οποίο προήλθε.
Η πρόκληση-απόκριση δεν μπορεί να χρησιμοποιήσει hash με αλάτι
Το MSCHAPv2 είναι ανταλλαγή πρόκλησης-απόκρισης, οπότε ο διακομιστής δεν λαμβάνει ποτέ τον κωδικό και δεν μπορεί να συγκρίνει μια αποθηκευμένη συμβολοσειρά. Πρέπει να παράγει την αναμενόμενη απόκριση από υλικό που ήδη κατέχει, και γι' αυτό οι συμβατές αποθηκευμένες μορφές είναι τόσο στενές. Μια τιμή bcrypt ή Argon2 με αλάτι ανά χρήστη είναι μονόδρομη με τρόπο που αποκλείει εντελώς την ανταλλαγή. Ο πίνακας παρακάτω ξεκινά από τη μορφή αποθήκευσης και όχι από το όνομα της μεθόδου, γιατί η μορφή αποθήκευσης είναι αυτή που καθορίζει την απάντηση.
| What the store holds | What that material can verify | What has to change |
|---|---|---|
| A bcrypt or Argon2 value with a per-user salt | nothing challenge-response can use, and not the password either | re-enrol the users, or place a verifying service in front |
| An unsalted NT-hash | MSCHAPv2, and inner PAP through a TLS tunnel | nothing, as long as that store is the verifier |
| A client certificate with a revocation list | EAP-TLS only | move enrolment and revocation to the PKI owner |
Η τεκμηρίωση του πρόσθετου SQL για το strongSwan ορίζει δικό της σχήμα για διαμόρφωση και διαπιστευτήρια, και το έργο εξακολουθεί να χαρακτηρίζει αυτό το πρόσθετο πειραματικό. Τίποτα σε αυτή δεν προσαρμόζεται στον πίνακα χρηστών μιας εφαρμογής ούτε μαντεύει ποιο σχήμα κατακερματισμού παρήγαγε μια αποθηκευμένη τιμή. Οι ρεαλιστικές επιλογές είναι επομένως η μετάβαση σε μια αποθήκη που μπορεί να χρησιμοποιήσει η πύλη, ή μια υπηρεσία ταυτοποίησης μπροστά από την υπάρχουσα αποθήκη που μπορεί να εκτελέσει την ανταλλαγή. Οτιδήποτε άλλο είναι ένας συνδετήρας με κρυφή παραδοχή μέσα του.
Το RADIUS μετακινεί την εργασία, όχι την απαίτηση
Η ανάθεση του EAP σε διακομιστή RADIUS αλλάζει πού γίνεται η επαλήθευση και συνήθως βελτιώνει το ίχνος ελέγχου. Δεν ανακτά κωδικό από μονόδρομο hash, οπότε η υπηρεσία ταυτοποίησης χρειάζεται ακόμη υλικό συμβατό με τη μέθοδο που τερματίζει. Οι ομάδες το ανακαλύπτουν αφού χτίσουν τη διαδρομή RADIUS και συναντήσουν τον ίδιο τοίχο στην άλλη άκρη.
Όπου ο διακομιστής RADIUS μπορεί να διαβάσει έναν κατάλογο με συμβατά διαπιστευτήρια, ο σχεδιασμός λειτουργεί και η πύλη VPN μένει απλή. Όπου δεν μπορεί, η ειλικρινής απάντηση είναι αλλαγή εγγραφής και όχι άλλος συνδετήρας. Η παροχή και η ανάκληση ανήκουν σε όποιον κατέχει την ταυτότητα, οπότε ένας αντιγραμμένος πίνακας χωρίς υποστηριζόμενη διαδικασία συγχρονισμού είναι δεύτερος κύκλος ζωής διαπιστευτηρίων και όχι ενιαία σύνδεση. Ξεφεύγει την πρώτη φορά που κάποιος επαναφέρει κωδικό σε ένα μόνο σημείο, και η απόκλιση μένει σιωπηλή ώσπου ένας λογαριασμός που υπάρχει και στα δύο συστήματα να συμπεριφέρεται διαφορετικά σε καθένα.
Περιορίστε τον λογαριασμό που διαβάζει τον κατάλογο σε αυτή μόνο την ανάγνωση και κρατήστε τον χωριστά από τον λογαριασμό που χρησιμοποιεί η πύλη για τη δική της διαμόρφωση. Ένας κοινός διαχειριστικός λογαριασμός μετατρέπει έναν σχεδιασμό μόνο για ανάγνωση σε πολύ ευρύτερη ακτίνα ζημιάς.
Πού πρέπει να ζει ο λογαριασμός
Όταν το ζήτημα του υλικού διευθετηθεί, μένουν δύο αρχιτεκτονικές. Η πύλη μπορεί να έχει μια μικρή αποθήκη διαπιστευτηρίων που διαβάζει μόνο εκείνη, ή μπορεί να αναθέσει σε μια υπηρεσία ταυτοποίησης που στέκεται μπροστά από τον εταιρικό κατάλογο.
Η πρώτη είναι ευκολότερη στη σκέψη και χειρότερη για τον χρήστη, που καταλήγει με δεύτερο κωδικό να συντηρεί. Η δεύτερη κρατά μία ταυτότητα και προσθέτει εξάρτηση από μια υπηρεσία που τώρα πρέπει να είναι διαθέσιμη πριν συνδεθεί οποιοσδήποτε. Καμία δεν είναι λάθος, αλλά η επιλογή πρέπει να καταγραφεί δίπλα στη διαμόρφωση της πύλης, γιατί αλλιώς ο επόμενος μηχανικός θα υποθέσει ότι επιλέχθηκε η άλλη. Ό,τι κι αν διαλέξετε, οι δύο εντολές παρακάτω δείχνουν την τρέχουσα κατάσταση πριν την αλλάξετε.
mysql -N -e "SELECT id, username FROM vpn_users WHERE active = 1 LIMIT 5" vpn
swanctl --list-connsΗ ταυτοποίηση λογαριασμού επίσης δεν λύνει την εξουσιοδότηση. Η συμμετοχή σε ομάδες, η κατάσταση της συσκευής και η άδεια δικτύου χρειάζονται ακόμη ρητή αντιστοίχιση αφού ο χρήστης αποδείξει την απαιτούμενη ταυτότητα. Μια σύνδεση που ταυτοποιείται τέλεια και δεν εξουσιοδοτεί τίποτα είναι αποτέλεσμα πολιτικής, όχι σφάλμα της μεθόδου.