Procesor STM32H7 je jeden z prvních 32 bitových procesorů, který podporuje Secure Software Install (SFI) a Secure Module Instalace (SMI).
SFI a SBSFU: Základy bezpečného systému
Secure firmware Install (SFI) je dnes poměrně populární technologie, která umožňuje dodávat šifrovanou verzi firmwaru pro OEM. Tím se sníží bezpečnostní riziko. OEM výrobci nemusí investovat do drahých technologií, jelikož STM32CubeProgrammer a HSM čipovou kartu.
Jakmile se zařízení dostane do rukou koncových uživatelů lze využít bezpečného upgrade firmwaru a bezpečného startování bootloaderu (secure boot and secure firmware upgrades - SBSFU). Díky tomu se zařízení stane bezpečnější. Při bootování se kontroluje podpis bootloaderu, a tím se spolehlivě ověří, že v bootloaderu není vložen škodlivý kód a povolí se aktualizace firmware.
Funkce SMI (Secure Module Install) je k dispozici pouze na procesorech STM32H750, STM32H753, STM32H755 a STM32757. SFI (Secure Software Install) a Secure Boot a Secure Firmware Update (SBSFU) jsou dostupné na všech procesorech řady STM32. Nová vývojová deska Nucleo má integrován procesor STM32H7s a je již dostupná na trhu. Všechny tyto technologie patří do platformy STM32Trust.
STM32H7 a SMI: co to je a proč je to důležité?
STM32H7 je první rodina procesorů, která může těžit z výhod SMI(Secure Module Install). To znamená, že tvůrci modulů třetích stran mohou šifrovat své binární soubory.
Systémová aplikace volá tento modul třetí strany a zároveň nemá přístup ke zdrojovému kódu modulu. To výrazně zabezpečuje celou aplikaci. Velmi často se stává, že je nutné přidat určité funkce do kódu a kvůli kapacitě vývojového týmu nebo z časových důvodu se rozhodne, že tato funkcionalita se koupí od třetí strany. Tím se ušetří čas vývoje, jelikož danou funkcionalitu nemusíme vyvíjet od počátku, ale stoupá bezpečnostní riziko (implementace cizího kódu).
Tvůrci kódu modulu pro STM32H7 zašifrují binární kód pomocí Trusted Package Creatoru, který je součástí STM32CubeProgrammeru. Své bezpečnostní iniciály uloží do hardwarové zabezpečené čipové karty, která se používá při nahrávání zašifrovaného modulu do MCU pomocí STM32CubeProgrammeru.
Proces SMI je identický s procesem v SFI. Rozdíl je v tom, že v SFI se šifruje celý firmware. Navíc, SFI a SMI procesy používají odlišné HSM karty. Na jedné čipové kartě nemohou být uloženy všechny bezpečnostní iniciály. Každý firmware a modul musí používat svou kartu ze zřejmých bezpečnostních důvodů.
Na rozdíl od SFI, SMI vyžaduje kompilátor pro podporu speciálních funkcí. STM32CubeIDE je zdarma IDE a má v sobě integrován nástroj STM32CubeMX. Jeho aktuální verze již je připravena pro použití s procesory STM32H7. Keil a IAR jsou také kompatibilní a St pracuje na dalším rozšíření, aby byla zajištěna co největší podpora. Kromě toho spolupracují s některými tvůrci modulů, kteří si přejí využít této nové bezpečnostní funkce a jakmile budou připraveny k použití, určitě se to tom dozvíme.
SFI a SBSFU na STM32H7: Ještě větší bezpečnost
Procesor STM32H7 s kryptovacím jádrem podporuje Secure Firmware Install (SFI) a Secure Boot a Secure Firmware Update(SBSF) stejně jako předchozí 32 bitové procesory. Nicméně řada procesorů STM32H7 je jedinečná, protože jejich SMI a SFI kódy jsou uloženy v zabezpečené systémové paměti. Na jiných zařízeních, jako je STM32L4 je SFI kód ve vnitřní uživatelské paměti, protože nemá dostatek zabezpečeného místa. Kód uvnitř STM32L4 je chráněn speciálními zámky (bity), a jakmile OEM použije SFI k přehrání firmware, systém automaticky odstraní tento zámek. STM32H7 ukládá SMI a SFI kódy v systémové paměti, která je nepřístupná uživateli.
STM32WB, STM32G0 a STM32G4 mají integrovanou ochranu Readout Protection Level 2 (RDPL2), která chrání Flash a RAM paměť, zálohuje registry a zároveň vypíná rozhraní JTAG / SWD. Standardní procesory řady STM32 používají pouze Readout Protection Level 1. To znamená, že zpřístupní RAM pro JTAG v případě, že uživatel provede reset systému. STM32H7 zakazuje takový přístup, a to i při RDPL1. Při přepnutí z RDPL1 do RDPL0 (žádná ochrana) procesory řady STM32H7 udržuje ochranu Proprietary Code Read Out Protection (PCROP).
Více informací na https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html