TPM (Trusted Platform Module)

Der TPM (Trusted Platform Module) ist die Entwicklung, eines von der Industrie gegründeten Konsortiums, der TCPA (Trusted Computing Platform Alliance), später TCG (Trusted Computing Group). Ziel ist es, Sicherheit und Schutz von Hardware und Daten zu gewährleisten, und diese vor Kompromittierung, Beschädigung und Diebstahl zu schützen.

Was TPM nicht ist

  • aktive Komponente (reagiert nur auf Anfragen)
  • Krypto- Beschleuniger oder Unterstützer
  • Speicher von Daten
  • gebunden an ein Betriebssystem oder Applikation

Trusted Platform Module (TPM)

Der TPM ist ein Security Chip, der seit einigen Jahren in aktuellen Geräten verbaut ist. Meist ist der Chip (Trusted Platform Module Entity; TPME) fest mit der Hauptplatine verbunden. Es gibt aber auch steckbare Varianten. Der TPM, in der weit verbreiteten Spezifikation 1.2, ist mit verschiedenen Algorithmen und Funktionen ausgestattet

  • I/O Komponente (Anbindung an das BUS System)
  • Kryptographischen Prozessor (Kryptographische Operationen innerhalb des TPM )
    • RSA Engine (RSA, 512, 1024 and 2048 Bit)
      • Signatur/Verifizierung
      • Verschlüsselung/Entschlüsselung
    • Erstellung Asymmetrischer RSA Schlüsselpaare
    • Erstellung Symmetrischer Schlüssel (nur für TPM internen Gebrauch, Algorithmus ist dem Designer überlassen)
    • Schlüsselverschlüsselung (Key Wrapping)
    • Nonce Creation (Cryptographic nonce)
  • Secure Hash Algorithmus (SHA-1, 160 Bit)
  • Keyed Hash Message Authentication Code (HMAC)
  • kryptographisch sicherer Zufallszahlengenerator (Random Noise Generator, RNG)
  • Non Volatile Memory (NVRAM)
  • Tamper Resistant Storage (Sabotage- und Manipulationssicherheit)
  • Plattform Power detection
  • Opt-In (Schutz vor dem Setzen von TPM Flags, z.B. turn on/off ohne Genehmigung durch TPM Owner)
  • Execution Engine (sicheres Ausführen eingehender TPM Commands)

Platform Configuration Register (PCR)

Die Configuration Register dienen der Speicherung von Integritäts- Hashwerten, die aus Messergebnissen von Hardware und Konfigurationen generiert werden. Je nach TPM Version ist eine Mindestanzahl der 160 Bit langen PCRs definiert.

System Integritäts Prüfung

für das Herstellen der Plattform Integrität (dem zu erwartenden Verhalten), werden Integriergeräts Messungen. (z.B. Bios,Rom,OS,Applikation) durchgeführt. Die Logs werden ausserhalb des TPMs gespeichert, im Stored Measurement Log (SML). Hashwerte der SMLs werden im TPM in verschiedenen PCRs abgelegt. Ändert sich eine Konfiguration, oder wird Schadcode eingeschleusst, wird eine Änderung erkannt. Durch die zwangsläufige Abweichung an den SMLs, und damit nicht mehr übereinstimmenden Hash im einem oder mehreren PCRs, wird der Level der Integrität neu bewertet.

Von einander abhängige Komponenten lassen sich verketten. Die erste gestartet Instanz wird als Core Root of Trust for Measurement (CRTM) bezeichnet, und ist beim Bootvorgang einer Workstation das Bios. Der BIOS Boot Block führt eine Messung seiner eigenen Integrität durch, generiert ein SML, und übergibt den Hash an den TPM, der eine inkrementelle Einlagerung in das PCR vornimmt. Hat der Boot Block den Integritäts Check bestanden (Übergabe des CRTM an einen RTM, Root of Trust for Measurement), kann das Bios geladen werden, und der Measurement Agent des Bios kann mit Messung der Roms fortfahren. Wenn auch dieser Check positiv ausgefallen ist, geht es weiter mit dem Bootloader, dem OS und den Applikationen. Bricht nur ein Glied in der Kette, wird die Workstation nicht zum starten der Applikation in der Lage sein.

TPM Schlüssel

Der Root of Trust Storage (RTS) schützt Daten und Keys innerhalb des TPMs. Dabei verwaltet der RTS Manager sogenante Key-Slots im nichtflüchtigen Speicherbereich, um aktuell verwendete Keys zu lagern.

Endorsement Key (EK)

Jeder Chip muss, per Definition, bei Auslieferung ein vordefiniertes 2048 Bit langes RSA Schlüsselpaar (den öffentliche Schlüssel PUBEK und privaten Schlüssel PRIVEK), den Endorsement Key (EK) beinhalten. Das Generieren des Schlüsselpaars geschieht idealerweise durch einen im TPM Chip integrierten Prozess (TPM_CreateEndorsementKeyPair). Alternativ ist auch eine externe Erstellung des Schlüsselpaars, mit identischen Eigenschaften, und nachträglicher Implementierung durch den Hersteller möglich.

Der EK private Key ist nicht auslesbar, und wird den TPM nie verlassen. Lediglich der TPM selbst, hat Zugriff auf den Schlüssel, der in einem eigenen geschützten Bereich liegt. Der EK public Key dagegen, bedarf keiner Schutzmechanismen.

Storage Root Key (SRK)

Der Storage Root Key wird bei der ersten Inbetriebnahme (take TPM Ownership aus dem OS heraus) des TPM’s generiert (RSA Schlüssel mit 2048 Bit). Der Zweck dieses Keys, ist die Verschlüsselung weiterer Keys. Der SRK stellt, wie der Name schon sagt die Root einer Key Hierarchie dar. Wird ein neuer Owner gesetzt, wird auch der SRK neu generiert. Vorhandene Keys des Vorbesitzers werden nicht vererbt. Einige Keys unterhalb der Hierarchie sind migrierbar!

Attestation Identity Key (AIK)

Zum Einsatz kommt ein AIK, um einer entfernten Applikation eine Remote Attestation (RA) anzubieten.

Der AIK ist ein RSA Schlüssel mit 2048 Bit, der vom TPM generiert wird, und nur zur Signatur eingesetzt wird. Der private Schlüssel ist an den ausstellenden TPM gebunden, und lässt sich nicht exportieren.

Signing Key

kann das selbe wie der AIK plus etwas mehr; wird für die Signatur externen Daten, oder interner TPM Stati verwendet

Storage Key

der Storage Key wird verwendet, um Anwendungs- Keys innerhalb der Key Hierarchie, oder Daten (seal operation) zu verschlüsseln.

Binding Key

der Bindung Key dient der sicheren Auslagerung von Daten und Keys

Sicherheitsfunktionen des TPM’s

Versiegelung (sealing/unsealing)

bei der Versiegelung wird ein Hashwert mithilfe definierter Systemmetricen generiert. Die zu schützenden Daten werden mit diesem Hash verschlüsselt. Für die Entschlüsselung wird der Hashwert mit den selben Metricen erneut gebildet. Ist der Hashwert nicht idetnisch, bleiben die Daten verschlüsselt. Somit wird gewährleistet, dass die Enschlüsselung nur auf derselben nicht kompromietierten Plattform erfolgen kann.

Auslagerung (binding/wrapping)

bei der Auslagerung können externe Daten, an eine TPM Plattform gebunden werden. Die Daten werden mit dem Public Key verschlüsselt, und können nur durch den TPM, der den private Key für die Entschlüsselung hält, entschlüsselt werden. Die Verschlüsselung kann durch ein externes Gerät erfolgen. Der TPM selbst kann durch diese Funktion Schlüssel auslagern, und an sich binden.

Schlüssel Aus- und Einlagerung

Der TPM besitzt eine Key Cache Implementierung (Key Cache Manager, KCM) die es erlaubt, Schlüssel auszulagern und bei Bedarf wieder einzulesen. Keys, die nicht im Zugriff sind können, im verschlüsselten Zustand, extern (z.B. Harddisk) ausgelagert werden.

Bescheinigung

Die Attestierung bestätigt, dass das Endgerät unter der sicheren Verwaltung eines TPM’s ist, und schützt es vor der Installation unautorisierter oder manipulierter Firm- bzw. Software. Der AIK (Attestation Identity Key), ist ein Alias des Endorsement Keys, der in unbegrenzter Anzahl generiert werden kann. Indem ein AIK Key anstelle des EK zum Einsatz kommt,können keine Rückschlüsse auf die ausstellende Plattform gezogen werden; zum Schutz der Privatsphäre. Damit können mehrere Remote Attestations (RA) pro Endgerät ausgestellt werden, ohne das die entfernte Applikation in der Lage ist zu erkennen, um welchen EK und damit TPM und Endgerät es sich handelt. Es gibt die beiden folgenden Attestationsverfahren:

Privacy CA (ab TPM 1.1)

die entfernte Applikation fordert beim Endgeräte ein Request for Attestation an; der vom EK signierte AIK wird an eine private CA  (Certification Authority) gesendet und signiert, es sei denn, der EK steht auf der CRL (Certificate Revocation List) der CA. Das von der CA signierte AIK wird direkt an die entfernte Applikation gesendet, die wiederum entscheidet, ob es das Endgerät für Vertrauneswürdig hält. Der entfernte Computer  sieht nur die von der CA signierten AIKs, und hat keinen Bezug zum EK.

Direct Anonymous Attestation (DAA, ab TPM 1.2)

der Einsatz von DAA ersetzt die Notwendigkeit einer privaten CA. Durch komplexe kryptographische Verfahren kann der Aufbau der Kommunikation direkt zwischen entfernter Applikation und Endgerät erfolgen. Die zum Einsatz kommende Zero Knowledge Proof (ZKP) Technik arbeitet dabei mit Gruppensignaturen, und verschleiert auch mehrfache Verbindungen mit dem selben Endgerät.

 

 

TPM 2.0

die Spezifikation für TPM 2.0 wurde im April 2014 freigegeben. Im Gegensatz zu TPM1.2 beherrscht Version 2.0 mehrere Hash- sowie Asymmetrische Algorithmen. Der bisherige SHA-1 gilt seit Jahren als „unsicher“.

Ab 2015 sollen Endgeräte nur noch das „Windows Certified“ Logo erhalten, wenn ein TPM 2.0 Chip verbaut ist. In den Medien gibt es seit bekannt werden der TPM 2.0 Spezifikationen vermehrt Bedenken bzgl. Hintertürchen, und einem zwanghaft aktivierten Chip. Lässt sich der Chip nicht mehr Aus-und Einschalten (Opt-out/Opt-in Funktion), kommt das einer Entmündigung des Benutzers gleich. Der Hersteller der Hardware könnte damit z.B. vorgeben, welche Systeme gebootet werden dürfen.

Das BSI hat im August 2013 eine Stellungnahme zu TPM 2.0 und Windows 8 veröffentlicht in der es u.a. heisst:

Das BSI sieht derzeit jedoch einige kritische Aspekte im Zusammenhang mit bestimmten Einsatzszenarien, in denen Windows 8 in Kombination mit einer Hardware betrieben wird, die über ein TPM 2.0 verfügt. 

Aus Sicht des BSI geht der Einsatz von Windows 8 in Kombination mit einem TPM 2.0 mit einem Verlust an Kontrolle über das verwendete Betriebssystem und die eingesetzte Hardware einher. Daraus ergeben sich für die Anwender, speziell auch für die Bundesverwaltung und kritische Infrastrukturen, neue Risiken. Insbesondere können auf einer Hardware, die mit einem TPM 2.0 betrieben wird, mit Windows 8 durch unbeabsichtigte Fehler des Hardware- oder Betriebssystemherstellers, aber auch des Eigentümers des IT-Systems Fehlerzustände entstehen, die einen weiteren Betrieb des Systems verhindern. Dies kann soweit führen, dass im Fehlerfall neben dem Betriebssystem auch die eingesetzte Hardware dauerhaft nicht mehr einsetzbar ist.

Link zur offiziellen Stellungnahme

In den Microsoft Hardware Systemvoraussetzungen für das „Hardware Certification Program“ ehemals „Windows Logo Program“ mit dem Stand vom April 2014,  gibt es mit dem 01.01.2015 drei Neuerungen. Eine davon hat den Titel System.Fundamentals.TPM20.TPM20Required (All systems ship with TPM 2.0), gültig für Windows 8.1 und RT 8.1. Bei der Beschreibung ist folgender Satz vermerkt:

Mandatory: All x86/x64 devices equipped with TPM 2.0 must have the option in UEFI bios to turn off the TPM device.

Damit ist für Microsoft Zertifizierte Geräte, zumindest für x86 und x64 basierende, eine Aus- und Einschalt (evtl. Eingeschränkte Opt-out/Opt-in) Funktion erforderlich.

Link zur Seite: http://msdn.microsoft.com/en-us/library/windows/hardware/dn423132.aspx

 

TPM Verwaltung

aktiviert man auf einem Computer mit TPM 1.2. Bitlocker, wird man aufgefordert einen Reboot durchzuführen, um den TPM zu initialisieren.

TPM

Nach dem POST muss das Einschalten und die Erlaubnis der Übernahme des Besitzes mit F1 bestätigt werden. Nach dem Hochfahren des Systems ist Bitlocker in der Lage, den Schlüssel im TPM zu hinterlegen, und die Platte zu verschlüsseln.

tpm.msc tpm 1.2 specification windows 8.1 x64

in Windows kommt man mit dem Ausführen von tpm.msc in die TPM Verwaltungskonsole. Hier sieht man unten Rechts die TPM Version 1.2. Neben einem TPM und Ownership Reset, könnte der TPM hier wieder deaktiviert werden. Vorsicht: beim Deaktivieren verliert der TPM den Bitlocker Schlüssel!  

tpm 2.0 specification tpm.msc windows 8.1 rt

Dieser Screenshot ist von einem Surface2 RT mit Windows 8.1. Hier musste der TPM nicht aktiviert werden, dieser war bereits bei Auslieferung aktiv. Wie man sieht hat dieses Gerät bereits einen TPM 2.0 Chip eingebaut. Der TPM lässt sich hier nicht deaktivieren. (Das entspricht der ab 2015 geltenden Windows Certified Anforderung, siehe weiter oben, TPM 2.0 )

 

 

 

Quelle: TPM Main Specification Level 2 Version 1.2, Revision 116, Stand März 2011
http://www.trustedcomputinggroup.org/resources/tpm_main_specification

Holger Wache

Holger Wache