Azure IoT Edge-Sicherheits-Manager
Gilt für: IoT Edge 1.5 IoT Edge 1.4
Wichtig
IoT Edge 1.5 LTS und IoT Edge 1.4 LTS sind unterstützte Releases. Das Ende der Lebensdauer von IoT Edge 1.4 LTS wird am 12. November 2024 erreicht. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.
Der Azure IoT Edge-Sicherheits-Manager wird ein streng abgegrenzter Sicherheitskern für den Schutz der IoT Edge-Geräte und aller zugehörigen Komponenten durch das Abstrahieren der sicheren Hardware. Der Sicherheits-Manager fungiert als zentraler Punkt zur Erhöhung der Sicherheit und stellt den Integrationspunkt für Technologie durch Gerätehersteller (Original Equipment Manufacturer, OEM) dar.
Der Sicherheits-Manager abstrahiert die sichere Hardware (Secure Silicon) eines IoT Edge-Geräts und stellt ein Erweiterbarkeitsframework für zusätzliche Sicherheitsdienste bereit.
Der IoT Edge-Sicherheits-Manager soll die Integrität des IoT Edge-Geräts und aller zugehörigen Softwarevorgänge schützen. Der Sicherheits-Manager überträgt die Vertrauensstellung von der zugrunde liegenden Hardware des Hardware-Vertrauensankers (falls verfügbar), um das Bootstrapping der IoT Edge-Runtime auszuführen und laufende Vorgänge zu überwachen. Der IoT Edge-Sicherheits-Manager ist eine Software, die mit sicherer Hardware (sofern verfügbar und aktiviert) zusammenarbeitet, um die höchstmögliche Sicherheit zu bieten.
Darüber hinaus bietet der IoT Edge-Sicherheits-Manager ein sicheres Framework für Sicherheitsdiensterweiterungen über Module auf Hostebene. Zu diesen Diensten gehören Sicherheitsüberwachungfunktionen und Updates, für die Agents innerhalb des Geräts mit privilegiertem Zugriff auf einige Komponenten des Geräts erforderlich sind. Das Erweiterbarkeitsframework stellt sicher, dass solche Integrationen die allgemeine Systemsicherheit aufrechterhalten.
Zu den Aufgaben des IoT Edge-Sicherheits-Managers gehören unter anderem:
- Durchführen von Bootstraps für das Azure IoT Edge-Gerät
- Steuern des Zugriffs auf den Vertrauensanker der Gerätehardware über Notardienste
- Überwachen der Integrität der IoT Edge-Vorgänge zur Laufzeit
- Bereitstellen der Geräteidentität und Verwalten des Vertrauensstellungsübergangs bei Bedarf
- Gewährleisten eines sicheren Betriebs von Client-Agents für Dienste, einschließlich der Geräteaktualisierung für IoT Hub und Azure Defender für IoT.
Der IoT Edge-Sicherheits-Manager besteht aus drei Komponenten:
- Die IoT Edge-Modulruntime
- Abstraktionen des Hardwaresicherheitsmoduls (HSM) durch Standardimplementierungen wie PKCS#11 und Trusted Platform Module (TPM)
- Hardwarevertrauensanker oder HSM (optional, aber dringend empfohlen)
Änderungen in Version 1.2 und höher
In den Versionen 1.0 und 1.1 von IoT Edge war eine Komponente namens Sicherheitsdaemon für die logischen Sicherheitsvorgänge des Sicherheits-Managers verantwortlich. Im Update auf Version 1.2 wurden mehrere wichtige Zuständigkeiten an das Sicherheitssubsystem des Azure IoT-Identitätsdiensts delegiert. Nachdem diese sicherheitsbezogenen Aufgaben aus dem Sicherheitsdaemon entfernt wurden, ergab sein Name keinen Sinn mehr. Um die Arbeit dieser Komponente in Version 1.2 und höher besser widerzuspiegeln, haben wir sie in Modulruntime umbenannt.
Die IoT Edge-Modulruntime
Die IoT Edge-Modulruntime delegiert die Vertrauensstellung vom Sicherheitssubsystem des Azure IoT-Identitätsdiensts, um die Laufzeitumgebung für IoT Edge-Container zu schützen. Ein Dienst, der jetzt an Azure IoT Identity Service delegiert wird, ist der automatisierte Zertifikatregistrierungs- und Verlängerungsdienst über einen EST-Server. Um zu erfahren, wie dies funktioniert und wie ein Beispielserver für ein IoT Edge-Gerät erstellt wird, versuchen Sie das Tutorial Registrierung über Secure Transport Server für Azure IoT Edge konfigurieren.
Die Modulruntime ist für die logischen Sicherheitsvorgänge des Sicherheits-Managers verantwortlich. Er stellt einen großen Teil der vertrauenswürdigen Rechenbasis des IoT Edge-Geräts dar. Die Modulruntime verwendet Sicherheitsdienste des IoT-Identitätsdiensts, der wiederum durch das vom Gerätehersteller ausgewählte Hardwaresicherheitsmodul (HSM) verstärkt wird. Es wird dringend empfohlen, HSMs für die Gerätehärtung zu verwenden.
Entwurfsprinzipien
IoT Edge folgt zwei Kernprinzipien: Maximieren der betrieblichen Integrität und Minimieren von Überfrachtung und Churn.
Maximieren der operativen Integrität
Die IoT Edge-Modulruntime wird mit der höchsten Integrität ausgeführt, die im Rahmen der Abwehrfunktionalität einer Vertrauensankerhardware möglich ist. Mit einer angemessenen Integration misst und überwacht der Hardware-Vertrauensanker den Sicherheits-Daemon statisch und zur Laufzeit, um Manipulationen zu verhindern.
Böswilliger physischer Zugriff auf Geräte ist in IoT grundsätzlich eine Bedrohung. Der Hardwarevertrauensanker spielt eine wichtige Rolle beim Schutz der Integrität des IoT Edge-Geräts. Es gibt zwei Arten von Hardware-Vertrauensankern:
- Secure Elements für den Schutz vertraulicher Informationen wie Geheimnissen und kryptografischen Schlüsseln
- Secure Enclaves für den Schutz von Geheimnissen wie Schlüsseln sowie von sensiblen Workloads wie vertraulichen Machine Learning-Modellen und Messvorgängen
Es gibt zwei Arten von Ausführungsumgebungen, die Hardware-Vertrauensanker verwenden:
- Die Standardumgebung oder Rich Execution Environment (REE) basiert auf der Verwendung von Secure Elements zum Schutz vertraulicher Informationen.
- Die vertrauenswürdige Ausführungsumgebung (Trusted Execution Environment, TEE) basiert auf der Verwendung der Secure Enclave-Technologie zum Schutz vertraulicher Informationen und der Ausführung von Software.
Bei Geräten, die Secure Enclaves als Hardwarevertrauensanker verwenden, sollte sich sensible Logik in der IoT Edge-Modulruntime innerhalb der Enclave befinden. Nicht sensible Bereiche der Modulruntime können sich auch außerhalb der TEE befinden. In jedem Fall sollten ODMs (Original Design Manufacturer) und OEMs (Original Equipment Manufacturer) unbedingt die Vertrauensstellung aus ihrem HSM erweitern, um die Integrität der IoT Edge-Modulruntime beim Start und zur Laufzeit zu überwachen und zu schützen.
Minimale Überfrachtung und Änderung
Ein weiteres Kernprinzip der IoT Edge-Modulruntime ist die Begrenzung von Churn auf ein Mindestmaß. Für die höchste Vertrauensstufe kann die IoT Edge-Modulruntime eng mit dem Hardwarevertrauensanker des Geräts verknüpft und als nativer Code ausgeführt werden. In diesen Fällen ist es üblich, die IoT Edge-Software über die sicheren Updatepfade des Hardwarevertrauensankers statt über die Updatemechanismen des Betriebssystems zu aktualisieren, was schwierig sein kann. Die Sicherheitsaktualisierung wird für IoT-Geräte empfohlen, aber übermäßige Updateanforderungen oder umfangreiche Updatepayloads können die Angriffsfläche auf vielfältige Weise vergrößern. Beispielsweise werden Sie möglicherweise dazu verleitet, einige Updates zu überspringen, um die Geräteverfügbarkeit zu maximieren. Daher ist das Design der IoT Edge-Modulruntime recht kompakt, um die gut isolierte, vertrauenswürdige Rechenbasis klein zu halten und häufige Updates zu fördern.
Aufbau
Die IoT Edge-Modulruntime nutzt die verfügbare Hardwarevertrauensanker-Technologie zur Sicherheitsverstärkung. Sie ermöglicht auch den Betrieb in unterschiedlichen Umgebungen mit einer Standardausführungsumgebung (bzw. Rich Execution Environment, REE) und einer vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE), wenn Hardwaretechnologien TEEs bieten. Rollenspezifische Schnittstellen ermöglichen es den Hauptkomponenten von IoT Edge, die Integrität des IoT Edge-Geräts und seiner Vorgänge zu gewährleisten.
Cloudschnittstelle
Die Cloudschnittstelle ermöglicht den Zugriff auf Clouddienste, die die Gerätesicherheit ergänzen. Beispielsweise erlaubt diese Schnittstelle den Zugriff auf den Device Provisioning Service für das Identity Lifecycle Management des Geräts.
Verwaltungs-API
Die Verwaltungs-API wird vom IoT Edge-Agent beim Erstellen, Starten, Beenden und Entfernen eines IoT Edge-Moduls aufgerufen. Die Modulruntime speichert „Registrierungen“ für alle aktiven Module. Diese Registrierungen ordnen die Modulidentität einigen Eigenschaften des Moduls zu. Zu diesen Moduleigenschaften gehören beispielsweise die Prozess-ID (pid) des Prozesses, der im Container ausgeführt wird, und der Hash des Docker-Containerinhalts.
Mithilfe dieser Eigenschaften überprüft die Workload-API, ob der Aufrufer für eine Aktion autorisiert ist.
Die Verwaltungs-API ist eine privilegierte API, die nur vom IoT Edge-Agent aufgerufen werden kann. Da die IoT Edge-Modulruntime das Bootstrapping für den IoT Edge-Agent ausführt und ihn startet, stellt sie sicher, dass der IoT Edge-Agent nicht manipuliert wurde. Anschließend kann sie eine implizite Registrierung für den IoT Edge-Agent erstellen. Derselbe Nachweisprozess, den die Workload-API verwendet, beschränkt auch den Zugriff auf die Verwaltungs-API auf ausschließlich den IoT Edge-Agent.
Container-API
Die Container-API interagiert mit dem Containersystem, das für die Modulverwaltung verwendet wird, wie z.B. Moby oder Docker.
Workload-API
Die Workload-API ist für alle Module zugänglich. Sie ermöglicht einen Identitätsnachweis – entweder als vom HSM signiertes Token oder ein X.509-Zertifikat – und die zugehörige Vertrauenssammlung für ein Modul. Die Vertrauenssammlung enthält ZS-Zertifikate für alle anderen Server, denen die Module vertrauen sollen.
Die IoT Edge-Modulruntime verwendet einen Nachweisprozess zum Schutz dieser API. Wenn ein Modul diese API aufruft, versucht die Modulruntime eine Registrierung für die Identität zu finden. Ist er erfolgreich, verwendet er die Eigenschaften der Registrierung, um das Modul zu bewerten. Wenn das Ergebnis des Messprozesses mit der Registrierung übereinstimmt, wird ein neuer Identitätsnachweis generiert. Die zugehörigen ZS-Zertifikate (Vertrauenssammlung) werden an das Modul zurückgegeben. Das Modul verwendet dieses Zertifikat zum Verbinden mit IoT Hub oder anderen Modulen oder zum Starten eines Servers. Wenn das signierte Token oder das Zertifikat demnächst abläuft, muss das Modul ein neues Zertifikat anfordern.
Integration und Wartung
Microsoft verwaltet die Hauptcodebasis für die IoT Edge-Modulruntime und den Azure IoT-Identitätsdienst auf GitHub.
Beachten Sie beim Lesen der IoT Edge-Codebasis, dass sich die Modulruntime aus dem Sicherheitsdaemon entwickelt hat. Die Codebasis kann weiterhin Verweise auf den Sicherheitsdaemon enthalten.
Installation und Updates
Installation und Updates der IoT Edge-Modulruntime werden über das Paketverwaltungssystem des Betriebssystems verwaltet. IoT Edge-Geräte mit einem Hardwarevertrauensanker sollten zusätzliche Sicherheitsmaßnahmen für die Integrität der Modulruntime bereitstellen, indem sie den Lebenszyklus über sichere Start- und Updateverwaltungssysteme verwalten. Geräteersteller sollten diese Möglichkeiten basierend auf den jeweiligen Gerätefunktionen durchsuchen.
Versionsverwaltung
Die IoT Edge-Runtime verfolgt und meldet die Version der IoT Edge-Modulruntime. Die Version wird als das runtime.platform.version-Attribut der gemeldeten Eigenschaft des IoT Edge-Agent-Moduls gemeldet.
Hardwaresicherheitsmodul
Der IoT Edge-Sicherheits-Manager implementiert die Schnittstellenstandards Trusted Platform Module und PKCS#11 für die Integration von Hardwaresicherheitsmodulen (HSMs). Mit diesen Standards kann praktisch jedes HSM integriert werden, selbst HSMs mit proprietären Schnittstellen. Es wird dringend empfohlen, HSMs für die Sicherheitshärtung zu verwenden.
Sicherer Hardware-Vertrauensanker
Sichere Hardware ist erforderlich, um innerhalb der IoT Edge-Geräthardware einen Vertrauensanker zu schaffen. Es gibt verschiedene Arten von Sicherheitshardware, z. B. Trusted Platform Module (TPM), eingebettete Secure Elements (eSE), ARM TrustZone, Intel SGX oder benutzerdefinierte sichere Hardwaretechnologien. Die Verwendung eines sicheren Vertrauensankers in Geräten wird aufgrund der Bedrohungen durch den physischen Zugriff auf IoT-Geräte empfohlen.
Der IoT Edge-Sicherheits-Manager versucht, die Komponenten, die bei benutzerdefinierten Sicherheitsmaßnahmen zum Schutz der Sicherheit und Integrität der Azure IoT Edge-Plattform beitragen, zu identifizieren und zu isolieren. Drittanbieter wie Gerätehersteller sollten die ihnen zur Verfügung stehenden benutzerdefinierten Sicherheitsfeatures für ihre Gerätehardware nutzen.
Informieren Sie sich, wie Sie den Azure IoT-Sicherheits-Manager mit dem Trusted Platform Module (TPM) mithilfe von Software oder virtuellen TPMs härten können:
Erstellen und Bereitstellen eines IoT Edge-Geräts mit einem virtuellen TPM unter Linux oder Linux unter Windows.
Nächste Schritte
Weitere Informationen zum Schützen Ihrer IoT Edge-Geräte finden Sie in den folgenden Blogbeiträgen: