IoT-Software pflegen

Einfach, flexibel und sicher mit LIUF

28. März 2022, 6:00 Uhr | Von Heinrich Schönberger
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

LIUF auf einer IoT-Systemarchitektur

Zur Pflege einer verteilten IoT-Infrastruktur müssen im Produktumfeld zwei Domänen adressiert werden, die zur besseren Veranschaulichung mit den Begriffen »Cockpit« und »Triebwerke« eines Flugzeugs symbolisiert werden:

  • Prozesse und Techniken, die ein »Cockpit« für eine auditierfähige Steuerung der Entwicklung und Publikation von Software in die Embedded-Systeme im laufenden Betrieb bereitstellen: Package Provisioning (Bild 2).
  • Steuerbare Mechanismen, die fachliche Anforderungen auf der Geräteseite vorantreiben: Client Software (Bild 2).

Das »Cockpit«
Die Steuersicht auf das Softwaremanagement, sozusagen die Sicht aus dem »Cockpit« darauf, stellt die Erzeugnisse des Softwareentwicklungsprozesses im IoT-Raum zur Verfügung und befriedigt projektspezifische Anforderungen. LIUF selbst bietet keine fertige Steuersoftware an – könnte das auch gar nicht –, sondern stellt zur Instrumentierung der IoT-Geräte ein vollautomatisches Interface zur Moderation aller relevanten Update-Fragestellungen bereit. Die Steuersoftware muss individuell an die technischen und organisatorischen Gegebenheiten angepasst implementiert werden. Mit dieser Schnittstelle verbinden sich die IoT-Geräte im laufenden Betrieb.

Das »Triebwerk«: Hier läuft LIUF ab
Die gesamte Software auf den Clients stellt in der gewählten Flugzeuganalogie quasi das ganze Antriebssystem dar. LIUF bietet eine in Python 3 entwickelte Plug-in-Architektur und folgt dem objektorientierten Entwicklungsansatz. Es bildet alle fachlichen Aspekte durch Interfaces und Basisklassen ab, die entsprechend der Bedürfnisse des Anwenders zur Erweiterung und Spezialisierung implementiert werden können. So bietet es die erforderlichen Voraussetzungen für neue Modulentwicklungen sowie für die Wiederverwendung bestehender Module.

Zentrale Aufgabe des LIUF-Systemkerns (LIUF Core in Bild 3) ist die Verwaltung der dateibasierten Instanzkonfiguration und der Plug-ins. Er erkennt, prüft und startet die Plug-in-Instanzen und stellt einen themenbasierten Event-Bus zur Verfügung, über den die Plug-ins im Sinne einer Veröffentlichen/Abonnieren-Semantik (Publish/Subscribe) miteinander kommunizieren können. Die Verbindung der lokalen Clientsoftware mit dem zentralen Update-Management wird über Plug-ins der Communication-Client-Klassenhierarchie realisiert.

Im Fall einer Internetverbindung öffnet das alle Möglichkeiten von der klassischen FTP-Datenablage bis hin zu einem integrierten Deployment-Management-System. Allerdings ist auch ein Offlineverfahren, z. B. mit Plug-and-play-Medien, umsetzbar. Bereitgestellte Update-Pakete werden von Entschlüsselungs- und Verifikations-Plug-ins im Zusammenspiel mit Content Handlern verarbeitet. Hier wird projektspezifischen Anforderungen zur sicheren und authentischen Datenübertragung Rechnung getragen und der Zugriff auf den Massenspeicher umgesetzt.

Eine Besonderheit des LIUF-Systems besteht darin, dass mit hinreichend komplex definierten Update-Mechaniken auch Plug-ins on the fly aus den Update-Paketen ex- trahiert, geladen und ausgeführt werden können. So können technische Details des Update-Vorgangs in verschiedenen Szenarien vor dem Zugriff eines potenziellen Angreifers verborgen bleiben.

passend zum Thema

Vorteile des LIUF

Was LIUF gegenüber bisherigen abstrahierenden Update-Frameworks (AFs) auszeichnet:

  • Durch Plug-ins breiteres Angebot an Update-Toolkits
  • Erweiterbarkeit des Plug-in-Angebots
  • Kompatibilität der Plug-ins untereinander
  • Erweiterbarkeit nach dem Update-Framework-Standard von Linux.
  • Garantie einer sicheren, verschlüsselten Kommunikation und Übertragung
  • Klare Dokumentation der Eigenschaften

 

Das LIUF ist prinzipiell bereits mit vielen Freiheitsgraden konfiguriert und kann über die Plug-in-Struktur ergänzt werden. Es enthält somit von vorneherein eine Reihe von Standardmodulen. Für Prototypen oder Anforderungen eingeschränkter Spezifität können so gängige Anwendungsfälle aus dem Stand umgesetzt werden. Beispiel: Das LIUF bietet eine Paketaktualisierung über apt (Advanced Package Tool) und dpkg (Debian Package) und stellt eine sichere Kommunikation mit der Hawkbit Management API [1] bereit.

Verschlüsselte und signierte Images können zum Update auf Block Devices – u. a. SD, eMMC, SSD, HDD – transferiert und ausgerollt werden. Eine besondere Synergie ergibt sich aus der Kombination von Erweiterung und Konfiguration des LIUF mit der aktuellen Spezifikation »The Update Framework« (TUF, [2]), das auch in anderen gängigen Update-Systemen verwendet wird. Dadurch wird der technische Rahmen des LIUF um die Rollen- und Delegationskalküle von TUF erweitert. Die Kompromittierbarkeit des Gesamtsystems kann dadurch – abhängig vom konkreten Anwendungsszenario – möglicherweise noch einmal deutlich gesenkt werden.

 

Der Autor

 

Heinrich Schönberger von Mixed-Mode
Heinrich Schönberger von Mixed Mode.
© Mixed Mode

Heinrich Schönberger

begleitet seit circa zehn Jahren verschiedene Rich-Client- sowie Web-Projekte als Berater und Entwickler. Er ist leidenschaftlicher Allrounder, betrachtet sich als »Softwarearchäologen« und wirft gern einen Blick über den Tellerrand.

sales@mixed-mode.de
 


  1. Einfach, flexibel und sicher mit LIUF
  2. LIUF auf einer IoT-Systemarchitektur

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Mixed Mode GmbH

Weitere Artikel zu Software (M2M)

Weitere Artikel zu Betriebssysteme