All Systems Go 2017: Updating Embedded Systems

Auf der All Systems Go Konferenz in Berlin berichtete Michael Olbrich am 22.10.2017 über die Erfahrungen unseres Integration Teams, unter dem Titel "Updating Embedded Systems - Putting it all together".

Während noch vor ein paar Jahren Embedded Geräte fast nie geupdatet wurden, sorgen die vielen IoT Security Vorfälle in letzter Zeit dafür, dass das Thema Updating zunehmend auf der Agenda der Hersteller erscheint. Viele Embedded Linux Systeme folgen dabei einem "A/B" Schema, d.h. ein System-Slot ist aktuell gebootet, während ein zweiter geupdatet wird; mit diesem Mechanismus kann ein Update "atomar" durchgeführt werden, d.h. selbst eine Fehlfunktion führt nicht dazu, dass das System nicht mehr bootfähig ist.

Wie funktioniert der Update-Vorgang? Neben dem eigentlichen Schreibvorgang des Images, der mehr oder weniger generisch ablaufen kann, muss die Integrität des Images auf mögliche Fehler geprüft werden. Bei interaktiven Geräten kann z.B. der Benutzer (lokal oder remote hinter einem Rollout-Server) informiert werden, dass im Fehlerfall auf eine alte Version zurückgeschaltet wird. Schwieriger wird es bei nicht interaktiven Geräten: hier kann z.B. der Watchdog genutzt werden, um den Startvorgang zu überwachen; dabei wird im Userspace systemd als Watchdog-Handler genutzt. Allerdings müssen im Gegensatz zum Desktop-Usecase Maßnahmen ergriffen werden, damit systemd den erfolgreichen Start des Systems inklusive seiner Applikationen korrekt überwachen kann:

  • Das System kann im Fehlerfall versuchen, neu zu booten. Dabei können die Reboot-Vorgänge vom Bootloader (meist barebox) mitgezählt werden und es kann bei Überschreiten einer Anzahl von Versuchen ein Fallback auf das alte System vorgenommen werden.
  • Bei transienten Fehlern kann dieser Vorgang in einer Loop durchgeführt werden.
  • Bei kritischeren Systemen kann das System im Fehlerfall aus Sicherheitsgründen heruntergefahren werden.

Welche Variante bei einem konkreten Gerät umgesetzt wird, ist oft projektspezifisch.

Für das Schreiben der Updates und die Verwaltung der Slots ist RAUC ein mächtiges Werkzeug, das neben der Prüfung von Signaturen auch die Synchronisation (z.B. mittels casync) vornehmen kann.


Weiterführende Links

Pengutronix at Electronica in Munich

This year Pengutronix again has a Booth at the Electronica trade fair in Munich, Germany. You find us in Hall B4 Booth 104 (map).


rsc's Diary: ELC-E 2022 - Tag 4

Freitag war der letzte Tag der ELC-E 2022 und somit auch der Tag des traditionellen ELC-E Closing Games. Tim Bird berichtete gewohnt kurzweilig über den aktuellen Stand der Embedded Linux World (Universe?) Domination. Und natürlich gab es auch am letzten Tag einige interessante Vorträge.


rsc's Diary: ELC-E 2022 - Tag 3

Das Convention Centre liegt direkt am Liffey, nur wenige Minuten Fußweg von der O'Connell Bridge, Temple Bar und dem Trinity College entfernt. Ein Besuch auf der ELC-E ist immer auch eine gute Gelegenheit, interessante Städte in Europa kennenzulernen. Und hier ist auch schon mein Bericht der Talks, die ich am Tag 3 gehört habe.


CLT-2022: Voll verteilt!

Unter dem Motto "Voll verteilt" finden die Chemnitzer Linux Tage auch 2022 im virtuellen Raum statt. Wie auch im letzten Jahr, könnt ihr uns in der bunten Pixelwelt des Workadventures treffen und auf einen Schnack über Linux, Open Source, oder neue Entwicklungen vorbei kommen.


Wir haben doch etwas zu verbergen: Schlüssel mit OP-TEE verschlüsseln

Moderne Linux Systeme müssen häufig zwecks Authentifizierung bei einer Cloud- basierten Infrastruktur oder einer On-Premise Maschine eigene kryptografische Schlüssel speichern. Statt der Verwendung eines Trusted Platform Modules (TPM), bieten moderne ARM Prozessoren die TrustZone-Technologie an, auf deren Basis ebenfalls Schlüssel oder andere Geheimnisse gespeichert werden können. Dieses Paper zeigt die Nutzung des Open Portable Trusted Execution Environments (OP- TEE) mit der Standardkonformen PKCS#11 Schnittstellen und i.MX6 Prozessoren von NXP als Beispiel.


Konferenzen 2021: Ein Rück- und Ausblick

Neben den Verbesserungen rund um Embedded-Linux-Software und der Weiterentwicklung des Linux-Kernels hat das Team von Pengutronix im letzten Jahr die Gelegenheit genutzt, dass viele Konferenzen vom eigenen Schreibtisch aus erreichbar waren. Dadurch konnten wir unsere Erfahrungen und Ideen noch breiter mit der Community teilen und auch an Konfrenzen Teilnehmen, die für uns sonst Flugstunden entfernt lägen.