TPM-NachweisTPM attestation

Der IoT Hub Device Provisioning-Dienst ist ein Hilfsdienst für IoT Hub, mit dem Sie Geräte ohne manuelles Eingreifen auf einem angegebenen IoT Hub konfigurieren können.IoT Hub Device Provisioning Service is a helper service for IoT Hub that you use to configure zero-touch device provisioning to a specified IoT hub. Mit dem Device Provisioning-Dienst können Sie Millionen von Geräten auf sichere Weise bereitstellen.With the Device Provisioning Service, you can provision millions of devices in a secure manner.

In diesem Artikel wird der Prozess des Identitätsnachweises bei Verwendung eines Trusted Platform Module (TPM) beschrieben.This article describes the identity attestation process when using a Trusted Platform Module (TPM). Ein TPM ist ein Typ von Hardwaresicherheitsmodulen (HSM).A TPM is a type of hardware security module (HSM). In diesem Artikel wird davon ausgegangen, dass Sie ein diskretes, integriertes oder Firmware-TPM verwenden.This article assumes you are using a discrete, firmware, or integrated TPM. Durch Software emulierte TPMs eignen sich gut für die Prototyperstellung oder Tests, bieten aber nicht das gleiche Maß an Sicherheit wie diskrete, integrierte oder Firmware-TPMs.Software emulated TPMs are well-suited for prototyping or testing, but they do not provide the same level of security as discrete, firmware, or integrated TPMs do. Die Verwendung von Software-TPMs in der Produktion wird nicht empfohlen.We do not recommend using software TPMs in production. Weitere Informationen zu den Arten von TPMs finden Sie unter A Brief Introduction to TPM (Eine kurze Einführung in TPM).For more information about types of TPMs, see A Brief Introduction to TPM.

Dieser Artikel bezieht sich nur auf Geräte mit TPM 2.0 und HMAC-Schlüsselunterstützung sowie den entsprechenden Endorsement Keys.This article is only relevant for devices using TPM 2.0 with HMAC key support and their endorsement keys. Er ist nicht für Geräte gedacht, die X.509-Zertifikate für die Authentifizierung verwenden.It is not for devices using X.509 certificates for authentication. 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 öffentlichen und privaten Schlüsselpaaren sowie deren Verwendung für die Verschlüsselung vertraut sind.TPM is an industry-wide, ISO standard from the Trusted Computing Group, and you can read more about TPM at the complete TPM 2.0 spec or the ISO/IEC 11889 spec. This article also assumes you are familiar with public and private key pairs, and how they are used for encryption.

Die Geräte-SDKs des Device Provisioning-Diensts führen alle in diesem Artikel beschriebenen Schritte für Sie aus.The Device Provisioning Service device SDKs handle everything that is described in this article for you. Wenn Sie die SDKs auf Ihren Geräten verwenden, müssen Sie keine weiteren Implementierungen vornehmen.There is no need for you to implement anything additional if you are using the SDKs on your devices. 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.This article helps you understand conceptually what’s going on with your TPM security chip when your device provisions and why it’s so secure.

ÜbersichtOverview

TPMs verwenden den sogenannten Endorsement Key (EK) als sicheren Vertrauensanker.TPMs use something called the endorsement key (EK) as the secure root of trust. 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.The EK is unique to the TPM and changing it essentially changes the device into a new one.

TPMs verfügen noch über einen weiteren Schlüsseltyp, der Speicherstammschlüssel (Storage Root Key, SRK) genannt wird.There's another type of key that TPMs have, called the storage root key (SRK). Ein SRK kann vom Besitzer des TPM generiert werden, nachdem er die Besitzrechte für das TPM übernommen hat.An SRK may be generated by the TPM's owner after it takes ownership of the TPM. Die Besitzübernahme für das TPM ist die TPM-spezifische Art zu sagen, dass "jemand ein Kennwort für das HSM festlegt".Taking ownership of the TPM is the TPM-specific way of saying "someone sets a password on the HSM." Wenn ein TPM-Gerät an einen neuen Besitzer verkauft wird, kann dieser die Besitzrechte für das TPM übernehmen, um einen neuen SRK zu generieren.If a TPM device is sold to a new owner, the new owner can take ownership of the TPM to generate a new SRK. Durch das Generieren eines neuen SRK wird sichergestellt, dass der vorherige Besitzer das TPM nicht verwenden kann.The new SRK generation ensures the previous owner can't use the TPM. 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.Because the SRK is unique to the owner of the TPM, the SRK can be used to seal data into the TPM itself for that owner. 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.The SRK provides a sandbox for the owner to store their keys and provides access revocability if the device or TPM is sold. 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).It's like moving into a new house: taking ownership is changing the locks on the doors and destroying all furniture left by the previous owners (SRK), but you can't change the address of the house (EK).

