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ù utilizzato a supporto della 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 stabilisce requisiti orientati ai risultati (allegato I) che MCUboot può contribuire a soddisfare:
- ✅ Protezione dell’integrità e distribuzione sicura degli aggiornamenti — MCUboot le supporta tramite la firma delle immagini
- ✅ Protezione dal rollback — non menzionata nel CRA, ma è un controllo comune contro la reinstallazione di firmware vulnerabile; MCUboot impone contatori di versione monotoni
- ✅ Aggiornamenti di sicurezza tempestivi nell’ambito della gestione delle vulnerabilità — MCUboot consente il deployment delle patch 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 — Regolamento dell’UE che stabilisce requisiti di cibersicurezza orientati ai risultati per i prodotti con elementi digitali, tra cui la protezione dell’integrità e la distribuzione sicura degli aggiornamenti di sicurezza.
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) — allegato I, requisiti essenziali di cibersicurezza — EUR-Lex