Πλήρης οδηγός για τις εντολές /dev/tpm0, /dev/tpmrm0 και τις εντολές tpm2_pcrread και tpm2_pcr_extend στο Linux

  • Το TPM 2.0 επιτρέπει μετρούμενη εκκίνηση και κλειδιά LUKS συνδεδεμένα με PCR, ιδανικά με PIN PBA.
  • Χρησιμοποιήστε τα /dev/tpmrm0 και tpm2_pcrread/tpm2_pcrextend για τη διαχείριση των PCR.
  • Η υπογραφή της πολιτικής UKI + PCR σταθεροποιεί τις ενημερώσεις χωρίς να θυσιάζει την ασφάλεια.
  • Μετριάστε την κρυφή εκκίνηση και το sniffing με PBA και κρυπτογράφηση παραμέτρων· διατηρήστε την ανάκτηση.

Εντολές TPM και tpm2 στο Linux

Τα τελευταία χρόνια, οι μονάδες TPM 2.0 έχουν περάσει από ένα μυστήριο υλικού σε ένα κοινό μέρος οποιουδήποτε σύγχρονου υπολογιστή με UEFI και Secure Boot. Αυτό το άρθρο εξηγεί τι είναι τα /dev/tpm0 και /dev/tpmrm0 και πώς να χρησιμοποιήσετε τα tpm2_pcrread και tpm2_pcrextend. (καθώς και την πραγματική εντολή του στα tpm2-tools), καθώς και εξήγηση του τρόπου με τον οποίο εντάσσονται στις πολιτικές μετρούμενης εκκίνησης, κρυπτογράφησης δίσκου και υπογεγραμμένης PCR στο Linux.

Υπάρχει χρήσιμη τεκμηρίωση, αλλά είναι διάσπαρτη σε σελίδες εγχειριδίου του systemd, καταχωρήσεις wiki και πολύ πυκνές αναρτήσεις. Εδώ συγκεντρώνουμε όλες τις βασικές πληροφορίες (PCR, πρακτικά παραδείγματα, κινδύνους και άμυνες) έτσι ώστε οι τεχνικοί, ακόμη και αν δεν είναι ειδικοί στο TPM, να μπορούν να εργάζονται με αυτά τα εργαλεία χωρίς να χάνονται σε ασαφείς λεπτομέρειες.

Τι είναι το TPM 2.0 και γιατί μπορεί να σας ενδιαφέρει

Μια Μονάδα Αξιόπιστης Πλατφόρμας είναι ένα τσιπ ασφαλείας που βρίσκεται στη μητρική πλακέτα σας (ή μέσα στην CPU όπως το fTPM/Intel PTT) και λειτουργεί ως ασφαλής χώρος αποθήκευσης, γεννήτρια τυχαίων αριθμών και ρίζα εμπιστοσύνης για το σύστημα. Είναι παθητικό: αν δεν το χρησιμοποιήσετε, δεν κάνει τίποτα., αλλά όταν το ενσωματώνετε στη ροή εκκίνησης και την κρυπτογράφηση δίσκου, παρέχει επαλήθευση ακεραιότητας και κλειδιά με προστασία υλικού.

Στην πράξη, ένα TPM 2.0 σας επιτρέπει δύο κύριους τρόπους χρήσης στην κρυπτογράφηση δίσκου: α) δημιουργία/αποθήκευση ενός ισχυρού κλειδιού και προστασία της χρήσης του με ένα PIN με κλείδωμα κατά της βίαιης βίας· β) ενεργοποίηση της λεγόμενης μετρούμενης εκκίνησης, όπου Κάθε στοιχείο εκκίνησης μετριέται σε εγγραφές PCR, επομένως το κλειδί «ξετυλίγεται» μόνο εάν το σύστημα δεν έχει παραβιαστεί (και προαιρετικά με PIN πριν από την εκκίνηση).

/dev/tpm0 και /dev/tpmrm0: διαφορές και πότε να χρησιμοποιείται το καθένα

