# Trusted Platform Module

Das Trusted Platform Module (TPM) ist ein Chip nach der TCG-Spezifikation, der einen Computer oder ähnliche Geräte um grundlegende Sicherheitsfunktionen erweitert. Diese Funktionen können beispielsweise dem Lizenz- und Datenschutz dienen. Der Chip verhält sich in einigen Punkten wie eine fest eingebaute Smartcard, allerdings mit dem wichtigen Unterschied, dass er nicht an einen konkreten Benutzer, sondern an den lokalen Computer gebunden ist. Außer der Verwendung in PCs und Notebooks kann das TPM in PDAs, Mobiltelefonen und Unterhaltungselektronik integriert werden. Ein Gerät mit TPM, speziell angepasstem Betriebssystem und entsprechender Software bildet zusammen eine Trusted-Computing-Plattform (TC-Plattform). Eine solche „vertrauenswürdige Plattform“ kann nicht mehr entgegen den Interessen des Herstellers genutzt werden, sofern dieser Beschränkungen festgelegt hat. Ein möglicher Vorteil für einen normalen Benutzer eines solchen Systems liegt im Schutz gegen softwareseitige Manipulation durch unbefugte Dritte.
Der Chip ist aktuell überwiegend passiv und kann weder den Bootvorgang noch den Betrieb direkt beeinflussen. Er enthält einen eindeutigen kryptografischen Schlüssel und kann damit zur Identifizierung des Rechners genutzt werden. Das ist jedoch nur möglich, wenn der Eigentümer das Auslesen dieser Information auch gestattet hat. Bei x86-basierten PCs konnte das TPM bisher in den BIOS- oder UEFI-Einstellungen („BIOS-Setup“) vollständig deaktiviert werden, so dass keine seiner Funktionen zur Verfügung steht. Allerdings gibt es immer mehr Anwendungen, die nur auf einer TC-Plattform mit aktiviertem TPM laufen, wie es z. B. bei Windows seit der Version 11 der Fall ist.

## Grundlegende Schlüssel eines TPM
### Endorsement Key (EK)

Der EK ist genau einem TPM eindeutig zugeordnet. Die Schlüssellänge ist auf 2048 Bit und der Algorithmus auf das RSA-Verfahren festgelegt. Zum einen aus Sicherheits-, zum anderen aus Datenschutzgründen darf der private Teil das TPM nie verlassen – auch ein Backup des EK ist somit ausgeschlossen. Die Erzeugung dieses Schlüssels kann hingegen extern erfolgen. Erlaubt ist inzwischen die Löschung und Neu-Erzeugung des Schlüssels.
Laut aktueller TPM-Spezifikation kann der öffentliche Teil mit dem Kommando TPM_ReadPubek gelesen werden. Das Lesen kann aber mit dem Kommando TPM_DisablePubekRead blockiert werden. Die Blockierung ist endgültig und kann nicht mehr aufgehoben werden.

### Storage Root Key (SRK)

Der Storage Root Key (SRK) ist ein RSA-Schlüssel mit einer Länge von 2048 Bit. Er dient allein dem Zweck, weitere benutzte Schlüssel (z. B. private Schlüssel für die E-Mail-Kommunikation eines Benutzers) zu verschlüsseln und stellt somit die Wurzel des TPM-Schlüsselbaumes dar. Wechselt der Besitzer den Rechner, wird ein neuer SRK erzeugt. Der SRK ist nicht migrierbar.

### Attestation Identity Keys (AIK)

Attestation Identity Keys (AIKs) sind RSA-Schlüssel mit einer festgelegten Länge von 2048 Bit und einem fixierten öffentlichen Exponenten $e=2^{16}+1$. Sie sind nicht migrierbar und dürfen vom TPM nur für die Signatur von Werten eingesetzt werden, welche im Platform Configuration Register (PCR) abgelegt werden (Attestation). PCR sind ein Teil des flüchtigen Speichers im TPM und für die Speicherung von Zustandsabbildern der aktuellen Konfiguration von Soft- und Hardware zuständig.
Das Konzept der Attestation Identity Keys wurde eingeführt, weil der Endorsement Key eines TPM nicht direkt für die Beglaubigung der Plattformintegrität (Attestation) eingesetzt werden kann. Da dieser Schlüssel immer eindeutig ist, wäre die Privatsphäre der Benutzer beeinträchtigt. Deshalb werden AIKs (quasi als Pseudonym für den EK) in solchen Beglaubigungsprozessen verwendet. Sie können vom TPM-Eigentümer in beliebiger Anzahl erzeugt werden. Um dennoch sicherzustellen, dass nur konforme TC-Plattformen gültige AIKs erstellen, müssen die Schlüssel durch eine vertrauenswürdige Drittpartei (Trusted Third Party, hier oft auch als Privacy-CA bezeichnet) bestätigt werden. Diese Bestätigung erfolgt in Form eines AIK-Zertifikats (Credential).

