Linux und TPM2

Steckbare TPM-Einheit auf einem Asus-Board (Quelle: FxJ, Wikipedia)

Da Microsoft für Windows 10 seit neuestem Support von TPM2 voraussetzt, dürften Hardware-Hersteller schnell reagieren. Das hat auch Konsequenzen für Linux, schreibt James Bottomley.

Version 2 der Hardware-Sicherheitsfunktion unterscheide sich grundlegend von der Vorgängerversion 1.2, erklärt Kernelentwickler und IBM-Forscher Bottomley in seinem Blog, so dass existierende TPM-1.2-Software nicht mehr funktioniere. TPM2 unterstützt unter anderem alle möglichen Algorithmen, nicht mehr nur zwei (SHA1 und RSA 2048). Welche die jeweilige TPM-2-Hardware konkret unterstützt, muss der User erfragen. Im Westen kämen die Krypto-Algorithmen RSA 1024 bis 2048, ECC und AES zum Einsatz sowie SHA1- und SHA256-Hashes.

Algorithm Agility

Das Feature heißt Algorithm Agility. Anstelle von Root Keys kommen nun Seeds und eine deterministisch arbeitende Key Derivation Function (KDF) zum Zug, letztere erzeugt aus demselben Algorithmus stets denselben Schlüssel. Die Seed besteht aus einem langen String zufälliger Nummern, und dient der KDF, zusammen mit den Key-Parametern und einem Algorithmus, als Input. Es gibt dabei drei permanente und eine dynamische Seed: Endorsement (EPS, entspricht EK von TPM 1.2), Platform (PPS) und Storage (SPS, entspricht SRK von TPM 1.2). Eine Null-Seed erzeugt flüchtige Seeds und ändert sich mit jedem Reboot. Die Wurzel für die Vertrauenshierarchie bildet dabei nicht mehr eine Seed, sondern ein Key.

Geheime Schlüssel

Neben der Algorithm Agility ist auch der Umgang mit Schlüsseln neu. Wurden geheime Schlüssel in TPM 1.2 noch asymmetrisch in SRKs verpackt und dann über „LoadKeyByBlob“ aufgerufen, verwendet TPM 2 ein zweistufiges Verfahren. Zunächst importiert der Schlüsselverwalter den geheimen Key verdeckt über „TPM2_import“. Zurück kommt eine Private-Key-Struktur, die der interne symmetrische Schlüssel des Parent Key chiffriert. Ein „TPM2_Load“ holt dann bei Bedarf diesen Schlüssel, um mit der Struktur zu interagieren. Laut Bottomley findet hier ein Wechsel von Online- zu Offline-Key statt.

TPM2 in der Praxis

Der Autor führte dann verschiedene Experimente mit Linux und TPM2 durch, die sich auf der Webseite nachvollziehen lassen. Dafür musste er die Hardware manuell auf TPM2 aktualisieren und stieß auf verschiedene Probleme. So erlaubt das vom Kernel bereitgestellte „/dev/tpm0“ nur einen User zur Zeit und übersteigt die Nachfrage nach vorübergehenden Key-Slots womöglich das limitierte Angebot solcher Slots durch TPM2.

Steckbare TPM-Einheit auf einem Asus-Board (Quelle: FxJ, Wikipedia)

Steckbare TPM-Einheit auf einem Asus-Board (Quelle: FxJ, Wikipedia)

Die Probleme soll ein Resource Manager (RM) lösen, der im Kernelspace zu Hause ist. Denn sowohl User- als auch Kernelspace greifen  auf TPM2 zu. Entsprechen Patches kommen von Jarkko Sakkinen und werden wohl im Kernel 4.11 und 4.12 landen, sind aber bislang noch im Teststadium. Auf Basis dieser Patches lassen sich dann auch Open SSL und Gnome-Keyring für den TPM-2-Einsatz patchen.

Fazit

Dank des im Kernel noch fehlenden Resource Managers sei der TPM-2-Support noch nicht reif für den großen Auftritt, das werde sich aber wohl in Kernel 4.11 oder 4.12 ändern. Ein spürbarer Vorteil sei das Fehlen eines zentralen Daemons, insbesondere in verteilten Setups. Der Kernel könne sich zudem unbehelligt vom Userspace um die Trusted Keys und Festplattenverschlüsselung kümmern.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben