Σε αυτό το πρωτόκολλο, απαιτείται έλεγχος ταυτότητας των χρηστών. Μπορούν να το κάνουν αυτό με κωδικούς πρόσβασης, αρχεία που περιέχουν ιδιωτικά κλειδιά RSA, συσκευές υλικού όπως το Ledger Nano S και το Ledger Nano X κ.λπ.
Ορισμένα μέσα ελέγχου ταυτότητας είναι πιο ασφαλή από άλλα: η χρήση μιας συσκευής υλικού που έχει σχεδιαστεί για την αποθήκευση ενός ιδιωτικού κλειδιού χωρίς να καθιστά δυνατή την εξαγωγή του είναι πιο ασφαλής από την αποθήκευση του ιδιωτικού κλειδιού σε ένα αρχείο. Δυστυχώς, τα πιο ασφαλή είναι επίσης πιο επώδυνα στη χρήση. Οι χρήστες που έχουν τα κλειδιά τους σε μια συσκευή πρέπει να έχουν μαζί τους τη συσκευή, πρέπει να πληκτρολογούν τον κωδικό PIN κάθε φορά που ξεκινούν μια περίοδο λειτουργίας SSH, κ.λπ. Αυτό καθιστά αρκετά δύσκολο να υποστηρίξουμε τρόπους πιο ασφαλείς από τους κωδικούς πρόσβασης και τα αρχεία για περιπτώσεις χρήσης όπου η ασφάλεια της πρόσβασης δεν είναι η προτεραιότητα.
Το ερώτημα λοιπόν είναι: είναι δυνατόν να αποθηκεύεται το υλικό ελέγχου ταυτότητας με μεγαλύτερη ασφάλεια από ό,τι σε ένα αρχείο (το οποίο μπορεί να κλαπεί από κάποιο κακόβουλο λογισμικό), χωρίς να αλλάξει η εμπειρία χρήστη;
Και η απάντηση είναι: ναι, χρησιμοποιώντας ένα TPM!
Κάποια ιστορία
Για αρκετό καιρό, οι υπολογιστές ήταν σε θέση να ενσωματώσουν απευθείας ένα τσιπ ασφαλείας. Αυτό το τσιπ, που ονομάζεται Trusted Platform Module (TPM), παρέχει πολλές δυνατότητες, συμπεριλαμβανομένης της δυνατότητας προστασίας των ιδιωτικών κλειδιών που χρησιμοποιούνται στην κρυπτογραφία δημόσιου κλειδιού.
Καθώς είναι ενσωματωμένο σε υπολογιστές, δεν χρειάζεται να συνδέσετε μια συσκευή στον υπολογιστή για να τη χρησιμοποιήσετε. Αυτό θεωρείται επομένως λιγότερο ασφαλές από μια συσκευή υλικού που μπορεί να αποθηκευτεί σε διαφορετικό μέρος από τον υπολογιστή (αυτό επιτρέπει την επιβολή της αρχής ότι ενώ η συσκευή δεν είναι συνδεδεμένη στον υπολογιστή, κανένα κακόβουλο λογισμικό δεν μπορεί να χρησιμοποιήσει τα μυστικά που είναι αποθηκευμένα σε αυτήν).
Επομένως, το TPM δεν είναι η «καλύτερη ασφάλεια», αλλά εξακολουθεί να είναι πολύ πιο ασφαλές από τη χρήση αρχείων όπως π.χ $HOME/.ssh/id_rsa
για την αποθήκευση ιδιωτικών κλειδιών.
Πώς μπορεί να χρησιμοποιηθεί το TPM με το OpenSSH στο Linux; Με ένα έργο που ονομάζεται tpm2-pkcs11
, ακολουθώντας τις οδηγίες που είναι διαθέσιμες σε πολλούς ιστότοπους εδώ και πολλά χρόνια, συμπεριλαμβανομένων των επίσημη τεκμηρίωση από το αποθετήριο κωδικών του.
Τώρα, ποια είναι τα νέα; Αυτό το λογισμικό είναι τώρα τελικά συσκευασμένο σε Ubuntu και Debian, γεγονός που το καθιστά επιτέλους διαθέσιμο στους περισσότερους χρήστες Linux!
Πιο συγκεκριμένα εδώ είναι ένα χρονοδιάγραμμα:
- Το 2014 δημοσιεύτηκαν οι κύριες προδιαγραφές για το TPM 2.0. Για την αλληλεπίδραση με ένα TPM από το λογισμικό, έγινε μια προσπάθεια τυποποίησης και δημιουργήθηκαν δύο μη συμβατές στοίβες λογισμικού: αυτή από την Trusted Computing Group (TCG), που ονομάζεται Στοίβα λογισμικού TPM (TSS), και αυτό από την IBM, που επίσης καλείται Στοίβα λογισμικού TPM.
- Το 2018, το έργο
tpm2-pkcs11
δημιουργήθηκε για να παρέχει μια διεπαφή PKCS#11 σε ένα TPM 2.0, χρησιμοποιώντας το TSS του TCG. PKCS # 11 είναι ένα πρότυπο που ορίζει μια διεπαφή προγραμματισμού εφαρμογής (API) με το όνομα Cryptoki να χρησιμοποιήσει μάρκες αποθήκευσης κρυπτογραφικών κλειδιών. Καθώς το OpenSSH υποστηρίζει τη χρήση μιας διεπαφής PKCS#11 για την εκτέλεση ελέγχου ταυτότητας χρήστη, αυτό επέτρεψε τη χρήση του TPM για την αποθήκευση των κλειδιών που χρησιμοποιούνται για τον έλεγχο ταυτότητας SSH. - Τον Φεβρουάριο του 2019,
tpm2-pkcs11
προστέθηκε στο Fedora 29. - Τον Σεπτέμβριο του 2019, το CentOS 8 κυκλοφόρησε με αυτό το πακέτο.
- Τον Απρίλιο 2020,
tpm2-pkcs11
προστέθηκε στο Debian sid. Δυστυχώς δεν περιείχε το πρόγραμμαtpm2_ptool
που είναι απαραίτητο για την εύκολη δημιουργία κλειδιών. Αυτό το ζήτημα αναφέρθηκε στο Σφάλμα Debian #968310. - Τον Ιανουάριο του 2021, το πακέτο του Debian ήταν καθορίζεται (και ο συντηρητής αναγνώρισε τη βοήθειά μου!).
- Τον Απρίλιο του 2021, το Ubuntu 21.04 Ιπποπόταμος αφέθηκε ελεύθερος με το σταθερό πακέτο.
- Τον Αύγουστο του 2021, το Debian 11 Bullseye αφέθηκε ελεύθερος με το σταθερό πακέτο
Τώρα tpm2-pkcs11
είναι διαθέσιμο σε Debian, Ubuntu και σε πολλές άλλες διανομές Linux που αναφέρονται Απολογία.
Χρήση tpm2-pkcs11
Στο Debian 11, ακολουθούν τα βήματα για τη δημιουργία και τη χρήση ενός νέου κλειδιού SSH που είναι αποθηκευμένο με ασφάλεια από το TPM:
- Εντολή εγκατάστασης
tpm2_ptool
και βιβλιοθήκηlibtpm2_pkcs11.so.1
, τα οποία παρέχονται από δύο πακέτα:
2. Ελέγξτε ότι το σύστημα μπορεί να χρησιμοποιήσει ένα TPM 2.0. Εάν ένας από τους ακόλουθους ελέγχους αποτύχει, μπορεί να σημαίνει ότι το σύστημα δεν έχει TPM ή TPM 1.2 ή έχει TPM 2.0 που είναι απενεργοποιημένο στις ρυθμίσεις του BIOS:
3. Προσθέστε τον τρέχοντα χρήστη στην ομάδα που έχει πρόσβαση στη συσκευή TPM /dev/tpmrm0
. Στο Debian και στο Ubuntu, οι χρήστες πρέπει να ανήκουν σε μια ομάδα με όνομα tss
(χάρη στη διαμόρφωση που παρέχεται από tpm-udev
πακέτο). Η ακόλουθη εντολή προσθέτει τον τρέχοντα χρήστη σε αυτήν την ομάδα:
Ξεκινήστε ένα κατάστημα χρήστη, που προστατεύεται από κωδικό πρόσβασης και α ΣΟΠΙΝ και δημιουργήστε ένα κλειδί, για παράδειγμα ένα κλειδί Ελλειπτικής Καμπύλης στην καμπύλη με το όνομα "NIST P-256" (γνωστό και ως "secp256r1"):
4. Το ακρωνύμιο ΣΟΠΙΝ μέσα Προσωπικός Αριθμός Αναγνώρισης Αξιωματικού Ασφαλείας και είναι μια ιδέα από τις προδιαγραφές του PKCS#11. Σε περιπτώσεις απλής χρήσης, μπορεί να θεωρηθεί ως «κωδικός πρόσβασης ανάκτησης» που επιτρέπει την τροποποίηση του κωδικού πρόσβασης όταν για παράδειγμα έχει χαθεί.
5. Εμφανίστε το δημόσιο κλειδί αυτού του νέου κλειδιού:
6. Διαμορφώστε το νέο δημόσιο κλειδί σε έναν διακομιστή, για παράδειγμα γράφοντάς το $HOME/.ssh/authorized_keys
ή στις ρυθμίσεις λογαριασμού του GitHub ή σε οποιαδήποτε άλλη τοποθεσία όπου χρησιμοποιούνται δημόσια κλειδιά SSH.
7. Διαμορφώστε τον πελάτη SSH για χρήση tpm2-pkcs11
για να συνδεθείτε στον διακομιστή, για παράδειγμα γράφοντας αυτό στο $HOME/.ssh/config
(πλευρά πελάτη):
Σύνδεση στον διακομιστή (Σημείωση το προηγούμενο βήμα μπορεί να παραλειφθεί:
Μελλοντική δουλέια
Η προηγούμενη ενότητα παρουσίασε πώς να δημιουργήσετε ένα νέο κλειδί στο TPM. Ενώ αυτό επιτρέπει τη χρήση ενός TPM για την προστασία του ελέγχου ταυτότητας SSH, υπάρχουν δύο χαρακτηριστικά που απαιτούνται για να γίνει μια πραγματική εναλλακτική λύση στη χρήση αρχείων για την αποθήκευση ιδιωτικών κλειδιών:
- Δυνατότητα #1: εισαγωγή υπαρχόντων κλειδιών SSH σε ένα TPM αντί για δημιουργία νέων (που επιτρέπει την ομαλή μετάβαση στην αποθήκευση TPM, δημιουργία αντιγράφων ασφαλείας των κλειδιών, σε περίπτωση που ο υπολογιστής σπάσει ή χαθεί κ.λπ.).
- Δυνατότητα #2: χρήση κλειδιών SSH χωρίς κωδικό πρόσβασης, όπως μη προστατευμένα αρχεία ιδιωτικού κλειδιού (αυτή η δυνατότητα είναι πιο ασφαλής από τα βασικά αρχεία, καθώς το προστατευμένο κλειδί δεν μπορεί να εξαχθεί από το TPM).
Εφάρμοσα και τις δύο δυνατότητες tpm2-pkcs11
και τα υπέβαλαν στα Αιτήματα Τραβήγματος #681 και #695. Το χαρακτηριστικό #1 παρουσιάστηκε επίσης τον Μάιο κατά τη διάρκεια της εβδομαδιαίας διαδικτυακής κλήσης του κοινότητα tpm.dev και η ηχογράφηση είναι διαθέσιμη https://developers.tpm.dev/posts/14389750.
Επομένως, και οι δύο λειτουργίες είναι πιθανό να είναι διαθέσιμες σε μελλοντική έκδοση του tpm2-pkcs11
.
Παρεμπιπτόντως, για τους περίεργους αναγνώστες που θέλουν να κατανοήσουν τα εσωτερικά του tpm2-pkcs11
, δημοσίευσα ένα άρθρο σχετικά με αυτά στο συνέδριο SSTIC 2021, με το όνομα Προστασία ελέγχου ταυτότητας SSH με TPM 2.0 (άρθρο στα αγγλικά, παρουσίαση στα γαλλικά). Επιπλέον, οι αναγνώστες που θέλουν να δοκιμάσουν πράγματα χωρίς να αγγίξουν ένα πραγματικό TPM θα μπορούσαν να ενδιαφέρονται για την ενότητα "Εξομοίωση ενός TPM 2.0" αυτού του άρθρου.
(Απεικόνιση: Rainer Knäpper, Δωρεάν άδεια τέχνης)
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoAiStream. Web3 Data Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- Minting the Future με την Adryenn Ashley. Πρόσβαση εδώ.
- Αγορά και πώληση μετοχών σε εταιρείες PRE-IPO με το PREIPO®. Πρόσβαση εδώ.
- πηγή: https://www.ledger.com/blog/ssh-with-tpm
- :έχει
- :είναι
- :δεν
- :που
- $UP
- 1
- 11
- 13
- 14
- 15%
- 2014
- 2018
- 2019
- 2020
- 2021
- 30
- 8
- 80
- a
- ικανότητα
- Ικανός
- Σχετικά
- πρόσβαση
- Λογαριασμός
- αναγνώρισε
- προσθέτω
- προστιθέμενη
- Προσθέτει
- συνήγορος
- Επίσης
- εναλλακτική λύση
- an
- και
- απάντηση
- κάθε
- api
- Εφαρμογή
- Απρίλιος
- ΕΙΝΑΙ
- Τέχνη
- άρθρο
- AS
- At
- Αύγουστος
- επικυρωμένο
- Πιστοποίηση
- διαθέσιμος
- υποστήριξη
- BE
- γίνονται
- ήταν
- και οι δύο
- Σπασμένος
- Έντομο
- αλλά
- by
- κλήση
- CAN
- δεν μπορώ
- κουβαλάω
- περίπτωση
- περιπτώσεις
- CGI
- αλλαγή
- έλεγχος
- έλεγχοι
- τσιπ
- πελάτης
- κωδικός
- υπολογιστή
- υπολογιστές
- χρήση υπολογιστή
- έννοια
- Διάσκεψη
- διαμόρφωση
- Connect
- συνδεδεμένος
- θεωρούνται
- θα μπορούσε να
- δημιουργία
- δημιουργήθηκε
- δημιουργία
- κρυπτογραφικό
- κρυπτογράφηση
- περίεργος
- Ρεύμα
- καμπύλη
- Ορίζει
- σχεδιασμένα
- Dev
- συσκευή
- Συσκευές
- DID
- διαφορετικές
- δύσκολος
- κατευθείαν
- ανάπηρος
- Display
- Διανομές
- do
- τεκμηρίωση
- κάνει
- κατά την διάρκεια
- εύκολα
- προσπάθεια
- Ελλειπτικές
- embed
- ενσωματωμένο
- ενεργοποιημένη
- δίνει τη δυνατότητα
- επιβολή
- Αγγλικά
- κ.λπ.
- ΠΑΝΤΑ
- Κάθε
- παράδειγμα
- υφιστάμενα
- εμπειρία
- εκχύλισμα
- αποτυγχάνει
- Χαρακτηριστικό
- Χαρακτηριστικά
- Φεβρουάριος
- Αρχεία
- Αρχεία
- Τελικά
- καθορίζεται
- Εξής
- Για
- Δωρεάν
- Γαλλικά
- από
- μελλοντικός
- παράγουν
- GitHub
- Group
- υλικού
- συσκευή υλικού
- συσκευές υλικού
- Έχω
- εδώ
- Πως
- Πώς να
- HTML
- http
- HTTPS
- i
- IBM
- Αναγνώριση
- if
- εφαρμοστεί
- εισαγωγή
- in
- Συμπεριλαμβανομένου
- ασύμβατες
- κινήσει
- αντί
- οδηγίες
- αλληλεπιδρούν
- ενδιαφερόμενος
- περιβάλλον λειτουργίας
- σε
- ζήτημα
- IT
- ΤΟΥ
- Ιανουάριος
- Ιανουάριος 2021
- jpg
- Κλειδί
- πλήκτρα
- γνωστός
- Καθολικό
- Ledger Nano
- Ledger Nano S
- Ledger Nano X
- μείον
- Μου αρέσει
- Πιθανός
- linux
- Εισηγμένες
- τοποθεσία
- έχασε
- Κυρίως
- κάνω
- ΚΑΝΕΙ
- Κατασκευή
- malware
- πολοί
- υλικό
- max-width
- Ενδέχεται..
- εννοώ
- μέσα
- ενότητα
- περισσότερο
- Εξάλλου
- πλέον
- πολύ
- my
- Ονομάστηκε
- nano
- απαραίτητος
- Ανάγκη
- που απαιτούνται
- Νέα
- νέα
- Όχι.
- τώρα
- of
- Αξιωματικός
- on
- ONE
- αυτά
- διαδικτυακά (online)
- or
- τάξη
- ΑΛΛΑ
- Άλλα
- πακέτο
- συσκευάζονται
- Packages
- επώδυνος
- Κωδικός Πρόσβασης
- Κωδικοί πρόσβασης
- εκτελέσει
- προσωπικός
- Μέρος
- πλατφόρμες
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- βύσμα
- δυνατός
- ακριβώς
- παρουσίαση
- παρουσιάζονται
- προηγούμενος
- αρχή
- προτεραιότητα
- ιδιωτικός
- ιδιωτικού κλειδιού
- Ιδιωτικά κλειδιά
- Προγραμματισμός
- σχέδιο
- προστασία
- προστατεύονται
- προστασία
- πρωτόκολλο
- παρέχουν
- παρέχεται
- παρέχει
- δημόσιο
- δημόσιο κλειδί
- δημόσια κλειδιά
- δημοσιεύθηκε
- ερώτηση
- αναγνώστες
- πραγματικός
- εγγραφή
- απελευθερώνουν
- κυκλοφόρησε
- αναφέρθηκαν
- απαιτείται
- RSA
- s
- Τμήμα
- προστατευμένο περιβάλλον
- ασφαλώς
- ασφάλεια
- δει
- Σεπτέμβριος
- Συνεδρίαση
- ρυθμίσεις
- διάφοροι
- πλευρά
- Απλούς
- So
- λογισμικό
- μερικοί
- προσδιορισμός
- προδιαγραφές
- Στοίβες
- πρότυπο
- Βήμα
- Βήματα
- Ακόμη
- κλαπεί
- χώρος στο δίσκο
- κατάστημα
- αποθηκεύονται
- υποβάλλονται
- τέτοιος
- υποστηριζόνται!
- σύστημα
- από
- ευχαριστώ
- ότι
- Η
- Η εβδομαδιαία
- τους
- Τους
- Εκεί.
- επομένως
- αυτοί
- πράγματα
- αυτό
- ώρα
- χρονοδιάγραμμα
- προς την
- κουπόνια
- αφορών
- μετάβαση
- Έμπιστος
- προσπαθώ
- δύο
- τύπος
- Ubuntu
- καταλαβαίνω
- Δυστυχώς
- χρήση
- μεταχειρισμένος
- Χρήστες
- Η εμπειρία χρήστη
- Χρήστες
- χρησιμοποιώντας
- θέλω
- ήταν
- Τρόπος..
- τρόπους
- ιστοσελίδες
- εβδομαδιαίος
- ήταν
- πότε
- Ποιό
- ενώ
- Ο ΟΠΟΊΟΣ
- με
- χωρίς
- γραφή
- X
- χρόνια
- Ναί
- zephyrnet