Hands-on Modbus Cloud Connect – AWS Integration

Modbus Cloud Connect bietet die Möglichkeit, Sensoren und Maschinen einfach zu vernetzen. Es liefert die Modbus-Daten via NB-IoT bis zur Kundenapplikation. Dort können die Daten je nach Anwendungsfall gespeichert und/oder visualisiert werden. Da es unzählige verschiedene Arten von Applikationen gibt, ist Modbus Cloud Connect sehr flexibel integrierbar. In diesem Beitrag erläutern wir die Anbindung an einen der Hyperscaler: Amazon Web Service.

Simon Convent — Backend Engineer

3. August 2023

Über die Blogartikel-Serie:

Modbus ist ein etabliertes Kommunikationsprotokoll und ist zu einem Industriestandard für die Anbindung von industriellen, elektronischen Geräten geworden. Aber wie werden solche Geräte nun Teil des Internet of Things und welche Anwendungsfälle können daraus entwickelt werden? Mit dieser Blogartikel-Serie möchten wir Antworten, Ideen, Empfehlungen und hilfreiche Tipps geben. Und wir wollen damit aufzeigen, wie leicht es sein kann, mithilfe von Modbus Cloud Connect die Lücke zwischen Geräten und einer IT/Cloud Infrastruktur zu überbrücken.

Was ist AWS IoT?

AWS ist eine umfassende und weit verbreitete Cloud-Computing-Plattform, die von Amazon bereitgestellt wird. Sie bietet eine breite Palette von Cloud-Diensten und -Tools, die es ermöglichen, Anwendungen und Dienste mit hoher Skalierbarkeit, Flexibilität und Zuverlässigkeit zu erstellen und bereitzustellen.

Einer der von AWS angebotenen Dienste ist AWS IoT (Internet of Things). AWS IoT ist eine Sammlung von verwalteten Services, die die Integration und Verwaltung von Geräten und Daten aus dem Internet der Dinge auf skalierbare und sichere Weise erleichtern. Es bietet eine Reihe von Services, die dabei helfen, Geräte zu verbinden, Daten zu sammeln und zu analysieren und IoT-Anwendungen zu erstellen.

Einige Kernkomponenten und Funktionen von AWS IoT sind zum Beispiel

  • Gateway: Diese Komponente ermöglicht es Geräten, sicher und effizient mit AWS IoT zu kommunizieren. Sie unterstützt verschiedene Protokolle wie MQTT (Message Queuing Telemetry Transport), HTTP und WebSockets.
  • Regel-Engine: Die Regel-Engine ermöglicht die Verarbeitung der von Geräten gesendeten Nachrichten und führt Aktionen auf der Grundlage vordefinierter Regeln durch.
  • Analyse und Integration: AWS IoT lässt sich mit anderen AWS-Services wie AWS Lambda, AWS IoT Analytics und Amazon Kinesis integrieren, sodass Sie komplexe Analysen durchführen, große Datenmengen speichern und verarbeiten und Aktionen auf der Grundlage der analysierten Daten auslösen können.
  • Sicherheit: AWS IoT bietet verschiedene Sicherheitsfunktionen, um die Vertraulichkeit, Integrität und Verfügbarkeit von IoT-Daten zu gewährleisten. Es unterstützt die gegenseitige Authentifizierung zwischen Geräten und AWS IoT und die Verschlüsselung von Daten bei der Übertragung.

Konfiguration des MQTT-Brokers im AWS Portal

Jede AWS IoT-Instanz beinhaltet einen MQTT-Broker, mit dem sich Modbus Cloud Connect verbinden kann. Die Authentifizierung beim Verbindungsaufbau erfolgt hierbei ausschließlich über Zertifikate und nicht etwa mit einem Username und Passwort (mehr dazu später). Daher muss zunächst im AWS Portal ein Zertifikat angelegt werden und dieses mit einer passenden Policy verknüpft werden. Das Zertifikat legt man an, indem man in der Rubrik „Sicherheit” unter „Zertifikate” auf „Zertifikat hinzufügen” klickt. Dabei werden von AWS einige Dateien generiert, unter anderem ein Zertifikat, ein öffentlicher Schlüssel und ein privater Schlüssel. Das Zertifikat und der private Schlüssel müssen heruntergeladen werden. Bevor wir diese im Self Service Portal von Modbus Cloud Connect hochladen können, muss die Dateiendung „.key" von den beiden Dateien entfernt werden, sodass es „.pem" Dateien werden.

