ATACAMA
Einleitende Worte zum Projekt ATACAMA
Das Internet of Things (dt. Internet der “Dinge”, kurz IoT) umfasst alle eingebetteten Geräte, die Daten, welche z.B. über Sensoren ausgelesen wurden, mit anderen Geräten über das Internet austauschen. Die Sicherheit in IoT Geräten ist heutzutage ein relevantes Thema, weil sich Sensoren mittlerweile fast überall im Alltag wieder finden. Aber die Software, die auf diesen Geräten läuft, ist oftmals in C/C++ geschrieben. Das kann zu ungewünschten Seiteneffekten in der Laufzeit führen, weil der Speicher in C/C++ selbst verwaltet werden muss und der Programmierer i.d.R. mehr Fehler macht als eine automatische Speicherverwaltung. Als alternative Programmiersprache wurde in diesem Projekt Rust verwendet, eine modernere Programmiersprache welche im IoT-Bereich dieses Fehlerrisiko reduziert.
IoT Geräte
Zu den Eigenschaften der IoT Geräte gehört ihre begrenzte Rechenleistung und ihr kleiner Speicher. Des Weiteren werden die Geräte meist nur mit einer Batterie betrieben und sind infolgedessen nur selten aktiv, um eine lange Laufzeit zu gewährleisten. Diese Einschränkungen bringt Herausforderungen mit sich, wie zum Beispiel die zu versendenden Daten kompakt zu kodieren, um sicherzustellen, dass sie von den IoT-Geräten verarbeitet werden können. Hierfür haben wir uns mit CBOR (Concise Binary Object Representation) befasst, weil CBOR die Daten kompakt und binär kodiert. CBOR ist vergleichbar mit der JSON Formatierung. Der entscheidende Unterschied ist, dass die Kodierung der Daten in CBOR deutlich kompakter ist als die von JSON und deswegen von IoT-Geräten unterstützt wird.
Eine weitere Besonderheit im Kontext von IoT sind die speziellen Protokolle, welche mit den eingeschränkten Ressourcen der Geräte umgehen können. Während unseres Projekts haben wir uns auf zwei Komunkationsstack konozentriert: (Constrained Application Protocol) für Adressierung mit IP-Adressen, und für BLE und für DTLS (Datagram Transport Layer Security) zur Sicherung der Kommunikation entschieden.
- CoAP ist vergleichbar mit HTTP (Hypertext Transfer Protocol), weil beide Protokolle die Basis für die Kommunikation in Client-Server-Anwendungen liefern können. Allerdings ist CoAP deutlich kompakter und deswegen besser auf IoT Geräte zugeschnitten als HTTP.
- Bluetooth Low Energy (BLE) ist vergleichbar zum klassischen Bluetooth, wurde aber speziell als energiesparende Variante entwickelt. Besonders vorteilhaft ist die weite Verbreitung von Geräten, welche bereits BLE unterstützen.
DTLS (Datagram Transport Layer Security) ist vergleichbar mit SSL (Secure Sockets Layer)TLS, setzt aber auf eine sog. verbindungslose Übertragung von Daten. Eine verbindungslose Übertragung ist vergleichbar mit einer Paketversendung, von der nicht bekannt ist, ob das Paket beim Empfänger ankommt - diese fehlende Überprüfung verringert die Paketgröße, und somit auch den Rechenaufwand.
Der Demonstrator
Zur Demonstration unserer Ergebnisse haben wir uns für eine Spielekonsole entschieden. Der verbaute nRF52840 Mikrocontroller ist mit 64MhZ Taktfrequenz, 1MB Speicher und 256KB RAM zwar sehr leistungsarm, aber im IoT-Bereich wegen der Energieeffizienz weit verbreitet. Die Besucher können am Stand wahlweise über CoAP oder BLE kabellos gegeneinander kleine Spiele spielen.