Στο Linux θα δείτε δύο συσκευές χαρακτήρων όταν είναι διαθέσιμο το TPM 2.0. Το /dev/tpm0 είναι η «ακατέργαστη» διεπαφή του TPMΕνώ Το /dev/tpmrm0 αποκαλύπτει την πρόσβαση μέσω του Resource Manager (ένας διαχειριστής που πολλαπλασιάζει τους πελάτες, διαχειρίζεται τις συνεδρίες και τους πόρους), ο οποίος συνιστάται από το tpm2-tools στις περισσότερες περιπτώσεις.

Εάν δεν είστε σίγουροι για την ύπαρξη ή όχι ενός TPM, μπορείτε να το δοκιμάσετε άμεσα. Εάν το /sys/class/tpm/ είναι κενό ή η εντολή wiki δεν επιστρέφει τίποτα, δεν είναι ορατό TPM: Ενδέχεται να μην υπάρχει φυσικά ή μπορεί να είναι απενεργοποιημένο στο υλικολογισμικό.

# ¿Hay TPM 2.0?
ls /sys/class/tpm/
cat /sys/class/tpm/tpm*/tpm_version_major
# Dispositivos
ls -l /dev/tpm*

Όταν υπάρχουν και οι δύο κόμβοι συσκευών, το tpm2-tools θα εντοπίσει κανονικά το /dev/tpmrm0 και θα το χρησιμοποιήσει αυτόματα. Αν χρειαστεί να επιβάλετε μια συσκευή, τα περισσότερα εργαλεία δέχονται –tcti ή χρησιμοποιήστε μεταβλητές περιβάλλοντος TCTI, αλλά για συνήθεις εργασίες δεν είναι συνήθως απαραίτητο.

TPM PCRs: Πώς λειτουργούν και τι μετρούν

Τα Μητρώα Διαμόρφωσης Πλατφόρμας είναι εγγραφές που αποθηκεύουν κατακερματισμούς (συνήθως SHA-256) της κατάστασης των κρίσιμων στοιχείων σε κάθε φάση εκκίνησης. Αρχικοποιούνται στο μηδέν κατά τον κύκλο ενεργοποίησης και μπορούν μόνο να «επεκταθούν»: ποτέ μην ξαναγράφετε ή σβήνετε (εκτός από περιπτώσεις εντοπισμού σφαλμάτων όπως η PCR 16).

Η βασική λειτουργία είναι η επέκταση: νέα_τιμή = SHA256(τρέχουσα_τιμή || SHA256(δεδομένα))Με αυτόν τον τρόπο, οι μετρήσεις συνδέονται αλυσιδωτά χωρίς να επιτρέπονται ευκαιριακές επαναφορές. Αυτό το μοτίβο χρησιμοποιείται για τη μέτρηση του υλικολογισμικού, της διαμόρφωσης, της ασφαλούς εκκίνησης, του πυρήνα, της initrd και των παραμέτρων του πυρήνα, μεταξύ άλλων.

Σε σύγχρονο εξοπλισμό θα δείτε 24 PCR (0–23). Τα πιο σχετικά στην εκκίνηση UEFI με systemd είναι:
– PCR 0: κωδικός υλικολογισμικού.
– PCR 1: διαμόρφωση υλικολογισμικού (ρυθμίσεις UEFI).
– PCR 7: Κατάσταση ασφαλούς εκκίνησης και πιστοποιητικά που εμπιστεύεται.
– PCR 9: initrd(s) που μετρήθηκαν από τον πυρήνα.
– PCR 11: UKI (Ενοποιημένη Εικόνα Πυρήνα) και σημάνσεις φάσης μέσω systemd-stub/systemd-pcrphase.
– PCR 12: γραμμή εντολών πυρήνα.

Ανάγνωση και επέκταση PCR με εργαλεία tpm2: tpm2_pcrread και tpm2_pcr_extend

Στα tpm2-tools η ανάγνωση γίνεται με tpm2_pcrread και η επέκταση με tpm2_pcrextendΜερικές φορές θα δείτε το "tpm2_pcr_extend" να αναφέρεται ως η εννοιολογική λειτουργία της επέκτασης, αλλά Η πραγματική εντολή της σουίτας είναι tpm2_pcrextend.

