Bundesamt für Sicherheit in der Informationstechnik

Das Trusted Platform Module (TPM)

Aufbau und Struktur

Der Aufbau eines vertrauenswürdigen Personal Computers beinhaltet nach der Spezifikation 1.2 der Trusted Computing Group (TCG) eine Erweiterung der herkömmlichen PC-Architektur um ein Subsystem, welches aus einem Core Root of Trust for Measurement (CRTM), einem Trusted Platform Module (TPM) und dem Trusted Software Stack (TSS) besteht.

Das TPM ist ein Prozessor, der wegen der Komplexität und der Angreifbarkeit von Software als separater Chip auf dem Mainboard von PCs eingebaut wird. Neben dem TPM als hardwarebasierte Kernkomponente werden weitere Hilfskomponenten des Subsystems in Form einer BIOS-Erweiterung — das CRTM — und der Softwaresteuerung — der TSS — spezifiziert. Die gesamte Funktionalität des Subsystems wird durch diese Kernkomponenten bestimmt. Das Subsystem hat die Aufgabe, den mit anderen Systemen verbundenen, am Internet angeschlossenen Computer in einem nachweisbar vertrauenswürdigen Zustand zu halten. Dazu muss der Computer bereits bei seiner Herstellung vertrauenswürdig sein. Alle nachfolgenden Benutzer- und Programmaktionen müssen so ausgeführt werden, dass diese Vertrauenswürdigkeit über die gesamte Betriebsdauer des Systems erhalten bleibt.

In diesem Abschnitt wird die grundlegende Architektur des Subsystems, die Trusted Platform Architecture (TPA) beschrieben. Im Vordergrund steht die Darstellung der Struktur des TPM. Das Ziel der Sicherheitsarchitektur liegt darin, für die gesamte Betriebsdauer immer wieder Vertrauen zwischen entfernten Kommunikationspartnern herzustellen, z. B. zwischen einem PC in einer Arztpraxis und dem Server einer Kassenärztlichen Vereinigung, zwischen denen personenbezogene Daten zur Abrechung ambulanter medizinischer Leistungen ausgetauscht werden. Zum Erreichen dieses Ziels sind folgende Zertifikate zur Sicherstellung der Authentizität und der Integrität der beteiligten Systeme erforderlich.

Basiskomponenten des TPM Basiskomponenten des TPM (Quelle: Intel)

  1. Endorsement Zertifikat — Dieses Zertifikat bestätigt die Echtheit des TPM. Genaugenommen wird sichergestellt, dass das TPM von einem autorisierten Hersteller bereitgestellt wurde. Das TPM wird in dem Zertifikat durch ein 2048 Bit langes Schlüsselpaar, dem sog. Endorsement Key, eindeutig repräsentiert. Dieses Schlüsselpaar wird entweder bei der Herstellung des TPM-Chips vom Hersteller erzeugt oder erst zu einem späteren Zeitpunkt im Chip gebildet. In beiden Fällen verlässt der Endorsement Key das TPM niemals. Der Endorsement Key wird verwendet, um sog. Attestation Identity Keys (AIK) herzustellen. Ein AIK repräsentiert einen Alias im Sinne einer anonymen Identität. Dienstleister können durch Prüfung eines für seinen Service erzeugten AIK sicher sein, eine vertrauenswürdige Plattform zu bedienen.
  2. Platform Zertifikat — Das Plattform-Zertifikat wird vom Hersteller der Plattform — also etwa eines PCs, Laptops oder Mobiltelefons — ausgestellt. Es bestätigt, dass alle Plattform-Komponenten der TCG-Spezifikation genügen und dass die Plattform ein gültiges TPM enthält. Es wird also bescheinigt, dass das aktuelle System eine vertrauenswürdige Plattform darstellt.
  3. Conformance Zertifikat — Dieses Zertifikat bestätigt, dass das TPM-Design in der Plattform der TCG-Spezifikation genügt und das TPM korrekt implementiert ist.
  4. Validation Zertifikat — Dieses Zertifikat stellt für Komponenten oder Komponentengruppen (wie Grafikkarten oder Eingabegeräte) die Übereinstimmung und Korrektheit der Implementierung gegenüber der TCG-Spezifikation sicher.

Die Zertifikate dienen dem Nachweis der Vertrauenswürdigkeit des Computersystems im Auslieferungs- bzw. Herstellungszustand. Alle entsprechenden Schlüssel befinden sich an ausgezeichneten Speicherplätzen innerhalb des TPMs.

Darüber hinaus enthält jedes TPM einen eindeutigen Storage Root Key (SRK). Der SRK dient zur Ableitung weiterer Schlüssel, so dass eine Schlüssel-Baumstruktur entsteht. Die Blätter dieses Baumes werden zur Verschlüsselung von Daten herangezogen. Der SRK wird erzeugt, sobald die Plattform durch ihren Eigentümer in Besitz genommen wird.

Als weitere fundamentale Basiskomponenten, um eine vertrauenswürdige Plattform zu bilden, sind die Roots of Trust zu nennen. Die Root of Trust for Measuring Integrity Metrics (RTM) ist für das Messen und Aufzeichnen von bestimmten sicherheitsrelevanten Zuständen und das Protokollieren der Zustände im TPM verantwortlich. Das TPM bildet zusätzlich zwei Wurzeln (Roots) ab, die sich um das Speichern und das Wiedergeben von sicherheitsrelevanten Informationen kümmern. Letztere beiden Wurzeln sind laut Spezifikation Bestandteil des TPM. Die RTM wird in der PC-Hardware abgebildet, dazu wird das BIOS modifiziert und über digitale Signaturen vor böswilligen Änderungen geschützt. In einem PC heißt die RTM auch CRTM. Durch die Roots of Trust wird sichergestellt, dass sich das Computersystem in einem vertrauenswürdigen Nachfolgezustand befindet, wenn eine das System verändernde Aktion ausgeführt wurde.

Das TPM ist laut Spezifikation ein passives Modul. Das bedeutet, dass jede Aktion einer TPM-Komponente von außerhalb des TPM über eine entsprechende Schnittstelle angestoßen werden muss. Die Integration auf dem Mainboard und die Anbindung an das Bussystem zeigt die folgende Abbildung am Beispiel eines TPMs von Infineon. Das TPM ist über den sog. Low-Pin-Count-Bus (LPC) mit einer Bandbreite von ca. 4 MByte/s an das Mainboard angebunden. Im Gegensatz zu einer Smartcard ist das TPM somit nicht an einen Benutzer, sondern fest an die Plattform gebunden. Im Auslieferungszustand ist das TPM deaktiviert. Um die Funktionalitäten des TPM zu nutzen, muss das TPM initialisiert, verfügbar gemacht, vom Eigentümer übernommen und schließlich aktiviert werden. Für die Initialisierung und Inbesitznahme ist die physikalische Anwesenheit des Eigentümers erforderlich.

TP-Mainboard-Architektur TP-Mainboard-Architektur (Quelle: Infineon)

Das TPM selbst ist softwaretechnisch nicht manipulierbar und dient zur sicheren Speicherung und Verarbeitung von systembeschreibenden Referenzwerten der Plattform, in der es sich befindet. Es kann von diesem System nicht entfernt werden, denn aufgrund der dann nicht mehr geeigneten Zertifikate würde es unbrauchbar, ebenso die mit einem entfernten TPM geschützten Daten auf der Plattform.

TPM-Struktur nach Funktionen (Quelle: Infineon) Struktur eines TPM von Infineon nach Funktionen (Quelle: Infineon)

Die Funktionen des TPM lassen sich in kryptographische Komponenten und nicht-kryptographische Bestandteile einordnen. Zu den kryptographischen Komponenten gehört ein Generator für asymmetrische Schlüssel, der die Asymmetric Crypto Engine (ACE) für RSA bis hin zu einer Länge von 2048 Bit bedienen kann. Desweiteren sind die Hash-Algorithmen SHA-1 und MD-5 in Hardware implementiert. Als weitere wesentliche Komponente enthält das TPM einen physikalischen Zufallszahlengenerator. Das Funktionsspektrum des TPM umfasst:

  • Sichere, persistente Speicherung des Endorsement Keys, welcher einzigartig dem TPM zugeordnet ist.
  • Erstellung von RSA-Keys mit einer Länge von 2048 Bits. Kürzere Schlüssellängen sind möglich. Die Schlüssel können entweder für Signierung, Authentifizierung oder für Ver- bzw. Entschlüsselung von Daten verwendet werden. Jedoch muss der Zweck des Schlüssels bei seiner Erstellung festgelegt werden.
  • Zufallszahlengenerierung, welche herstellerspezifisch implementiert werden kann. Die Erstellung von Zufallszahlen wird sowohl intern verwendet, kann aber auch von außen genutzt werden.
  • Speicherung von Systemzuständen im Platform Configuration Register (PCR). PCRs dienen zur Speicherung von Zustandsabbildern der aktuellen Konfiguration von Soft- und Hardware. Jedes TPM muss ein Minimum von 16 PCRs bereitstellen, wobei etwa die Hälfte davon für Integritätsprüfungen der Hardware belegt wird. Ein PCR speichert eine Summe von Integritätstests. Da jedoch sowohl die Grundkonfiguration, als auch jedes Update getrennt gespeichert werden müssen, werden aufgrund des beschränktem Speicherplatzes im TPM Sequenzen von Werten abgelegt. Dazu wird für jede Sequenz eine Repräsentation mit einer fixen Größe gewählt. Bei jeder Modifikation wird eine Hashfunktion (SHA-1) mit dem verketteten alten und neuen Wert aufgerufen.

< Seite zurück nächste Seite >