Το OpenSSH προσθέτει υποστήριξη για καθολικό έλεγχο ταυτότητας δύο παραγόντων

Στη βάση κώδικα OpenSSH προστέθηκε πειραματική υποστήριξη για έλεγχο ταυτότητας δύο παραγόντων με χρήση συσκευών που υποστηρίζουν το πρωτόκολλο U2F, που αναπτύχθηκε από τη συμμαχία FIDO. Το U2F επιτρέπει τη δημιουργία διακριτικών υλικού χαμηλού κόστους για την επαλήθευση της φυσικής παρουσίας του χρήστη, αλληλεπιδρώντας μαζί του μέσω USB, Bluetooth ή NFC. Τέτοιες συσκευές προωθούνται ως μέσο ελέγχου ταυτότητας δύο παραγόντων σε ιστότοπους, υποστηρίζονται ήδη από μεγάλα προγράμματα περιήγησης και παράγονται από διάφορους κατασκευαστές, συμπεριλαμβανομένων των Yubico, Feitian, Thetis και Kensington.

Για την αλληλεπίδραση με συσκευές που επιβεβαιώνουν την παρουσία του χρήστη, ένας νέος τύπος κλειδιών έχει προστεθεί στο OpenSSH "[προστασία μέσω email]” (“ecdsa-sk”), το οποίο χρησιμοποιεί τον αλγόριθμο ψηφιακής υπογραφής ECDSA (Elliptic Curve Digital Signature Algorithm) με ελλειπτική καμπύλη NIST P-256 και κατακερματισμό SHA-256. Οι διαδικασίες για την αλληλεπίδραση με διακριτικά τοποθετούνται σε μια ενδιάμεση βιβλιοθήκη, η οποία φορτώνεται με παρόμοιο τρόπο με τη βιβλιοθήκη για υποστήριξη PKCS#11 και είναι ένα περιτύλιγμα στο επάνω μέρος της βιβλιοθήκης libfido2, το οποίο παρέχει εργαλεία για επικοινωνία με μάρκες μέσω USB (υποστηρίζονται τα πρωτόκολλα FIDO U2F/CTAP 1 και FIDO 2.0/CTAP 2). Ενδιάμεση βιβλιοθήκη libsk-libfido2 που προετοιμάστηκε από προγραμματιστές OpenSSH περιλαμβάνεται στον πυρήνα libfido2, καθώς και HID πρόγραμμα οδήγησης για το OpenBSD.

Για να ενεργοποιήσετε το U2F, μπορείτε να χρησιμοποιήσετε ένα νέο κομμάτι της βάσης κωδικών από αποθήκη OpenSSH και τον κλάδο HEAD της βιβλιοθήκης libfido2, το οποίο περιλαμβάνει ήδη το επίπεδο που είναι απαραίτητο για το OpenSSH.
Το Libfido2 υποστηρίζει OpenBSD, Linux, macOS και Windows.

Για τον έλεγχο ταυτότητας και τη δημιουργία ενός κλειδιού, πρέπει να ορίσετε τη μεταβλητή περιβάλλοντος SSH_SK_PROVIDER, υποδεικνύοντας σε αυτήν τη διαδρομή προς το libsk-libfido2.so (εξαγωγή SSH_SK_PROVIDER=/path/to/libsk-libfido2.so) ή να ορίσετε τη βιβλιοθήκη μέσω του SecurityKeyProvider ρύθμιση και, στη συνέχεια, εκτελέστε το "ssh-keygen -t ecdsa-sk" ή, εάν τα κλειδιά έχουν ήδη δημιουργηθεί και διαμορφωθεί, συνδεθείτε στον διακομιστή χρησιμοποιώντας το "ssh". Όταν εκτελείτε το ssh-keygen, το ζεύγος κλειδιών που δημιουργείται θα αποθηκευτεί στο "~/.ssh/id_ecdsa_sk" και μπορεί να χρησιμοποιηθεί παρόμοια με άλλα κλειδιά.

Το δημόσιο κλειδί (id_ecdsa_sk.pub) θα πρέπει να αντιγραφεί στον διακομιστή στο αρχείο authorized_keys. Από την πλευρά του διακομιστή, επαληθεύεται μόνο η ψηφιακή υπογραφή και η αλληλεπίδραση με τα διακριτικά εκτελείται στην πλευρά του πελάτη (δεν χρειάζεται να εγκαταστήσετε το libsk-libfido2 στον διακομιστή, αλλά ο διακομιστής πρέπει να υποστηρίζει τον τύπο κλειδιού "ecdsa-sk") . Το δημιουργημένο ιδιωτικό κλειδί (id_ecdsa_sk) είναι ουσιαστικά μια λαβή κλειδιού, που σχηματίζει ένα πραγματικό κλειδί μόνο σε συνδυασμό με τη μυστική ακολουθία που είναι αποθηκευμένη στην πλευρά του διακριτικού U2F.

Εάν το κλειδί id_ecdsa_sk πέσει στα χέρια ενός εισβολέα, για να περάσει τον έλεγχο ταυτότητας θα πρέπει επίσης να αποκτήσει πρόσβαση στο διακριτικό υλικού, χωρίς το οποίο το ιδιωτικό κλειδί που είναι αποθηκευμένο στο αρχείο id_ecdsa_sk είναι άχρηστο. Επιπλέον, από προεπιλογή, κατά την εκτέλεση οποιωνδήποτε λειτουργιών με πλήκτρα (τόσο κατά τη δημιουργία όσο και κατά τον έλεγχο ταυτότητας), απαιτείται τοπική επιβεβαίωση της φυσικής παρουσίας του χρήστη, για παράδειγμα, προτείνεται να αγγίξετε τον αισθητήρα στο διακριτικό, γεγονός που καθιστά δύσκολη την πραγματοποιούν απομακρυσμένες επιθέσεις σε συστήματα με συνδεδεμένο διακριτικό. Ως άλλη γραμμή άμυνας, ένας κωδικός πρόσβασης μπορεί επίσης να καθοριστεί κατά τη φάση εκκίνησης του ssh-keygen για πρόσβαση στο αρχείο κλειδιού.

Το κλειδί U2F μπορεί να προστεθεί στον ssh-agent μέσω του "ssh-add ~/.ssh/id_ecdsa_sk", αλλά το ssh-agent πρέπει να δημιουργηθεί με υποστήριξη για κλειδιά "ecdsa-sk", το επίπεδο libsk-libfido2 πρέπει να υπάρχει και το ο πράκτορας πρέπει να εκτελείται στο σύστημα στο οποίο είναι συνδεδεμένο το διακριτικό.
Ένας νέος τύπος κλειδιού "ecdsa-sk" προστέθηκε καθώς η μορφή των κλειδιών OpenSSH ecdsa διαφέρει από τη μορφή U2F για τις ψηφιακές υπογραφές ECDSA παρουσία πρόσθετων πεδίων.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο