table of contents
SYSTEMD-PCRLOCK(8) | systemd-pcrlock | SYSTEMD-PCRLOCK(8) |
BEZEICHNUNG¶
systemd-pcrlock, systemd-pcrlock-file-system.service, systemd-pcrlock-firmware-code.service, systemd-pcrlock-firmware-config.service, systemd-pcrlock-machine-id.service, systemd-pcrlock-make-policy.service, systemd-pcrlock-secureboot-authority.service, systemd-pcrlock-secureboot-policy.service - TPM-PCR-Zustände analysieren und aus dieser Vorhersage eine Zugriffsrichtlinie erstellen
ÜBERSICHT¶
/usr/lib/systemd/systemd-pcrlock [OPTIONEN…]
BESCHREIBUNG¶
Hinweis: Dieser Befehl ist derzeit experimentell. Es ist zwar wahrscheinlich, dass er eine reguläre Komponente von Systemd wird, aber sein Verhalten und seine Schnittstellen können sich noch ändern.
systemd-pcrlock ist ein Werkzeug, das zur Analyse und Vorhersage von TPM2-PCR-Messungen verwandt werden kann und TPM2-Zugriffsrichtlinien aus der Vorhersage erstellen kann, die es in einem TPM2-NV-Index speichert (d.h. in dem nichtflüchtigen TPM2-Speicher). Dies kann dann zur Zugriffsbeschränkung auf TPM2-Objekte (wie Schlüssel einer Plattenverschlüsselung) für Systemstarts verwandt werden, bei dem nur bestimmte, vertrauenswürdige Komponenten verwandt werden.
Für seine Analyse und Vorhersage verwendet systemd-pcrlock Folgendes als Eingabe:
Sie verwendet diese Eingaben, um ein kombiniertes Ereignisprotokoll zu erstellen und es gegen die PCR-Zustände zu validieren. Dann versucht sie, Ereignisprotokollereignisse zu erkennen und vergleicht sie mit den definierten Komponenten. Für jedes PCR, wo dies umfassend erfolgen kann (d.h. wo alle aufgeführten Datensätze und alle definierten Komponenten passen), kann dies dann zur Vorhersage zukünftiger PCR-Messungen verwandt werden. Dabei werden alternative, für jede Komponente definierte Varianten berücksichtigt. Diese Vorhersage kann dann in eine TPM2-Zugriffsrichtlinie umgewandelt werden (diese besteht aus TPM2-PolicyPCR- und PolicyOR-Einträgen), die dann in einen NV-Index im TPM2 gespeichert wird. Damit können dann Geheimnisse (wie Schlüssel für die Festplattenverschlüsselung) für diese Richtlinien gesperrt werden (mittels einer TPM2-PolicyAuthorizeNV-Richtlinie).
Verwenden Sie Werkzeuge wie systemd-cryptenroll(1) oder systemd-repart(8), um Plattenverschlüsselungen an solch eine systemd-pcrlock-TPM2-Richtlinie zu binden. Siehe insbesonderen den Schalter --tpm2-pcrlock= dieser Werkzeuge.
Die Zugriffssteuerungsrichtlinienlogik benötigt ein TPM2-Gerät, das den Befehl »PolicyAuthorizeNV« implementiert, d.h. das TPM 2.0-Version 1.38 oder neuer implementiert.
BEFEHLE¶
Die folgenden Befehle werden verstanden:
log
Hinzugefügt in Version 255.
cel
Hinzugefügt in Version 255.
list-components
Hinzugefügt in Version 255.
predict
Hinzugefügt in Version 255.
make-policy
Der NV-Index wird beim ersten Aufruf reserviert und bei nachfolgenden Aufrufen aktualisiert.
Der NV-Index kann durch Angabe einer Zugriffs-PIN geändert (und daher die darin gepspeicherte Richtlinie aktualisiert) werden. Diese PIN wird normalerweise automatisch generiert und in verschlüsselter Form in der vorgenannten JSON-Richtliniendatei gespeichert (wobei eine Zugriffsrichtlinie sie an den NV-Index selbst bindet). Diese PIN kann durch den Benutzer über den Schalter --recovery-pin= gewählt werden. Falls angegeben, kann sie als alternativer Zugriffspfad zur Aktualisierung der Richtlinie verwandt werden.
Falls die neue Vorhersage mit der alten übereinstimmt, beendet sich der Befehl schnell und führt keine weitere Aktion aus. (Außer --force wurde angegeben, siehe unten.)
Beginnend mit v256 wird eine Kopie der Richtliniendatei /var/lib/systemd/pcrlock.json in die Zugangsberechtigungsdatei kodiert (siehe systemd-creds(1) zu Details) und in die EFI-Systempartition oder die XBOOTLDR-Partition im Unterverzeichnis /loader/credentials/ subdirectory geschrieben werden. Dort wird sie während des Systemstarts von systemd-stub(7) aufgenommen und an die aufgerufene Initrd übergeben, wo sie dann zum Entsperren des Wurzeldateisystems verwandt wird (das Wurzeldateisystem enthält typischerweise /var/, wo sich die primäre Kopie der Richtlinie befindet, die daher nicht zum Entsperren des Wurzeldateisystems verwandt werden kann). Die Zugangsberechtigungsdatei wird nach dem Systemstarteintragsmerkmal der Installation benannt (siehe bootctl(1)). Dies kann, wie nachfolgend beschrieben, über den Schalter --entry-token= konfiguriert werden.
Hinzugefügt in Version 255.
remove-policy
Hinzugefügt in Version 255.
lock-firmware-code, unlock-firmware-code
Diese Aktion ermöglicht das Sperren des Systemstarts auf die aktuelle Version der Firmware des Systems und seiner Erweiterungskarten. Diese Aktion sollte nur verwandt werden, falls der Systemlieferant vorab keine geeigneten pcrlock-Daten bereitstellt.
Beachten Sie, dass dies nur auf die aktuelle Version der Firmware passt. Falls eine Aktualisierung der Firmware erfolgt, sind diese Daten veraltet und jede daraus erstellte Zugriffsrichtlinie wird nicht mehr bestehen. Es wird daher empfohlen, unlock-firmware-code aufzurufen, bevor eine Firmware-Aktualisierung erfolgt, gefolgt von make-policy, um die Richtlinie zu aktualisieren.
systemd-pcrlock lock-firmware-code wird, falls aktiviert, automatisch beim Systemstart mittels der Unit systemd-pcrlock-firmware-code.service aufgerufen. Das stellt sicher, dass eine durch systemd-pcrlock verwaltete Zugriffsrichtlinie automatisch auf die neue Firmware-Version gesperrt wird, wann immer die Richtlinie temporär gelockert wurde, um wie oben beschrieben Firware-Aktualisierungen abzudecken.
Die Dateien werden nur aus dem Ereignisprotokoll erstellt, falls das Ereignisprotokoll auf den aktuellen TPM2-PCR-Zustand passt.
Dies schreibt/entfernt die Dateien /var/lib/pcrlock.d/250-firmware-code-early.pcrlock.d/generated.pcrlock und /var/lib/pcrlock.d/550-firmware-code-late.pcrlock.d/generated.pcrlock.
Hinzugefügt in Version 255.
lock-firmware-config, unlock-firmware-config
Diese Funktionalität sollte vorsichtig verwandt werden, da in den meisten Fällen eine kleine Firmwarekonfigurationsänderung nicht die Zugriffsregeln auf TPM2-Objekte ungültig machen sollte. Beachten Sie auch, dass manche Systeme instabile und unvorhersehbare Informationen in diese PCRs messen (z.B. aktuelle CPU-Spannungen, -Temperaturen als Teil der SMBIOS-Daten), wodurch diese Art von Absperrung für solche Systeme nicht zuverlässig verwandt werden kann. Verwenden Sie diese Funktionalität nur, falls das System und die Hardware gut bekannt sind und nicht diesen Beschränkungen unterliegen, beispielsweise in virtualisierten Umgebungen.
Verwendet unlock-firmware-config vor Änderungen der Firmwarekonfiguration. Falls die Unit systemd-pcrlock-firmware-config.service aktiviert ist, wird sie automatisch eine Pcrlock-Datei aus den neuen Messungen erstellen.
Dies schreibt/entfernt die Dateien /var/lib/pcrlock.d/250-firmware-config-early.pcrlock.d/generated.pcrlock und /var/lib/pcrlock.d/550-firmware-config-late.pcrlock.d/generated.pcrlock.
Hinzugefügt in Version 255.
lock-secureboot-policy, unlock-secureboot-policy
Verwendet unlock-firmware-config vor der Anwendung von Aktualisierungen der Richtlinie für den sicheren Systemstart. Falls die Unit systemd-pcrlock-secureboot-policy.service aktiviert ist, wird sie automatisch eine Pcrlock-Datei aus der erkannten Richtlinie erstellen.
Dies schreibt/entfernt die Datei /var/lib/pcrlock.d/230-secureboot-policy.pcrlock.d/generated.pcrlock.
Hinzugefügt in Version 255.
lock-secureboot-authority, unlock-secureboot-authority
Dies schreibt/entfernt die Datei /var/lib/pcrlock.d/620-secureboot-authority.pcrlock.d/generated.pcrlock.
Hinzugefügt in Version 255.
lock-gpt [GERÄT], unlock-gpt
Dies schreibt/entfernt die Datei /var/lib/pcrlock.d/600-gpt.pcrlock.d/generated.pcrlock.
Hinzugefügt in Version 255.
lock-pe [PROGRAMM], unlock-pe
Erwartet als Argument einen Pfad zu einem PE-Programm. Falls nicht angegeben, wird das Programm stattdessen von Stdin gelesen.
Die zu schreibende Pcrlock-Datei muss mit dem Schalter --pcrlock= angegeben werden.
Hinzugefügt in Version 255.
lock-uki [UKI], unlock-uki
Erwartet als Argument einen Pfad zu einem UKI-PE-Programm. Falls nicht angegeben, wird das Programm stattdessen von Stdin gelesen.
Die zu schreibende Pcrlock-Datei muss mit dem Schalter --pcrlock= angegeben werden.
Hinzugefügt in Version 255.
lock-machine-id, unlock-machine-id
Dies schreibt/entfernt die Datei /var/lib/pcrlock.d/820-machine-id.pcrlock.
Hinzugefügt in Version 255.
lock-file-system [PFAD], unlock-file-system [PFAD]
Dies schreibt/entfernt die Dateien /var/lib/pcrlock.d/830-root-file-system.pcrlock und /var/lib/pcrlock.d/840-file-system-Pfad.pcrlock.
Hinzugefügt in Version 255.
lock-kernel-cmdline [DATEI], unlock-kernel-cmdline
Dies schreibt/entfernt die Datei /var/lib/pcrlock.d/710-kernel-cmdline.pcrlock/generated.pcrlock.
Hinzugefügt in Version 255.
lock-kernel-initrd DATEI, unlock-kernel-initrd
Dies schreibt/entfernt die Datei /var/lib/pcrlock.d/720-kernel-initrd.pcrlock/generated.pcrlock.
Hinzugefügt in Version 255.
lock-raw [DATEI], unlock-raw
Hinzugefügt in Version 255.
OPTIONEN¶
Die folgenden Optionen werden verstanden:
--raw-description
Hinzugefügt in Version 255.
--pcr=
Dies wird von lock-raw und lock-pe verwandt, um den PCR auszuwählen, gegen den gesperrt werden soll.
Falls dies mit predict und make-policy verwandt wird, wird dies die in der Vorhersage und Richtlinie einzuschließenden PCRs außer Kraft setzen. Falls nicht angegeben ist die Vorgabe PCRs 0-5, 7, 11-15. Beachten Sie, dass diese Befehle keine PCRs in die Vorhersage/Richtlinie einschließen werden (selbst wenn sie explizit festgelegt wurden), falls es Messungen im Ereignisprotokoll gibt, die nicht auf den aktuellen PCR-Wert passen oder es nicht erkannte Messungen in dem Ereignisprotokoll gibt, oder Komponenten Messungen definieren, die im Ereignisprotokoll nicht gefunden werden können.
Hinzugefügt in Version 255.
--nv-index=
Hinzugefügt in Version 255.
--components=
Hinzugefügt in Version 255.
--location=
Bei der Verwendung mit list-components wird der ausgewählte Lagebereich in der Komponentenliste hervorgehoben.
Standardmäßig »760-:940-«. Dies bedeutet, dass die standardmäßig erstellten Richtlinien im wesentlichen die gesamte Laufzeit des Anwendungsraums des Betriebssystems, von der Initrd (da »760-« eng auf 750-enter-initrd.pcrlock folgt) bis (und einschließlich) der Hauptlaufzeit des Systems (da »940-« eng von 950-shutdown.pcrlock gefolgt wird) abdeckt. Siehe systemd.pcrlock(5) für eine vollständige Liste der gut bekannten Komponenten, die beleuchtet, wo dieser Bereich standardmäßig angeordnet ist.
Hinzugefügt in Version 255.
--recovery-pin=
Hinzugefügt in Version 255.
--pcrlock=
Hinzugefügt in Version 255.
--policy=
Hinzugefügt in Version 255.
--force
Hinzugefügt in Version 255.
--entry-token=
Hinzugefügt in Version 256.
--json=MODUS
--no-pager
-h, --help
--version
EXIT-STATUS¶
Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.
SIEHE AUCH¶
systemd(1), systemd.pcrlock(5), systemd-cryptenroll(1), systemd-cryptsetup@.service(8), systemd-repart(8), systemd-pcrmachine.service(8), systemd-creds(1), systemd-stub(7), bootctl(1)
ANMERKUNGEN¶
- 1.
- Kanonisches TCG-Ereignisprotokollformat (CEL-JSON)
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
systemd 256.5 |