Ankündigung: IoT Hub-Gerätestreams in der öffentlichen Vorschau

Veröffentlicht am 23 Januar, 2019

Senior Program Manager, Azure IoT

In unserem digitalen Zeitalter steigt der Stellenwert von Sicherheit immer mehr. Deshalb sind sichere Verbindungen zu IoT-Geräten von höchster Bedeutung. In vielen Wartungs- und Betriebsszenarios im IoT-Bereich werden End-to-End-Verbindungen eingesetzt, damit Benutzer und Dienste mit Daten interagieren, sich auf Geräten anmelden, Probleme beheben und Daten von Geräten erhalten und an diese senden können. Aus diesem Grund sind die Sicherheit und Konformität mit den Richtlinien einer Organisation in diesen Szenarios unumgänglich.

Azure IoT Hub-Gerätestreams sind ein neues PaaS-Angebot, mit dem Sie diese Sicherheits- und Konformitätsanforderungen erfüllen können. Gerätestreams bilden die Grundlage für eine sichere End-to-End-Verbindung mit IoT-Geräten. Kunden, Partner, Anwendungsentwickler und externe Plattformanbieter können Gerätestreams für eine sichere Kommunikation mit IoT-Geräten einsetzen, wenn sich diese Geräte hinter einer Firewall befinden oder innerhalb eines privaten Netzwerks bereitgestellt wurden. Durch die integrierte Kompatibilität mit dem TCP/IP-Protokollstapel können Gerätestreams für die unterschiedlichsten Anwendungen zum Einsatz gebracht werden. Dazu zählen sowohl Anwendungen mit benutzerdefinierten proprietären Protokollen als auch Anwendungen mit standardbasierten Protokollen wie z. B. Remote Shell, das Webprotokoll, File Transfer Protocol und Streaming-Protokoll.

Einfach gesagt ist ein IoT Hub-Gerätestream ein Datenübertragungstunnel, der eine Verbindung zwischen zwei TCP/IP-fähigen Endpunkten herstellt: am einen Ende des Tunnels befindet sich ein IoT-Gerät und am anderen ein benutzerdefinierter Endpunkt, der mit dem Gerät kommunizieren soll (Letzterer wird im Folgenden als Dienstendpunkt bezeichnet). Es sind viele Szenarios möglich, in denen eine direkte Verbindung mit einem Gerät nicht zulässig ist, da diese gegen die Sicherheitsrichtlinien einer Organisation verstoßen würde und durch die Verbindungseinschränkungen in den Netzwerken der Organisation verhindert wird. Diese Einschränkungen sind zwar gerechtfertigt, verhindern aber oft gängige Szenarios, für die jedoch eine Verbindung mit einem IoT-Gerät erforderlich ist.

Zu diesen Szenarios gehören die folgenden:

  • Ein Anwender möchte sich zu Überprüfungs- oder Wartungszwecken bei einem Gerät anmelden. Dabei erfolgt die Anmeldung häufig über die Secure Shell (SSH) für Linux oder das Remotedesktopprotokoll (RDP) für Windows. Durch die Firewallkonfiguration des Geräts oder des Netzwerks wird verhindert, dass die Arbeitsstation des Anwenders eine Verbindung mit dem Gerät herstellen kann.
  • Ein Anwender muss zur Problembehandlung aus der Ferne auf das Diagnoseportal eines Geräts zugreifen. Diagnoseportale sind normalerweise Webserver, die auf dem Gerät gehostet werden. Die private IP-Adresse oder die Firewallkonfiguration eines Gerätes kann verhindern, dass der Benutzer mit dem Webserver des Geräts interagieren kann.
  • Ein Anwendungsentwickler muss aus der Ferne auf Protokolle und andere Laufzeitdiagnoseinformationen aus dem Dateisystem eines Geräts zugreifen. Zu diesem Zweck werden häufig das File Transfer Protocol oder Secure Copy (SCP) verwendet (es gibt aber auch andere Optionen). Die Firewallkonfiguration blockiert normalerweise derartigen Datenverkehr.

Mit IoT Hub-Gerätestreams können die Anforderungen dieser Szenarios erfüllt werden. Dabei wird ein IoT Hub-Cloudendpunkt eingesetzt, der als Proxy für Anwendungsdatenverkehr zwischen dem Gerät und dem Dienst fungiert. Dieser Aufbau wird in der folgenden Abbildung veranschaulicht und im darauffolgenden Abschnitt beschrieben.

iot-hub-gerätestreams-übersicht

  • Sowohl der Geräte- als auch der Dienstendpunkt stellen eine eigene ausgehende Verbindung mit dem IoT Hub-Endpunkt her, der als Proxy für den Datenverkehr fungiert, der zwischen dem Gerät und dem Dienst übertragen wird.
  • Der IoT Hub-Endpunkt leitet Datenpakete des Geräts an den Dienst weiter (und umgekehrt). So entsteht ein durchgehender, bidirektionaler Tunnel, über den Geräte- und Dienstanwendungen miteinander kommunizieren können.
  • Über den von IoT Hub erzeugten Tunnel können Pakete zuverlässig und strukturiert übermittelt werden. Darüber hinaus ist die Übertragung über IoT Hub für die Anwendungen nicht spürbar, sondern wirkt wie eine direkte bidirektionale Kommunikation, die dem Transmission Control-Protokoll in nichts nachsteht.

Vorteile