## Sicherheitsfunktionen des TPM
### Versiegelung (sealing)

Durch Bilden eines Hash-Wertes aus der System-Konfiguration (Hard- und Software) können Daten an ein einziges TPM gebunden werden. Hierbei werden die Daten mit diesem Hash-Wert verschlüsselt. Eine Entschlüsselung gelingt nur, wenn der gleiche Hash-Wert wieder ermittelt wird (was nur auf demselben System gelingen kann). Bei Defekt des TPM muss nach Aussagen von Intel die Anwendung, die Sealing-Funktionen nutzt, dafür sorgen, dass die Daten nicht verloren sind.

### Auslagerung (binding/wrapping)

Das TPM kann Schlüssel auch außerhalb des Trust Storage (z. B. auf der Festplatte) speichern. Diese werden ebenfalls in einem Schlüssel-Baum organisiert und deren Wurzel mit einem „Key“ im TPM verschlüsselt. Somit ist die Anzahl der sicher gespeicherten Schlüssel nahezu unbegrenzt.

### Schutz kryptografischer Schlüssel

Schlüssel werden innerhalb des TPMs erzeugt, benutzt und sicher abgelegt. Sie brauchen dieses also nie zu verlassen. Dadurch sind sie vor Software-Angriffen geschützt. Vor Hardware-Angriffen besteht ebenfalls ein relativ hoher Schutz (die Sicherheit ist hier mit Smartcards vergleichbar). Manche Chips sind so hergestellt, dass eine physische Manipulation die unweigerliche Zerstörung der gespeicherten Schlüssel zur Folge hat.

### Bescheinigung (remote attestation)

Durch 'Bescheinigung' kann eine entfernte Partei davon überzeugt werden, dass die Trusted Computing Plattform bestimmte Fähigkeiten besitzt und sich in einem wohldefinierten Zustand (entsprechende PCR-Werte) befindet. Diese TPM-Funktionalität hat erhebliche Auswirkungen auf die Privatsphäre eines Benutzers, weshalb zur Bescheinigung der Plattformkonformität (also Fähigkeiten und Zustand) niemals der EK direkt verwendet wird, sondern möglichst nur ein neu erzeugter AIK. Ferner erfordert eine Bescheinigung immer auch die explizite Zustimmung des TPM-Eigentümers.
Zurzeit sind zwei verschiedene Attestationsverfahren vorgesehen:
* Privacy CA (Trusted Third Party)
* Direct Anonymous Attestation
Die ursprünglich vorgeschlagene Lösung (TPM-Spezifikation Version 1.1) benötigt eine vertrauenswürdige Drittpartei. Diese Privacy CA signiert alle neu erzeugten AIKs, sofern die Plattform bestimmte festgelegte Richtlinien erfüllt, z. B. nachgewiesen durch gültige Zertifikate (EK Credential, TCPA Conformity Certificate, Platform Credential). Die Nachteile liegen in der notwendigen Hochverfügbarkeit und dem zentralen Angriffspunkt hinsichtlich der Privatsphäre der Benutzer.
Deshalb wurde mit der TPM-Spezifikation Version 1.2 eine als Direct Anonymous Attestation (DAA) bezeichnete Technik eingeführt. Durch ein komplexes kryptographisches Verfahren (spezielles Gruppensignaturschema) kann man die vertrauenswürdige Drittpartei einsparen und die Beglaubigung direkt zwischen den Beteiligten durchführen. Einen wichtigen Baustein dieser Technik bilden sogenannte Zero Knowledge-Protokolle. Sie zeigen einem Verifizierer (Diensteanbieter) die Gültigkeit eines erzeugten AIK, ohne dass dabei Wissen über den korrespondierenden EK preisgegeben wird. Ein Intel-Mitarbeiter verglich das Prinzip mit der Lösung eines Rubik-Würfels: Er geht davon aus, dass man einem Betrachter zunächst den ungeordneten und später den geordneten Würfel zeigt. So kann man einem Dritten jederzeit klarmachen, den Lösungsweg zu kennen, ohne diesen Weg erläutern zu müssen.
Allerdings existieren auch bei DAA Einschränkungen bzgl. der gewährten Anonymität: Beispielsweise gibt es einen bestimmten Betriebsmodus (Named-Base Pseudonym, Rogue Tagging), der auf Wunsch des Verifizierers das Erkennen einer wiederholten bzw. missbräuchlichen Nutzung erlaubt. Damit ist eine Verkettung der durchgeführten Dienstanforderungen möglich, was natürlich die Anonymität einschränkt. Ferner sieht der Standard eine optionale Anonymity Revocation Authority vor, um den gesetzlichen Vorschriften einiger Staaten zu entsprechen.

