Trusted Platform Module (TPM) unter Windows 10 IoT Core
Was ist TPM?
Ein Trusted Platform Module (TPM) ist ein kryptografischer Coprozessor, einschließlich Funktionen für die Zufallszahlengenerierung, sichere Generierung kryptografischer Schlüssel und Einschränkung ihrer Verwendung. Sie enthält auch Funktionen wie Remotenachweis und versiegelten Speicher. Die technische Spezifikation des TPM ist öffentlich verfügbar, gesteuert von der Trusted Computing Group (TCG). Die neueste Version TPM 2.0 (veröffentlicht Im Oktober 2014) ist eine wichtige Neugestaltung der Spezifikation, die neue Funktionen hinzufügt und Schwachstellen des ehemaligen TPM 1.2 behebt.
Warum TPM?
Computer, die ein TPM integrieren, können kryptografische Schlüssel erstellen und verschlüsseln, damit sie nur vom TPM entschlüsselt werden können. Dieser Prozess, der häufig als "Wrapping" oder "Bindung" bezeichnet wird, kann dazu beitragen, den Schlüssel vor der Offenlegung zu schützen. Jedes TPM verfügt über einen primären "Wrapping"-Schlüssel, der als Speicherstammschlüssel bezeichnet wird, der im TPM selbst gespeichert wird. Der private Teil eines in einem TPM erstellten Schlüssels wird niemals für andere Komponenten, Software, Prozesse oder Personen verfügbar gemacht.
Computer, die ein TPM integrieren, können auch einen Schlüssel erstellen, der nicht nur umschlossen wurde, sondern auch an bestimmte Plattformmessungen gebunden ist. Dieser Schlüsseltyp kann nur entschlüsselt werden, wenn diese Plattformmaße dieselben Werte aufweisen wie beim Erstellen des Schlüssels. Dieser Prozess wird als "Versiegeln" des Schlüssels für das TPM bezeichnet. Die Entschlüsselung des Schlüssels wird als "Entschlüsselung" bezeichnet. Das TPM kann auch daten, die außerhalb des TPM generiert werden, versiegeln und nicht versiegeln. Mit diesem versiegelten Schlüssel und dieser Software wie der BitLocker-Laufwerkverschlüsselung können Sie Daten sperren, bis bestimmte Hardware- oder Softwarebedingungen erfüllt sind.
Bei einem TPM werden private Teile von Schlüsselpaaren vom vom Betriebssystem gesteuerten Arbeitsspeicher getrennt. Schlüssel können mit dem TPM versiegelt werden, und bestimmte Zusicherungen über den Status eines Systems (Zusicherungen, die die "Vertrauenswürdigkeit" eines Systems definieren) können vorgenommen werden, bevor die Schlüssel nicht versiegelt und zur Verwendung freigegeben werden. Da das TPM eigene interne Firmware- und Logikschaltungen für Verarbeitungsanweisungen verwendet, basiert es nicht auf dem Betriebssystem und ist nicht anfällig für Sicherheitsrisiken, die möglicherweise im Betriebssystem oder in der Anwendungssoftware vorhanden sind.
TPM-Architektur
Unterschied zwischen TPM 1.2 und TPM 2.0.
Die TPM-Spezifikation wurde zweimal entwickelt. Zum ersten Mal entwickelte es sich von 1.1b bis 1.2, wobei neue Funktionen integriert wurden, die vom Spezifikationsausschuss angefordert/identifiziert wurden. Diese Feature-Kriechform der Evolution machte die endgültige TPM 1.2-Spezifikation sehr kompliziert. Schließlich wurden kryptografische Schwachstellen von SHA-1 (was der stärkste kommerzielle Algorithmus in TPM 1.2 war) offenbart, was zu einer Änderung führte. Die TPM-Architektur wurde von Grund auf neu gestaltet, was zu einem viel integrierten und einheitlichen Design von TPM 2.0 führt.
Zu den Änderungen und Verbesserungen im Vergleich zum vorherigen TPM 1.2 gehören:
- Unterstützung für zusätzliche kryptografische Algorithmen
- Verbesserungen an der Verfügbarkeit des TPM für Anwendungen
- Erweiterte Autorisierungsmechanismen
- Vereinfachte TPM-Verwaltung
- Zusätzliche Funktionen zur Verbesserung der Sicherheit von Plattformdiensten
Hinweis
Windows IoT Core unterstützt nur TPM 2.0 und unterstützt nicht das veraltete TPM 1.2.
Was ist TBS?
Das TPM Base Services (TBS)-Feature ist ein Systemdienst, der die transparente Freigabe der TPM-Ressourcen ermöglicht. Sie teilt die TPM-Ressourcen zwischen mehreren Anwendungen auf demselben physischen Computer über Remoteprozeduraufrufe (RPC). Der TPM-Zugriff wird über Anwendungen zentralisiert, wobei prioritäten verwendet werden, die von den aufrufenden Anwendungen angegeben werden.
Das TPM stellt kryptografische Funktionen bereit, die für die Vertrauensstellung auf der Plattform konzipiert sind. Da das TPM in der Hardware implementiert ist, verfügt es über endliche Ressourcen. Das TCG definiert einen TPM Software Stack (TSS), der diese Ressourcen verwendet, um vertrauenswürdige Vorgänge für Anwendungssoftware bereitzustellen. Es wird jedoch keine Bereitstellung für die Ausführung einer TSS-Implementierung parallel mit Betriebssystemsoftware bereitgestellt, die auch TPM-Ressourcen verwenden kann. Das TBS-Feature löst dieses Problem, indem jeder Softwarestapel aktiviert wird, der mit TBS kommuniziert, um TPM-Ressourcen zu verwenden, die nach anderen Softwarestapeln suchen, die möglicherweise auf dem Computer ausgeführt werden.
TPM-Lösungen, die unter Windows IoT Core verfügbar sind
Ein paar Wörter zu Software TPM (sTPM), Firmware TPM (fTPM), Diskretes TPM (dTPM)...
Firmware TPM (fTPM)
Firmware TPM (fTPM) erfordert spezielle Prozessor-/SoC-Unterstützung, die derzeit nicht auf Raspberry Pi 2 oder 3 implementiert ist. MinnowBoard Max benötigt Firmwareversion 0.80 oder höher. DragonBoard410c bietet standardmäßig fTPM-Funktionen, die standardmäßig aktiviert sind.
Diskretes TPM (dTPM)
Diskretes TPM (dTPM) wird mit allen Mitteln als vertrauenswürdigste Lösung betrachtet.
Es gibt mehrere Hersteller von dTPM-Chips und PCB-Modulen, die unter Windows IoT Core unterstützt werden:
Hersteller Webseite Modultyp TPM-Chip Infineon Infineon TPM Evalboard Infineon SLB9670 TPM 2.0 Pi3g Pi3g.com Massenprodukt & Evalboard Infineon SLB9670 TPM 2.0
Software-TPM (sTPM)
Software TPM (sTPM) wird auch als TPM Simulator bezeichnet. Es ist plattformunabhängig, unterstützt unter Windows IoT Core.
Hinweis
sTPM ist nur für Entwicklungszwecke vorgesehen und bietet keine echten Sicherheitsvorteile.
Beispiele
- Beispiel für urchin-Bibliothek In diesem Lernprogramm wird veranschaulicht, wie Sie eine C++-Beispielanwendung erstellen, die die TPM-Funktionalität mithilfe der Urchin-Bibliothek trainiert. Urchin ist eine spezifikationskonforme Bibliothek, die von der TPM 2.0-Referenzimplementierung abgeleitet wird. Er stellt dem Client die Funktionalität bereit, um alle Datenstrukturen zu marshallen/zu entmarsen, Autorisierungen ordnungsgemäß zu berechnen, Parameterverschlüsselung durchzuführen und Überwachung durchzuführen.