Authentifizieren von Identitäten mit X.509-Zertifikaten
IoT Hub nutzt X.509-Zertifikate für das Authentifizieren von Geräten. Die X.509-Authentifizierung ermöglicht die Authentifizierung eines IoT-Geräts auf physischer Ebene im Rahmen des Transport Layer Security (TLS)-Standardverbindungsaufbaus.
Ein X.509-Zertifizierungsstellenzertifikat ist ein digitales Zertifikat, das andere Zertifikate signieren kann. Ein digitales Zertifikat gilt als ein „X.509“-Zertifikat, wenn es dem vom RFC 5280-Standard von IETF vorgeschriebenen Zertifikatformatierungsstandard entspricht. Eine Zertifizierungsstelle (Certificate Authority, CA) bedeutet, dass deren Inhaber andere Zertifikate signieren kann.
In diesem Artikel wird beschrieben, wie Zertifikate von X.509-Zertifizierungsstellen (Certificate Authority, CA) zum Authentifizieren von Geräten verwendet werden, die eine Verbindung mit IoT Hub herstellen, was die folgenden Schritte beinhaltet:
- Abrufen eines X.509-Zertifizierungsstellenzertifikats
- Registrieren des X.509-Zertifizierungsstellenzertifikats bei IoT Hub
- Signieren von Geräten mit X.509-Zertifikaten
- Authentifizieren von Geräten, die von der X.509-Zertifizierungsstelle signiert sind
Wichtig
Die folgenden Funktionen für Geräte, die die Authentifizierung der X.509-Zertifizierungsstelle (Certificate Authority, CA) verwenden, sind noch nicht allgemein verfügbar, und der Vorschaumodus muss aktiviert werden:
- HTTPS, MQTT über WebSockets und AMQP über WebSockets-Protokolle.
- Dateiuploads (alle Protokolle).
Diese Features sind auf Geräten, die die X.509-Fingerabdruckauthentifizierung verwenden, allgemein verfügbar. Weitere Informationen zur X.509-Authentifizierung mit IoT Hub finden Sie unter Unterstützte X.509-Zertifikate.
Das X.509-CA-Feature ermöglicht die Geräteauthentifizierung bei IoT Hub mithilfe einer Zertifizierungsstelle (CA). Es vereinfacht den anfänglichen Geräteregistrierungsprozess und die Lieferkettenlogistik während der Herstellung des Geräts.
Authentifizierung und Autorisierung
Bei der Authentifizierung weisen Sie nach, dass Sie die Person sind, als die Sie sich ausgeben. Die Authentifizierung überprüft die Identität eines Benutzers oder Geräts auf IoT Hub. Dies wird manchmal auch kurz als AuthN bezeichnet. Die Autorisierung ist der Prozess der Bestätigung von Berechtigungen für einen authentifizierten Benutzer oder ein Gerät auf IoT Hub. Es gibt an, auf welche Ressourcen und Befehle Sie zugreifen dürfen, und was Sie mit diesen Ressourcen und Befehlen tun können. Die Autorisierung wird auch kurz als AuthZ bezeichnet.
In diesem Artikel wird die Authentifizierung mit X.509-Zertifikatenbeschrieben. Sie können ein X.509-Zertifikat verwenden, um ein Gerät bei IoT Hub zu authentifizieren. Laden Sie hierzu entweder einen Zertifikatfingerabdruck oder eine Zertifizierungsstelle (Certificate Authority, CA) in Azure IoT Hub hoch.
X.509-Zertifikate werden für die Authentifizierung in IoT Hub und nicht für die Autorisierung verwendet. Im Gegensatz zu Microsoft Entra-ID und freigegebenen Zugriffssignaturen können Sie Berechtigungen nicht mit X.509-Zertifikaten anpassen.
Erzwingen der X.509-Authentifizierung
Zur Erhöhung der Sicherheit kann ein IoT Hub so konfiguriert werden, dass die SAS-Authentifizierung für Geräte und Module nicht zugelassen ist, sodass X.509 die einzige akzeptierte Authentifizierungsoption bleibt. Dieses Feature steht im Azure-Portal zurzeit nicht zur Verfügung. Um es zu konfigurieren, legen Sie in den IoT Hub-Ressourceneigenschaften disableDeviceSAS
und disableModuleSAS
auf true
fest:
az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --set properties.disableDeviceSAS=true properties.disableModuleSAS=true
Vorteile einer Authentifizierung mit X.509-Zertifizierungsstellenzertifikat
Die Authentifizierung per X.509-Zertifizierungsstelle (Certificate Authority, CA) ist ein Ansatz zum Authentifizieren von Geräten bei IoT Hub. Dazu wird eine Methode verwendet, mit der die Erstellung von Geräteidentitäten und die Lebenszyklusverwaltung in der Lieferkette erheblich vereinfacht werden.
Ein Unterscheidungsmerkmal der Authentifizierung per X.509-Zertifizierungsstelle ist die 1:n-Beziehung eines Zertifizierungsstellenzertifikats mit nachgeschalteten Geräten. Diese Beziehung ermöglicht die Registrierung einer beliebigen Anzahl von Geräten bei IoT Hub, indem ein X.509-Zertifizierungsstellenzertifikat einmal registriert wird. Andernfalls müssten eindeutige Zertifikate für jedes Gerät vorab registriert werden, bevor ein Gerät eine Verbindung herstellen kann. Diese 1: n-Beziehung vereinfacht außerdem die Durchführung von Vorgängen zur Lebenszyklusverwaltung von Gerätezertifikaten.
Ein anderes wichtiges Merkmal der Authentifizierung per X.509-Zertifizierungsstelle ist die Vereinfachung der Lieferkettenlogistik. Für die sichere Authentifizierung von Geräten ist es erforderlich, dass es bei jedem Gerät ein eindeutiges Geheimnis, z. B. einen Schlüssel, als Grundlage für die Vertrauensstellung gibt. Bei der zertifikatbasierten Authentifizierung ist dieses Geheimnis ein privater Schlüssel. Ein typischer Ablauf zur Fertigung eines Geräts umfasst mehrere Schritte und Verwalter. Das sichere Verwalten von privaten Schlüsseln für Geräte über mehrere Verwalter hinweg und das Aufrechterhalten der Vertrauensstellung ist schwierig und kostenintensiv. Die Nutzung von Zertifizierungsstellen löst dieses Problem, indem jeder Verwalter für eine kryptografische Vertrauenskette signiert wird, anstatt private Geräteschlüssel zu verwenden. Jeder Verwalter signiert Geräte für den jeweiligen Schritt des Fertigungsablaufs. Das Gesamtergebnis ist eine optimale Lieferkette mit integrierter Zurechenbarkeit dank des Einsatzes einer kryptografischen Vertrauenskette.
Bei diesem Prozess wird die höchste Sicherheit erzielt, wenn Geräte ihre eindeutigen privaten Schlüssel schützen. Zu diesem Zweck empfehlen wir die Verwendung von Hardwaresicherheitsmodulen (HSM), mit denen private Schlüssel intern generiert werden können.
Der Azure IoT Hub Device Provisioning Service (DPS) erleichtert die Bereitstellung von Gerätegruppen auf Hubs. Weitere Informationen dazu finden Sie im Tutorial: Bereitstellen mehrerer X.509-Geräte mithilfe von Registrierungsgruppen.
Abrufen eines X.509-CA-Zertifikats
Das X.509-CA-Zertifikat ist das oberste Glied der Kette von Zertifikaten für jedes Ihrer Geräte. Je nach Verwendungszweck können Sie es erwerben oder erstellen.
Für Produktionsumgebungen empfehlen wir, dass Sie ein X.509-ZS-Zertifikat von einem professionellen Zertifikatdienstanbieter erwerben. Der Erwerb eines CA-Zertifikats hat den Vorteil, dass die als vertrauenswürdiger Drittanbieter fungierende Stammzertifizierungsstelle die Legitimität Ihrer Geräte bestätigt. Erwägen Sie diese Option, wenn Ihre Geräte Teil eines offenen IoT-Netzwerks sind, in dem sie mit Produkten oder Diensten von Drittanbietern interagieren.
Sie können zu Testzwecken auch ein selbstsigniertes X.509-Zertifizierungsstellenzertifikat erstellen. Weitere Informationen zum Erstellen von Zertifikaten für Tests finden Sie unter Erstellen und Hochladen von Zertifikaten für Tests.
Hinweis
Die Verwendung von selbstsignierten Zertifikaten für Produktionsumgebungen wird nicht empfohlen.
Stellen Sie unabhängig vom Bezug Ihres X.509-Zertifizierungsstellenzertifikat sicher, dass sein entsprechender privater Schlüssel stets geheim und geschützt ist. Diese Vorsichtsmaßnahme ist für die Vertrauensbildung bei der X.509-Zertifizierungsstellenauthentifizierung erforderlich.
Signieren von Geräten bei einer Zertifikatvertrauenskette
Der Besitzer eines X.509-CA-Zertifikats kann eine Zwischenzertifizierungsstelle kryptografisch signieren, die wiederum eine andere Zwischenzertifizierungsstelle signieren kann usw., bis die letzte Zwischenzertifizierungsstelle diesen Prozess durch Signieren eines Gerätezertifikats beendet. Das Ergebnis ist eine kaskadierte Kette von Zertifikaten, die als Zertifikatvertrauenskette bezeichnet wird. Diese Delegierung des Vertrauens ist wichtig, da sie eine kryptografisch variable Verwahrungskette schafft und die Freigabe von Signaturschlüsseln vermeidet.
Beim Gerätezertifikat (auch als „untergeordnetes Zertifikat“ bezeichnet) muss den gemeinsamen Namen (CN) auf die Geräte-ID (CN=deviceId
) festgelegt werden, die bei der Registrierung des IoT-Geräts in Azure IoT Hub verwendet wurde. Diese Einstellung ist für die Authentifizierung erforderlich.
Für die Module mit X.509-Zertifikatauthentifizierung muss das Zertifikat des Moduls seinen allgemeinen Namen (Common Name, CN) wie CN=deviceId/moduleId
formatiert haben.
Informieren Sie sich über das Erstellen einer Zertifikatkette, wie es beim Signieren von Geräten üblich ist.
Registrieren des X.509-CA-Zertifikats bei IoT Hub
Registrieren Sie Ihr X.509-Zertifizierungsstellenzertifikat bei IoT Hub, wo es zum Authentifizieren Ihrer Geräte während der Registrierung und Verbindungsherstellung verwendet wird. Das Registrieren des X.509-CA-Zertifikats ist ein zweistufiger Prozess. Er umfasst das Hochladen der Zertifikatdatei, gefolgt vom Einrichten eines Eigentumsnachweises.
Im Uploadprozess wird eine Datei hochgeladen, die Ihr Zertifikat enthält. Diese Datei darf nie private Schlüssel enthalten.
Der Eigentumsnachweisschritt ist mit einer kryptografischen Anforderung und einem Antwortprozess zwischen Ihnen und IoT Hub verbunden. Da die Inhalte von digitalen Zertifikaten öffentlich und deshalb anfällig gegenüber Lauschangriffen sind, muss IoT Hub überprüfen, ob Sie das CA-Zertifikat tatsächlich besitzen. Sie können das Eigentum entweder automatisch oder manuell überprüfen. Für die manuelle Überprüfung generiert Azure IoT Hub eine zufällige Herausforderung, die Sie mit dem entsprechenden privaten Schlüssel des Zertifizierungsstellenzertifikats signieren. Wenn Sie den privaten Schlüssel wie empfohlen geheim gehalten und geschützt haben, besitzen nur Sie die nötigen Informationen zum Abschließen dieses Schritts. Die Geheimhaltung privater Schlüssel ist bei dieser Methode die Quelle des Vertrauens. Nach dem Signieren der Anforderung schließen Sie diesen Schritt ab und verifizieren Ihr Zertifikat manuell, indem Sie eine Datei mit den Ergebnissen hochladen.
Informieren Sie sich, wie Sie Ihr Zertifizierungsstellenzertifikat registrieren.
Authentifizieren von Geräten, die mit X.509-CA-Zertifikaten signiert sind
Bei jedem IoT-Hub gibt es eine Identitätsregistrierung, in der Informationen zu den Geräten und Modulen gespeichert werden, die eine Verbindung mit ihm herstellen dürfen. Damit ein Gerät oder Modul eine Verbindung herstellen kann, muss die Identitätsregistrierung des IoT-Hubs einen Eintrag für dieses Gerät bzw. Modul enthalten. Das Gerät oder Modul authentifiziert sich beim IoT-Hub zudem mit Anmeldeinformationen, die in der Identitätsregistrierung gespeichert sind.
Wenn Ihr X.509-CA-Zertifikat registriert ist und die Geräte in einer Zertifikatvertrauenskette signiert wurden, ist der letzte Schritt die Geräteauthentifizierung, wenn das Gerät eine Verbindung herstellt. Wenn ein mit X.509-CA-Zertifikat signiertes Gerät eine Verbindung herstellt, lädt es seine Zertifikatkette zur Überprüfung hoch. Die Kette enthält alle Zwischenzertifizierungsstellen und Gerätezertifikate. Anhand dieser Informationen authentifiziert IoT Hub das Gerät in einem Zwei-Schritte-Prozess. IoT Hub überprüft die Zertifikatkette kryptografisch auf interne Konsistenz und richtet dann eine Eigentumsnachweisanforderung an das Gerät. IoT Hub deklariert das Gerät bei einer positiven Eigentumsnachweisantwort des Geräts als authentisch. Diese Deklaration setzt voraus, dass der private Schlüssel für das Gerät geschützt ist und nur das Gerät auf diese Anforderung erfolgreich reagieren kann. Wir empfehlen, dass Sie sichere Chips wie Hardwaresicherheitsmodule (Hardware Secure Modules, HSM) zum Schutz von privaten Schlüsseln in Geräten verwenden.
Eine erfolgreiche Geräteverbindung mit IoT Hub schließt den Authentifizierungsprozess ab und weist auch auf eine ordnungsgemäße Einrichtung hin. Jedes Mal, wenn ein Gerät eine Verbindung herstellt, handelt IoT Hub die TLS-Sitzung erneut aus und überprüft das X.509-Zertifikat des Geräts.
Widerrufen eines Gerätezertifikats
IoT Hub überprüft keine Zertifikatsperrlisten der Zertifizierungsstelle, wenn Geräte mit zertifikatbasierter Authentifizierung authentifiziert werden. Wenn Sie über ein Gerät verfügen, das aufgrund eines potenziell kompromittierten Zertifikats daran gehindert werden muss, eine Verbindung mit IoT Hub herzustellen, müssen Sie das Gerät in der Identitätsregistrierung deaktivieren. Weitere Informationen finden Sie unter Deaktivieren oder Löschen eines Geräts.
Beispielszenario
Das Unternehmen Company-X stellt Smart-X-Widgets her, die für professionelle Installation konzipiert sind. Company-X outsourct sowohl die Fertigung als auch die Installation. Das Werk Factory-Y fertigt die Smart-X-Widgets, und der Techniker Technician-Z installiert sie. Company-X möchte, dass das Smart-X-Widget von Factory-Y direkt an Technician-Z zur Installation geliefert wird. Dann soll es eine direkte Verbindung mit der IoT Hub-Instanz von Company-X herstellen. Hierzu muss Company-X einige einmalige Einrichtungsvorgänge durchführen, um Smart-X-Widgets für die automatische Verbindungsherstellung vorzubereiten. Dieses End-to-End-Szenario enthält die folgenden Schritte:
Beschaffen des X.509-Zertifizierungsstellenzertifikats
Registrieren des X.509-Zertifizierungsstellenzertifikats bei IoT Hub
Anmelden von Geräten an einer Zertifikatvertrauenskette
Verbinden der Geräte
Diese Schritte werden in Tutorial: Erstellen und Hochladen von Zertifikaten zum Testen.
Erwerben des Zertifikats
Company-X kann ein X.509-Zertifizierungsstellenzertifikat entweder bei einer öffentlichen Stammzertifizierungsstelle erwerben oder eines in einem selbstsignierten Prozess erstellen. Jede dieser Optionen umfasst zwei grundlegende Schritte: Generieren eines Paars aus öffentlichem/privatem Schlüssel und Signieren des öffentlichen Schlüssels in einem Zertifikat.
Die Details zur Ausführung dieser Schritte unterscheidet sich je nach Dienstanbieter.
Erwerben eines Zertifikats
Der Erwerb eines Zertifizierungsstellenzertifikats hat den Vorteil, dass eine bekannte Stammzertifizierungsstelle als vertrauenswürdiger Drittanbieter fungiert, um bei der Verbindungsherstellung der Geräte die Legitimität von IoT-Geräten zu bestätigen. Wählen Sie diese Option aus, wenn Ihre Geräte mit Produkten oder Diensten von Drittanbietern interagieren.
Wählen Sie zum Erwerben eines X.509-Zertifizierungsstellenzertifikats einen Dienstanbieter von Stammzertifikaten. Der Anbieter der Stammzertifizierungsstelle führt Sie durch die Schritte zum Erstellen des Paars aus öffentlichem/privatem Schlüssel und zum Erstellen einer Zertifikatsignieranforderung (Certificate Signing Request, CSR) für deren Dienste. Eine Zertifikatsignieranforderung wird für die formale Bewerbung für ein Zertifikat bei einer Zertifizierungsstelle benötigt. Das Ergebnis dieses Erwerbsvorgangs ist ein Zertifikat zur Verwendung als Zertifizierungsstellenzertifikat. Aufgrund der häufigen Verwendung von X.509-Zertifikaten ist die Wahrscheinlichkeit hoch, dass das Zertifikat richtig gemäß RFC 5280-Standard der IETF formatiert ist.
Erstellen eines selbstsignierten Zertifikats
Der Prozess zur Erstellung eines selbstsignierten X.509-Zertifizierungsstellenzertifikats ähnelt dessen Erwerb – außer dass dabei kein Drittanbieter, z. B. die Stammzertifizierungsstelle, als Signaturgeber beteiligt ist. In unserem Beispiel würde Company-X sein Zertifizierungsstellenzertifikat selbst ohne Beteiligung einer Stammzertifizierungsstelle signieren.
Möglicherweise wählen Sie diese Option zu Testzwecken, bis Sie für den Erwerb eines Zertifizierungsstellenzertifikats bereit sind. Sie könnten ein selbstsigniertes X.509-Zertifizierungsstellenzertifikat auch in der Produktion verwenden, wenn Ihre Geräte keine Verbindung mit Drittanbieterdiensten außerhalb von IoT Hub herstellen werden.
Registrieren des Zertifikats bei IoT Hub
Company-X muss die X.509-Zertifizierungsstelle für IoT Hub registrieren, damit sie dort bei der Verbindungsherstellung zum Authentifizieren von Smart-X-Widgets dienen kann. Dieser einmalige Prozess ermöglicht das Authentifizieren und Verwalten einer beliebigen Anzahl von Smart-X-Widget-Geräten. Die 1:n-Beziehung zwischen Zertifizierungsstellenzertifikat und Gerätezertifikaten ist einer der Hauptvorteile der Verwendung der X.509 CA-Authentifizierungsmethode. Die Alternative wäre das Hochladen von individuellen Zertifikatfingerabdrücken für jedes einzelne Smart-X-Widget-Gerät, wodurch aber die Betriebskosten erhöht würden.
Das Registrieren des X.509-Zertifizierungsstellenzertifikats ist ein Prozess aus zwei Schritten: Upload des Zertifikats und dann Bereitstellen eines Eigentumsnachweises.
Hochladen des Zertifikats
Mit dem Uploadprozess für das X.509-Zertifizierungsstellenzertifikat wird das Zertifikat auf IoT Hub hochgeladen. IoT Hub erwartet das Zertifikat als Datei.
Die Zertifikatsdatei darf unter keinen Umständen private Schlüssel enthalten. Die bewährten Methoden der Standards für die Public Key-Infrastruktur (PKI) schreiben vor, dass die Informationen zum privaten Schlüssel von Company-X ausschließlich innerhalb von Company-X vorliegen sollten.
Nachweis des Besitzes
Beim X.509-Zertifizierungsstellenzertifikat handelt es sich wie bei allen digitalen Zertifikaten um öffentliche Informationen, für die die Gefahr des Abfangens besteht. In den Prozess eingreifende Dritte können ein Zertifikat ggf. abfangen und versuchen, es als eigenes Zertifikat hochzuladen. In unserem Beispiel muss IoT Hub sicherstellen, dass das von Company-X hochgeladene Zertifizierungsstellenzertifikat Company-X wirklich gehört. Hierzu wird Company-X von IoT Hub aufgefordert, anhand eines Ablaufs zum Eigentumsnachweis (Proof-of-Possession, PoP) den Besitz des Zertifikats nachzuweisen.
Für den Ablauf zum Eigentumsnachweis generiert IoT Hub eine Zufallszahl, die von Company-X mit seinem privaten Schlüssel signiert werden muss. Wenn sich Company-X an die bewährten Methoden für PKI gehalten und seinen privaten Schlüssel geschützt hat, könnte nur dieses Unternehmen die richtige Antwort auf die Aufforderung zum Eigentumsnachweis liefern. Wenn die Antwort zum Nachweisen des Eigentums erfolgreich war, fährt IoT Hub mit dem Registrieren des X.509-Zertifizierungsstellenzertifikats fort.
Die Registrierung des X.509-Zertifizierungsstellenzertifikats wird abgeschlossen, nachdem die Aufforderung zum Eigentumsnachweis erfolgreich beantwortet wurde.
Anmelden von Geräten an einer Zertifikatvertrauenskette
IoT erfordert eine eindeutige Identität für jedes Gerät, das eine Verbindung herstellt. Bei zertifikatbasierter Authentifizierung liegen diese Identitäten in Form von Zertifikaten vor. In unserem Beispiel bedeutet „zertifikatbasierte Authentifizierung“, dass es für jedes Smart-X-Widget ein eindeutiges Gerätezertifikat geben muss.
Eine gültige, aber ineffiziente Möglichkeit,zur Bereitstellung von eindeutigen Zertifikaten auf jedem Gerät besteht darin, Zertifikate für Smart-X-Widgets vorab zu generieren und Lieferkettenpartnern mit den entsprechenden privaten Schlüsseln zu vertrauen. Für Company-X bedeutet dies, dass es sowohl Factory-Y als Technician-Z vertrauen muss. Diese Vorgehensweise führt zu Anforderungen, die erfüllt werden müssen, um die Vertrauensstellung zu gewährleisten:
Wenn private Schlüssel von Geräten für Lieferkettenpartner bereitgestellt werden müssen (und die bewährten Methoden für PKI somit ignoriert werden), erhöhen sich die Kosten für die Einrichtung von Vertrauensstellungen in der Lieferkette. Dann sind Systeme (z. B. geschützte Räume zur Aufbewahrung der privaten Schlüssel für Geräte) und Prozesse (z. B. regelmäßige Sicherheitsüberwachungen) erforderlich. Beides führt zu einer Erhöhung der Lieferkettenkosten.
Das sichere Verwalten von Geräten in der Lieferkette und später während deren Bereitstellung wird für jedes Schlüssel-Gerät-Paar – von der Generierung des eindeutigen Gerätezertifikats (und privaten Schlüssels) bis zur Außerbetriebnahme des Geräts – zu einer individuellen Aufgabe. Die Gruppenverwaltung von Geräten ist somit ausgeschlossen, sofern das Gruppenkonzept nicht explizit in den Prozess integriert ist. Die sichere Zurechenbarkeit und die Lebenszyklusverwaltung für Geräte ist also mit hohem Aufwand verbunden.
Die Authentifizierung per X.509-Zertifizierungsstelle bietet durch die Nutzung von Zertifikatketten elegante Lösungen für diese Herausforderungen. Eine Zertifikatkette ist das Ergebnis, wenn eine Zertifizierungsstelle eine Zwischenzertifizierungsstelle signiert, die wiederum eine weitere Zwischenzertifizierungsstelle signiert, usw., bis eine letzte Zwischenzertifizierungsstelle ein Gerät signiert. In unserem Beispiel wird Factory-Y von Company-X signiert, Factory-Y signiert wiederum Technician-Z, und Technician-Z signiert schließlich das Smart-X-Widget-Gerät.
Diese Kaskade von Zertifikaten in der Kette stellt die logische Übergabe von Autorität dar. Diese logische Übergabe wird für viele Lieferketten genutzt. Dabei wird jede Zwischenzertifizierungsstelle für die Kette signiert, während alle Zertifikate der vorgeschalteten Zertifizierungsstellen empfangen werden. Die letzte Zwischenzertifizierungsstelle signiert schließlich jedes Gerät und fügt alle Zertifizierungsstellenzertifikate aus der Kette in das Gerät ein. Diese Übergabe kommt häufig vor, wenn das beauftragte Fertigungsunternehmen mit einer Hierarchie von Werken ein bestimmtes Werk mit der Fertigung beauftragt. Die Hierarchie kann zwar mehrere Ebenen umfassen (z.B. nach Geografie/Produkttyp/Fertigungslinie), aber nur das Werk am Ende der Hierarchie interagiert mit dem Gerät. Die Kette wird vom oberen Ende der Hierarchie aus verwaltet.
Bei anderen Ketten kann es sein, dass verschiedene Zwischenzertifizierungsstellen mit dem Gerät interagieren. Dann fügt die Zertifizierungsstelle, die mit dem Gerät interagiert, an diesem Punkt Zertifikatketteninhalt ein. Hybridmodelle sind auch möglich, wenn nur für einige Zertifizierungsstellen eine physische Interaktion mit dem Gerät erfolgt.
Das folgende Diagramm zeigt, wie die Zertifikatkette der Vertrauensstellung in unserem Smart-X-Widget-Beispiel zusammengestellt wird.
- Das Unternehmen Company-X interagiert niemals physisch mit einem der Smart-X-Widgets. Es initiiert die Zertifikatkette der Vertrauensstellung durch Signieren des Zertifikats der Zwischenzertifizierungsstelle von Factory-Y.
- Das Werk Factory-Y hat jetzt ein eigenes Zertifikat der Zwischenzertifizierungsstelle und eine Signatur von Company-X. Es übergibt Kopien dieser Elemente an das Gerät. Außerdem verwendet es das Zertifikat der Zwischenzertifizierungsstelle, um das Zertifikat der Zwischenzertifizierungsstelle von Technician-Z und das Smart-X-Widget-Gerätezertifikat zu signieren.
- Der Techniker Technician-Z hat jetzt ein eigenes Zertifikat der Zwischenzertifizierungsstelle und eine Signatur von Factory-X. Er übergibt Kopien dieser Elemente an das Gerät. Außerdem verwendet er das Zertifikat der Zwischenzertifizierungsstelle zum Signieren des Smart-X-Widget-Gerätezertifikats.
- Jedes Smart-X-Widget-Gerät hat jetzt ein eigenes eindeutiges Gerätezertifikat sowie Kopien der öffentlichen Schlüssel und Signaturen aus jedem Zertifikat der Zwischenzertifizierungsstelle, mit dem es in der gesamten Lieferkette interagiert hat. Diese Zertifikate und Signaturen können bis zum ursprünglichen Company-X-Stamm zurückverfolgt werden.
Die Methode der Authentifizierung per Zertifizierungsstelle integriert sichere Verantwortlichkeit in die Lieferkette für die Gerätefertigung. Aufgrund des Zertifikatkettenprozesses werden die Aktionen jedes Mitglieds in der Kette kryptografisch aufgezeichnet und sind überprüfbar.
Dieser Prozess basiert auf der Annahme, dass das eindeutige Paar aus öffentlichem und privatem Schlüssel für Geräte unabhängig erstellt wird und dass der private Schlüssel innerhalb des Geräts geschützt ist. Glücklicherweise gibt es sichere Siliziumchips in Form von Hardwaresicherheitsmodulen (HSM), mit denen Schlüssel intern generiert und private Schlüssel geschützt werden können. Company-X muss der Stückliste eines Smart-X-Widget-Geräts lediglich einen solchen sicheren Chip hinzufügen.
Authentifizieren von Geräten
Sobald das Zertifizierungsstellenzertifikat auf oberster Ebene bei IoT Hub registriert wurde und die Geräte über ihre eindeutigen Zertifikate verfügen – wie stellen sie dann eine Verbindung her? Wie können möglicherweise Millionen von Geräten zum ersten Mal eine Verbindung herstellen und authentifiziert werden, indem jeweils ein X.509-Zertifizierungsstellenzertifikat für IoT Hub registriert wird? Durch den gleichen Ablauf mit Zertifikatupload und Eigentumsnachweis, den Sie bereits von der Registrierung des X.509-Zertifizierungsstellenzertifikats kennen.
Für die Authentifizierung per X.509-Zertifizierungsstelle gefertigte Geräte verfügen über eindeutige Gerätezertifikate und eine Zertifikatkette, die auf der jeweiligen Fertigungslieferkette basiert. Zum Herstellen der Geräteverbindung wird auch beim ersten Mal ein zweistufiger Prozess verwendet: Upload der Zertifikatkette und Eigentumsnachweis.
Während des Uploads der Zertifikatkette lädt das Gerät sein eindeutiges Zertifikat und die zugehörige Zertifikatkette auf IoT Hub hoch. Anhand des vorab registrierten X.509-Zertifizierungsstellenzertifikats überprüft IoT Hub, ob die hochgeladene Zertifikatkette intern konsistent ist und ob sie vom gültigen Eigentümer des X.509-Zertifizierungsstellenzertifikats stammt. Wie beim Registrierungsprozess über die X.509-Zertifizierungsstelle verwendet IoT Hub einen Abfrage/Antwort-Prozess für den Eigentumsnachweis, um sicherzustellen, dass die Kette – und deshalb das Gerätezertifikat – zum hochladenden Gerät gehört. Eine erfolgreiche Antwort führt dazu, dass IoT Hub das Gerät als authentisch akzeptiert und die Verbindungsherstellung zulässt.
In unserem Beispiel lädt jedes Smart-X-Widget sein eindeutiges Gerätezertifikat zusammen mit den X.509-Zertifizierungsstellenzertifikaten für Factory-Y und Technician-Z hoch und beantwortet anschließend die Herausforderung für den Eigentumsnachweis von IoT Hub.
Die Grundlage der Vertrauensstellung basiert auf dem Schutz von privaten Schlüsseln, einschließlich der privaten Geräteschlüssel. Daher möchten wir noch einmal betonen, wie wichtig die Verwendung von sicheren Siliziumchips in Form von Hardwaresicherheitsmodulen (HSM) als Schutz für private Geräteschlüssel ist und dass die bewährte Methode immer darin besteht, private Schlüssel niemals freizugeben (z. B. dass ein Werk einem anderen seinen privaten Schlüssel anvertraut).
Nächste Schritte
Verwenden Sie den Device Provisioning Service zum Bereitstellen mehrerer X.509-Geräte mithilfe von Registrierungsgruppen.
Weitere Informationen zu den Feldern eines X.509-Zertifikats finden Sie unter X.509-Zertifikate.
Wenn Sie ein Zertifikat der Stammzertifizierungsstelle oder ein Zertifikat der untergeordneten Zertifizierungsstelle haben und es auf Ihren IoT-Hub hochladen möchten, müssen Sie beweisen, dass Sie dieses Zertifikat besitzen. Weitere Informationen finden Sie unter Tutorial: Erstellen und Hochladen von Zertifikaten für Tests.