MCUboot – Secure Bootloader für Mikrocontroller
MCUboot ist ein quelloffener, hardwareunabhängiger Secure Bootloader für 32-Bit-Mikrocontroller. Er stellt den Vertrauensanker (Root of Trust) auf Firmware-Ebene bereit und stellt sicher, dass nur kryptografisch signierte, authentische Firmware-Images auf einem Gerät ausgeführt werden können. MCUboot ist der De-facto-Bootloader für Zephyr RTOS und kann sichere Start- und Aktualisierungsprozesse für die Konformität mit der Cyberresilienz-Verordnung (CRA) unterstützen; die CRA schreibt MCUboot nicht als konkrete Implementierung vor.
Warum MCUboot wichtig ist
Ohne einen Secure Bootloader kann jeder mit physischem oder Fernzugriff modifizierte Firmware auf ein Gerät flashen und so alle softwareseitigen Sicherheitsmaßnahmen umgehen. MCUboot verhindert dies durch:
- Verifikation von Signaturen vor der Ausführung eines Firmware-Images
- Verwaltung von Firmware-Slots für sichere Over-the-Air-Updates (OTA)
- Rollback auf ein bekanntes, funktionierendes Image, wenn ein neues Update fehlschlägt
- Verschlüsselung von Firmware-Images zum Schutz vor Reverse Engineering
Wesentliche Merkmale
| Merkmal | Beschreibung |
|---|---|
| Signierung von Images | Signaturverifikation mit Ed25519, ECDSA-P256, RSA-2048/3072 |
| Verschlüsselte Images | AES-CTR-128/256-Verschlüsselung der Firmware im Ruhezustand |
| Dual-Slot-Update | Primärer + sekundärer Slot für ausfallsicheren Austausch der Firmware |
| Swap mit Scratch-Bereich | Wiederaufsetzbare Updates – übersteht Stromausfall während des Updates |
| Rollback-Schutz | Monotone Versionszähler verhindern Downgrade-Angriffe |
| Serielle Wiederherstellung | MCUmgr-Protokoll zur Wiederherstellung über USB/UART bei OTA-Fehlschlag |
| Measured Boot (gemessener Systemstart) | Hash-Kette für Hardware-Attestierung (TPM/TrustZone) |
Update-Modi
| Modus | Mechanismus | Sicher bei Stromausfall | Flash-Abnutzung |
|---|---|---|---|
| Swap (mit Scratch) | Kopieren: primär → scratch, sekundär → primär | ✓ Wiederaufsetzbar | Höher |
| Swap (verschieben) | Sektorweises Verschieben (ohne Scratch-Bereich) | ✓ Wiederaufsetzbar | Mittel |
| Überschreiben | Direktes Überschreiben des primären Slots | ✗ | Am geringsten |
| Direct XIP | Ausführung aus beliebigem Slot (ohne Kopieren) | ✓ | Keine |
Unterstützte Plattformen
MCUboot ist betriebssystem- und hardwareunabhängig. Es unterstützt:
- RTOS: Zephyr, FreeRTOS, Apache NuttX, Apache Mynewt, Mbed OS, RIOT
- Hersteller: Nordic (nRF52/53/91), STMicroelectronics (STM32L5, STM32U5, STM32H5), NXP (LPC, i.MX RT), Espressif (ESP32), Infineon/Cypress (PSoC 6)
- Architekturen: ARM Cortex-M, RISC-V, Xtensa
Bezug zur Konformität mit dem CRA
Die EU-Cyberresilienz-Verordnung schreibt vor, dass vernetzte Produkte Folgendes implementieren müssen:
- ✓ Authentifizierte Firmware-Updates – MCUboot stellt dies durch Signierung von Images sicher
- ✓ Rollback-Schutz – MCUboot erzwingt monotone Versionszähler
- ✓ Infrastruktur für das Schwachstellenmanagement – MCUboot ermöglicht die schnelle Bereitstellung von Sicherheitspatches über OTA
Verwandte Begriffe
- Secure Boot – Das übergeordnete Konzept verifizierter Boot-Ketten; MCUboot ist die Implementierungsebene für MCU-basierte Systeme.
- OTA-Update – MCUboot verwaltet den Austausch von Firmware-Slots, der sichere OTA-Updates ermöglicht.
- CRA – EU-Gesetzgebung, die Secure Boot und authentifizierte Updates für alle vernetzten Produkte vorschreibt.
MCUboot ist unser Standard-Bootloader für alle Entwicklungsprojekte für eingebettete Systeme und unterstützt authentifizierten Systemstart und sichere Firmware-Updates; die CRA-Konformität ist für das gesamte Produkt zu bewerten. Informieren Sie sich über unsere Kompetenzen im Bereich Embedded Security & IoT.
Offizielle Referenzen
- MCUboot – open-source secure bootloader – MCUboot-Projekt (offizielle Dokumentation)
- Verordnung (EU) 2024/2847 (CRA) – Anforderungen an den sicheren Systemstart – EUR-Lex