OTA Updates

So bringt man den Gecko sicher zum Laufen

21. März 2022, 11:45 Uhr | Karin Zühlke
Glyn
© Glyn

Regelmäßige Updates von Firmware und Programmen erhöhen die Funktionalität und Sicherheit bei Geräten. Ein guter Grund, neue Firmware oder Programme sicher und zuverlässig per Funk auf die entwickelte Hardware aufzuspielen.

Wie das geht, zeigt Glyn am Beispiel der Wireless-Gecko-Familie von Silicon Labs.

Eine stromsparende Möglichkeit für eine Over-the-Air(OTA)-Übertragung von Firmware oder Anwendungsprogrammen zu batteriebetriebenen Geräten bietet der Hersteller Silicon Labs mit seiner Wireless-Gecko-2-Serie. Distributor Glyn erläutert in einem 47-seitigen Whitepaper, wie ein sicheres OTA Device Firmware Upgrade (DFU) von Bluetooth-Anwendungen mit signierten und verschlüsselten Upgrade-Dateien für Mikrocontroller (MCU) oder System-on-Chip (SoC) durchgeführt wird.

Was bedeutet OTA DFU überhaupt?

Over-The-Air Device Firmware Upgrade (OTA DFU) bedeutet, dass die Geräte-Firmware über eine Bluetooth-Verbindung aktualisiert werden kann. Um ein OTA Upgrade per Bluetooth zu ermöglichen, muss das Zielgerät mit einer geeigneten Gecko-Bootloader-Konfiguration und zusätzlich mit einer Bluetooth-Anwendung programmiert werden, die OTA unterstützt.

Eine mit Silicon Labs’ Bluetooth SDK ab Version 2.7 entwickelte Bluetooth-Anwendung besteht aus zwei Teilen.

  • Apploader (bereitgestellt als vorkompilierter Binärcode)
  • Bluetooth-Stack (als vorkompilierte Bibliothek) + Benutzeranwendung, auch als Anwendung bezeichnet

Die OTA-Funktionalität ist in den Apploader-Code integriert. Wenn das Gerät im DFU-Modus neu gestartet wird, wird der Apploader anstelle der Benutzeranwendung gestartet. Dadurch ist es möglich, OTA Upgrades ohne jegliche Beteiligung der Benutzeranwendung durchzuführen.

Die einzige Anforderung an die Benutzeranwendung ist die Fähigkeit, einen Neustart in den DFU-Modus auszulösen. Der Neustart in den DFU-Modus kann auf verschiedene Weise ausgelöst werden – als teilweises OTA Upgrade oder komplettes OTA Upgrade. Es ist Sache des Anwendungsentwicklers zu entscheiden, welche am besten geeignet ist. Die meisten der im Bluetooth SDK enthaltenen Beispielanwendungen haben bereits OTA-Unterstützung in den Code integriert (unter Verwendung der OTA-DFU-Softwarekomponente). In diesen Beispielen wird der DFU-Modus durch den OTA-Dienst von Silicon Labs ausgelöst, der als Teil der GATT-Datenbank der Anwendung enthalten ist, also von der OTA-DFU-Softwarekomponente bereitgestellt wird.

Anbieter zum Thema

zu Matchmaker+
Glyn
Silicon Labs setzt bei den neuen Produkten der Serie 2 auf ein doppeltes Schlüsselpaar.
© Glyn

Auf welche Weise werden die Secure Keys generiert?

Silicon Labs setzt bei der Implementierung des Sicherheitskonzepts auf die asymmetrische Schlüsselkryptografie. Die Kryptografie mit asymmetrischem Schlüssel verwendet zwei Schlüssel: einen privaten Schlüssel zum Erstellen einer digitalen Signatur und einen öffentlichen Schlüssel zum Verifizieren der Signatur. Private Schlüssel werden geheim gehalten und nur einmal zum Signieren des Firmware Upgrade Image verwendet. Dies geschieht außerhalb der Gecko-Serie-2-MCU. Öffentliche Schlüssel werden in die MCU gebrannt, damit hochgeladene Images während des Upgrades und optional bei jedem Neustart überprüft werden können. Der Hersteller setzt bei den neuen Produkten der Serie 2 auf ein doppeltes Schlüsselpaar (Bild).

Das bedeutet: Es gibt zwei öffentliche und zwei private Schlüssel. Das Silicon-Labs-Keys-Schlüsselpaar wird vom Hersteller während der Produktion festgelegt. Es besteht aus einem privaten Schlüssel, der bei Silicon Labs sicher hinterlegt ist, und aus einem öffentlichen Schlüssel, der bei der Produktion in den OTP-Speicherbereich der MCU geschrieben wird. Mit diesem Schlüsselpaar wird zum Beispiel der »First Stage Bootloader« signiert. Auf diese Weise wird sichergestellt, dass sich nur ein Original-First-Stage-Bootloader auf der MCU befindet oder aktualisiert werden kann. Das Schlüsselpaar »Developer Keys« wird vom Entwickler erzeugt, um den kundenspezifischen »Second Stage Bootloader«, den »Application Loader« und den »Application Code« zu signieren.

Wie werden Bootloader erstellt?

Der Gecko-Bootloader ist in der Gecko SDK Suite enthalten. Eine Reihe von vordefinierten Konfigurationen ist verfügbar, um Entwickler bei der einfachen Erstellung neuer Bootloader-Projekte für verschiedene Zwecke zu unterstützen. Für verschiedene Geräte werden unterschiedliche Bootloader-Konfigurationen empfohlen:

  • Für 256-kB-Geräte verwendet man die »Bluetooth in-place OTA DFU Bootloader«-Konfiguration.
  • Für 512-kB-Geräte verwendet man den »Internal Storage Bootloader« (Single Image auf einem Gerät mit bis zu 512 kB Flash).
  • Für 1024-kB-Geräte verwendet man den »Internal Storage Bootloader« (Single Image auf einem Gerät mit bis zu 1 MB Flash).

Der genaue Ablauf und die Programmierschritte sind detailliert im Whitepaper ausgeführt.

Wie überträgt man die Programme via Bluetooth 5.x und OTA-Prozess? Um ein Gecko-Serie-2-Derivat per OTA DFU von der Basisanwendung auf die Upgrade-Anwendung zu aktualisieren, wird ein zusätzliches Gerät benötigt. Das kann ein Bluetooth-fähiger Computer oder auch ein Smartphone sein. Im Whitepaper wird gezeigt, wie das Firmware Upgrade mit dem Smartphone und die Labs EFR Connect App realisiert wird.

Zusammengefasst als Gratis-Download

In seinem 47-seitigen Whitepaper hat Glyn alle Schritte für einen Einstieg in die »Secure Upgrade OTA DFU«-Welt zusammengefasst. Lesern der Markt&Technik steht dieses Paper als Download gratis zur Verfügung unter . 


Verwandte Artikel

GLYN GmbH & Co. KG, Silicon Laboratories GmbH