### Sicherer Zufallsgenerator

Die TCG-Spezifikation garantiert einen sicheren Zufallsgenerator auf dem TPM. Damit wird ein allgemeines Problem der Informatik bei der Gewinnung von Zufallswerten per Software angegangen. Die beschrittenen Wege wie Bewertung zufälliger Systemzustände oder der Auswertung von Benutzerverhalten sind problematisch.

## TPM 2.0

2014 wurde der Standard TPM 2.0 veröffentlicht. TPM 2.0 ist nicht rückwärtskompatibel zu TPM 1.2 und wird ab Windows 8 bzw. Linux-Kernel 4.0 unterstützt. Für Windows 11 ist es eine Systemvoraussetzung.
Bei der Abstimmung über TPM 2.0 als ISO-Standard stimmten nur Deutschland und die VR China gegen die Normierung.
| | TPM 1.2 | TPM 2.0 |
| Krypto-Algorithmen | SHA-1, RSA | Variabel, z. B. SHA-1, SHA-256, RSA, Elliptic Curve Cryptography P256 |
| Crypto Primitives | RNG, SHA-1 | RNG, RSA, HMAC, SHA-1, SHA-256 |
| Hierarchiestufen | 1 (storage) | 3 (platform, storage, endorsement) |
| Root Keys | 1 (SRK RSA-2048) | Verschiedene Schlüssel und Algorithmen je Hierarchiestufe |
| Autorisierung | HMAC, PCR, locality, physical presence | Password, HMAC, policy |
| NVRAM | Unstrukturierte Daten | Unstrukturierte Daten, Counter, Bitmap, Extend |

## Firmware-TPM

Unter „Firmware-TPM“ und der Abkürzung fTPM versteht man eine Firmware-basierte Implementierung eines Trusted Platform Modules. Es findet sich z. B. seit 2013 auf vielen Arm-basierten SoCs und war eine der ersten implementierten Varianten von TPM 2.0. Auf der x86-Architektur war es ebenfalls ab 2013 zuerst in Intels Atom Z2000 enthalten und findet sich seither in zahlreichen Prozessoren von Intel und AMD. Bei Intel ist das fTPM Teil der Platform Trust Technology (PTT), bei AMD gehört es zum Platform Security Processor (PSP) bzw. später AMD Security Processor.
Gibt es ein Firmware-Setup, wie etwa das UEFI „BIOS-Setup“, lässt sich das fTPM oft aktivieren oder deaktivieren. Auf Desktop-Computern, die ein dediziertes TPM 2.0 als Aufsteckmodul unterstützen, kann meist zwischen dem Modul (wenn installiert) und dem fTPM gewählt werden.

## Verbreitung

Bei PCs ist ein TPM 2.0 seit 2021 standardmäßig sowohl vorhanden als auch aktiviert, um den Mindestanforderungen von Windows 11 zu entsprechen, wobei es in vielen Modellen seit ca. 2015 oft zwar vorhanden, aber (per Voreinstellung im BIOS-Setup) nicht aktiviert ist.

### Software

Softwareseitig wird das TPM von verschiedenen Anbietern unterstützt:
* Acer, Asus, MSI, Dell, Fujitsu Technology Solutions, HP, Lenovo, LG, Samsung, Sony sowie Toshiba bieten eine Integration auf ihren Rechnern an.
* Apple verbaute von 2006 an mit der Einführung der Intel-Architekturen auf MacBooks vorübergehend TPMs. In älteren Modellen (2009–2011) sind keine TPM vorhanden. Es gibt auch keinen Treiber von Apple, nur einen Port unter der GPL.
* Infineon bietet als Hersteller der TPM-Chips ebenfalls eine Software an, die sowohl als OEM-Version mit neuen Computern ausgeliefert wird als auch separat über Infineon für Rechner mit einem TPM, der dem TCG-Standard entspricht.
* Microsofts Betriebssysteme Windows Vista und Windows 7 sowie ab Windows Server 2008 benutzen den Chip im Zusammenhang mit der enthaltenen Laufwerkverschlüsselung BitLocker. Windows 11 setzt TPM 2.0 grundsätzlich voraus.
* Die Firma Wave Systems bietet Client- und Serversoftware an, die auf allen TPM-Chips läuft. Diese Software wird beispielsweise bei vielen Modellen von Dell und Gateway vorinstalliert.
* Die Firma Charismathics GmbH bietet eine virtuelle Smartcard auf Basis TPM unter Windows 7 und höher an. Es werden sowohl Maschinenzertifikate als auch Benutzerzertifikate unterstützt.
Dabei gibt es auch Mischformen, wenn beispielsweise das TPM-Modul in den Ethernet-Chip integriert ist (Broadcom) und die Software „on-top“ auf Infineon basiert.

