Zabezpečení vestavěných systémů pomocí PSoC 64
Contributed By DigiKey's North American Editors
2022-07-27
Počet produktů připojených k internetu neustále roste exponenciální rychlostí. Problém, kterému čelí mnoho produktových týmů spočívá ve skutečnosti, že vývojáři vestavěného softwaru nemají dostatečné zkušenosti se zabezpečením. Nedostatek zkušeností může vést k přehlíženým bezpečnostním požadavkům, bezpečnostním mezerám a špatné implementaci. Výsledkem jsou propojené systémy, které jsou špatně chráněny a představují snadnou kořist pro krádeže duševního vlastnictví společně se zařízeními a daty uživatelů.
Konstruktéři systémů založených na mikrokontrolérech mají k dispozici několik řešení, která lze použít ke zjednodušení implementace zabezpečení a poskytnout jim nástroje, jak to úspěšně provést. Například jednojádrové mikrokontroléry mohou využívat technologii Arm TrustZone, která je součástí architektury Armv8-M (a mimo ni). Existují také řešení s vícejádrovými mikrokontroléry.
Tento článek ukazuje, jak mohou vývojáři používat vícejádrové procesory k zabezpečení svých vestavěných řešení. Konkrétně se zabývá zabezpečeným mikrokontrolérem PSoC 64 od společnosti Cypress a nástroji, které poskytuje k implementaci bezpečného řešení.
Základy vestavěné bezpečnosti
Jedním z hlavních základů návrhu bezpečného produktu je využití izolace na bázi hardwaru. Tato izolace může mít mnoho podob, jako je izolované spouštěcí prostředí nebo izolovaná paměť založená na jednotce ochrany paměti (MPU). Na nejvyšší úrovni musí být mikrokontrolér schopen rozdělit své prováděcí prostředí na prostředí zabezpečeného zpracování (SPE) a nezabezpečené prostředí zpracování (NSPE).
SPE je izolované spouštěcí prostředí, které udržuje svou paměť, komponenty a kód aplikace oddělené od prostředí NSPE. Prostředí SPE si lze představit jako procesor zabezpečení. Prostředí SPE spouští bezpečný kód a operace, jako je zabezpečený operační systém a/nebo root-of-trust (RoT). Prostředí SPE bude také provádět důvěryhodné služby, jako je kryptografie, zabezpečené úložiště, atestace a bezpečné protokolování. V prostředí SPE poběží omezený počet důvěryhodných aplikací souvisejících se zabezpečenými operacemi.
NSPE, pokud jde o jeho část, lze chápat jako spouštěcí prostředí bohaté na funkce, které spouští vše, kromě bezpečných operací. Ve skutečnosti je prostředí NSPE známým programovacím modelem, na který je většina vývojářů vestavěných aplikací zvyklá; obsahuje RTOS a většinu součástí aplikace.
Hardwarová izolace je jedním z hlavních tenantů nebo osvědčených postupů, které poskytuje architektura Arm® Platform Security Architecture (PSA) pro budování bezpečných systémů. Různé vrstvy izolace, o kterých jsme právě diskutovali, lze vidět implementované na obrázku 1, přičemž příkladem je mikrokontrolér PSoC 64. V tomto příkladu SPE a NSPE (1) vytvářejí hardwarovou izolaci tím, že mají běhová prostředí na samostatných procesorech. Kromě oddělení za běhu jsou RoT a důvěryhodné služby dále izolovány (2). A konečně, každá důvěryhodná aplikace v prostředí SPE je také izolována pomocí nástrojů, jako jsou důvěryhodné oddíly a MPU (3).
Obrázek 1: Zabezpečená aplikace používá k oddělení provozních prostředí izolaci založenou na hardwaru. 1) NSPE a SPE jsou izolované 2) RoT a důvěryhodné služby jsou izolované 3) Důvěryhodné aplikace jsou izolované. (Zdroj obrázku: Arm/Cypress)
PSoC 64 je dvoujádrový mikrokontrolér, kde je prostředí NSPE spouštěno na procesoru Arm Cortex®-M4 a SPE na procesoru Arm Cortex-M0+. Arm Cortex-M0+ spouští všechny bezpečnostní funkce a může komunikovat s Cortex-M4 prostřednictvím meziprocesorové komunikační (IPC) sběrnice. Architektura omezuje přístup k SPE, které je hardwarově izolované.
Pokud vývojáři chtějí začít používat mikrokontrolér PSoC 64, budou patrně chtít vyzkoušet soupravu PSoC 64 Secure Boot Pioneer Kit.
PSoC 64 Secure Boot Pioneer Kit
Souprava PSoC 64 Secure Boot Pioneer Kit (obrázek 2) obsahuje vše, co vývojáři potřebují, aby mohli začít se zabezpečením svých aplikací. Za prvé obsahuje modul PSoC 64, který je osazen mikrokontrolérem PSoC 64, externí pamětí a všemi podpůrnými obvody (zobrazeny červeně). Externí paměť lze použít k uložení kódu aplikace nebo nových bitových kopií pro firmware pro bezpečné aktualizace systému FOTA (firmware-over-the-air).
Obrázek 2: Souprava PSoC 64 Secure Boot Pioneer nabízí vše, co vývojáři potřebují, aby mohli začít vyvíjet bezpečné aplikace IoT. (Zdroj obrázku: Cypress)
Dále má modul Wi-Fi, který umožňuje vývojářům připojit desku k síti. Modul Wi-Fi je praktický zejména pro aplikace IoT, kde se deska připojí ke cloudovým službám, například AWS nebo Azure. Vývojová deska podporuje Amazon FreeRTOS, kterému se budeme věnovat v další části.
Sada Pioneer Kit podporuje širokou škálu možností rozšíření, jako jsou pinové patice, záhlaví Arduino a řada senzorů. Vývojáři mohou využít vestavěný dotykový posuvník a dotyková tlačítka, tlačítka, potenciometr a mnoho dalšího. Deska je také nastavena tak, aby její přizpůsobení bylo snadné pro téměř jakoukoli aplikaci.
PSoC 64 Secure Software Suite
Navrhování bezpečné vestavěné aplikace může být časově náročné a náročné. Vývojáři by měli hledat řešení, která pomohou snížit náklady a dobu uvedení na trh a zároveň zajistí bezpečnost své aplikace. Souprava PSoC 64 tomuto požadavku pomáhá poskytováním široké škály softwaru, který umožňuje vývojářům rychle vytvořit zabezpečenou aplikaci.
Například CySecureTools poskytuje vývojářům sadu nástrojů pro vytváření klíčů a certifikátů, jakož i nástroje na podepisování uživatelských aplikací a zprovozňování mikrokontrolérů Cypress. Tento nástroj umožňuje vývojářům přenést Cypress RoT a poté vložit vlastní bezpečnostní aktiva. Informace o tom, jak nastavit a používat CySecureTools, naleznete v souboru README v úložišti github.
Užitečným nástrojem pro vývojáře IoT je podpora AWS pomocí FreeRTOS. Úložiště github obsahuje praktické příklady použití FreeRTOS a AWS s PSoC 64. Prvním příkladem, který by vývojáře zajímal, je aplikace „Hello World“, která přenáší zprávy MQTT z PSoC 64 do cloudu AWS. Tento příklad umožňuje vývojáři projít procesem zřizování, generováním klíčů a fázemi nasazení. Na konci příkladu vývojáři obdrží zabezpečené vestavěné zařízení připojené k AWS. Podrobnosti o tom, jak začít, naleznete v příručce Začínáme se soupravou CY8CKIT-064S0S204343.
Zabezpečené aplikace pomocí Trusted Firmware-M (TF-M)
PSoC 64 poskytuje vývojářům předem připravený bezpečnostní rámec, který lze snadno přizpůsobit aplikaci. Vývojáři mohou považovat za užitečné porozumět tomu, co se děje v zákulisí z pohledu softwaru. Firmware PSoC 64 konkrétně využívá základní bezpečnostní rámec s otevřeným zdrojovým kódem známý jako Trusted Firmware-M nebo TF-M.
TF-M je referenční implementace Arm PSA IoT Security Framework. Poskytuje vývojářům užitečné bezpečnostní nástroje zahrnující mimo jiné atestaci zařízení, ověření firmwaru, kryptografické služby, správu tajných informací zařízení a bezpečné dělení do oddílů. Společnost Cypress využila firmware TF-M k vybudování svého bezpečnostního rámce, aby jej pak vývojáři mohli používat ve svých aplikacích.
Vývojáři mohou upravit svůj bezpečnostní rámec přidáním vlastního kódu, přidáním bezpečnostních profilů a mnohem více. Je však důležité mít na paměti, že čím více je software SPE modifikován, tím větší je šance, že bude přidána zranitelnost. Vývojáři musí pečlivě zvážit rizika spojená se změnami, přidáním nebo odečtením základního firmwaru.
Tipy a triky pro zabezpečení vestavěných aplikací
Vývojáři, kteří chtějí poprvé zabezpečit své vestavěné aplikace, musejí zohlednit mnoho faktorů. Zde je několik „tipů a triků“, které mohou zjednodušit a urychlit vývoj:
- Na začátku vývojového cyklu vytvořte model hrozeb s analýzou zabezpečení (TMSA).
- Pomocí vývojové desky otestujte RoT zařízení, Secure Bootloader, proces zajišťování zařízení a aktualizace firmwaru.
- Neimplementujte zabezpečení sami! Využijte stávající open source a zabezpečené sady firmwaru, abyste minimalizovali přepracování.
- Nezapomeňte si promyslet životní cyklus zařízení, včetně toho, jak má být bezpečně vyřazeno z provozu.
- Prozkoumejte nástroje jako CySecureTools; takové nástroje jsou dodávány s ukázkovými šablonami zabezpečení, softwarem a příklady.
- Při klonování úložiště FreeRTOS github naklonujte nejnovější verzi s tagy. Klonování aktivní hlavní řady často vede k nalezení nekompatibility nástrojů a chyb, které jsou stále ve vývoji.
- Začněte projekt procházením Začínáme se sadou Cypress CY8CKIT-064S0S2-4343W. Poskytuje všechny potřebné informace pro spuštění základní aplikace, kterou lze poté upravit pro konkrétní účely produktu.
Vývojáři, kteří dodržují tyto „tipy a triky“, zjistí, že ušetří poměrně dost času a smutku.
Závěr
Zabezpečení nemusí být těžké. Vestavění vývojáři by se měli zaměřit na odlišnosti svých produktů, jejich tajnou omáčku. Ve většině případů to není zabezpečení. Tento článek se zabýval průzkumem způsobů, jakými může sada PSoC 64 pomoci vývojářům rychle zabezpečit jejich aplikace tím, že neposkytne pouze izolační prostředí založené na hardwaru, ale poskytne také rámec softwarových nástrojů. Hardwarová a softwarová řešení společně poskytují vývojářům zrychlený cyklus vývoje zabezpečení.

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.