Anwendungsplattformen Einen sicheren IoT-Cloudserver für 12 Dollar im Jahr betreiben

Autor / Redakteur: Reinhold Schmid * / Franz Graser

Viele Entwickler denken bei der Serverseite ihrer IoT-Lösung an Amazon oder Microsoft Azure. Aber für die meisten Vorgänge und DIY-Projekte genügt ein kostengünstiger Virtual Private Server.

Firmen zum Thema

Die SMQ-Protokollinfrastruktur des Mako-Servers: Der Server und sein Anwendungssystem ermöglichen es, serverseitige Skripts zu schreiben, um direkt mit dem SMQ-IoTBroker zu interagieren.
Die SMQ-Protokollinfrastruktur des Mako-Servers: Der Server und sein Anwendungssystem ermöglichen es, serverseitige Skripts zu schreiben, um direkt mit dem SMQ-IoTBroker zu interagieren.
(Bild: Embedded Tools)

Die meisten Cloudserver-Lösungen für das IoT, egal ob sie gehostete, nutzungsfertige Services anbieten oder nicht, basieren auf einem normalen Virtual Private Server (VPS). Die meisten Entwickler denken an Amazon oder Microsoft AzuresServices, wenn sie an die Serverseite ihrer IoT-Lösung denken.

Diese High-End-Dienstleistungen sind toll, wenn Sie auf Millionen von verbundenen Geräten skalieren müssen. Aber für die meisten kleinen Vorgänge und DIY-Projekte ist ein kostengünstiger VPS mehr als angemessen.

Die Webseite lowendbox.com bietet Rezensionen zu kostengünstigen Virtual Private Servern und ist ein guter Ort, um anzufangen, wenn Sie einen VPS auswählen. Wir haben einen VPS zum Preis von 12 Dollar pro Jahr gefunden, der passend für unser Experiment mit dem sicheren IoT ist. Mit diesem VPS konnten wir bis zu 10.000 Geräte verbinden.

Für das Verbinden von weiteren Geräten braucht man mehr Speicherplatz, aber der von uns gewählte VPS hat Speicherbegrenzungen (64 MB). Daher ist ein VPS mit mehr Speicher notwendig, wenn die IoT-Lösung nach mehr verbundenen Geräten verlangt.

Cloudserver-Betriebssystem und Software

VPS-Anbieter bieten typischerweise eine webbasierte Benutzeroberfläche, von wo aus Sie Ihren VPS managen können. Dieses webbasierte Bedienfeld bietet Leistungen wie die Auswahl und Installation/Re-Installation des Betriebssystems, typischerweise eine Linux-Variante. Nach der Installation des Linux-Betriebssystems mit der Web-Oberfläche ist der Server bereit dafür, dass Sie sich einloggen und ihn managen können.

Ein frisch installiertes Linux-Betriebssystem auf einem Online-VPS ist typischerweise rudimentär ausgestattet. Als Minimum muss die Linux-Installation einen SSH (Secure Shell) Server haben, damit Sie einen Remote-Login für den Server nutzen und die von Ihnen gewünschte Software installieren können.

Die Software, die wir für die Serverseite der IoT-Lösung ausgewählt haben, ist ein Anwendungsserver namens Mako-Server. Einer der Gründe für die Wahl von Mako-Server ist, dass er den verfügbaren Speicherplatz sehr effizient nutzt. Im Gegensatz dazu brauchen die meisten serverseitigen Anwendungssysteme der High-Ende-Klasse sehr viel Speicherplatz und können daher nicht auf einem kostengünstigen VPS betrieben werden.

Der Mako-Server ist ein extrem kleiner Anwendungsserver, der leicht innerhalb der Speicherplatzbegrenzungen eines kostengünstigen VPS betrieben werden kann. Ein weiterer Grund für die Wahl ist, dass der Server als Doppelzertifikatsserver dienen kann und damit die Nutzung von Standard-RSA-Zertifikaten für Browser und kleine ECC-Zertifikate für Edge-Knoten ermöglicht.

SSL-Zertifikate (Secure Socket Layer) können einen großen Einfluss auf den Speicherplatz haben, wenn sie nicht den Zertifikatstyp bedenken, der in Ihrer IoT-Lösung genutzt wird. Die Nutzung des falschen Zertifikatstyps kann den Entwurf eines Edge-Knotens mit begrenztem Speicherplatz zerstören. Mehr dazu im Abschnitt zum Thema Sicherheit.

Der Mako-Server enthält ein sicheres IoT-Protokoll namens SMQ (Simple Message Queues). Der Server und sein Anwendungssystem ermöglichen es dem Nutzer, Serverseitenskripts zu schreiben, um direkt mit dem SMQ-IoT-Broker zu interagieren. Das serverseitige Anwendungssystem ermöglicht es dem Nutzer außerdem, sein IoT-Protokoll zu erweitern und es mit anderen Services im Internet oder anderen lokalen Services, die auf dem VPS laufen – etwa Datenbank-Services – zu verbinden.

Das SMQ-Protokoll eignet sich für den sicheren Datenaustausch zwischen einer Web-Oberfläche und einem Edge-Knoten in Echtzeit. Das Protokoll, das dem Publish-Subscribe-Mechanismus in MQTT ähnelt, erlaubt webbasierten Benutzeroberflächen die Steuerung von Edge-Knoten in Echtzeit.

Die ganze Kommunikation läuft über den Cloudserver. Das heißt, dass Sie keine Probleme mit der Traversale von Netzwerkadressübersetzungen (networkaddresstranslation, NAT) haben, wenn Sie zwischen diversen (lokalen) Netzwerken kommunizieren.

Sichere Kommunikation von Edge-Knoten zur Cloud

Nicht überraschend erfordert das Aufsetzen einer sicheren IoT-Lösung mehr Arbeit als das Aufsetzen einer wenig sicheren Lösung. Eine sichere IoT-Implementierung verlangt zumindest das Aufsetzen eines Trusted Servers.

Das SSL/TLS-Protokoll (Secure Sockets Layer / Transport Layer Security) wird für die verschlüsselte Kommunikation genutzt, aber TLS ist unsicher, wenn die Infrastruktur nicht auf Zertifikaten des Typs TrustedX.509 (SSL) basiert. Dieses Vertrauen ist die Schlüsselkomponente, die nötig ist, damit TLS sicher ist. Deshalb ist es wichtig, ein Zertifikat auf dem Server zu installieren, dem alle Klienten, die mit dem Server verbunden sind, vertrauen.

Ein Browser, der sich mit dem Server verbindet, benötigt ein installiertes Zertifikat, das von einer bekannten Zertifikatsautorität (CA) unterzeichnet ist. In diesem Fall bedeutet „bekannt“, dass das öffentliche Root-Zertifikat der CA auf dem Browser/Computer, den Sie nutzen, vorinstalliert ist. Sie können kostenlose oder bezahlte CA-Dienstleistungen nutzen, um Ihre Serverzertifikate zu unterzeichnen.

Ein Gerät, das sich mit dem Onlineserver verbindet, kann eine Kopie des öffentlichen Root-Zertifikats der CA auf dem Gerät behalten. Dieses Zertifikat kann von Ihrem Browser/Computer auf Ihr Gerät übertragen werden.

Das Gerät wird nicht in der Lage sein, das Server-Zertifikat zu validieren (ihm zu vertrauen), wenn auf dem Gerät keine Kopie des öffentlichen Root-Zertifikats der CA vorhanden ist. Das öffentliche Root-Zertifikat der CA ist typischerweise in der Firmware des Geräts eingeschlossen.

Eine Alternative zur Nutzung einer bekannten CA ist es, Ihre eigene CA zu werden und Ihre eigenen Serverzertifikate für die Gerätekommunikation zu verwenden. Da Sie die volle Kontrolle über das Gerät haben und jeden Zertifikatstyp im Gerät speichern können, einschließlich Ihres eigenen öffentlichen Root-Zertifikats, können Sie leicht Ihr eigenes unterzeichnetes Serverzertifikat für die Gerätekommunikation nutzen. Ihre eigene CA zu sein ist nicht schwierig, wenn Sie einfach zu nutzende Tools haben.

Einer der Vorteile, wenn Sie die eigene CA für den Austausch von Zertifikaten zwischen dem Server und den Geräteklienten sind, ist dass Sie ein ECC-Zertifikat (Elliptic-Curve-Cryptography) für den Server auswählen können. Der Vorteil an der Nutzung eines ECC-Zertifikats ist, dass es viel kleiner ist als ein RSA-Zertifikat und daher viel weniger Speicherplatz auf dem Gerät verbraucht während des anfänglichen SSL Handshakes.

Zertifikate mit Trust-Ketten fordern mehr Speicherplatz

SSL-Zertifikate haben einen großen Einfluss auf den Speicherplatz in begrenzten Edge-Knoten. Daher kann die Nutzung eines nicht verketteten ECC-Zertifikats eine Voraussetzung für ein Gerät mit begrenztem Speicher sein.

Die meisten bekannten CA-Services unterzeichnen nur RSA-Zertifikate; die kostenlosen/günstigen CA-Anbieter unterzeichnen typischerweise mit einem mittelmäßigen CA-Zertifikat, das eine Trust-Kette benötigt und daher sogar noch mehr Speicher auf dem Gerät verbraucht.

Einer der Vorteile des Mako-Servers ist, dass er als Doppelzertifikats-Server dienen kann, wodurch Browser ein größeres (verkettetes) RSA-Zertifikat erhalten und Geräte ein kleineres (nicht verkettetes) ECC-Zertifikat. Das RSA-Zertifikat kann von einer bekannten CA unterzeichnet werden, während das ECC-Zertifikat vorzugsweise von Ihrer eigenen CA unterzeichnet wird.

Wenn Sie mehr erfahren möchten, besuchen Sie die IoT-Seite des Mako-Servers. Die Seite enthält Anweisungen für das Aufsetzen Ihres eigenen sicheren Servers und die sichere Verbindung von ARM-Boards (edge-node Geräte) mit Ihrem Cloudserver.

* Reinhold Schmid ist Geschäftsführer des Distributors Embedded Tools aus Münster.

Artikelfiles und Artikellinks

(ID:44355446)