Για να επιθεωρηθεί η τρέχουσα κατάσταση των PCR SHA-256, είναι τόσο απλό όσο:

# Leer PCRs en SHA-256 (ejemplos de índices habituales)
sudo tpm2_pcrread sha256:0,1,7,9,11,12

# O todos los PCRs SHA-256 disponibles
tpm2_pcrread sha256:all

Για να επεκτείνετε μια PCR με το hash αυθαίρετων δεδομένων (ως παιδαγωγικό παράδειγμα, το hash του /etc/passwd), υπολογίστε το SHA-256 και επεκτείνετέ το. Θυμηθείτε: το TPM δεν λαμβάνει τεράστια δεδομένα, αλλά το hash του, λόγω ορίων και σχεδιασμού.

# 1) Guardar el hash de /etc/passwd
echo -n $(sha256sum /etc/passwd | cut -d' ' -f1) > passwd.sha

# 2) Extender PCR 7 (ejemplo) con el hash previo
sudo tpm2_pcrextend 7:sha256=$(cat passwd.sha)

# 3) Ver el nuevo valor del PCR 7
tpm2_pcrread sha256:7

Αν θέλετε να αναπαράγετε τα μαθηματικά επέκτασης εκτός του TPM, Συνενώνετε την τρέχουσα τιμή PCR (δυαδική) με το νέο hash και εφαρμόζετε ξανά το SHA-256 για να ελέγξετε το αποτέλεσμα.

Μπορεί να γίνει επαναφορά μιας PCR;

Υπό κανονικές συνθήκες, όχι. Η φιλοσοφία είναι ότι μια PCR αναπτύσσεται μόνο με επεκτάσειςΥπάρχει μία εξαίρεση: το PCR 16 συνήθως προορίζεται για "εντοπισμό σφαλμάτων" και μπορεί να επαναφερθεί σε ορισμένες ροές, αλλά δεν είναι χρήσιμο ως η ρίζα ασφαλείας της πολιτικής σας.

Μετρημένη εκκίνηση, LUKS και systemd-cryptenroll: Συνδυάζοντας τα κομμάτια

Όταν ενσωματώνετε το TPM στην κρυπτογράφηση του δίσκου σας, μπορείτε να "συνδέσετε" το κλειδί ξεκλειδώματος με ένα σύνολο PCR. Εάν στην τρέχουσα εκκίνηση αυτά τα PCR έχουν τις ίδιες τιμές όπως όταν καταχωρήσατε το κλειδί, η TPM αποσφραγίζεται και ο τόμος LUKS ανοίγει αυτόματα (με ή χωρίς PIN πριν από την εκκίνηση, ανάλογα με τη διαμόρφωσή σας).

Αυτό γίνεται πολύ καλά με τα systemd-cryptenroll και systemd-cryptsetup. Η ιδέα είναι να δημιουργήσετε τον τόμο σας, να εγγράψετε το κλειδί TPM και να προσθέσετε ένα κλειδί ανάκτησης. ώστε να μην μείνετε εκτός αν αλλάξουν οι μετρήσεις (για παράδειγμα, μετά την ενημέρωση του υλικολογισμικού ή του πυρήνα).

# Ejemplo: crear LUKS, matricular TPM y añadir recuperación (pseudoflujo)
# 1) Crear el volumen con contraseña temporal
sudo cryptsetup luksFormat /dev/nvme0n1p2

# 2) Matricular TPM en LUKS usando PCRs concretos y PIN
sudo systemd-cryptenroll \
  --tpm2-device=auto \
  --tpm2-with-pin=yes \
  --tpm2-pcrs=1+2+3+4 \
  --wipe-slot=empty \
  /dev/nvme0n1p2

# 3) Añadir clave de recuperación aleatoria
sudo systemd-cryptenroll --recovery-key /dev/nvme0n1p2

# 4) Abrir con TPM o con recovery cuando proceda
systemd-cryptsetup attach root /dev/nvme0n1p2 - tpm2-device=auto

Αν επιβάλλετε μια ασυμφωνία (για παράδειγμα, επεκτείνετε την PCR 4 σκόπιμα), το TPM δεν θα απελευθερώνει πλέον το κλειδί και θα χρειαστεί να χρησιμοποιήσετε το κλειδί ανάκτησης. Μπορείτε αργότερα να εγγράψετε ξανά το TPM με τις νέες τρέχουσες τιμές χρησιμοποιώντας –υποδοχή-σβησίματος=tpm2 και μια άλλη εκτέλεση του systemd-cryptenroll.

Ποιες PCR να επιλέξετε και γιατί

Όσο πιο σχετικές PCR συνδέετε, τόσο μεγαλύτερη επιφάνεια μειώνετε, αλλά τόσο πιο συχνά θα πρέπει να κάνετε εκ νέου εγγραφή μετά από νόμιμες αλλαγές. Μερικά πρακτικά κριτήρια:
– PCR 7 (Ασφαλής εκκίνηση): Θα πρέπει να είναι πολύ σταθερό εάν το σύνολο κλειδιών σας δεν αλλάξει.
– PCR 0/1 (υλικολογισμικό και διαμόρφωση): Αυτά σπάνια αλλάζουν. Απαιτείται εκ νέου εγγραφή μετά την ενημέρωση του υλικολογισμικού ή την αλλαγή του BIOS/UEFI.
– PCR 9/11/12 (kernel, initrd, UKI και cmdline): Αυτά αλλάζουν συχνά εάν δεν χρησιμοποιείτε UKI ή σταθερή υπογραφή/πολιτική.

Σε ορισμένα περιβάλλοντα έχει παρατηρηθεί να συνδέεται μόνο με το PCR 7, βασιζόμενο στο Secure Boot που επαληθεύει τον πυρήνα και το initrd εάν ξεκινούν ως υπογεγραμμένο UKI και χρησιμοποιώντας το systemd-boot το οποίο δεν επιτρέπει την επεξεργασία παραμέτρων πυρήνα όταν το SB είναι ενεργόΑυτό λειτουργεί, αλλά αν η Ασφαλής Εκκίνηση βασίζεται σε κλειδιά τρίτων (όπως το Microsoft 3rd Party), είναι ευκολότερο να οργανώσετε μια εναλλακτική εκκίνηση που διατηρεί το PCR 7 και επομένως Δεν είναι η πιο περιοριστική επιλογή.

Υπογραφή πολιτικών UKI και PCR: σταθερότητα χωρίς απώλεια ασφάλειας

Μια πρακτική λύση για να αποφύγετε την επανεγγραφή κάθε φορά που ενημερώνετε τον πυρήνα είναι να χρησιμοποιήσετε UKI (Unified Kernel Image) και υπογεγραμμένη πολιτική PCRΔημιουργείτε ένα ζεύγος κλειδιών, συνδέετε το δημόσιο κλειδί με το TPM κατά την εγγραφή και υπογράφετε το UKI σας μετά από κάθε ενημέρωση. Το TPM εμπιστεύεται αυτήν την υπογραφή και επιτρέπει το ξεκλείδωμα ακόμα και αν αλλάξει το συγκεκριμένο hash πυρήνα.

Το εργαλείο systemd-measure και ο βοηθός systemd-ukify κάνουν αυτό εύκολο: Τα πακέτα ukify kernel, initrd και cmdline στο UKI (συνήθως μετριέται στο PCR 11) και το systemd-measure υπογράφει την πολιτική. Με το mkinitcpio, το ukify μπορεί να ενσωματωθεί έτσι ώστε μετά την εγκατάσταση η υπογραφή εκτελείται από μόνη της.

# Esquema típico (pseudocomandos)
# 1) Crear claves para política PCR firmada
openssl genpkey -algorithm RSA -out /etc/kernel/pcr-initrd.key.pem -pkeyopt rsa_keygen_bits:3072
openssl req -new -x509 -key /etc/kernel/pcr-initrd.key.pem -out /etc/kernel/pcr-initrd.pub.pem -subj "/CN=UKI PCR Policy"

# 2) Configurar ukify/mkinitcpio para generar UKI y firmar política
# (consultar man ukify y systemd-measure para parámetros)

