TPM-Nachweis

In diesem Artikel werden die Konzepte beschrieben, die bei der Bereitstellung von Geräten mit TPM-Nachweis (Trusted Platform Module) in Device Provisioning Service (DPS) erforderlich sind. Dieser Artikel ist für alle Personen relevant, die an der Vorbereitung von Geräten für die Bereitstellung beteiligt sind.

Ein TPM (Trusted Platform Module) ist ein Typ von Hardwaresicherheitsmodul (HSM). In diesem Artikel wird davon ausgegangen, dass Sie ein eigenständiges, integriertes oder Firmware-TPM verwenden. Durch Software emulierte TPMs eignen sich gut für die Prototyperstellung oder für Tests, bieten aber nicht das gleiche Maß an Sicherheit wie eigenständige, integrierte oder Firmware-TPMs. Die Verwendung von Software-TPMs in der Produktion wird nicht empfohlen.

Dieser Artikel bezieht sich nur auf Geräte mit TPM 2.0 und HMAC-Schlüsselunterstützung sowie den entsprechenden Endorsement Keys. TPM ist ein branchenweiter ISO-Standard von Trusted Computing Group. Weitere Informationen zu TPM finden Sie in der vollständigen TPM 2.0-Spezifikation oder der ISO/IEC 11889-Spezifikation. In diesem Artikel wird außerdem davon ausgegangen, dass Sie mit Paaren aus öffentlichem und privatem Schlüssel sowie deren Verwendung für die Verschlüsselung vertraut sind.

Die Geräte-SDKs des Device Provisioning-Diensts führen alle in diesem Artikel beschriebenen Schritte für Sie aus. Sie müssen keine TPM-Unterstützung implementieren, wenn Sie die SDKs auf Ihren Geräten verwenden. Dieser Artikel bietet eine konzeptionelle Beschreibung der Abläufe für den TPM-Sicherheitschip bei Bereitstellung Ihres Geräts, und es wird erläutert, warum diese Methode so sicher ist.

Übersicht

TPMs verwenden den sogenannten Endorsement Key (EK) als sicheren Vertrauensanker. Der EK ist für das TPM eindeutig, und wenn er geändert wird, ändert sich im Grunde genommen das Gerät in ein neues Gerät.

TPMs weisen einen anderen Schlüsseltyp auf, der als Speicherstammschlüssel (Storage Root Key, SRK) bezeichnet wird. Ein SRK kann vom Besitzer des TPM generiert werden, nachdem er die Besitzrechte für das TPM übernommen hat. Das Übernehmen des TPM ist die TPM-spezifische Art zu sagen, "jemand legt ein Kennwort auf dem HSM fest". Wenn ein TPM-Gerät an einen neuen Besitzer verkauft wird, kann der neue Besitzer den Besitz des TPM übernehmen, um einen neuen SRK zu generieren. Durch das Generieren eines neuen SRK wird sichergestellt, dass der vorherige Besitzer das TPM nicht verwenden kann. Da der SRK für den Besitzer des TPM eindeutig ist, kann er zum Versiegeln von Daten im TPM für diesen Besitzer verwendet werden. Der SRK stellt dem Besitzer eine Sandbox zum Speichern seiner Schlüssel bereit und bietet Widerrufbarkeit von Zugriffsrechten, wenn das Gerät oder TPM verkauft wird. Es ist wie beim Umziehen in ein neues Haus: Bei der Besitzübernahme werden die Türschlösser ausgetauscht und alle vom vorherigen Besitzer zurückgelassenen Möbel entfernt (SRK), doch können Sie die Adresse des Hauses nicht ändern (EK).

Nachdem ein Gerät eingerichtet wurde, hat sowohl einen EK als auch einen SRK.

Abbildung der Besitzübernahme eines TPM

Die spezifischen Schritte für die Besitzübernahme eines TPM variieren je nach Hersteller, verwendeten TPM-Tools und Gerätebetriebssystem.

Der Gerätebereitstellungsdienst verwendet den öffentlichen Teil des EK (EK_pub) zum Identifizieren und Registrieren von Geräten. Der Gerätehersteller kann den EK_pub bei der Herstellung oder abschließenden Tests lesen und ihn in den Provisioning-Dienst hochladen, damit das Gerät beim Herstellen einer Verbindung für die Bereitstellung erkannt wird. Der Device Provisioning-Dienst nimmt keine Überprüfung des SRK oder Besitzers vor, sodass durch ein „Löschen“ des TPM Kundendaten unwiderruflich entfernt werden, doch wird der EK (und andere Herstellerdaten) beibehalten, und das Gerät wird weiterhin vom Device Provisioning-Dienst erkannt, wenn eine Verbindung für die Bereitstellung hergestellt wird.

Nachweisprozess

Wenn ein Gerät mit einem TPM zum ersten Mal eine Verbindung mit Device Provisioning Service herstellt, vergleicht der Dienst zuerst den bereitgestellten EK_pub mit dem in der Registrierungsliste gespeicherten EK_pub. Stimmen die EK_pubs nicht überein, ist das Gerät für die Bereitstellung nicht zulässig. Stimmen die EK_pubs überein, fordert der Dienst vom Gerät einen Besitznachweis für den privaten Teil des EK über eine Nonce-Abfrage, bei der es sich um eine sichere Abfrage zum Nachweis der Identität handelt. Der Device Provisioning-Dienst generiert eine Nonce und verschlüsselt sie dann mit dem SRK und anschließend mit dem EK_pub, die beide vom Gerät beim anfänglichen Registrierungsaufruf bereitgestellt werden. Der private Teil des EK bleibt beim TPM immer geschützt. Dadurch werden Fälschungen verhindert, und es ist sichergestellt, dass SAS-Token für autorisierte Geräte auf sichere Weise bereitgestellt werden.

Es folgt nun eine detaillierte Beschreibung des Nachweisprozesses.

Anforderung einer IoT Hub-Zuweisung durch das Gerät

Zuerst stellt das Gerät eine Verbindung mit dem Device Provisioning-Dienst her und fordert eine Bereitstellung an. Dabei teilt das Gerät dem Dienst seine Registrierungs-ID, einen ID-Bereich sowie den EK_pub und SRK_pub des TPM mit. Der Dienst sendet die verschlüsselte Nonce an das Gerät zurück und fordert das Gerät auf, sie zu entschlüsseln und dann diese entschlüsselte Nonce zum Signieren eines SAS-Tokens zu verwenden, um erneut eine Verbindung herzustellen und die Bereitstellung abzuschließen.

Anforderung der Bereitstellung durch das Gerät

Nonce-Abfrage

Das Gerät empfängt die Nonce und verwendet die privaten Teile des EK und SRK zum Entschlüsseln der Nonce in das TPM. Durch die Reihenfolge der Nonce-Verschlüsselung wird die Vertrauensstellung vom EK, der unveränderlich ist, an den SRK delegiert, der sich ändern kann, wenn ein neuer Besitzer das TPM übernimmt.

Entschlüsseln der Nonce

Überprüfen der Nonce und Empfangen der Anmeldeinformationen

Das Gerät kann dann ein SAS-Token anhand der entschlüsselten Nonce signieren und mit dem signierten SAS-Token erneut eine Verbindung mit dem Device Provisioning-Dienst herstellen. Nach Abschluss der Nonce-Abfrage lässt der Dienst eine Bereitstellung für das Gerät zu.

Erneutes Herstellen einer Verbindung mit dem Device Provisioning-Dienst zum Überprüfen der EK-Besitzrechte