Sobald ein Gerät eingerichtet und zur Verwendung bereit ist, verfügt es sowohl über einen EK als auch einen SRK.Once a device has been set up and ready to use, it will have both an EK and an SRK available for use.

Besitzübernahme für ein TPM

Hinweis zum Übernehmen der Besitzrechte am TPM: Die Besitzübernahme für ein TPM hängt von einer Vielzahl von Faktoren ab. Dazu gehören der TPM-Hersteller, die Gruppe der verwendeten TPM-Tools und das Betriebssystem des Geräts.One note on taking ownership of the TPM: Taking ownership of a TPM depends on many things, including TPM manufacturer, the set of TPM tools being used, and the device OS. Befolgen Sie die Anweisungen für Ihr jeweiliges System, um den Besitz zu übernehmen.Follow the instructions relevant to your system to take ownership.

Der Device Provisioning-Dienst verwendet den öffentlichen Teil des EK (EK_pub) zum Identifizieren und Registrieren von Geräten.The Device Provisioning Service uses the public part of the EK (EK_pub) to identify and enroll devices. 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.The device vendor can read the EK_pub during manufacture or final testing and upload the EK_pub to the provisioning service so that the device will be recognized when it connects to provision. 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.The Device Provisioning Service does not check the SRK or owner, so “clearing” the TPM erases customer data, but the EK (and other vendor data) is preserved and the device will still be recognized by the Device Provisioning Service when it connects to provision.

Detaillierter NachweisprozessDetailed attestation process

Wenn ein Gerät mit einem TPM zum ersten Mal eine Verbindung mit dem Device Provisioning-Dienst herstellt, vergleicht der Dienst zuerst den bereitgestellten EK_pub mit dem in der Registrierungsliste gespeicherten EK_pub.When a device with a TPM first connects to the Device Provisioning Service, the service first checks the provided EK_pub against the EK_pub stored in the enrollment list. Stimmen die EK_pubs nicht überein, ist das Gerät für die Bereitstellung nicht zulässig.If the EK_pubs do not match, the device is not allowed to provision. 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.If the EK_pubs do match, the service then requires the device to prove ownership of the private portion of the EK via a nonce challenge, which is a secure challenge used to prove identity. 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.The Device Provisioning Service generates a nonce and then encrypts it with the SRK and then the EK_pub, both of which are provided by the device during the initial registration call. Der private Teil des EK bleibt beim TPM immer geschützt.The TPM always keeps the private portion of the EK secure. Dadurch werden Fälschungen verhindert, und es ist sichergestellt, dass SAS-Token für autorisierte Geräte auf sichere Weise bereitgestellt werden.This prevents counterfeiting and ensures SAS tokens are securely provisioned to authorized devices.

Es folgt nun eine detaillierte Beschreibung des Nachweisprozesses.Let’s walk through the attestation process in detail.

Anforderung einer IoT Hub-Zuweisung durch das GerätDevice requests an IoT Hub assignment

Zuerst stellt das Gerät eine Verbindung mit dem Device Provisioning-Dienst her und fordert eine Bereitstellung an.First the device connects to the Device Provisioning Service and requests to provision. Dabei teilt das Gerät dem Dienst seine Registrierungs-ID, einen ID-Bereich sowie den EK_pub und SRK_pub des TPM mit.In doing so, the device provides the service with its registration ID, an ID scope, and the EK_pub and SRK_pub from the TPM. 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.The service passes the encrypted nonce back to the device and asks the device to decrypt the nonce and use that to sign a SAS token to connect again and finish provisioning.

Anforderung der Bereitstellung durch das Gerät

Nonce-AbfrageNonce challenge

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.The device takes the nonce and uses the private portions of the EK and SRK to decrypt the nonce into the TPM; the order of nonce encryption delegates trust from the EK, which is immutable, to the SRK, which can change if a new owner takes ownership of the TPM.

Entschlüsseln der Nonce

Überprüfen der Nonce und Empfangen der AnmeldeinformationenValidate the nonce and receive credentials

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.The device can then sign a SAS token using the decrypted nonce and reestablish a connection to the Device Provisioning Service using the signed SAS token. Nach Abschluss der Nonce-Abfrage lässt der Dienst eine Bereitstellung für das Gerät zu.With the Nonce challenge completed, the service allows the device to provision.

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

Nächste SchritteNext steps

Nun stellt das Gerät eine Verbindung mit IoT Hub her, und Sie können darauf vertrauen, dass Ihre Geräteschlüssel sicher aufbewahrt sind.Now the device connects to IoT Hub, and you rest secure in the knowledge that your devices’ keys are securely stored. Nachdem Sie nun erfahren haben, wie der Device Provisioning-Dienst die Identität eines Geräts mit TPM auf sichere Weise überprüft, lesen Sie die folgenden Artikeln, um weitere Informationen zu erhalten:Now that you know how the Device Provisioning Service securely verifies a device’s identity using TPM, check out the following articles to learn more: