| | 0

Windows 10 Enterprise Serie – Trusted Platform Module (TPM)

>> zur Übersicht und Einleitung der Blogserie “Windows Enterprise Serie”

Der Trusted Platform Module-Chip (TPM-Chip) ist ein Hardwarebaustein, der im Normalfall fest auf dem Motherboard von neueren Computern verbaut ist. Weiterhin wird er auch in Tablets, Mobiltelefonen oder allgemeiner ausgedrückt in allen Geräten verwendet, die für die verschiedensten Aufgaben einen Hardwarebaustein benötigen, der kryptographische Berechnungen durchführen kann. Am ehesten lässt er sich mit einer Smart Card vergleichen, nur das diese hier nicht personenbezogen, sondern maschinenbezogen ist.
Bereits im Jahre 2003 gab es die erste TPM Spezifikation in der Version 1.2. Diese wurde allerdings erst im Jahre 2009 als TPM-Standard ISO/IEC 11889 durch die Trusted Computing Group veröffentlicht (Quelle: https://netzpolitik.org/2015/wir-leaken-deutschland-und-china-gegen-den-rest-der-welt-wundersame-einigkeit-bei-trusted-computing/, zuletzt abgerufen 01.02.2016). Im Folgenden eine Möglichkeit, wie ein TPM-Chip aussehen kann.

Abbildung 1: Steckbare TPM-Einheit im TPM-Steckplatz einer Asus-Hauptplatine (https://de.wikipedia.org/wiki/Trusted_Platform_Module)

Mittlerweile wurde eine aktualisierte Version 2.0 des TPM-Chips veröffentlicht. Wer sich mit den exakten aktuellen Spezifikationen vertraut machen will, findet hier sämtliche Dokumente des ISO/IEC 11889:2015 Standards; http://www.trustedcomputinggroup.org/resources/tpm_library_specification(zuletzt abgerufen 01.02.2016). Einige TPM-Chips sind gegen physische Angriffe geschützt, z.B. durch Lichtsensoren. Sollte also versucht werden, den Chip zu öffnen, löscht dieser selbstständig alle in ihm gespeicherten Schlüssel und ist somit wertlos.

Technische Anforderungen

Spezielle technische Anforderungen an den TPM-Chip gibt es in der Hinsicht, dass er in der Lage sein muss, Berechnungen für bestimmte kryptographische Algorithmen durchführen zu können. Aufgrund der gestiegenen Prozessor- bzw. Computerleistung in den vergangenen Jahren, wurde eine Anpassung der Version 1.2 notwendig, die jetzt zur Version 2.0 geführt hat. Folgende Tabelle gibt eine Übersicht über die Änderungen und Erweiterungen zwischen den beiden Versionen.

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, SHG-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

Die Daten dieser Tabelle stammen aus der folgenden Quelle: https://de.wikipedia.org/wiki/Trusted_Platform_Module (zuletzt abgerufen 01.02.2016). Weiterhin sollen TPM-Chips in der Version 2.0 auch in der Lage sein, zukünftige Anpassungen der Kryptographie-Algorithmen zu ermöglichen; ebenso die Möglichkeit weitere Algorithmen, neben den oben genannten, hinzuzufügen. Deshalb auch die Aussage „Variabel“ in der Zeile Krypto-Algorithmen.

Was ist TPM?

Wie bereits in der Einleitung geschrieben, kann man TPM am ehesten mit einer maschinenbezogenen Smartcard vergleichen. Der Chip kann Passwörter, Zertifikate und Verschlüsselungsschlüssel speichern. Gleichzeitig ist es ihm auch möglich, spezifische Systemwerte zu messen und daraus einen Hashwert zu ermitteln. Falls dieses Merkmal eingerichtet ist, kann so beim nächsten Systemstart geprüft werden, ob die Systemintegrität beeinträchtigt wurde oder nicht. Sollten bestimmte Systemkomponenten ausgetauscht worden sein, so ändert sich dementsprechend der Hashwert. Dies wird vor allem bei der Verwendung von BitLocker genutzt, um so eine Prüfung bereits vor dem Start des eigentlichen Betriebssystems zu ermöglichen.

TPM & BitLocker

Im Bereich TPM & BitLocker ist auch der TPM-Chip zu erwähnen. Den größten Schutz bietet BitLocker in Verbindung mit TPM. Er schützt die Benutzerdaten vor Manipulation, während das System offline war (Systemintegritätsprüfung). Zur Nutzung von BitLocker mit TPM muss minimal TPM-Version 1.2 vorhanden sein. Der Chip verhindert so, dass die Festplatte ausgetauscht werden kann, da Verschlüsselung und Entschlüsselung des Laufwerks vom TPM Chip abhängt. Das BSI empfiehlt die Nutzung von TPM in Verbindung mit PIN oder USB-Schlüssel. Die Nutzung von TPM allein wird nicht empfohlen.
Für weitere Infos speziell zu BitLocker siehe den entsprechenden Blogpost.

Neuerungen in Windows 10

Zu den Themen Microsoft Passport, BitLocker und Credential Guard wird es separate Blogpost geben. Der Punkt virtualisierungsbasierte Sicherheit (VBS) wird ebenfalls im Blogpost zu Credential Guard beschrieben. Daher beschränke ich mich hier auf die übrigen vier Punkte. Für weitere Infos einfach dem entsprechenden Link am Ende des jeweiligen Punktes folgen; sofern vorhanden.
Windows Hello ermöglicht eine Anmeldung an Windows 10 Geräten mit Hilfe von Fingerabdruck-, Gesichts- oder Iriserkennung. Dadurch ist es nicht mehr notwendig, ein Passwort zur Anmeldung einzugeben. Windows Hello nutzt dazu Microsoft Passport. Die gewonnen Daten während der Erkennung werden genutzt, um mit Hilfe des TPM-Chip daraus öffentliche/private Schlüssel zu erstellen. So gelangen die Schlüssel nicht an Dritte oder werden extern gespeichert, sondern sind einzig und allein im TPM-Chip verfügbar. Die folgende Grafik illustriert das Vorgehen.

Abbildung 2: (Quelle: https://blogs.windows.com/buildingapps/2016/01/26/convenient-two-factor-authentication-with-microsoft-passport-and-windows-hello/)

Die durch den biometrischen Sensor erfassten und durch den TPM-Chip in einem Formular gespeicherten Daten, lassen sich daraus nicht wiederherstellen. Da die Daten lokal im Gerät auf dem Chip gespeichert werden, kann sich der Benutzer nicht mit derselben Geste auch an anderen Geräten anmelden. (https://technet.microsoft.com/en-us/library/mt633827(v=vs.85).aspx, zuletzt abgerufen 01.02.2016)

Der Punkt „Virtuelle Smartcards“ lässt sich relativ kurz erläutern. Im Prinzip verhält sich der TPM-Chip wie eine konventionelle Smartcard, die jedoch fest im jeweiligen Computer verbaut ist. Wechselt ein Benutzer den Computer, so muss am neuen Arbeitsplatz für diesen Nutzer eine neue virtuelle Smartcard eingerichtet werden. Im Grunde bedeutet dies nichts anderes, als dass der TPM-Chip des Computers am neuen Arbeitsplatz ein neues Schlüsselpaar generieren und speichern muss. Der Sicherheitslevel von konventionellen und virtualisierten Smartcards ist dabei vergleichbar. (https://technet.microsoft.com/en-us/library/dn593708.aspx, zuletzt abgerufen 01.02.2016)
Beim kontrollierten Start (Measured Boot) prüft der TPM-Chip verschiedene Komponenten beim Systemstart, darunter Firmware, Windows-Startkomponenten, Treiber und sogar den ELAM-Treiber. Dieser kontrollierte Start muss jedoch mit einem Dienst zusammenarbeiten, der die Daten auch analysieren und auswerten kann. Eine Möglichkeit dazu ist der Health Attestation CSP, wie auch auf der folgenden Grafik zu sehen ist.

Abbildung 3: (Quelle: https://technet.microsoft.com/de-de/library/mt601297(v=vs.85).aspx)

Die folgende Erklärung der einzelnen Schritte ist ebenfalls unter der, bei der Abbildung angegebenen URL, zu finden und von dort entnommen.

  1. Der PC verwendet das TPM zum Aufzeichnen von Messungen des Startladeprogramms, der Starttreiber und des ELAM-Treibers. Das TPM verhindert die Manipulation dieser Messungen, sodass selbst erfolgreiche geladene Schadsoftware die Messungen nicht ändern kann. Diese Messungen sind mit einem Attestation Identity Key (AIK) signiert, der im TPM gespeichert ist. Da die TPM-Hardware die Messungen signiert hat, können sie nicht durch Schadsoftware geändert werden, ohne dass dies erkannt wird.
  2. Der Integritätsnachweis ist nicht standardmäßig aktiviert. Die Aktivierung setzt eine Registrierung auf einem Server zur mobilen Geräteverwaltung voraus. Bei Aktivierung kontaktiert der Integritätsnachweis-Client einen Remoteserver, den sogenannten Integritätsnachweis-Server. Microsoft bietet einen cloudbasierten Windows-Dienst zum Integritätsnachweis, mit dem der Zustand eines Geräts bewertet werden kann. Der Integritätsnachweis-Client sendet die signierten Messungen, das TPM-Startprotokoll des Geräts und ein AIK-Zertifikat (sofern vorhanden), anhand deren der Integritätsnachweis-Server sicherstellen kann, dass der Schlüssel zum Signieren der Messungen für ein vertrauenswürdiges TPM ausgestellt wurde.
  3. Der Integritätsnachweis-Server analysiert die Messungen und das Startprotokoll, und erstellt eine Deklaration zum Gerätezustand. Diese Deklaration ist verschlüsselt, um die Vertraulichkeit der Daten zu gewährleisten.
  4. Ein Verwaltungssystem wie der MDM-Server kann anfordern, dass ein registriertes Gerät eine Deklaration zum Gerätezustand bereitstellt. Windows 10 unterstützt Anforderungen des Gerätezustands durch MDM-Server sowohl von Microsoft als auch von Drittanbietern. Um den Diebstahl und die Wiederverwendung von Deklarationen zum Gerätezustand durch andere Geräte zu verhindern, sendet ein MDM-Server dem registrierten Gerät neben der Anforderung der Deklaration zum Gerätezustand auch eine Nonce (Number used only once)-Anforderung.
  5. Das registrierte Gerät signiert die Nonce mit seinem AIK (der im TPM gespeichert ist) digital und sendet dem MDM-Server die verschlüsselte Deklaration zum Gerätezustand, die digital signierte Nonce und einen signierten Startzähler, der bestätigt, dass das Gerät seit dem Erhalt der Deklaration zum Gerätezustand nicht neu gestartet wurde.
  6. MDM-Server kann die selben Daten an den Server für den Integritätsnachweis senden. Der Server entschlüsselt die Deklaration zum Gerätezustand bestätigt, dass der Startzähler in der Deklaration dem Startzähler entspricht, der an den MDM-Server gesendet wurde, und erstellt eine Liste mit Integritätsattributen.
  7.  Der Integritätsnachweis-Server sendet diese Liste mit Integritätsattributen an den MDM-Server. Der MDM-Server erzwingt dann Zugriffs- und Compliancerichtlinien, sofern er entsprechend konfiguriert ist.

Der sichere Start oder auch UEFI Secure Boot genannt, prüft beim Start des Computers die Signatur jeder Boot Software, darunter auch die Firmware Treiber und das Betriebssystem. Erst wenn diese Prüfung erfolgreich war, wird das System gestartet, d.h. die Kontrolle wird dann an das OS übergeben. Signaturen von Microsoft wird dabei immer vertraut. Dadurch wird sichergestellt, dass der Computer nur die Software verwendet, die vom Hersteller entsprechend dafür vorgesehen ist. Für Windows 10 Tablets und Mobile Devices ist die Aktivierung von Secure Boot vorgeschrieben. Nutzer von Desktop Computern haben noch die Möglichkeit Secure Boot auszuschalten. TPM kann zusammen mit Secure Boot verwendet werden, auch wenn es nicht vorgeschrieben ist. Dabei können auf dem TPM-Chip entsprechende Berechtigungsnachweise oder Schlüssel gespeichert werden (Quelle: http://www.uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf, zuletzt abgerufen 03.02.2016). Alternativ kann Secure Boot auch den kontrollierten Start verwenden und entsprechend der dort genannten Prozedur vorgehen.
Seit Windows 10, Version 1511 wird vom Schlüsselspeicheranbieter (KSPs) und srvcrypt auch Ellipsenkurvenkryptographie (Elliptical Curve Cryptography, ECC) unterstützt.

vTPM

Zusätzlich zum TPM-Chip für physische Computer, gibt es seit Windows 10 auch die Möglichkeit, virtuelle TPM-Chips in virtuellen Computern zu nutzen. Diese Möglichkeit gibt es jedoch nur, wenn Hyper-V aktiviert ist und einige andere Voraussetzungen erfüllt sind. Somit können jetzt auch virtuelle Festplatten durch BitLocker geschützt werden.
Zu den weiteren Voraussetzungen gehören, dass es sich bei der virtuellen Maschine um eine vom Typ Generation 2 handeln muss und das Herbst-Update von Windows 10 installiert ist. Außerdem muss in physischen Computer ein TPM-Chip verbaut sein, was in den meisten neueren Computern der Fall sein dürfte und er darf über das BIOS nicht deaktiviert sein.
Generell wird vTPM in den Security Einstellungen der VM aktiviert. Bevor man dies jedoch nutzen kann, muss sichergestellt sein, dass das Windows-Feature „Isolated User Mode“ aktiviert ist und im Gruppenrichtlinien Editor muss die Gruppenrichtlinie „Turn On Virtualization Based Security” aktiviert werden. Diese findet man unter Computer Konfiguration -> Administrative Templates -> System -> Device Guard. Als abschließenden Schritt muss Windows Remote Management auf dem Computer konfiguriert sein. Danach sollte es möglich sein, TPM in der virtuellen Maschine zu nutzen.

Pro / Kontra

Bei den neuen Computern und auch anderen Geräten, wie Mobiltelefonen oder Spielekonsolen ist heute schon ein TPM-Chip verbaut. Es spricht also nichts dagegen, die entsprechenden Möglichkeiten zu nutzen, die er einem bietet. Man sollte nur beachten, das TPM 2.0 nicht abwärtskompatibel mit TPM 1.2 ist.
Weiterhin muss man darauf vertrauen, dass die Daten im TPM-Chip jetzt und auch in der Zukunft dort soweit gesichert sind, dass keine dritte Person oder Institution darauf Zugriff erlangen kann. Laut diesem Artikel http://www.heise.de/security/meldung/Hacker-liest-Kryptoschluessel-aus-TPM-Chip-aus-926883.html (zuletzt abgerufen 01.02.2016), war es 2010 Christopher Tarnovsky möglich, einen TPM-Chip mit erheblichem Aufwand zu knacken. Dabei handelte es sich um einen TPM-Chip der Firma Infineon, Version 1.2.

Fazit

Für den Einsatz des TPM-Chips gibt es unter Windows 10 viele neue zusätzliche Möglichkeiten, aufgrund der neu eingeführten oder verbesserten Features. Nutzt man diese Features, kann man die Sicherheit des Systems noch weiter steigern, als das vor Windows 10 in Zusammenarbeit mit dem TPM-Chip möglich war; vor allem in Unternehmen können die zusätzlichen Features für eine erhöhte Sicherheit sorgen. Allein schon zur Verwendung von BitLocker sollte man den TPM-Chip nutzen. Inwieweit eine Nutzung im privaten Bereich sinnvoll ist, muss jeder Privatanwender für sich selbst entscheiden. Falls ein TPM-Chip verbaut ist, was bei den neueren Geräten wahrscheinlich der Fall sein wird, ist es eine gute optionale Möglichkeit, sein Gerät zu sichern.