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 oder der nachrichtendienstlichen Kontrolle 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 im BIOS 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.[1]
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 . Sie sind nicht migrierbar und dürfen vom TPM nur für die Signatur von Werten eingesetzt werden, welche im Platform Configuration Register (PCR)[2] 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)[3] 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[4] und wird ab Windows 8[5] bzw. Linux-Kernel 4.0[6] unterstützt.
Bei der Abstimmung über TPM 2.0 als ISO-Standard stimmten nur Deutschland und die VR China gegen die Normierung.[7]
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.[8] 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.[9]
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-Modul unterstützen, kann zudem meist ausgewählt werden, ob das TPM-Modul oder fTPM verwendet werden soll.
Verbreitung
Ein TPM wird derzeit bereits von nahezu allen namhaften PC- und Notebook-Herstellern in den Produktreihen für professionelle Anwendungen angeboten.
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.[10]
- 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.[11] Windows 11 setzt TPM 2.0 grundsätzlich voraus.[12][9]
- 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
Heute verfügen praktisch alle Mainboards zumindest über einen TPM-Header, in den das TPM-Modul eingesteckt werden kann.
Kritik
TPM-Chips werden bisher nur eingeschränkt verwendet, da sie die Kontrollmöglichkeiten der Nutzer stark einschränken. Das Fernhalten unerwünschter Software kann beispielsweise sowohl Virensoftware als auch Konkurrenzsoftware betreffen.[13]
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 System 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.[14]
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“.[14]
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.[11][15][16]
Siehe auch
- Hardware-Sicherheitsmodul
- Kryptographie/Verschlüsselung
- NGSCB (früher Palladium)
- Trusted Computing
Weblinks
- Softwarebasierter TPM-Emulator für Unix (Memento vom 19. April 2014 im Internet Archive)
- infineon.com
- wave.com
- Trusted Computing FAQ (deutsch)
- Kontroll-Chips: So will die PC-Industrie Kunden entmündigen. Spiegel Online – netzwelt
- TPM 2.0 Library Specification FAQ (Memento vom 20. Oktober 2014 im Internet Archive)
Einzelnachweise
- heise online: Windows-11-Upgrade: So aktivieren Sie TPM 2.0 im BIOS-Setup. Abgerufen am 6. Oktober 2021.
- Glossareintrag zu PCR: Institut für Internet-Sicherheit if(is) vom 31. Juli 2014
- Ernie Brickell and Jan Camenisch and Liqun Chen: Direct Anonymous Attestation (PDF; 292 kB) vom 11. Februar 2004
- Trusted Platform Module Library; Part 1: Architecture (PDF) Trusted Computing Group. 30. Oktober 2014. Abgerufen am 23. November 2017.
- Windows 8 Boot Security FAQ
- [GIT PULL] Security subsystem changes for 3.20
- Anna Biselli: Wir leaken: Deutschland und China gegen den Rest der Welt – Wundersame Einigkeit bei Trusted Computing. netzpolitik.org, 9. März 2015, abgerufen am 11. März 2015.
- fTPM: A Firmware-based TPM 2.0 Implementation. In: Microsoft Research. Microsoft, November 2015, abgerufen am 2. Februar 2022 (englisch): „The fTPM is the reference implementation used in millions of mobile devices, and was the first hardware or software implementation to support the newly released TPM 2.0 specification.“
- Christof Windeck: Windows 11: Basisinformationen zum Trusted Platform Module TPM 2.0. In: Heise online. 25. Juni 2021. Abgerufen am 2. Februar 2022.
- Amit Singh: Trusted Computing for Mac OS X. (Nicht mehr online verfügbar.) In: Mac OS X Internals: A Systems Approach. 30. Oktober 2006, archiviert vom Original am 29. September 2012; abgerufen am 6. Februar 2022 (englisch).
- Fachleute vom Chaos Computer Club warnen vor Sicherheitslücken: Vortrag von Rüdiger Weis: Vor Windows 8 wird gewarnt vom 29. Dezember 2014 und ’’heise online’’ Warnung vor Secure Boot und Trusted Computing
- Compatibility for Windows 11. In: microsoft.com. Microsoft, 24. Juni 2021, abgerufen am 1. Juli 2021 (amerikanisches Englisch).
- Das ÖFIT-Trendsonar der IT-Sicherheit – Trusted Platform Module. Fraunhofer FOKUS Kompetenzzentrum Öffentliche IT, April 2016, abgerufen am 30. Mai 2016.
- BSI – Presseinformationen des BSI – Stellungnahme des BSI zur aktuellen Berichterstattung zu MS Windows 8 und TPM. 4. März 2016, archiviert vom Original am 4. März 2016; abgerufen am 10. März 2016.
- 32C3: Kryptologe warnt vor dem „Botnetz“ Windows 10 | heise open. 10. März 2016, archiviert vom Original am 10. März 2016; abgerufen am 10. März 2016.
- 31C3: Warnung vor Secure Boot und Trusted Computing | heise online. 10. März 2016, abgerufen am 10. März 2016.