# 3) Matricular en LUKS atando PCRs y clave pública de la política
sudo systemd-cryptenroll \
  --tpm2-device=auto \
  --wipe-slot=tpm2 \
  --tpm2-with-pin=yes \
  --tpm2-pcrs=0+1+2+7 \
  --tpm2-public-key=/etc/kernel/pcr-initrd.pub.pem \
  --tpm2-public-key-pcrs=11 \
  /dev/nvme0n1p2

Με αυτόν τον τρόπο, Η πολιτική σας παραμένει σταθερή έναντι αλλαγών στον πυρήνα/initrd, εφόσον συνεχίζετε να υπογράφετε το UKI με το κλειδί σας.Εάν ανανεώσετε τους κωδικούς πρόσβασής σας ή αλλάξετε το σετ PCR, θα πρέπει να εγγραφείτε ξανά.

Παραδείγματα αλυσίδων μέτρησης με systemd

Κατά την εκκίνηση, οι λειτουργίες systemd-stub και systemd-pcrphase επεκτείνουν τις PCR σε συγκεκριμένες χρονικές στιγμές. Για παράδειγμα, η ένδειξη «enter-initrd» καταγράφεται στην PCR 11., επιτρέποντας ένα ξεκλείδωμα να είναι έγκυρο μόνο εντός της initrd (μειώνοντας τα διανύσματα όπου ένας εισβολέας προσπαθεί να επαναχρησιμοποιήσει το κλειδί αργότερα).

Σε συστήματα με UKI, η περιεκτικότητα σε UKI μετριέται στην PCR 11. σε συστήματα χωρίς UKI, Ο πυρήνας μετρά τα initrds στο PCR 9 και ο bootloader μπορεί να μετρήσει την cmdline στο PCR 12. Βεβαιωθείτε ότι καλύπτετε τα initrd και cmdline στην πολιτική σας, διαφορετικά κάποιος θα μπορούσε πίσω πόρτα το initrd ή το boot με μια κακόβουλη cmdline όπως init=/bin/bash.

Πραγματικοί κίνδυνοι: κρύα εκκίνηση, εισπνοή TPM και άλλα

Τι μπορεί να πάει στραβά; Αρκετά πράγματα που πρέπει να γνωρίζετε κατά τη μοντελοποίηση απειλών. Επιθέσεις με κρύες μπότες εξακολουθούν να είναι βιώσιμα: εάν το ξεκλείδωμα είναι πλήρως αυτόματο, ένας εισβολέας μπορεί να επαναλάβει απεριόριστες προσπάθειες. Ο σαφής μετριασμός είναι η απαίτηση ενός PIN πριν από την εκκίνηση (PBA), μειώνοντας τις προσπάθειες σε μία ανά κύκλο ενεργοποίησης.

Μια άλλη κατηγορία είναι η επιθέσεις ανίχνευσης στο δίαυλο TPMΗ CPU ζητά το κλειδί, το TPM το στέλνει. Εάν η σύνδεση παραβιαστεί, το κλειδί μπορεί να διαρρεύσει. Για το σκοπό αυτό, το systemd εφαρμόζει "κρυπτογράφηση παραμέτρων" έτσι ώστε η ανταλλαγή να είναι κρυπτογραφημένη. Εναλλακτικά, η χρήση fTPM/Intel PTT ή κρυπτογραφημένης μνήμης μειώνει την έκθεση. Υπάρχουν σχετικά προσιτές δημόσιες επιδείξεις (ακόμα και με μικροελεγκτές) που δείχνουν τη δυνατότητα εφαρμογής σε φορητούς υπολογιστές μεγάλων εμπορικών σημάτων.

Υπήρξαν επίσης ακαδημαϊκά και πρακτικά τρωτά σημεία: TPM-Αποτυχία, σφάλμα TPM (με αξιοσημείωτη επίδραση στην AMD) και η υπόθεση bitpixie (CVE-2023-21563)Αυτό δεν σημαίνει ότι το TPM είναι άχρηστο, αλλά θα πρέπει να διατηρείτε το υλικολογισμικό σας ενημερωμένο, να κατανοείτε το μοντέλο απειλής σας και να μην το εμπιστεύεστε τυφλά.

Κατάσταση BitLocker έναντι αυτών των απειλών

