Software-Updates im Internet der Dinge

Herausforderungen im IoT

Zunächst sind auch hier Sicherheitsaspekte von Bedeutung. Das Software-Update ist ein wichtiger Baustein im Sicherheitsgefüge einer IoT-Anwendung. Gleichzeitig birgt die Möglichkeit aber eine Sicherheitsgefahr für ein vernetztes Gerät. Angreifer können ein Update auch dafür missbrauchen, die Sicherheitsmechanismen eines Gerätes auszuschalten. Sich gegen einen Angriff mit manipulierter Firmware zu verteidigen, ist daher für jedes vernetze Gerät höchste Priorität. Das wird heute bereits über Signaturen und Kryptologie realisiert.

Die nächste Herausforderung ist die API-Stabilität. Im IoT-Kontext gibt es Geräte mit sehr langer Lebenszeit, die im klassischen IT-Hardware- und vor allem im Consumer-Bereich gar nicht denkbar wäre. Während ein Smartphone nach zwei bis drei Jahren oft schon veraltet ist, beträgt die Nutzungsdauer von Fahrzeugen oder Maschinen häufig 20 Jahre und mehr.

Ebenso problematisch können sich die oftmals langen Laufzeiten zwischen der Fertigung von Geräten, ihrer Inbetriebnahme und der erstmaligen Vernetzung auswirken. Zwischen Fertigung und erster Inbetriebnahme eines Geräts vergehen oft mehrere Monate. Viele Geräte wie eine Waschmaschine, ein Kühlschrank oder sogar Produktionsmaschinen sind auch ohne Vernetzung mit ihren Grundfunktionen nutzbar. Anwender haben in dem Fall die Möglichkeit, das Gerät erst mit dem Internet zu verbinden, wenn sie die Vernetzung nutzen wollen. Aufgrund der Zeitspanne kann es passieren, dass nicht mehr alle Schnittstellen funktionieren. Zumindest das Software-Update muss aber noch durchführbar sein.

Eine Frage der Skalierbarkeit

Die nächste Herausforderung ist die technische und fachliche Skalierbarkeit. Bezüglich ersterer (wie viel kann wie schnell aktualisiert werden) gilt es zunächst, die Heterogenität verschiedener IoT-Szenarien wie in folgenden Beispielen zu betrachten:

  • Millionen dezentrale intelligente Zähler und Messsysteme im Energiesektor
  • hohe Nutzerzahlen und Update- beziehungsweise Installationsfrequenz in Smart-Home-Anwendungen mit App-Store-Funktionalität
  • Gewaltige Datenvolumen bei Karten-Updates für Fahrzeuge – ein Software-Update-System im IoT muss in diesen Dimensionen mit weltweit verfügbaren Download Caches skalieren können.

Diese rein technischen Skalierungsanforderungen können Software- beziehungsweise Cloud-Anbieter bereits heute gut bedienen. Fast wichtiger ist daher die fachliche Skalierung: Wie lässt sich sicherstellen, dass ein Software-Update auf Hundertausenden von Geräten kontrolliert erfolgt?

Dazu gehört das automatische Erkennen der auf den jeweiligen Geräten eingespielten Softwareversion. Dem folgt eine Gruppierung der Geräte und ein sukzessives Ausrollen (Gruppe für Gruppe). Dadurch wird es möglich, den Update-Prozess zu jedem Zeitpunkt beobachten und notfalls abbrechen zu können. Gute Kontrolle macht im Fehlerfall den Unterschied zwischen einem Totalverlust aller Geräte und dem einer kleinen Gruppe. Natürlich sollte es mit einer professionellen Qualitätssicherung keine Fehler geben, aber ein gutes Rollout-Management ist die Absicherung vor einem Komplettausfall und für ein robustes Gesamtsystem daher unverzichtbar.

Software-Update-Prozess im Internet der Dinge inklusive definierten Schwellwerten, um das Update für die nächste Geräte-Gruppe zu starten beziehungsweise den gesamten Prozess zu stoppen (Abb. 1)