MCUboot — bezpečný bootloader pre mikrokontroléry
MCUboot je bezpečný bootloader typu open source (s otvoreným zdrojovým kódom) pre 32-bitové mikrokontroléry, nezávislý od hardvéru. Poskytuje koreň dôvery (root of trust) na úrovni firmvéru — zaručuje, že na zariadení sa môžu spustiť iba kryptograficky podpísané, autentické obrazy firmvéru. MCUboot je de facto štandardným bootloaderom pre Zephyr RTOS a čoraz častejšie sa používa na podporu súladu s CRA.
Prečo je MCUboot dôležitý
Bez bezpečného bootloadera môže ktokoľvek s fyzickým alebo vzdialeným prístupom nahrať do zariadenia upravený firmvér — a obísť tak celé softvérové zabezpečenie. MCUboot tomu predchádza týmito spôsobmi:
- Overovanie podpisov pred spustením akéhokoľvek obrazu firmvéru
- Správa slotov firmvéru pre bezpečné aktualizácie over-the-air (OTA)
- Návrat k overenému funkčnému obrazu, ak nová aktualizácia zlyhá
- Šifrovanie obrazov firmvéru, ktoré bráni reverznému inžinierstvu
Kľúčové vlastnosti
| Vlastnosť | Opis |
|---|---|
| Podpisovanie obrazov | Overovanie podpisov Ed25519, ECDSA-P256, RSA-2048/3072 |
| Šifrované obrazy | Šifrovanie uloženého firmvéru pomocou AES-CTR-128/256 |
| Dvojslotová aktualizácia (dual-slot) | Primárny + sekundárny slot na výmenu firmvéru odolnú voči zlyhaniu |
| Swap using scratch | Aktualizácie s možnosťou pokračovania — prežijú výpadok napájania počas aktualizácie |
| Ochrana proti návratu na staršiu verziu (rollback) | Monotónne počítadlá verzií bránia útokom vnútením staršej verzie (downgrade) |
| Sériová obnova (serial recovery) | Protokol MCUmgr na obnovu cez USB/UART, ak OTA zlyhá |
| Merané zavádzanie (measured boot) | Reťazec hašov pre hardvérovú atestáciu (TPM/TrustZone) |
Režimy aktualizácie
| Režim | Mechanizmus | Odolnosť voči výpadku napájania | Opotrebenie flash pamäte |
|---|---|---|---|
| Swap (scratch) | Kopírovanie primárny → scratch, sekundárny → primárny | ✅ S možnosťou pokračovania | Vyššie |
| Swap (move) | Presúvanie sektorov na mieste (bez oblasti scratch) | ✅ S možnosťou pokračovania | Stredné |
| Overwrite | Priame prepísanie primárneho slotu | ❌ | Najnižšie |
| Direct XIP | Spustenie z ktoréhokoľvek slotu (bez kopírovania) | ✅ | Žiadne |
Podporované platformy
MCUboot je nezávislý od operačného systému aj od hardvéru. Podporuje:
- RTOS: Zephyr, FreeRTOS, Apache NuttX, Apache Mynewt, Mbed OS, RIOT
- Výrobcovia: Nordic (nRF52/53/91), STMicroelectronics (STM32L5, STM32U5, STM32H5), NXP (LPC, i.MX RT), Espressif (ESP32), Infineon/Cypress (PSoC 6)
- Architektúry: ARM Cortex-M, RISC-V, Xtensa
Väzba na súlad s CRA
Nariadenie EÚ Cyber Resilience Act stanovuje požiadavky zamerané na výsledok (príloha I), ktoré MCUboot môže pomôcť splniť:
- ✅ Ochrana integrity a bezpečná distribúcia aktualizácií — MCUboot ich podporuje podpisovaním obrazov
- ✅ Ochrana proti návratu na staršiu verziu — CRA ju nemenuje, ide však o bežné opatrenie proti opätovnej inštalácii zraniteľného firmvéru; MCUboot vynucuje monotónne počítadlá verzií
- ✅ Včasné bezpečnostné aktualizácie ako súčasť riešenia zraniteľností — MCUboot umožňuje nasadenie záplat cez OTA
Súvisiace pojmy
- Secure Boot — Širší koncept overených zavádzacích reťazcov; MCUboot je implementačnou vrstvou pre systémy založené na MCU.
- Aktualizácia OTA — MCUboot riadi výmenu slotov firmvéru, vďaka ktorej sú bezpečné aktualizácie OTA možné.
- CRA — Nariadenie EÚ, ktoré pre výrobky s digitálnymi prvkami stanovuje požiadavky na kybernetickú bezpečnosť zamerané na výsledok, vrátane ochrany integrity a bezpečnej distribúcie bezpečnostných aktualizácií.
MCUboot je náš predvolený bootloader pre všetky projekty vývoja embedded systémov — od prvého dňa tak zaisťuje Secure Boot a OTA v súlade s CRA. Pozrite si naše kompetencie v oblasti Embedded Security & IoT.
Oficiálne referencie
- MCUboot — bezpečný open source bootloader — projekt MCUboot (oficiálna dokumentácia)
- Nariadenie (EÚ) 2024/2847 (CRA) — príloha I, základné požiadavky na kybernetickú bezpečnosť — EUR-Lex