Δύο έλεγχοι σύνδεσης δεν είναι δύο παράγοντες: VPN και RADIUS
Ο έλεγχος τοπικού λογαριασμού μαζί με το RADIUS είναι δύο επαληθεύσεις, όχι δύο τύποι παραγόντων. Συγκρίνετε πολιτικές AND, OR και εφεδρική, και μετά δοκιμάστε τον συνδυασμό.
Η προσθήκη δεύτερου backend πιστοποίησης σε μια πύλη VPN μοιάζει με προσθήκη δεύτερου παράγοντα. Συνήθως προσθέτει δεύτερο έλεγχο, που είναι διαφορετικό αντικείμενο με διαφορετικούς τρόπους αποτυχίας. Το αν πρέπει να πετύχουν και τα δύο, τι αποδεικνύει το καθένα και τι συμβαίνει όταν ένα δεν είναι διαθέσιμο είναι τρεις ξεχωριστές αποφάσεις. Αν τα κάνετε λάθος, η πύλη καταλήγει αυστηρότερη στην επίδειξη και ασθενέστερη σε μια διακοπή.
Τι αποδεικνύει στην πραγματικότητα ένα δεύτερο backend
Μια αναζήτηση τοπικού λογαριασμού αποδεικνύει ότι ένα όνομα υπάρχει σε μια βάση δεδομένων και ότι ένας κωδικός πρόσβασης του ταίριαζε. Μια ανταλλαγή RADIUS αποδεικνύει ότι ένας διακομιστής RADIUS επέστρεψε Access-Accept για τα γνωρίσματα που έλαβε. Καμία από τις δύο δηλώσεις δεν αναφέρει τύπο παράγοντα, επειδή και οι δύο επαληθεύουν γνώση. Και η οδηγία του NIST για την ψηφιακή ταυτότητα μετρά διαφορετικούς τύπους παραγόντων και τους αυθεντικοποιητές τους, όχι διακομιστές ή προτροπές.
Υπάρχει ένα νόμιμο σχέδιο όπου συμμετέχουν και τα δύο συστήματα. Μια κεντρική υπηρεσία μπορεί να πιστοποιήσει το άτομο, ενώ η πύλη ελέγχει ανεξάρτητα αν αυτός ο λογαριασμός δικαιούται αυτό το τούνελ. Αυτό είναι εξουσιοδότηση δίπλα στην πιστοποίηση, και το να το αποκαλείς διπλό παράγοντα συγχέει έλεγχο πολιτικής με απόδειξη κατοχής.
Το RADIUS μπορεί να μεταφέρει πραγματικό δεύτερο παράγοντα όταν βρίσκεται μπροστά από κάτι που επαληθεύει έναν, όπως έγκριση push ή διακριτικό υλικού. Ο φάκελος δεν λέει ποιους αυθεντικοποιητές επέδειξε ο χρήστης, οπότε διαβάστε την πολιτική του backend και όχι την ετικέτα της πύλης.
AND, OR και εφεδρική είναι διαφορετικά προϊόντα
Πριν συγκρίνετε υλοποιήσεις, αποφασίστε τι σημαίνει το και τα δύο στην απαίτησή σας. Μια πολιτική AND απαιτεί να περάσει κάθε ονομαστικός έλεγχος, μια πολιτική OR δέχεται όποιον πετύχει, και μια εφεδρική δοκιμάζει τον δεύτερο μόνο υπό δηλωμένες συνθήκες αποτυχίας. Αυτά τα τρία συμπεριφέρονται αντίθετα κατά τη διάρκεια μιας διακοπής, και συνήθως μόνο ένα είναι αυτό που είχε κατά νου η αναθεώρηση.
Η προσθήκη δύο καταχωρίσεων backend σε μια οθόνη διαμόρφωσης δεν αποκαλύπτει ποια πολιτική εφαρμόζει το προϊόν. Μερικές πύλες αλυσιδώνουν πρόσθετα με σειρά και σταματούν στην πρώτη απόρριψη, κάτι που είναι AND μόνο όταν κάθε πρόσθετο είναι υποχρεωτικό. Άλλες αντιμετωπίζουν τον τοπικό λογαριασμό ως παράκαμψη, που μετατρέπει μια κεντρική διακοπή σε παράκαμψη. Η αξιόπιστη απάντηση είναι ένα τεκμηριωμένο αρνητικό τεστ για κάθε διαδρομή, εκτελεσμένο στο build που αναπτύσσετε.
Η εφεδρική αξίζει τη μεγαλύτερη καχυποψία, γιατί υπάρχει για να συνεχίζει να λειτουργεί όταν κάτι έχει χαλάσει. Μια εφεδρική που δέχεται τοπικό κωδικό πρόσβασης όποτε το RADIUS δεν είναι προσβάσιμο έχει μετατρέψει μια κεντρική πολιτική σε δεύτερη, ασθενέστερη πόρτα.
Ο διπλός έλεγχος του OpenVPN είναι συγκεκριμένη περίπτωση
Το κοινοτικό OpenVPN 2.6 απαιτεί τόσο πιστοποιητικό πελάτη όσο και το διαμορφωμένο σενάριο auth-user-pass-verify όταν και τα δύο είναι ενεργά. Αυτό είναι ένα τεκμηριωμένο AND μεταξύ επαλήθευσης πιστοποιητικού και σεναρίου διαπιστευτηρίων, και είναι πραγματικά δύο έλεγχοι. Εξακολουθεί να μην είναι αυτόματα δύο τύποι παραγόντων, αφού το σενάριο μπορεί να επικυρώνει μόνο κωδικό πρόσβασης.
Ο συνδυασμός αφήνει επίσης ανοιχτό το ζήτημα της συσχέτισης. Ένα πιστοποιητικό συνήθως ταυτοποιεί συσκευή, ενώ τα διαπιστευτήρια ταυτοποιούν πρόσωπο, και τίποτα στην προεπιλεγμένη ροή δεν απαιτεί και τα δύο να αφορούν τον ίδιο υποκείμενο. Αποφασίστε ποια ζεύγη επιτρέπονται και μετά επιβάλετε αυτόν τον χάρτη μέσα στο σενάριο επαλήθευσης ή σε μεταγενέστερο βήμα εξουσιοδότησης.
Η λειτουργία μόνο πιστοποιητικού είναι ένας έλεγχος, υποστηριζόμενος από κλειδί που μπορεί ή δεν μπορεί να προστατεύεται από PIN. Ένα PIN μετατρέπει το ίδιο διαπιστευτήριο σε γνώση συν κατοχή μόνο αν το κλειδί δεν μπορεί να χρησιμοποιηθεί χωρίς αυτό. Το να αφήνετε το κλειδί μη κρυπτογραφημένο στον δίσκο μειώνει το δεύτερο μέρος σε άδεια αρχείου.
Οι κατασκευαστές συσκευών χτίζουν τη δική τους υδραυλική, συχνά μια μονάδα PAM ή ένα πρόσθετο RADIUS πίσω από μια κονσόλα ιστού. Η συμπεριφορά της κοινότητας είναι αναφορά για το πώς μοιάζουν οι διπλοί έλεγχοι, όχι περιγραφή του πώς τους συνδυάζει μια συσκευή.
Ελέγξτε τον συνδυασμό στην πύλη σας
Διαβάστε τη διαμόρφωση πριν εμπιστευτείτε τη σύνοψη της κονσόλας. Οι γραμμές που καθορίζουν την πολιτική είναι η λειτουργία πιστοποιητικού, το σενάριο διαπιστευτηρίων και η σειρά πρόσθετων.
grep -E 'verify-client-cert|auth-user-pass-verify|plugin' /etc/openvpn/server.conf
openssl x509 -in /etc/openvpn/pki/issued/client01.crt -noout -subject -serial
radtest alice 'wrong-password' 127.0.0.1 0 testing123
Το grep δείχνει αν απαιτείται πιστοποιητικό και ποιο σενάριο εκτελείται μετά από αυτό, και η σειρά μετράει περισσότερο απ' όσο υποδηλώνουν τα ονόματα. Το dump πιστοποιητικού δίνει την ταυτότητα που θα δει η πύλη, μαζί με το CN και τον σειριακό αριθμό που χρειάζεστε για τον χάρτη συσχέτισης. Το τεστ RADIUS είναι η αρνητική περίπτωση: λάθος κωδικός πρέπει να δώσει Access-Reject, και σωστός Access-Accept. Αν ένα απορριφθέν διαπιστευτήριο δίνει ακόμη συνεδρία, το σενάριο δεν είναι καθόλου στη διαδρομή πιστοποίησης.
Έπειτα εκτελέστε την περίπτωση διακοπής σε στιγμιότυπο εργαστηρίου: σταματήστε το απαιτούμενο backend και συνδεθείτε με έγκυρα διαπιστευτήρια. Το αναμενόμενο αποτέλεσμα είναι άρνηση, και οτιδήποτε άλλο είναι η εφεδρική πολιτική που δεν τεκμηρίωσε κανείς.
Γράψτε την απαίτηση ως αρνητικές περιπτώσεις
Μια χρησιμοποιήσιμη απαίτηση ονομάζει τις αποδείξεις, τους λογαριασμούς που επιτρέπεται να τις παρουσιάσουν και το αποτέλεσμα όταν λείπει ένας επαληθευτής. Δηλώνει επίσης το επιτρεπτό ζεύγος μεταξύ ταυτότητας συσκευής και ταυτότητας προσώπου. Αυτό είναι ακριβέστερο από τα ονόματα προϊόντων στην παραγγελία, και μπορεί να δοκιμαστεί.
Η αποδοχή πρέπει να περιλαμβάνει τέσσερις αρνήσεις: ακατάλληλο τοπικό λογαριασμό, απούσα απαιτούμενη απόδειξη, άκυρο δεύτερο παράγοντα και μη προσβάσιμο απαιτούμενο backend. Κάθε άρνηση χρειάζεται μια γραμμή καταγραφής που τη διακρίνει από τις άλλες, αλλιώς το επόμενο περιστατικό ξεκινά με εικασίες. Καταγράψτε ποιο στοιχείο πήρε κάθε απόφαση, αφού η πύλη, ο διακομιστής RADIUS και ο κατάλογος θα κατηγορήσουν ο ένας τους άλλους δύο.
Επαναλάβετε τις τέσσερις αρνήσεις μετά από οποιαδήποτε αλλαγή πρόσθετου ή firmware. Είναι φθηνές, και η πολιτική που προστατεύουν είναι το μέρος που ελέγχει πρώτα ένας επιτιθέμενος.