MCUboot — Bootloader sicuro per microcontrollori
MCUboot è un bootloader sicuro open-source e indipendente dall’hardware per microcontrollori a 32 bit. Fornisce il root of trust a livello di firmware — garantendo che solo immagini firmware autentiche e firmate crittograficamente possano essere eseguite su un dispositivo. MCUboot è il bootloader di fatto per Zephyr RTOS ed è sempre più richiesto per la conformità al CRA.
Perché MCUboot è importante
Senza un bootloader sicuro, chiunque abbia accesso fisico o remoto può scrivere firmware modificato su un dispositivo — aggirando tutta la sicurezza software. MCUboot lo impedisce mediante:
- Verifica delle firme prima di eseguire qualsiasi immagine firmware
- Gestione degli slot firmware per aggiornamenti over-the-air (OTA) sicuri
- Rollback a un’immagine nota e funzionante se un nuovo aggiornamento fallisce
- Cifratura delle immagini firmware per prevenire il reverse engineering
Funzionalità principali
| Funzionalità | Descrizione |
|---|---|
| Firma dell’immagine | Verifica delle firme Ed25519, ECDSA-P256, RSA-2048/3072 |
| Immagini cifrate | Cifratura del firmware a riposo AES-CTR-128/256 |
| Aggiornamento dual-slot | Slot primario + secondario per swap del firmware fail-safe |
| Swap con scratch | Aggiornamenti riprendibili — sopravvivono all’interruzione di alimentazione a metà aggiornamento |
| Protezione dal rollback | Contatori di versione monotoni impediscono attacchi di downgrade |
| Recupero seriale | Protocollo MCUmgr per il recupero via USB/UART se l’OTA fallisce |
| Measured boot | Catena di hash per l’attestazione hardware (TPM/TrustZone) |
Modalità di aggiornamento
| Modalità | Meccanismo | Sicura in caso di interruzione di alimentazione | Usura della Flash |
|---|---|---|---|
| Swap (scratch) | Copia primario ? scratch, secondario ? primario | ? Riprendibile | Maggiore |
| Swap (move) | Riposizionamento dei settori in loco (nessuna area scratch) | ? Riprendibile | Media |
| Overwrite | Sovrascrittura diretta dello slot primario | ? | Minima |
| Direct XIP | Esecuzione da uno qualsiasi dei due slot (nessuna copia) | ? | Nessuna |
Piattaforme supportate
MCUboot è indipendente dal sistema operativo e dall’hardware. Supporta:
- RTOS: Zephyr, FreeRTOS, Apache NuttX, Apache Mynewt, Mbed OS, RIOT
- Vendor: Nordic (nRF52/53/91), STMicroelectronics (STM32L5, STM32U5, STM32H5), NXP (LPC, i.MX RT), Espressif (ESP32), Infineon/Cypress (PSoC 6)
- Architetture: ARM Cortex-M, RISC-V, Xtensa
Collegamento con la conformità al CRA
Il Cyber Resilience Act dell’UE impone che i prodotti connessi implementino:
- ? Aggiornamenti firmware autenticati — MCUboot li fornisce tramite la firma delle immagini
- ? Protezione dal rollback — MCUboot impone contatori di versione monotoni
- ? Infrastruttura di gestione delle vulnerabilità — MCUboot consente un rapido deployment di patch di sicurezza via OTA
Termini correlati
- Secure Boot — Il concetto più ampio di catene di boot verificate; MCUboot è il livello di implementazione per i sistemi basati su MCU.
- OTA Update — MCUboot gestisce lo swap degli slot firmware che rende possibile un OTA sicuro.
- CRA — Legislazione dell’UE che richiede secure boot e aggiornamenti autenticati per tutti i prodotti connessi.
MCUboot è il nostro bootloader predefinito per tutti i progetti di sviluppo embedded — garantendo secure boot e OTA conformi al CRA fin dal primo giorno. Consultate le nostre competenze in materia di Embedded Security & IoT.
Riferimenti ufficiali
- MCUboot — bootloader sicuro open-source — Progetto MCUboot (documentazione ufficiale)
- Regolamento (UE) 2024/2847 (CRA) — requisiti di secure boot — EUR-Lex