Στον κόσμο των Windows, η πιο διαδεδομένη κρυπτογράφηση δίσκου είναι το BitLocker. Έχει πλέον σημειωθεί ότι η προεπιλεγμένη διαμόρφωσή του (αυτόματο ξεκλείδωμα μόνο με TPM) Αφήνει ανοιχτή την πόρτα τόσο για την κρύα εκκίνηση όσο και για την ανίχνευση καναλιών TPM, καθώς δεν εφαρμόζει κρυπτογράφηση παραμέτρων τύπου systemd. Αυτό καθιστά ορισμένους εταιρικούς υπολογιστές ευάλωτους σε επιθέσεις μέσα σε λίγα λεπτά.

Η σύσταση εκεί είναι να επιτραπεί έλεγχος ταυτότητας πριν από την εκκίνηση μέσω πολιτικών/μητρώου ή CLI, κάτι που δεν είναι επαρκώς εκτεθειμένο στον μέσο χρήστη. Επίσης, θυμηθείτε να ελέγξετε πού είναι αποθηκευμένο το κλειδί ανάκτησης: συχνά βρίσκεται στον λογαριασμό Microsoft του χρήστη, ο οποίος Είναι μια άλλη οπτική γωνία κινδύνου αν δεν ελεγχθεί.

Επιθετικό/Αμυντικό Κόλπο: Αντικαταστήστε τη ρίζα LUKS για να επιβάλετε τον κωδικό πρόσβασής σας

Υπάρχει ένα ενδιαφέρον διάνυσμα όταν δεν υπάρχει έλεγχος ταυτότητας πριν από την εκκίνηση. Ένας εισβολέας μπορεί να κλωνοποιήσει το πραγματικό διαμέρισμα LUKS, να το αντικαταστήσει με ένα άλλο LUKS με το ίδιο UUID και έναν κωδικό πρόσβασης που γνωρίζεικαι εκκινήστε τον υπολογιστή. Εφόσον οι μετρήσεις PCR ταιριάζουν, το TPM απελευθερώνει το κλειδί, αλλά δεν ταιριάζει με το ψεύτικο LUKS, επομένως η initrd θα ζητήσει το κλειδί "ανάκτησης". Εισάγοντας τον κωδικό πρόσβασης που γνωρίζει ο εισβολέας, το σύστημά σας εκτελείται ως root στην initrd και στη συνέχεια μπορείτε να ενορχηστρώσετε την κλοπή του αρχικού κλειδιού (για παράδειγμα, τοποθετώντας το πραγματικό αντίγραφο μέσω του δικτύου και χρησιμοποιώντας το systemd-cryptsetup).

Σαφείς μετριασμοί: ενεργοποίηση ελέγχου ταυτότητας πριν από την εκκίνηση, αξιοποιήστε το systemd-pcrphase για να συνδέσετε το ξεκλείδωμα αυστηρά με τη φάση initrd και σκεφτείτε επίσης να μετρήσετε/συνδέσετε τον όγκο-στόχο LUKS (απαιτεί προσεκτικό σχεδιασμό για την αποφυγή φαύλων κύκλων).

Επιλογή διαμέρισης και δεύτερου κλειδιού: βέλτιστη πρακτική

Κρατήστε ένα κλειδί ανάκτησης Είναι υποχρεωτικό: εάν η TPM ή η μητρική πλακέτα καταστραφεί, το κλειδί σας που είναι συνδεδεμένο στην TPM είναι άχρηστο. Το LUKS επιτρέπει πολλαπλές υποδοχές (η TPM χρησιμοποιεί μία, η ανάκτηση χρησιμοποιεί άλλη). Επιπλέον, ο διαχωρισμός των διαμερισμάτων / και /home έχει πλεονεκτήματα: μπορείτε να εφαρμόσετε αυστηρή μέτρηση με TPM a/ και χρησιμοποιήστε ένα ισχυρό κλειδί ή μια συσκευή FIDO2/YubiKey για το /home, μειώνοντας τη συνολική εμπιστοσύνη σε έναν μόνο μηχανισμό.

Τι συμβαίνει όταν ενημερώνω το firmware ή τον πυρήνα;