Die Policy erstellt man unter der Rubrik Sicherheit unter dem Punkt Richtlinie. Im Screenshot ist eine Beispielkonfiguration für eine Policy zu sehen. In der ersten Zeile wird die Berechtigung gesetzt, um sich mit dem Broker zu verbinden. In der zweiten Zeile wird das Recht zum Publishen von Nachrichten auf alle Topics mit dem Präfix „test-topic/“ festgelegt. Damit wurde schon eine funktionierende Policy konfiguriert. Die letzten drei Zeilen sorgen noch dafür, dass man auch den MQTT Back Channel nutzen kann, falls benötigt (siehe Hands-on Modbus Cloud Connect – Instant Read & Instant Write via Narrowband-IoT). Dafür wurde ein Subscribe-Recht auf alle Topics mit dem Präfix „mcc/” gesetzt, sowie das Recht, diese Nachrichten zu empfangen und auch zu publishen.

Nun muss noch diese Policy mit dem eben erstellten Zertifikat verknüpft werden, was man in den Einstellungen des Zertifikats vornehmen kann.

Setup des Modbus Cloud Adapters

Um im Self-Service-Portal von Modbus Cloud Connect die Verbindung zu diesem MQTT-Broker herzustellen, muss ein neuer MQTT Cloud Adapter angelegt werden. Der Host des Brokers steht in den Einstellungen von AWS IoT unter „Endpunkt“ und als Port wird 8883 verwendet. Das „Publishing Topic Template” muss so gewählt werden, dass es in der Policy erlaubt wurde (Beispiel: test-topic/{{iccid}}). Sowohl die Client ID als auch Username und Passwort werden leer gelassen. Unter „Certificates” müssen das Zertifikat sowie der private Schlüssel hochgeladen werden. Die Angabe einer Certificate Authority ist nicht erforderlich, da AWS eine der allgemein anerkannten Root CAs verwendet.

Wofür verwendet man Zertifikate?

Passwörter sind anfällig für verschiedene Arten von Angriffen, wie beispielsweise Phishing, Brute-Force oder das Wiederverwenden von Passwörtern auf verschiedenen Plattformen. Eine Alternative ist die Verwendung von Zertifikaten in Verbindung mit TLS (Transport Layer Security) mit Client Authentication.

Bei der Client Authentication mit TLS wird nicht nur die Identität des Servers sichergestellt, sondern auch die des Clients. Dies bietet zusätzliche Sicherheit und Authentifizierung auf beiden Seiten der Kommunikation. Um dies zu erreichen, benötigt der Client ein Zertifikat sowie einen öffentlichen und privaten Schlüssel.

Das Zertifikat des Clients muss von einer vertrauenswürdigen Zertifizierungsstelle (Certificate Authority) signiert sein, der der Server vertraut. Diese Zertifizierungsstellen bestätigen die Identität des Clients und stellen sicher, dass das Zertifikat gültig ist. Im Gegenzug kann der Server sicher sein, dass der Client, der sich mit einem bestimmten Zertifikat authentifiziert, legitim ist.

Die Verwendung von Zertifikaten bietet mehrere Vorteile:

  • Stärkere Authentifizierung: Die Verwendung von Zertifikaten basiert auf asymmetrischer Verschlüsselungstechnologie, die ein höheres Maß an Sicherheit bietet als herkömmliche Passwörter. Der private Schlüssel, der mit dem Zertifikat des Clients verknüpft ist, ist geheim und kann nicht ohne weiteres erraten werden. Dadurch wird das Risiko von Angriffen wie Brute-Force reduziert.
  • Schutz vor Phishing: Durch die Verwendung von Zertifikaten wird das Risiko von Phishing-Angriffen verringert. Bei der Client Authentication mit TLS ist der Server in der Lage, das Zertifikat des Clients zu überprüfen und sicherzustellen, dass es von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde. Dadurch wird verhindert, dass ein Angreifer ein gefälschtes Zertifikat verwendet, um sich als legitimer Client auszugeben. Für einen erfolgreichen Angriff müsste ein Angreifer Zugang zum privaten Schlüssel des gültigen Zertifikates bekommen. Da dieser (in der Regel) niemals über das Internet übertragen wird, ist ein erfolgreicher Phishing Angriff unwahrscheinlich.
  • Einmalige Identität: Jeder Client hat ein eindeutiges Zertifikat, das von der Zertifizierungsstelle signiert wurde. Dadurch wird sichergestellt, dass jeder Client eine eindeutige Identität hat und nicht dieselben Anmeldeinformationen auf verschiedenen Plattformen wiederverwendet.

Der in AWS IoT integrierte MQTT-Broker nutzt diese Art der Authentifizierung und bietet die Möglichkeit, die Zertifikate im AWS Portal automatisch generieren zu lassen.

Modbus Cloud Connect ist leicht einzusetzen, flexibel in der Anbindung und vielseitig einsetzbar. Ihr Gerät, direkt in die Cloud.

Haben Sie Fragen oder wollen Sie ein Projekt mit dem Produkt Modbus Cloud Connect umsetzen?

Simon Convent — Backend Engineer

Hi, ich bin Simon. Haben Sie Fragen zu Modbus Cloud Connect? Kontaktieren Sie mich gerne per E-Mail.