Das neueste Update für NI Linux Real-Time umfasst Unterstützung für vertrauenswürdige Plattformmodule (TPMs). In diesem Beitrag wird ein TPM definiert, die Anwendungsfälle für ein TPM erläutert und die Verwendung des TPM erläutert.
Ein Trusted Platform Module (TPM) ist eine Hardwarekomponente, die als Vertrauensbasis verwendet wird und zum sicheren Erzeugen, Speichern und Verwenden kryptografischer Schlüssel entwickelt wurde. TPMs sind ein sicherer Speicherort für Geheimnisse – Informationen, die andere nicht erhalten sollen. TPMs bieten mehrere Vorteile zum Speichern sensibler Informationen wie kryptografischer Schlüssel.
Diese Eigenschaften machen TPM zu einer wertvollen Ergänzung für ein Testsystem, das mit sensiblen Daten arbeitet oder in einer sensiblen Umgebung, in der Daten geschützt werden müssen.
TPMs werden häufig zur Festplattenverschlüsselung, Geräteidentität und Authentifizierung, zur Überprüfung der Authentizität von Firmware-Komponenten (Secure Boot) und zum Schutz von Anwendungsgeheimnissen verwendet. Für eine Test- und Messanwendung bedeutet dies, dass Systeme einen TPM für eines der folgenden Beispiele verwenden können:
TPM 1.2 wurde 2003 veröffentlicht und unterstützt RSA- und SHA-1-Kryptographie. TPM 2.0 wurde 2014 grundlegend überarbeitet und umfasst moderne Algorithmen wie ECC, SHA-256 und mehr. TPM 2.0 ist der moderne Standard und wird von Windows 11 benötigt.
Der Zugriff auf und die Verwendung eines TPM in NI Linux Real-Time erfolgt über eine SSH-Session mit dem Gerät und erfordert Kenntnisse in Linux, NI Linux Real-Time und Sicherheitskonzepten. Hier finden Sie Informationen als Ausgangspunkt für Entwickler, die NI Linux Real-Time für sichere Anwendungen evaluieren. Detaillierte Informationen finden Sie in der aktuellen NI Linux Real-Time Dokumentation und in der öffentlichen Dokumentation zu jeder der hier genannten Bibliotheken.
Diese Anweisungen gelten nur für NI Linux Real-Time-Geräte mit TPM. TPMs sind auf einigen PXI-Controllern und bestimmten CompactRIO-Controllern verfügbar. Eine Liste der PXI-Controller mit TPM finden Sie unter Trusted Platform Module (TPM) Support für NI Controller. Beachten Sie, dass TPMs in den meisten CompactRIO-Systemen nicht enthalten sind, aber mit dem NI cRIO-9048 bestellt werden können. Für dieses Dokument haben wir ein NI cRIO-9048 mit der Option TPM verwendet.
Verbesserte Unterstützung für TPM-Interaktionen durch Benutzer und Anwendungen wurde mit NILRT 11.5 (2026Q2) eingeführt. Dieses Dokument setzt voraus, dass Ihr System auf mindestens diese Version aktualisiert wurde. Für sichere Systeme empfiehlt sich ein Upgrade auf die neueste verfügbare Version.
Stellen Sie mit Hilfe des NI-Hardwaremanagers eine Verbindung zu Ihrem Zielsystem her und aktualisieren Sie die Betriebssystemkomponenten über die Dialogfelder Firmware aktualisieren und Software verwalten.
Stellen Sie mit Hilfe eines SSH-Clients eine Shell-Verbindung zum Zielgerät her. Öffnen Sie im Befehlsfenster eine SSH-Session:
Geben Sie den Benutzernamen und das Passwort ein, wie im NI MAX oder im NI Hardware Manager konfiguriert. Der Standardbenutzername lautet "admin" und das Standardkennwort ist ein leeres Kennwort.
Wenn das Gerät einen TPM hat, erstellt es beim Hochfahren eine oder zwei Dateien – tpm0 und tpmrm0. Wenn es ein Gerät hat, der folgende Befehl:
Zeigt folgende Angaben an:
Wenn das Gerät keinen TPM hat, lautet die Antwort:
Ab der Version 2026 Q1 von NI Linux Real-Time ist ein Metapaket-Installationsprogramm enthalten, mit dem alle Bibliotheken zur Unterstützung von TPMs installiert werden können.
Dieser Befehl installiert eine Reihe von TPM-Paketen. Zu den Tools, die Sie verwenden könnten, gehören:
tpm2-tools umfasst mehr als hundert Funktionen zur Interaktion mit dem TPM. Ein hilfreicher Befehl ist “tpm2_pcrread”:
Dadurch wird der Inhalt der TPM-Register in einer Liste ausgegeben.
Diese Register werden als Platform Configuration Register (PCRs) bezeichnet. Die ersten acht PCRs (0–7) werden vom BIOS geschrieben. Diese Hash-Werte können nicht direkt geschrieben werden. Werte werden nur aktualisiert, wenn sich die Systemmessungen ändern.
PCR 7 enthält den sicheren Boot-Zustand, z. B. ob der sichere Boot aktiviert ist, welche Herstellerschlüssel verwendet werden und mehr. Dieses Register wird in der Regel verwendet, um Sperrentscheidungen zu treffen. Wenn der gespeicherte Wert mit der aktuellen Systemmessung übereinstimmt, ist das System das gleiche und kann vertrauenswürdig sein.
PCRs 8 und 9 werden vom Betriebssystem-Bootloader (GRUB) gesteuert. PCR 8 enthält Messungen, die vom Bootloader der Bootkonfiguration durchgeführt wurden. Dies kann Betriebssystem-Bootloader-Komponenten, Kernel-Images und OS-spezifische Messungen enthalten, die nach dem Bootloader, aber vor der vollständigen Betriebssystem-Runtime stattfinden.
PCR 9 enthält Betriebssystemkonfigurationsdaten wie Kernel-Kommandozeilenparameter, Betriebssystemkonfigurationswerte, die das Laufzeitverhalten beeinflussen, und richtlinienrelevante Betriebssystemeinstellungen, die während des Bootvorgangs gemessen wurden. PCR 8 und 9 messen zusammen, welches Betriebssystem geladen wurde und wie dieses konfiguriert wurde.
Die restlichen Register, PCR 10-23, sind OS- und anwendungsgesteuerte PCRs zur Messung von Software, Laufzeitzustand und dynamischen Ereignissen, die nach dem Hochfahren auftreten. TPMs ermöglichen es Softwareanwendungen, über die Verwendung dieser PCRs zu entscheiden. Typischerweise werden TPM-verschlüsselte Schlüssel zum Verschlüsseln der Datenspeicherung oder -übertragung, zum Speichern von Remote-Authentifizierungsschlüsseln, zum Erkennen von Laufzeitmanipulationen und anderen sicheren Transaktionen verwendet.
Um das Protokoll zu sehen, in dem alle Messungen während eines Bootvorgangs durchgeführt werden, verwenden Sie tpm2_eventlog, um den Inhalt der Binärdatei des tpm0-Geräts im Dateisystem securityfs zu lesen.
Dieser Befehl analysiert die Protokolldatei, um die PCR-Messungen anzuzeigen, die der TPM während des Bootvorgangs durchführen sollte. Mit diesem Protokoll erhalten Sie ein umfassendes Verständnis von Ereignissen, die den Systemzustand ändern können.
Sobald Sie auf die TPM-PCRs zugreifen können, können Sie programmatisch auf das TPM lesen und schreiben und die TPM-Funktionen verwenden. Obwohl die detaillierte Verwendung von TPM-Funktionen den Rahmen dieses Artikels überschreitet, sind hier einige Beispiele für mögliche Maßnahmen.
Cryptsetup
Cryptsetup bietet Festplattenverschlüsselung für ruhende Daten. Mit cryptsetup können Sie verschlüsselte Laufwerke erstellen, verschlüsselte Laufwerke freigeben, so dass sie gemountet werden können, verschlüsselte Laufwerke sperren, LUKS-Schlüssel-Slots verwalten und TPM-versiegelte Schlüssel integrieren. "Cryptsetup" definiert, wie Datenträger verschlüsselt werden, während "clevis" die Bereitstellung und den Zugriff auf die Schlüssel definiert.
Als einfaches Beispiel verwenden Sie cryptsetup, um eine Festplattenpartition innerhalb einer Datei auf dem Datenträger zu verschlüsseln, indem Sie diese Schritte befolgen.
1.Erstellen Sie eine Binärdatei für das Festplattenabbild.
2.Erstellen Sie eine LUKS-verschlüsselte Partition in der Festplattenabbilddatei.
3.Öffnen Sie die verschlüsselte Partition mit Hilfe der angegebenen Passphrase und erstellen Sie unter /dev/mapper ein virtuelles Blockgerät, das die entschlüsselte Ansicht der Partition darstellt.
4.Erstellen Sie ein Dateisystem auf dem zugeordneten Blockgerät.
5.Mounten Sie die verschlüsselte Partition.
Nach dem Einbinden der verschlüsselten Partition können Sie sie wie jedes andere Dateisystem verwenden.
Auf ähnliche Weise kann ein Wechseldatenträger Ihrer Wahl verschlüsselt werden. Dazu richten Sie den Befehl luksFormat in Schritt 2 auf den Gerätepfad Ihres Laufwerks im Betriebssystem.
Weitere Verschlüsselungsoptionen oder Konfigurationen mit Hilfe von cryptsetup finden Sie in der Cryptsetup-Dokumentation . Bitte beachten Sie, dass die Verschlüsselung der LinuxRT-Betriebssystempartitionen derzeit nicht unterstützt wird.
Clevis
Mit "clevis" können Sie einen Linux Unified Key Setup (LUKS) Volume Decryption Key Slot mit dem TPM-PCR-Zustand binden. Der folgende Befehl erstellt einen neuen Schlüssel-Slot für die LUKS-Partition unter /dev/sdx, der mit den aktuellen Messungen des TPM für PCRs 7, 8 und 9 gebunden ist.
In diesem Fall kann der LUKS-Entschlüsselungsschlüssel bei einem nachfolgenden Boot nur gelesen werden, wenn Secure Boot und OS Firmware unverändert sind.
Der an clevis übergebene Richtlinien-String bestimmt, unter welchen Bedingungen der Entschlüsselungsschlüssel freigegeben werden muss.
Würde entsperren, wenn sich der Kernel ändert, aber die Firmware muss die gleiche sein. Dies ermöglicht Betriebssystem-Updates.
Würde nur entsperren, wenn das Betriebssystem unverändert ist und ein in PCR 11 gespeicherter anwendungsgesteuerter Messwert ebenfalls unverändert ist.
Sie können mehrere Schlüsselfächer für ein LUKS-Laufwerk erstellen, um mehrere Entsperrmethoden bereitzustellen. Ein Steckplatz ermöglicht möglicherweise die automatische Freigabe, wenn die TPM-PCRs übereinstimmen. Ein anderer Steckplatz kann es einer Passphrase ermöglichen, das Volume freizugeben, wenn es mit dem in einer TPM-PCR gespeicherten Wert übereinstimmt. Ein anderer kann die Eingabe eines offline gespeicherten Wiederherstellungsschlüssels ermöglichen.
Hinweis zu bewährten Verfahren: Selbst wenn Sie ein verschlüsseltes Gerät mit Hilfe des TPM-Zustands freigeben, wird empfohlen, dass Sie die ursprüngliche LUKS-Entschlüsselungspassphase, die Sie mit cryptsetup konfiguriert haben, als Sicherungsmethode beibehalten, um Ihre Daten freizugeben.
Zum Anzeigen von Geräteschlüsseln, die ein LUKS-Gerät freigeben, verwenden Sie die Liste clevis luks:
Eine vollständige Liste der Befehle finden Sie in der Hilfefunktion (-h)
Das Ereignisprotokoll hilft bei der Fehlersuche, indem es versteht, was während einer Boot-Sequenz passiert. Greifen Sie auf dieses Protokoll im Ordner /sys/kernel/security zu. Wenn ein TPM vorhanden ist, dieser Befehl:
zeigt, dass ein tpm0/-Ordner erstellt wurde:
Im Verzeichnis “tpm0/” speichert das BIOS Informationen aus der Startsequenz in einer Datei mit dem Namen “binary_bios_measurements”. Lesen Sie diese Datei, um Bootprobleme zu untersuchen.
Mit einem TPM-fähigen Gerät mit NI Linux Real-Time können Sie Standard-Linux-Bibliotheken implementieren, die die Funktionen eines TPM zum Speichern von Schlüsseln verwenden. Diese Schlüssel können für Sicherheitsfunktionen wie Festplattenverschlüsselung, sicheren Start, Datenverschlüsselung, Geräteauthentifizierung und andere Funktionen verwendet werden, die Sie in Ihrer Anwendung programmieren. Schlüssel, die in einem TPM-Gerät erstellt und gespeichert werden, sind geschützt und werden niemals vom Prozessor oder Speicher des Geräts verwendet. TPMs sind der Industriestandard für diesen Schutz und in Windows 11 erforderlich. Sie sind jetzt auf NI Linux Real-Time-Geräten verfügbar.
Die eingetragene Marke Linux® wird gemäß einer Unterlizenz von LMI verwendet. LMI ist der exklusive Lizenznehmer von Linus Torvalds, dem weltweiten Eigentümer der Marke.
Microsoft und Windows sind Marken der Microsoft-Unternehmensgruppe.