Εάν αλλάξετε το υλικολογισμικό ή αγγίξετε τις επιλογές UEFI, οι PCR όπως 0/1 θα αλλάξουν και το TPM δεν θα αποδεσμεύσει το κλειδί μέχρι να εγγραφείτε ξανά. Για πυρήνας και initrd, οι αλλαγές είναι συχνέςΕάν δεν χρησιμοποιείτε UKI με υπογεγραμμένη πολιτική, κάθε ενημέρωση θα μπορούσε να σας αναγκάσει να χρησιμοποιήσετε την επιλογή ανάκτησης και να κάνετε εκ νέου εγγραφή αργότερα. Με ένα υπογεγραμμένο UKI, απλώς το υπογράφετε και αυτό είναι όλο.

Σημειώσεις και παρατηρήσεις της κοινότητας

Σε ορισμένους δημοφιλείς οδηγούς ορισμένων διανομών έχει προταθεί σύνδεση μόνο PCR 7 κάθε φορά που χρησιμοποιείται UKI και systemd-boot, βασιζόμενο στις διασφαλίσεις του Secure Boot και στην αδυναμία επεξεργασίας της γραμμής cmd. Λειτουργεί, αλλά υπάρχουν κίνδυνοι αν βασίζεστε σε τρίτους. Έχει επίσης καταγραφεί στο παρελθόν ένα σφάλμα όπου το πάτημα του Enter εμφάνιζε ένα κέλυφος αποκατάστασης μετά το ξεκλείδωμα. Είναι καλή ιδέα να διατηρείτε τις εκδόσεις σας ενημερωμένες για να αποφύγετε εκπλήξεις.

Ενδιαφέροντα σχόλια κοινοποιήθηκαν το 2025/06: Το σφάλμα TPM συνεχίζει να επηρεάζει την AMD σε κάποιο βαθμό· τα wiki έχουν προσθέσει συγκεκριμένες ενότητες σχετικά με τις υπογεγραμμένες πολιτικές PCR· και το πρόγραμμα εγκατάστασης για μια διανομή που προσφέρει FDE με TPM ως πειραματική λειτουργία δοκιμάστηκε, με κάποια πρακτικά προβλήματα (απαιτείται ανάκτηση κατά την πρώτη εκκίνηση, εξάρτηση από snaps, κρυπτογράφηση διπλού δίσκου), ένα πρόβλημα που αξίζει έναν πιο εις βάθος έλεγχο.

Μια περαιτέρω δημοσίευση που επικεντρώθηκε στην κρυπτογράφηση δίσκου στα Windows δημοσιεύθηκε το 2025/07. Το συνολικό συμπέρασμα ενισχύει την ανάγκη για PBA και κρυπτογράφηση του καναλιού TPM., καθώς και περιορισμός της εξάρτησης από κλειδιά τρίτων στην Ασφαλή εκκίνηση.

Συμβουλές λειτουργίας με tpm2-tools και systemd

Για καθημερινή χρήση: Εγκαταστήστε τα tpm2-tools και tpm2-tss. Χρησιμοποιεί το /dev/tpmrm0 από προεπιλογήκαι tpm2_pcrread/tpm2_pcrextend για δοκιμές και πειραματισμούς με PCR. Αποφύγετε την επέκταση των PCR παραγωγής με αυθαίρετα δεδομένα: κάντε το σε εργαστήρια ή χρησιμοποιήστε την PCR 16 για δοκιμές.

Κατά την εγγραφή στο systemd-cryptenroll: –tpm2-device=αυτόματο ανιχνεύει TPM; –tpm2-με-ακίδα προσθέτει PBA; –tpm2-pcrs=… επιλέξτε τις PCR σας. –tpm2-δημόσιο-κλειδί-=… και –tpm2-δημόσιο-κλειδί-pcrs=… ενεργοποιήστε μια υπογεγραμμένη πολιτική PCR (π.χ., συνδεδεμένη με την PCR 11 για το UKI). Μην ξεχάσετε –υποδοχή-σβησίματος όταν θέλετε να καθαρίσετε μια προηγούμενη υποδοχή.

Αν δεν έχετε TPM και το systemd σας κάνει να περιμένετε κατά την εκκίνηση

Περιστασιακά, μετά από μια ενημέρωση, μια υπηρεσία επιχειρεί να χρησιμοποιήσει το TPM παρόλο που το μηχάνημά σας δεν το έχει ορατό, προκαλώντας χρονικά όρια κατά την εκκίνηση. Πρώτα ελέγξτε ότι δεν εμφανίζεται /dev/tpm* ούτε καταχωρήσεις στο /sys/class/tpm.

# Verificación rápida
ls /dev/tpm*
ls /sys/class/tpm/

Εάν δεν υπάρχει TPM, ελέγξτε το /etc/crypttab σας δεν έχω επιλογές όπως tpm2-device=autoΕάν υπάρχουν, διαγράψτε τα και δημιουργήστε ξανά την αρχική σας κρυπτογράφηση (initrd). Μπορείτε επίσης να απενεργοποιήσετε τη φάση μέτρησης σε υπολογιστές χωρίς TPM:

# 1) Eliminar referencias TPM en /etc/crypttab y regenerar initrd
sudo mkinitcpio -P    # (o dracut/rebuildinitrd según distro)

# 2) Evitar carga de módulos TPM si el firmware publica algo extraño
echo -e "blacklist tpm\nblacklist tpm_tis\nblacklist tpm_crb" | sudo tee /etc/modprobe.d/no-tpm.conf

# 3) Opcional: evitar pcrphase si te da problemas
sudo systemctl mask systemd-pcrphase.service

Αυτό εξαλείφει την περιττή αναμονή εάν ο εξοπλισμός σας δεν διαθέτει TPM. Εάν αργότερα ενεργοποιήσετε το TPM στο BIOS/UEFI, αφαιρέστε τη μαύρη λίστα και απομασκεύαστε τη μονάδα για να ανακτήσετε τις μετρήσεις.

Καλές πρακτικές και αποφάσεις εμπιστοσύνης

Μερικοί άνθρωποι είναι επιφυλακτικοί με το TPM επειδή είναι ένα "μαύρο κουτί", όπως ακριβώς οι αυτοκρυπτογραφούμενοι δίσκοι. Αυτή είναι μια εύλογη αμφιβολία. Αξιολογήστε το μοντέλο απειλής σας και εξισορροπεί τη χρηστικότητα, το απόρρητο και τη συντήρηση. Για πολλούς ανθρώπους, το TPM+PBA+υπογεγραμμένο UKI αποτελεί ένα τεράστιο άλμα ασφαλείας χωρίς υπερβολικές τριβές.

Σε υλικό που το επιτρέπει, προσθέστε κρυπτογραφημένη μνήμη και αποφύγετε να βασίζεστε σε κλειδιά τρίτων στην Ασφαλή εκκίνηση. Περιορίστε την αλυσίδα στα δικά σας κλειδιά όποτε είναι δυνατόν. Διατηρήστε το υλικολογισμικό και τον πυρήνα ενημερωμένα για να ενσωματώσετε μετριασμούς για δημοσιευμένα τρωτά σημεία.

Η εξοικείωση με τις λειτουργίες /dev/tpm0, /dev/tpmrm0 και tpm2_pcrread/tpm2_pcr_extend ανοίγει την πόρτα για μετρημένη εκκίνηση και ισχυρή κρυπτογράφηση δίσκου στο Linux. Με το UKI και μια υπογεγραμμένη πολιτική PCR, επιτυγχάνετε λειτουργική σταθερότητα, ενώ η προσθήκη ενός PIN πριν από την εκκίνηση σας προστατεύει επίσης από πιο πρακτικές επιθέσεις. Το κλειδί είναι να επιλέγετε σωστά τα PCR, να υπογράφετε συχνά ό,τι αλλάζει και να διατηρείτε πάντα ένα καλό κλειδί ανάκτησης..

Η beta έκδοση του Ubuntu 25.10 συνοδεύεται από τον πυρήνα Linux 6.17
σχετικό άρθρο:
Η beta έκδοση του Ubuntu 25.10 έρχεται με το Linux 6.17 και βασικές αλλαγές