Grundlagen der IoT-Sicherheit - Teil 5: Sichere Verbindung zu IoT-Cloud-Diensten
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2020-07-02
Hinweis des Herausgebers: Trotz der Verbreitung von IoT-Geräten ist die Sicherung dieser Geräte weiterhin ein ständiges Anliegen, da Sicherheitsprobleme ein Hindernis für den Einsatz angeschlossener Geräte im industriellen IoT (IIoT) und in unternehmenskritischen Anwendungen darstellen können, bei denen Unternehmens- und persönliche Daten im Falle eines erfolgreichen Angriffs kompromittiert werden können. Die Sicherung von IoT-Anwendungen kann entmutigend sein, aber in Wirklichkeit kann die Sicherheit von IoT-Geräten auf einigen wenigen, relativ einfachen Prinzipien aufbauen, die von Hardware-Sicherheitsgeräten unterstützt werden. Durch die Befolgung gut etablierter Sicherheitspraktiken können diese Bedenken ausgeräumt werden. Diese mehrteilige Serie bietet praktische Anleitungen, die den Entwicklern helfen sollen, sicherzustellen, dass die besten Praktiken von Anfang an befolgt werden. Teil 1 erörtert die kryptographischen Algorithmen, die sicheren Designs zugrunde liegen. Teil 2 erörtert die Rolle von privaten Schlüsseln, Schlüsselverwaltung und sicherer Speicherung in sicheren IoT-Designs. Teil 3 untersucht die Mechanismen, die in sichere Prozessoren eingebaut sind, um andere Arten von Bedrohungen für IoT-Geräte abzuschwächen. Teil 4 identifiziert und zeigt, wie Sicherheitsmechanismen in fortschrittlichen Prozessoren angewendet werden können, um die Isolierung zu gewährleisten, die erforderlich ist, um Angriffe auf die Laufzeitumgebung von IoT-Geräten abzuschwächen. Hier wird in Teil 5 beschrieben, wie die IoT-Sicherheit von IoT-Geräten durch Sicherheitsmaßnahmen auf höherer Ebene weitergeführt wird, um diese Geräte mit IoT-Cloud-Ressourcen zu verbinden.
Die Sicherheit des Internet der Dinge (Internet of Things, IoT) hängt von mehreren Schutzebenen ab, die sich von der Hardware-Grundlage des IoT-Geräts bis hin zu seiner Ausführungsumgebung erstrecken. Bedrohungen bleiben jedoch für jedes angeschlossene Gerät bestehen, und typische IoT-Anwendungsanforderungen für Cloud-Konnektivität können sowohl IoT-Geräte als auch Cloud-Dienste für neue Angriffe offen lassen. Um diese Bedrohungen einzudämmen, verwenden IoT-Cloud-Anbieter spezifische Sicherheitsprotokolle und -richtlinien, die bei Missbrauch IoT-Anwendungen verwundbar machen können. Mithilfe vorkonfigurierter Entwicklungs-Boards können Entwickler schnell Erfahrungen mit den Sicherheitsmethoden sammeln, die von führenden IoT-Cloud-Diensten verwendet werden, um Verbindungen zu authentifizieren und die Nutzung von IoT-Geräten und Cloud-Ressourcen zu autorisieren.
Dieser Artikel beschreibt die Verbindungsanforderungen von zwei führenden Cloud-Diensten, Amazon Web Services (AWS) und Microsoft Azure, und zeigt, wie Entwickler Entwicklungskits und zugehörige Software von verschiedenen Anbietern verwenden können, um schnell eine Verbindung mit diesen Diensten herzustellen.
Die Rolle von IoT-Portalen in Cloud-Diensten
Wenn sich ein IoT-Gerät mit einer Ressource wie einem Cloud-Service oder einem Remote-Host verbindet, setzt es sich selbst - und damit das gesamte IoT-Netzwerk - potentiell Bedrohungen aus, die sich als legitime Dienste oder Server tarnen. Umgekehrt ist der Cloud-Dienst selbst in ähnlicher Weise der Gefahr von Angriffen durch Hacker ausgesetzt, die IoT-Device-Transaktionen nachahmen, um die Abwehr der Cloud zu durchbrechen. Um den Schutz sowohl für IoT-Geräte als auch für Cloud-Ressourcen zu gewährleisten, erfordern Cloud-Dienste die Verwendung spezifischer Sicherheitsprotokolle für die gegenseitige Authentifizierung der Identität bei der Anmeldung und die anschließende Autorisierung, um die erlaubte Nutzung der Dienste sicherzustellen. Diese Protokolle sind normalerweise in einer Reihe von Diensten enthalten, die ein sicheres Portal zwischen IoT-Geräten und Cloud-Ressourcen bereitstellen.
Wie bei anderen verfügbaren IoT-Cloud-Service-Plattformen bieten AWS und Azure jeweils ein spezifisches Einstiegsportal, das IoT-Geräte nutzen müssen, um mit den vollständigen Cloud-Ressourcen des jeweiligen Anbieters wie virtuellen Maschinen (VMs) und Software-as-a-Service (SaaS)-Angeboten zu interagieren. Azure IoT Hub und AWS IoT stellen dieses Portal unter Verwendung eines funktionell ähnlichen Satzes von Mechanismen und Fähigkeiten für ihre jeweiligen Enterprise Cloud-Angebote zur Verfügung.
Zumindest verwenden diese und andere IoT-Portale spezifische Authentifizierungsprotokolle, die durch das Software Development Kit (SDK) des jeweiligen Anbieters implementiert werden, um eine sichere Verbindung herzustellen. Bei AWS verbinden sich IoT-Geräte über gegenseitige Authentifizierung mit einem Geräte-Gateway. Das Geräte-Gateway verbindet das IoT-Gerät mit anderen IoT-Support-Diensten und verwendet dabei Informationen, die in einer Geräteregistrierung gehalten werden, um eine eindeutige Gerätekennung, Sicherheitsanmeldeinformationen und andere Metadaten zu speichern, die zur Verwaltung des Zugriffs auf AWS-Dienste benötigt werden (Abbildung 1). In Azure hat das Identitätsregister eine ähnliche Funktion.
<Abbildung 1: Wie auch andere Cloud-Anbieter bietet AWS Entwicklern eine Reihe spezialisierter Dienste an, die die Sicherheit und Effektivität von Transaktionen zwischen IoT-Geräten und Unternehmens-Cloud-Diensten verbessern sollen. (Bildquelle: Amazon Web Services)
AWS IoT und Azure IoT stellen jeweils einen Dienst zur Verfügung, der Statusinformationen in einem virtuellen Gerät verwaltet, das jedem physischen IoT-Gerät zugeordnet ist. Im AWS IoT bieten Geräteschatten diese Fähigkeit für AWS IoT, während Gerätezwillinge ähnliche Fähigkeiten für Azure IoT bieten.
Dieser Begriff eines Sicherheitsportals erstreckt sich auch auf IoT-Edge-Dienste wie AWS Greengrass oder Azure IoT Edge. Diese Edge-Service-Angebote bringen einige Cloud-Dienste und -Fähigkeiten in das lokale Netzwerk, wo Edge-Systeme bei groß angelegten Einsätzen physisch in der Nähe von IoT-Geräten und -Systemen platziert werden. Entwickler können einen Dienst wie Azure IoT Edge verwenden, um die Anwendungs-Geschäftslogik zu implementieren oder andere funktionale Fähigkeiten bereitzustellen, die zur Reduzierung der Latenzzeit oder zur Bereitstellung von Diensten für lokale Betreiber, wie z.B. in der industriellen Automatisierung, erforderlich sind (Abbildung 2).
Abbildung 2: Zur Unterstützung von Edge-Computing bieten Cloud-Service-Anbieter spezialisierte Dienste wie Microsoft Azure IoT Edge an, die einige Azure IoT-Cloud-Services näher an die physischen Geräte bringen, die mit der IoT-Anwendung verbunden sind. (Bildquelle: Microsoft Azure)
Umgang mit Anforderungen an die Konnektivität von IoT-Portalen
Unabhängig davon, ob die Verbindung über ein Edge-System oder direkt mit dem IoT-Dienst des Anbieters hergestellt wird, müssen IoT-Geräte in der Regel eine Reihe von Anforderungen erfüllen, um eine Verbindung über das IoT-Portal des Anbieters herzustellen und die Cloud-Dienste des Anbieters zu nutzen. Obwohl die Details unterschiedlich sind, müssen IoT-Geräte mindestens einige Elemente wie einen privaten Schlüssel, ein X.509-Zertifikat oder ein anderes Sicherheits-Token bereitstellen. Der Schlüssel, das Zertifikat oder der Token liefert dem IoT-Portal während der Authentifizierungsphase der Verbindungssequenz zwischen Gerät und Cloud eine Bescheinigung oder einen Nachweis der Identität des IoT-Geräts. Darüber hinaus erfordern IoT-Cloud-Dienste in der Regel eine Spezifikation der Richtlinien, die zur Definition von Zugriffsrechten für Interaktionen zwischen IoT-Geräten und Cloud-Diensten verwendet werden.
Wie bei anderen Rechenanforderungen von Unternehmen müssen die Bescheinigungsinformationen für die Authentifizierung und die Richtlinieninformationen für die Zugriffsverwaltung unter Verwendung spezifischer Formate und Verfahren bereitgestellt werden, die von führenden IoT-Cloud-Diensten wie AWS IoT und Azure IoT spezifiziert werden. Diese Dienste unterstützen zumindest die zertifikatsbasierte Authentifizierung, unterstützen aber auch die Verwendung anderer Formen der Beglaubigung. Beispielsweise können Entwickler tokenbasierte Authentifizierungsmethoden verwenden, die auf einem JSON Web Token (JWT) für AWS IoT oder einem SAS-Token (Shared Access Signature) für Azure IoT basieren.
Wie bereits erwähnt, verwenden diese Dienste Register zur Speicherung von Metadaten für jedes IoT-Gerät. Zusammen mit Sicherheits- und anderen Informationen speichern diese Register die Zugriffsrechte-Richtlinien, die für den Anschluss eines IoT-Geräts definiert werden müssen. Obwohl sie für verschiedene Cloud-Dienste unterschiedlich spezifiziert sind, beschreiben diese Richtliniendefinitionen die Zugriffsrechte für verschiedene Kommunikationskanäle und Entitäten. Beispielsweise würde eine einfache AWS IoT-Zugriffsrechte-Richtlinie ein JSON-Format verwenden, um anzuzeigen, dass ein IoT-Gerät mit einem bestimmten "Ding"-Namen in der AWS IoT-Geräteregistrierung eine Verbindung herstellen und Nachrichten nur auf einem Kanal mit demselben zugehörigen DingNamen veröffentlichen kann (Listing 1).
Kopieren
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action":["iot:Publish"],
"Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}"]
},
{
"Effect": "Allow",
"Action": ["iot:Connect"],
"Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"]
}
]
}
Listing 1: Entwickler verwenden ein JSON-Format zur Beschreibung von AWS IoT-Zugriffsrechte-Richtlinien für ihre IoT-Geräte. (Code-Quelle: AWS)
Cloud-fähige Entwicklungs-Kits
Obwohl Cloud-Anbieter detaillierte Spezifikationen dieser Formate und Verfahren anbieten, sind die Support-Foren der Anbieter in der Regel mit Fragen von Entwicklern gefüllt, die durch einige kleine, aber wichtige Details gestolpert sind, die eine Authentifizierung und Zugriffsverwaltung verhindern. Vom Sicherheitsstandpunkt aus betrachtet, kann ein unbeabsichtigter Missbrauch der Bescheinigung oder eine unvollständige Definition von Zugriffsrichtlinien IoT-Geräte, Netzwerke und Anwendungen angreifbar machen. Die Verfügbarkeit von serienmäßigen Entwicklungsboards und begleitenden Softwarepaketen ermöglicht es Entwicklern, schnell durch diese Verbindungsverfahren zu navigieren und anhand von vom Hersteller bereitgestellten Beispielen schnell eine Verbindung zu IoT-Wolken herzustellen. Zum Beispiel enthalten Espressif Systems' ESP32-Azure IoT Kit oder Seeed Technology's AZ3166 IoT Developer Kit Azure-zertifizierte Boards, die für eine einfache Verbindung mit der Microsoft-Cloud entwickelt wurden.
Microsoft bietet vollständige Schritt-für-Schritt-Demonstrationen, einschließlich Authentifizierung und Zugangsberechtigungen für die unterstützten Entwicklungs-Kits. Bei der Platine AZ3166 beispielsweise drücken die Entwickler Knöpfe auf der Platine, um die Verbindung mit ihrem lokalen Wi-Fi-Netzwerk herzustellen. Sobald sie angeschlossen sind, können sie die Azure IoT Device Workbench verwenden, die im Azure IoT Tools Erweiterungspaket für Microsoft Visual Studio Code enthalten ist, um den Azure IoT Hub zu entwickeln, zu debuggen und mit ihm zu interagieren. Mit diesem Toolset und seinen Beispielcodepaketen erstellen Entwickler ein Objekt für das IoT-Gerät im Azure IoT Hub und verwenden eine bereitgestellte Datei, um die zugehörige Identitätsregistrierung mit den Anmeldeinformationen und anderen Metadaten zu versehen, die für die Verbindung des IoT-Boards mit dem Azure IoT Hub erforderlich sind (Abbildung 3).
<Abbildung 3: Beispielcode und Anmeldedaten, die in der Microsoft Azure IoT Device Workbench bereitgestellt werden, helfen Entwicklern bei der vollständigen Bereitstellung für die Verbindung des Seeed Technology AZ3166 IoT Developer Kit mit dem Azure IoT Hub. (Bildquelle: Microsoft Azure)
Die Azure IoT Device Workbench bietet zusätzliche Unterstützungssoftware und Metadaten, mit denen Entwickler das AZ3166-Board schnell mit Beispielcode laden und mit der Übertragung von Messungen vom Temperatur- und Feuchtigkeitssensor des Boards zum Azure IoT Hub beginnen können.
Die Schritte zur Erstellung einer Darstellung für das physische IoT-Gerät in der IoT-Cloud und zur Bereitstellung der zugehörigen Registry sind nur erforderlich, um Geräte mit der IoT-Cloud zu verbinden. Um die Vorteile von Cloud-Diensten nutzen zu können, benötigt der Azure IoT Hub jedoch eine Richtlinie für Zugriffsrechte. Um die vom AZ3166-Sensor kommenden Geräte-zu-Wolke-Meldungen zu überwachen, können Entwickler einfach den Azure-Bildschirm mit den Richtlinien für den gemeinsamen Zugriff von Azure verwenden, um eine vorgefertigte Richtlinie auszuwählen, mit der die erforderlichen Zugriffsrechte schnell aktiviert werden können (Abbildung 4).
Abbildung 4: Entwickler können vorgefertigte Richtlinien verwenden, um die Nutzung von Azure-Wolkendiensten mit Sensordaten aus dem Seeed Technology AZ3166 IoT Developer Kit einfach zu autorisieren. (Bildquelle: Microsoft Azure)
Bei der Arbeit mit AWS IoT können Entwickler auf Entwicklungskits wie Microchip Technology's AT88CKECC-AWS-XSTK-B Zero Touch Provisioning Kit und die dazugehörige Software zurückgreifen, um Cloud-Konnektivität schnell zu evaluieren. Diese aktualisierte Version eines früheren Microchip Zero Touch Provisioning-Kits wird mit vorinstallierten Authentifizierungsnachweisen geliefert. Mit Hilfe zusätzlicher Skripte, die mit dem Kit mitgeliefert werden, können Entwickler das Board schnell an AWS IoT anschließen, ohne sich mit privaten Schlüsseln und Zertifikaten befassen zu müssen (siehe, "Den Null-Touch-Ansatz zum sicheren Sperren eines IoT-Geräts wählen").
Andere Entwicklungs-Kits, einschließlich Renesas' RTK5RX65N0S01000BE RX65N Cloud Kit und Infineon Technologies' KITXMC48IOTAWSWIFITOBO1 AWS IoT Kit, die Unterstützung für AWS IoT-Konnektivität mit Unterstützung für die schnelle Entwicklung von Anwendungen auf der Basis von Amazon FreeRTOS zu erweitern. AWS bietet detaillierte Anweisungen für die Registrierung der Boards, die Erstellung von Authentifizierungs-Zugangsdaten und das Laden von JSON-Richtlinien, die für die Verbindung mit AWS IoT und die Nutzung von AWS-Diensten erforderlich sind.
Vereinfachung der Bereitstellung für groß angelegte IoT-Implementierungen
Entwicklungskits wie die oben beschriebenen dienen als effektive Plattformen sowohl für das schnelle Prototyping von IoT-Anwendungen als auch für die Untersuchung der Anforderungen an die Anbindung von IoT-Cloud-Diensten. In der Praxis werden Entwickler jedoch in der Regel auf fortschrittlichere Ansätze zurückgreifen müssen, um die Bereitstellung von IoT-Geräten in realen Anwendungen zu vereinfachen. Sowohl Azure IoT als auch AWS IoT unterstützen eine Vielzahl von Methoden, die eine stärker automatisierte Bereitstellung einzelner Geräte oder einer großen Anzahl von IoT-Geräten in einem groß angelegten Einsatz ermöglichen.
Mit AWS IoT können Entwickler zum Beispiel eine Bootstrap-Methode für die Zertifikatsbereitstellung verwenden. Hier wird das intelligente Produkt mit einem Bootstrap-Zertifikat ausgeliefert, das mit den minimalen Zugriffsrechten verbunden ist, die für die Anforderung eines neuen Zertifikats und den Zugriff darauf erforderlich sind (Abbildung 5).
<Abbildung 5: AWS IoT unterstützt eine Methode zur Bootstrap-Zertifikatsbereitstellung in IoT-Geräten. (Bildquelle: DigiKey, von Amazon Web Services)
Mit Hilfe des Bootstrap-Zertifikats verbindet sich das Gerät mit der Cloud ("1" in Abbildung 5), fordert ("2") ein neues Zertifikat an, empfängt ("3") die URL des Zertifikats, das von einer AWS serverlosen Lambda-Funktion generiert wurde, und ruft ("4") dieses Zertifikat aus einem AWS Simple Storage Services (S3)-Bucket ab ("4"). Mit diesem neuen Zertifikat meldet sich das Gerät dann wieder bei AWS IoT ("5") an, um mit dem normalen Betrieb fortzufahren.
AWS bietet weitere Cloud-Dienste an, die die dynamische Bereitstellung von Authentifizierungs-Token unter Verwendung von Ausführungsressourcen wie AWS-Lambda-Funktionen unterstützen. Beispielsweise könnte eine Automobilanwendung auf einer Reihe von kurzlebigen Verbindungen beruhen, bei denen die Verwendung eines Tokens sowohl praktischer als auch sicherer ist. Hier generiert der AWS Security Token Service (STS), nachdem ein AWS-Modul zur IoT-Authentifizierung und -Autorisierung den Antrag auf einen Token genehmigt hat, einen Token zur Übergabe an die Fahrzeugsysteme. Mit diesem Token können diese Systeme auf AWS-Dienste zugreifen, die der Validierung durch den AWS Identity and Access Management (IAM)-Dienst unterliegen (Abbildung 6).
<Abbildung 6: Führende Anbieter von Cloud-Diensten unterstützen andere Formen der Beglaubigung für die Authentifizierung, wie dieses Verfahren zur dynamischen Generierung von Sicherheitstoken durch den AWS Security Token Service (STS). (Bildquelle: Amazon Web Services)
AWS bietet eine ähnliche Funktion für die dynamische Zuweisung von Zugriffsrechten. Hier würden andere AWS-Lambda-Funktionen eine Reihe von Richtlinien zuweisen, die mit einem gültigen Token verbunden sind (Abbildung 7).
Abbildung 7: Entwickler können Cloud-Dienste verwenden, um eine dynamische Zuweisung von Zugriffsrechten zu implementieren, was besonders für Anwendungen mit kurzlebigen Verbindungen oder kurzlebigen Operationen nützlich ist. (Bildquelle: Amazon Web Services)
Andere IoT-Cloud-Dienste ermöglichen es Entwicklern, die Bereitstellung in großen Implementierungen effizienter zu gestalten. Zum Beispiel bietet AWS IoT Flottenbereitstellungsfähigkeiten, einschließlich der Unterstützung für einen größeren Einsatz der zuvor beschriebenen Bootstrap-Methode. Der Device Provisioning Service von Azure IoT bietet eine Gruppenregistrierungsfunktion, die die Bereitstellung einer großen Anzahl von IoT-Geräten unterstützt, die das gleiche X.509-Zertifikat oder SAS-Token verwenden.
Geteilte Verantwortung für die Sicherheit
IoT-Cloud-Anbieter bieten eine Reihe effektiver Methoden zur Verbesserung der End-to-End-Sicherheit für IoT-Anwendungen. Dennoch können IoT-Entwickler nicht erwarten, dass diese Methoden das volle Gewicht der Sicherheitsanforderungen für ihre spezielle IoT-Anwendung tragen können. Tatsächlich umreißen die Anbieter von Cloud-Diensten ihre spezifische Rolle und Verantwortlichkeiten im Bereich der IoT-Anwendungssicherheit sorgfältig mit spezifischen Modellen wie dem Modell der geteilten Verantwortung der AWS (Abbildung 8).
Abbildung 8: Wie bei anderen führenden Cloud-Anbietern beschreibt die AWS die Verantwortlichkeiten, die sie mit den Cloud-Benutzern teilt, um die Cloud-Infrastruktur einerseits und die Kundenanwendungen andererseits zu schützen. (Bildquelle: Amazon Web Services)
AWS und Microsoft Azure stellen jeweils Dokumente zur gemeinsamen Verantwortung zur Verfügung, die die eigene Rolle des Anbieters und die des Kunden bei der Sicherung von Ressourcen, Daten und Anwendungen beschreiben und erklären. In seiner Dokumentation bietet Microsoft auch einen Überblick über einige der Beziehungen zwischen gemeinsamer Sicherheit und Compliance-Anforderungen. Letztendlich behalten die Cloud-Anbieter die Verantwortung für die Sicherheit der Cloud, während die Kunden für die in der Cloud genutzten Anwendungen, Daten und Ressourcen verantwortlich bleiben.
Fazit
IoT-Anwendungen sind auf Sicherheitsebenen angewiesen, die aus hardwarebasierten Mechanismen für Kryptographie und sichere Schlüsselspeicherung aufgebaut sind. Wie bei jedem verbundenen Produkt können Sicherheitsbedrohungen bei allen Arten von Interaktionen auftreten, wenn sich IoT-Geräte mit Cloud-Diensten verbinden. Um sich und ihre Kunden zu schützen, diktieren IoT-Cloud-Anbieter spezifische Anforderungen an die Authentifizierung und die Verwaltung von Zugriffsrechten. Obwohl die Anbieter eine ausführliche Dokumentation zu diesen Anforderungen und den damit verbundenen Spezifikationen anbieten, können Entwickler feststellen, dass ihre Bemühungen zur Implementierung einer sicheren Konnektivität manchmal Ressourcen freilassen oder umgekehrt unzugänglich sind. Mithilfe von Entwicklungs-Boards und zugehöriger Software können Entwickler schnell eine Verbindung zu Cloud-Diensten herstellen und schnell Prototypen von IoT-Anwendungen mit durchgängiger Sicherheit erstellen.
Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.