### Hardware

Ein TPM wird bereits seit ca. 2010 (Version 1.x) von namhaften PC- und Notebook-Herstellern verbaut, war allerdings anfangs den Produktreihen für professionelle Anwendungen vorbehalten. Nach der Verfügbarkeit der Version 2.0 ab 2013 haben die meisten Hersteller das TPM 1.2 sukzessive durch ein fTPM 2.0 ersetzt, das wiederum anfangs nur bei teureren Produktreihen im BIOS-Setup auch aktivierbar war. Seit ca. 2015 verfügen viele Mainboards von Desktop-PCs und Servern zumindest über einen TPM-Header, in den das TPM-Modul eingesteckt werden kann. Bei den meisten PC-Systemen ist ebenfalls seit ca. 2015 bereits ein fTPM (Firmware-TPM) in den Prozessor, SoC oder Chipsatz integriert, das eventuell im BIOS-Setup aktiviert werden muss. Manche Hersteller veröffentlichten Firmware-Updates inklusive der Upgrade-Möglichkeit von TPM-Version 1.2 auf 2.0. Bei PCs ab 2021 ist normalerweise kein Handlungsbedarf gegeben, da Windows 11 ein TPM 2.0 voraussetzt.

## Kritik

Das BSI schreibt in der Pressemeldung „Stellungnahme des BSI zur aktuellen Berichterstattung zu MS Windows 8 und TPM“ vom 21. August 2013, dass für Nutzergruppen, die „sich aus verschiedenen Gründen nicht um die Sicherheit ihrer Systeme kümmern können […], sondern dem Hersteller des Systems vertrauen […]“, „Windows 8 in Kombination mit einem TPM durchaus einen Sicherheitsgewinn bedeuten“ kann.
Allerdings beschreibt das BSI auch, dass durch die Verwendung von Windows und TPM 2.0 ein „Verlust an Kontrolle über […] Betriebssystem und […] Hardware“ einhergehe. „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.“ Laut BSI kann dies so weit gehen, dass sogar die „Hardware dauerhaft nicht mehr einsetzbar ist“. Gleiche Situationen bezeichnet das BSI für Bundesverwaltung und für andere Anwender, insbesondere auf kritischen Infrastrukturen, als nicht akzeptabel und bemängelt auch, dass auf diesem Wege Sabotage möglich ist.
BSI wie auch ein Eckpunktepapier der Bundesregierung zu „Trusted Computing“ und „Secure Boot“ vom August 2012 fordern die „vollständige Kontrolle durch den Geräte-Eigentümer“ sowie die „Entscheidungsfreiheit“ in „Produktauswahl, Inbetriebnahme, Konfiguration, Anwendung und Stilllegung“.
Dieser Forderung schloss sich auch Rüdiger Weis, Diplom-Mathematiker und Kryptograph, sowohl auf dem 31C3 als auch 32C3 an. Er kritisiert im Besonderen die Abhängigkeit bei Secure Boot von Microsoft und die fehlende „internationale Kontrolle des TPM-Herstellungsprozess“. Er fordert konkret die Offenlegung von Zertifizierungs-Boot-Codes nach Kartellrecht, da die „ganze Computerhardware jenseits der Apple-Welt auf Windows angepasst“ sei. Zudem bezeichnete er das TPM als „Traumchip für die NSA“, da der Schlüssel außerhalb staatlicher Stellen erzeugt würde.
Anfang 2022 wurde bekannt, dass unter gewissen Umständen (unter Windows 11 21H2) das auf AMD-Mainboards integrierte fTPM Leistungseinbußen verursacht. Um das Problem zu beheben, ist ein UEFI-Update erforderlich.