| SYSTEMD-MEASURE(1) | systemd-measure | SYSTEMD-MEASURE(1) |
BEZEICHNUNG
systemd-measure - Erwartete TPM2-PCR-Werte für gestartete vereinigte Kernelabbilder vorberechnen und signieren
ÜBERSICHT
/lib/systemd/systemd-measure [OPTIONEN…]
BESCHREIBUNG
Hinweis: Dieser Befehl ist derzeit experimentell. Obwohl er wahrscheinlich eine reguläre Komponente von Systemd wird, könnte er sich im Verhalten und der Schnittstelle noch verändern.
systemd-measure ist ein Werkzeug, das zum Vorabberechnen und Signieren der erwarteten TPM2-PCR-11-Werte verwandt werden kann, der beobachtet werden kann, wenn ein vereinigtes Linux-Kernel-Abbild, das auf systemd-stub(7) basiert, gestartet wird. Es akzeptiert Pfade zu der ELF-Kernelabbilddatei, der Initrd-Abbilddatei, der Devicetree-Datei, der Kernelbefehlszeile, der os-release(5)-Datei, der Systemstart-Bild-Datei und der Datei mit dem öffentlichen TPM2-PCR-PEM-Schlüssel, die zusammen das vereinigte Kernelabbild darstellen, und bestimmt die PCR-Werte, die nach dem Systemstart des Abbildes erwartet werden. Die Berechnung beginnt mit dem mit Null initialisierten PCR 11 und wird kompatibel zur Vorgehensweise von Systemd-stub beim Systemstart durchgeführt. Das Ergebnis kann optional kryptographisch signiert werden, um TPM2-Richtlinien zu erlauben, die nur entsperrt werden können, falls eine bestimmte Gruppe von Kerneln gestartet wird, für die eine solche PCR-Signatur bereitgestellt werden kann.
BEFEHLE
Die folgenden Befehle werden verstanden:
status
calculate
sign
Beachten Sie, dass ein TPM2-Gerät verfügbar sein muss, damit das Signieren stattfinden kann, obwohl das Ergebnis nicht mit einem TPM2-Gerät oder seinen Zustand verknüpft ist.
OPTIONEN
Die folgenden Optionen werden verstanden:
--linux=PFAD, --osrel=PFAD, --cmdline=PFAD, --initrd=PFAD, --splash=PFAD, --dtb=PFAD, --pcrpkey=PFAD
--current
--bank=HASH
--private-key=PFAD, --public-key=PFAD
Beachten Sie die Unterschiede zwischen den Schaltern --pcrpkey= und --public-key=. Ersterer wählt die Daten, die im PE-Abschnitt ».pcrpkey« des vereinigten Kernelabbildes aufgenommen werden sollen, während letzterer den öffentlichen Schlüssel des Schlüsselpaars aufnimmt, der zum Signieren des entstehenden PCR-11-Wertes verwandt wird. Ersterer ist der Schlüssel, den das gestartete System wahrscheinlich zum Sperren der Verschlüsselung von Platten und Zugangsberechtigungen verwenden wird, während letzterer der Schlüssel ist, der zum erneuten Entsperren solcher Ressourcen verwandt wird. Daher sollte typischerweise in beiden Fällen der gleiche PEM-Schlüssel bereitgestellt werden.
Falls der --public-key= nicht, aber --private-key= angegeben ist, wird der öffentliche Schlüssel automatisch vom privaten Schlüssel abgeleitet.
--tpm2-device=PFAD
--phase=PHASE
Weitere Details zu PCR-Systemstartphasen finde Sie in systemd-pcrphase.service(8).
--json=MODUS
--no-pager
-h, --help
--version
BEISPIELE
Beispiel 1. Ein vereinigtes Kernelabbild erstellen und den erwarteten TPM-PCR-11-Wert berechnen
# objcopy \
--add-section .linux=vmlinux --change-section-vma .linux=0x2000000 \
--add-section .osrel=os-release.txt --change-section-vma .osrel=0x20000 \
--add-section .cmdline=cmdline.txt --change-section-vma .cmdline=0x30000 \
--add-section .initrd=initrd.cpio --change-section-vma .initrd=0x3000000 \
--add-section .splash=splash.bmp --change-section-vma .splash=0x100000 \
--add-section .dtb=devicetree.dtb --change-section-vma .dtb=0x40000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub \
foo.efi# systemd-measure calculate \
--linux=vmlinux \
--osrel=os-release.txt \
--cmdline=cmdline.txt \
--initrd=initrd.cpio \
--splash=splash.bmp \
--dtb=devicetree.dtb11:sha1=d775a7b4482450ac77e03ee19bda90bd792d6ec711:sha256=bc6170f9ce28eb051ab465cd62be8cf63985276766cf9faf527ffefb66f4565111:sha384=1cf67dff4757e61e5a73d2a21a6694d668629bbc3761747d493f7f49ad720be02fd07263e1f93061243aec599d1ee4b411:sha512=8e79acd3ddbbc8282e98091849c3530f996303c8ac8e87a3b2378b71c8b3a6e86d5c4f41ecea9e1517090c3e8ec0c714821032038f525f744960bcd082d937da
Beispiel 2. Ein asymetrisches Schlüsselpaar und ein vereinigtes Kernelabbild und eine TPM-PCR-11-Signatur dafür erstellen und die Signatur und den öffentlichen Schlüssel in das Abbild einbetten
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out tpm2-pcr-private.pem# openssl rsa -pubout -in tpm2-pcr-private.pem -out tpm2-pcr-public.pem# systemd-measure sign \
--linux=vmlinux \
--osrel=os-release.txt \
--cmdline=cmdline.txt \
--initrd=initrd.cpio \
--splash=splash.bmp \
--dtb=devicetree.dtb \
--pcrpkey=tpm2-pcr-public.pem \
--bank=sha1 \
--bank=sha256 \
--private-key=tpm2-pcr-private.pem \
--public-key=tpm2-pcr-public.pem > tpm2-pcr-signature.json# objcopy \
--add-section .linux=vmlinux --change-section-vma .linux=0x2000000 \
--add-section .osrel=os-release.txt --change-section-vma .osrel=0x20000 \
--add-section .cmdline=cmdline.txt --change-section-vma .cmdline=0x30000 \
--add-section .initrd=initrd.cpio --change-section-vma .initrd=0x3000000 \
--add-section .splash=splash.bmp --change-section-vma .splash=0x100000 \
--add-section .dtb=devicetree.dtb --change-section-vma .dtb=0x40000 \
--add-section .pcrsig=tpm2-pcr-signature.json --change-section-vma .splash=0x80000 \
--add-section .pcrpkey=tpm2-pcr-public.pem --change-section-vma .splash=0x90000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub \
foo.efi
Später registrieren Sie die signierte PCR-Richtlinie bei einem LUKS-Datenträger:
# systemd-cryptenroll --tpm2-device=auto --tpm2-public-key=tpm2-pcr-public.pem --tpm2-signature=tpm2-pcr-signature.json /dev/sda5
Und dann entsperren Sie das Gerät mit der Signatur:
# /lib/systemd/systemd-cryptsetup attach meindatenträger /dev/sda5 - tpm2-device=auto,tpm2-signature=/Pfad/zur/tpm2-pcr-Signatur.json
Beachten Sie, dass nach dem Systemstart des vereinigten Kernelabbildes foo.efi die Signatur und der öffentliche Schlüssel an Orten abgelegt werden, unter denen systemd-cryptenroll und systemd-cryptsetup danach sucht und daher diese Pfade tatsächlich nicht angegeben werden müssen.
EXIT-STATUS
Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.
SIEHE AUCH
systemd(1), systemd-stub(7), objcopy(1), systemd-creds(1), [email protected](8), systemd-pcrphase.service(1)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <[email protected]> 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 252 |