Durch IoT Hub-Gerätestreams ergeben sich die folgenden Vorteile:

  • Firewallfreundliche, sichere Konnektivität: Dienstendpunkte können IoT-Geräte erreichen, ohne dass der Firewallport für eingehenden Datenverkehr in der Geräte- oder Netzwerkumgebung geöffnet werden muss. Stattdessen muss es nur möglich sein, über Port 443 ausgehende Verbindungen mit IoT Hub-Cloudendpunkten herzustellen (Geräte, die das IoT Hub SDK verwenden, stellen standardmäßig eine Verbindung mit IoT Hub-Endpunkten her).
  • Authentifizierungserzwingung: Zum Erzeugen eines Streams müssen sich der Geräte- und der Dienstendpunkt bei IoT Hub mit ihren jeweiligen Anmeldeinformationen authentifizieren. So wird die Sicherheit auf Ebene der Gerätekommunikation erhöht, da die Identität der Punkte an den Enden des Tunnels vor jeglicher Kommunikation geprüft wird.
  • Verschlüsselung: Standardmäßig verwenden IoT Hub-Gerätestreams TLS-fähige Verbindungen. So wird sichergestellt, dass der Anwendungsdatenverkehr verschlüsselt wird (egal, ob die Anwendung die Verschlüsselung verwendet oder nicht).
  • Einfache Konnektivität: Durch Gerätestreams müssen keine virtuellen privaten Netzwerke (VPN) mehr eingerichtet werden, um eine Verbindung mit IoT-Geräten zu ermöglichen. Dadurch wird der Arbeitsaufwand deutlich gesenkt. Im Gegensatz zu VPN, die dem gesamten Netzwerk Zugriff gewähren, verlaufen Gerätestreams nur zwischen zwei Punkten, nämlich dem Gerät und dem Dienst an den Enden des Tunnels.
  • Kompatibilität mit dem TCP/IP-Protokollstapel: IoT Hub-Gerätestreams funktionieren auch mit TCP/IP-Anwendungsdatenverkehr. Das bedeutet, dass sowohl proprietäre als auch standardbasierte Protokolle dieses Feature nutzen können. Dazu zählen u. a. gängige Protokolle wie das Remotedesktopprotokoll (RDP), die Secure Shell (SSH), das File Transfer Protocol (FTP) und das HTTP/REST.
  • Einfache Verwendung in privaten Netzwerken: Geräte in privaten Netzwerken sind erreichbar, ohne jedem Gerät öffentlich routingfähige IP-Adressen zuweisen zu müssen. Ähnlich verhält es sich mit Geräten, denen IP-Adressen dynamisch zugewiesen werden, sodass es sein kann, dass diese Adressen dem Dienst nicht immer bekannt sind. In beiden Fällen ermöglichen Gerätestreams das Herstellen einer Verbindung mit einem Zielgerät anhand dessen Geräte-ID als Bezeichner (statt der IP-Adresse).

Wie oben beschrieben sind IoT Hub-Gerätestreams insbesondere dann praktisch, wenn sich Geräte hinter einer Firewall oder innerhalb eines privaten Netzwerks ohne öffentlich zugängliche IP-Adresse befinden. Im Folgenden betrachten wir einen derartigen Fall als Fallstudie, bei dem die Konnektivität mit dem Gerät eingeschränkt ist.

Fallstudie: Remoter Gerätezugriff im Fertigungskontext

An dieser Stelle möchten wir die Vielseitigkeit von Gerätestreams anhand von echten IoT-Szenarios weiter veranschaulichen. Stellen Sie sich Geräte und Maschinen (d. h. IoT-Geräte) in einer Fabrikhalle vor, die mit dem lokalen Netzwerk der Fabrik verbunden sind. Das LAN ist für gewöhnlich über ein Netzwerkgateway oder einen HTTP-Proxy mit dem Internet verbunden und wird durch eine Firewall an der Netzwerkgrenze geschützt. Bei diesem Aufbau wurde die Firewall entsprechend den Sicherheitsrichtlinien der Organisation konfiguriert, wodurch das Öffnen bestimmter Firewallports möglicherweise nicht zulässig ist. Port 3389, der vom Remotedesktopprotokoll verwendet wird, wird z. B. häufig blockiert. Deshalb ist es nicht möglich, dass Benutzer von außerhalb dieses Netzwerks über diesen Port auf Geräte zugreifen.

Ein derartige Netzwerkaufbau ist weitverbreitet, führt aber zu Schwierigkeiten bei gängigen IoT-Szenarios. Wenn Anwender z. B. von außerhalb des LAN auf Geräte zugreifen müssen, kann es u. U. sein, dass die Firewall eingehenden Datenverkehr über einen beliebigen von der Anwendung verwendeten Port zulassen muss. Bei einem Windows-Computer, der das RDP verwendet, widerspricht das den Sicherheitsrichtlinien, die Port 3389 blockieren.

Mit Gerätestreams wird der RDP-Datenverkehr an Zielgeräte über IoT Hub getunnelt. Dieser Tunnel wird über Port 443 erzeugt und verwendet ausgehende Verbindungen des Geräts und des Diensts. So müssen keine Firewallrichtlinien im Fabriknetzwerk gelockert werden. In unseren Schnellstartanleitungen in C, C# und NodeJS finden Sie Anweisungen zum Einsatz von IoT Hub-Gerätestreams, um RDP-Szenarios zu ermöglichen. Für andere Protokolle kann eine ähnliche Vorgehensweise verwendet werden, indem die entsprechenden Kommunikationsports konfiguriert werden.

Nächste Schritte

Durch IoT Hub-Gerätestreams eröffnen sich völlig neue Möglichkeiten der sicheren Kommunikation mit IoT-Geräten. Während der Public Preview steht diese Funktion für IoT Hubs, die in ausgewählten Regionen erstellt wurden bereit. Weitere Informationen finden Sie unter den folgenden Links: