Jak zajistit zabezpečení vestavěného systému pomocí DSC a MCU
Contributed By DigiKey's North American Editors
2023-07-25
S přechodem na internet věcí (IoT) se zabezpečení stalo nejen volitelnou funkcí vestavěných aplikací, ale i nezbytnou funkcí, která je nutná k zajištění integrity systému. Aby vývojáři mohli reagovat na rostoucí počet specifikací zabezpečení, vyžadují řešení, která nejen odpovídají požadavkům aplikací na nízkou spotřebu nebo vysoký výkon, ale také mohou poskytovat hardwarové bezpečnostní funkce, včetně ověřování, šifrování, zabezpečeného ukládání a bezpečného spouštění.
Tento článek obsahuje stručný úvod do zásad integrovaného zabezpečení. Poté ukazuje, jak mohou vývojáři využít vysoce výkonné kontroléry digitálního signálu (DSC) a nízkopříkonové mikrokontroléry (MCU) PIC24F společnosti Microchip Technology spolu se specializovanými bezpečnostními zařízeními Microchip k uspokojení vznikající poptávky po precizním integrovaném zabezpečení.
Integrované zabezpečení je založeno na čtyřech klíčových principech
Chytré produkty připojené k veřejnému internetu lze propojit do sofistikovaných aplikací, kterým se může vyrovnat jen málo samostatných produktů. Hrozba kybernetických útoků využívajících stejné způsoby připojení však nejen potenciálně omezuje hodnotu chytrých produktů, ale také tyto produkty, související aplikace a jejich uživatele vystavuje zdánlivě nekonečným zdrojům hrozeb.
Kromě neustálé poptávky spotřebitelů po kybernetické bezpečnosti na systémové úrovni musí vývojáři stále častěji řešit bezpečnostní specifikace národních a regionálních organizací. Dvě z nejvlivnějších specifikací, evropská norma ETSI EN 303 645, „Kybernetická bezpečnost pro internet věcí spotřebitele: základní požadavky“ a americká NIST IR 8259, „Foundational Cybersecurity Activities for IoT Device Manufacturers“ (Základní činnosti v oblasti kybernetické bezpečnosti pro výrobce zařízení IoT), naznačují, že postupy kybernetické bezpečnosti závisí na čtyřech klíčových principech:
- používání jedinečných hesel,
- dostupnost zabezpečeného úložiště na zařízení pro citlivé bezpečnostní parametry,
- zabezpečená komunikace díky vzájemnému ověřování a šifrované komunikaci,
- schopnost zajistit integritu a autentičnost firmwaru prostřednictvím zabezpečeného spouštění a zabezpečené aktualizace firmwaru.
Poskytování systémů založených na těchto základních principech vyžaduje použití důvěryhodné platformy, která zabrání hackerům ve vložení kompromitujícího kódu, který změní komunikaci, úložiště, firmware nebo dokonce samotné bezpečnostní mechanismy.
Důvěryhodné platformy pomáhají zajistit bezpečnost tím, že od základu budují zabezpečení na úrovni systému pomocí neměnných hardwarových bezpečnostních mechanismů. Ačkoli je koncept zabezpečení na úrovni systému jednoduchý, jeho implementace je náročná, protože bezpečnostní slabina v kterékoli části systému může poskytnout příležitost pro kybernetický útok. Použitím vysoce výkonných procesorů DSC dsPIC33C a nízkopříkonových jednotek MCU PIC24F společnosti Microchip Technology v kombinaci s doprovodnými bezpečnostními zařízeními Microchip mohou vývojáři snadněji realizovat vestavěné návrhy, které zajišťují zabezpečení na úrovni systému.
Splnění požadavků na výkon a napájení
Zařízení z řad DSC dsPIC33C a MCU PIC24F od společnosti Microchip jsou navržena tak, aby byla použitelná v mnoha oblastech, a kombinují robustní prováděcí platformy s možnostmi specifickými pro dané aplikace, včetně rozsáhlého doplňku integrovaných analogových, řídicích a komunikačních periferií. Ve skutečnosti mohou vývojáři s využitím vícenásobné pulzně-šířkové modulace (PWM), programovatelných zesilovačů (PGA), analogově-číslicových převodníků (ADC) a dalších periferií v procesorech DSC dsPIC33C realizovat složité systémy s minimem dalších komponent – obvykle potřebují pouze napájecí zařízení, která jsou v každém takovém návrhu nezbytná. Příkladem je použití jednojádrového DSC DSPIC33CK512MP608 k realizaci návrhu offline zdroje nepřerušovaného napájení (UPS) (obrázek 1).
Obrázek 1: Stejně jako u jiných DSC dsPIC33C integruje jednojádrový DSC DSPIC33CK512MP608 komplexní sadu periferií, což zjednodušuje návrh komplexních systémů, jako je zobrazený offline UPS. (Zdroj obrázku: společnost Microchip Technology)
Pro aplikace, které vyžadují jak řídicí funkce v reálném čase, tak digitální zpracování signálu, kombinují kontroléry DSC dsPIC33C schopnosti MCU a DSC se svými specializovanými instrukcemi a hardwarovými funkcemi. Pro konstrukce zásadně důležité z hlediska bezpečnosti jsou kontroléry DSC dsPIC33C připraveny na funkční bezpečnost podle normy IEC 60730 a jsou v souladu s normou ISO 26262 a poskytují řadu hardwarových funkcí určených ke zjednodušení certifikace funkční bezpečnosti pro automobilovou bezpečnost úrovně integrity B (ASIL-B) a automobilové a průmyslové aplikace zásadně důležité z hlediska úrovně bezpečnosti SIL-2.
Zatímco DSC dsPIC33C jsou určeny pro aplikace, kde je nejdůležitější výkon, MCU PIC24F poskytují rovnováhu mezi výkonem a energetickou účinností pro vestavěné systémy pro všeobecné použití, spotřební elektroniku, průmyslovou automatizaci, lékařské přístroje a další aplikace, které vyžadují řízení a konektivitu, ale nepotřebují funkce DSP. Stejně jako DSC dsPIC33C jsou MCU PIC24F připraveny na funkční bezpečnost podle normy IEC 60730 a mají bezpečnostní diagnostické knihovny třídy B pro aplikace v domácnostech.
Jak již bylo uvedeno, integrita firmwaru je základním principem integrovaného kybernetického zabezpečení. Aby společnost Microchip pomohla vývojářům zajistit integritu firmwaru a celkovou ochranu kódem, poskytuje v zařízeních DSC dsPIC33C jednorázově programovatelný (OTP) Flash pomocí sériového programování v obvodu (ICSP) Write Inhibit a zabezpečení CodeGuard Flash, například jednojádrový DSC DSPIC33CK512MP608 a dvoujádrový DSC DSPIC33CH512MP508, a také v zařízeních MCU PIC24F, například MCU PIC24FJ512GU405, a v mnoha dalších zařízeních nakonfigurovaných s různými sadami aplikačně specifických periferií.
Firmware na ochranu zařízení
Flash OTP pomocí ICSP Write Inhibit umožňuje vývojářům konfigurovat části paměti Flash jako paměť OTP a chránit paměť Flash proti čtení/zápisu. Proprietární funkce ICSP společnosti Microchip umožňuje tato zařízení sériově programovat prostřednictvím dvojice pinů za běhu v koncové aplikaci. Díky této schopnosti mohou výrobci dokončit programování na výrobních deskách. Zatímco ICSP vyžaduje použití externího programovacího zařízení pro řízení procesu OTP v paměti Flash, Enhanced ICSP umožňuje řízení procesu OTP v paměti Flash pomocí vestavěného bootloaderu. Tato zařízení také podporují samoprogramování za běhu (RTSP), které umožňuje, aby se kód uživatelské aplikace Flash za chodu sám aktualizoval.
Po naprogramování svého produkčního zařízení mohou vývojáři aktivovat funkci ICSP Write Inhibit, která zabrání dalšímu programování nebo mazání ICSP. Operace mazání a programování RTSP Flash však mohou pokračovat, i když je aktivována funkce ICSP Write Inhibit, pokud je před její aktivací do zařízení naprogramován příslušný kód pro aktualizaci paměti Flash. Vývojáři tak mohou použít důvěryhodný zavaděč ke změně paměti Flash, i když je aktivován zákaz zápisu ICSP, což jim umožňuje bezpečně aktualizovat firmware a zároveň zmírňovat vnější pokusy o aktualizaci paměti Flash v produkčních systémech.
Zabezpečení CodeGuard Flash poskytuje jemnou ochranu programu Flash pomocí samostatných spouštěcích a obecných segmentů. Vývojáři definují velikost těchto segmentů nastavením adresy limitu spouštěcího segmentu (BS) (BSLIM) v registru BSLIM zařízení; obecný segment (GS) zabírá zbývající paměť. Pro další ochranu citlivých informací obsahuje každý segment další oddíly. Například BS obsahuje tabulku vektorů přerušení (IVT), volitelnou tabulku alternativních vektorů přerušení (AIVT) a dodatečný prostor pro instrukční slovo (IW); konfigurační segment (CS), který obsahuje kritická data uživatelské konfigurace zařízení, leží v uživatelském adresovém prostoru v GS (obrázek 2).
Obrázek 2: Řady MCU dsPIC33C DSC a PIC24F podporují ochranu kódem v samostatných oddílech, např. BS a GS. (Zdroj obrázku: společnost Microchip Technology)
Po nastavení segmentových oddílů mohou vývojáři pomocí registru zabezpečení firmwaru (FSEC) zařízení volitelně povolit ochranu proti zápisu a nastavit požadovanou úroveň ochrany kódem pro každý segment. Za běhu zařízení zabrání kódu obsaženému v segmentu s nižší úrovní ochrany kódu v přístupu ke kódu obsaženému v segmentu s vyšší úrovní ochrany kódu. V typickém systému by vývojáři chránili BS proti zápisu a nastavili ochranu jeho kódu na vysokou úroveň, čímž by zmírnili externí pokusy o změnu BS, včetně bootloaderu.
Implementace zabezpečené over-the-air aktualizace firmwaru
Vývojáři softwaru se nevyhnutelně potýkají s nutností aktualizovat software v reakci na kombinaci nově objevených softwarových chyb, konkurenčních vylepšení nebo vznikajících bezpečnostních hrozeb. Na rozdíl od aktualizací mobilních aplikací hrozí provádění zabezpečených aktualizací firmwaru ve vestavěných systémech v lepším případě narušení aktuálně spuštěných aplikací, v horším případě zničení systému. Řady dsPIC33C DSC a nízkopříkonových MCU PIC24F od společnosti Microchip poskytují mechanismus dvou oddílů, který má vývojářům pomoci těmto problémům předejít.
Ve standardním provozním režimu tato zařízení využívají veškerou dostupnou fyzickou paměť jako souvislý paměťový prostor s jedním oddílem (obrázek 3 vlevo), který lze konfigurovat do samostatných BS a GS. V režimu dvou oddílů vývojáři rozdělují fyzickou paměť na samostatné aktivní a neaktivní oddíly (obrázek 3 vpravo).
Obrázek 3: Vývojáři mohou provozovat řady MCU dsPIC33C DSC a PIC24F ve výchozím režimu s jedním oddílem nebo se dvěma oddíly. (Zdroj obrázku: společnost Microchip Technology)
Když tato zařízení pracují v režimu dvou oddílů, mohou pokračovat ve vykonávání aplikačního kódu v aktivním oddílu, zatímco programují neaktivní oddíl. Po dokončení programování způsobí provedení instrukce BOOTSWP (boot swap), že zařízení přepne cíl zavádění na aktualizovaný oddíl. Pokud kód v aktualizovaném oddílu selže nebo je jinak shledán nedostatečným, reset zařízení automaticky způsobí, že se zařízení zavede do původního oddílu (obrázek 4).
Obrázek 4: V režimu dvou oddílů mohou MCU dsPIC33C DSC a PIC24F načítat aplikační kód do jednoho oddílu a zároveň pokračovat ve spouštění kódu aplikace ve druhém oddílu. (Zdroj obrázku: společnost Microchip Technology)
Po zajištění úspěšné aktualizace oddílu lze nastavit zaváděcí sekvenci flash (FBTSEQ) aktualizovaného oddílu na nižší hodnotu než u původního oddílu. Při následném resetování se zařízení zavede do aktualizovaného oddílu s nižší hodnotou FBTSEQ (obrázek 5).
Obrázek 5: Režim dvou oddílů vývojářům umožňuje určit pořadí pro zavádění do požadovaného oddílu po resetu zařízení. (Zdroj obrázku: společnost Microchip Technology)
Flash OTP od ICSP Write Inhibit a zabezpečení CodeGuard Flash poskytuje kritickou podporu pro statické a runtime zabezpečení kódu, ale komplexní vestavěné zabezpečení vyžaduje další mechanismy, včetně bezpečného ukládání klíčů, ověřování kódu a bezpečné komunikace.
Použití doprovodných bezpečnostních zařízení k zajištění integrované bezpečnosti systému
Kombinací mikrokontrolérů DSC dsPIC33C a PIC24F s bezpečnostním integrovaným obvodem ATECC608 CryptoAuthentication nebo TrustAnchor100 (TA100) CryptoAutomotive od společnosti Microchip mohou vývojáři snadněji nasadit kompletní bezpečnostní funkce založené na hardwaru.
Tyto bezpečnostní integrované obvody poskytují hardwarové bezpečnostní mechanismy odolné proti neoprávněné manipulaci, včetně zabezpečeného úložiště, hardwarově akcelerovaných kryptografických enginů, generátorů skutečných náhodných čísel a dalších mechanismů vyžadovaných kryptografickými algoritmy. Tyto integrované obvody jsou navrženy speciálně jako doprovodná zařízení a lze je snadno přidat k systémovým návrhům DSC nebo MCU a dokončit tak implementaci úplného zabezpečení vestavěných systémů (obrázek 6).
Obrázek 6: Bezpečnostní integrované obvody jako ATECC608 nebo TA100 doplňují bezpečnostní funkce MCU dsPIC33C DSC a PIC24F a zjednodušují implementaci zabezpečených vestavěných systémů. (Zdroj obrázku: společnost Microchip Technology)
Provedení kritické operace, jako je zabezpečená aktualizace firmwaru, ilustruje doplňkové bezpečnostní funkce mikrokontrolérů DSC dsPIC33C a PIC24F ve spojení s těmito doprovodnými bezpečnostními obvody. Vývojáři používají techniky podepisování kódu k ověření pravosti a integrity kódu před dokončením operací aktualizace firmwaru. Zde vývojáři používají své vývojové systémy k vytvoření aktualizačního balíčku obsahujícího kód, metadata kódu a podpis používaný k ověření (obrázek 7).
Obrázek 7: Podepisování kódu poskytuje zásadně důležitý protokol, který se běžně používá k ověření pravosti a integrity kódu před aktualizací v cílovém systému. (Zdroj obrázku: společnost Microchip Technology)
Hardwarové ověřování podpisů v cílovém systému eliminuje riziko kompromitace ověřovacích protokolů, které bylo možné u dříve používaného softwarového ověřování podpisů. Místo toho doprovodný bezpečnostní integrovaný obvod, jako je ATECC608 a TA100 společnosti Microchip, rychle a bezpečně provádí operace ověřování podpisu bez rizika kompromitace (obrázek 8).
Obrázek 8: V cílovém systému je hardwarové ověření zajišťované bezpečnostním obvodem, např. ATECC608 nebo TA100, zásadní pro zajištění ověření kódu před aktualizací firmwaru bootloaderem. (Zdroj obrázku: společnost Microchip Technology)
Pro urychlení implementace bezpečných systémů poskytuje společnost Microchip kombinaci softwarových a hardwarových vývojových nástrojů.
Zrychlení vývoje softwaru a hardwaru
Zatímco integrované vývojové prostředí (IDE) MPLAB X poskytuje vývojářům kompletní prostředí pro vývoj softwaru, kompilátor MPLAB XC C poskytuje vývojovou podporu pro stávající řetězce nástrojů. Pro urychlení vývoje v obou prostředích umožňuje Microchip MPLAB Code Configurator (MCC) vývojářům pomocí grafického rozhraní automaticky generovat inicializátory, sestavovat ovladače, alokovat piny, implementovat knihovny a jinak urychlit mnoho kritických nízkoúrovňových nastavovacích postupů a procesů spojených s každým projektem vývoje integrovaného softwaru.
Pro urychlení implementace vhodného zabezpečeného zavaděče poskytuje bootloader Microchip pro DSC dsPIC33 a MCU PIC24 grafické rozhraní, které pomáhá vývojářům rychle konfigurovat a generovat vlastní bootloadery potřebné pro jejich aplikaci. Související hostitelská aplikace bootloaderu dále zjednodušuje přenos aplikačního kódu do cílového zařízení.
Pro vývoj hardwaru poskytuje společnost Microchip několik souvisejících vývojových desek pro vytváření systémů založených na jednotkách DSC dsPIC33C nebo MCU PIC24F. Desky Microchip PIC-IoT Board EV54Y39A a PIC-IoT Board AC164164 (obrázek 9) totiž obsahují bezpečnostní integrované obvody, které jsou předem vybaveny bezpečnostními pověřeními pro Amazon Web Services (AWS), resp. pro Google Cloud.
Obrázek 9: Desky, jako je PIC-IoT Board AC164164, pomáhají urychlit vývoj zabezpečení vestavěných systémů integrací bezpečnostních obvodů, které jsou předem vybaveny přihlašovacími údaji pro AWS nebo Google Cloud. (Zdroj obrázku: společnost Microchip Technology)
Pro vlastní návrhy nabízí společnost Microchip vývojovou desku dsPIC33CH Curiosity (DM330028-2) založenou na dvoujádrovém DSC dsPIC33CH512MP508. Alternativně mohou vývojáři připojit zásuvný modul společnosti Microchip založený na dsPIC33CH128MP508 (MA330040) k vyhodnocovací desce Microchip Explorer Embedded Evaluation Board (DM240001-2) a urychlit tak vývoj bezpečných vestavných systémů.
Závěr
Zabezpečení vestavěného systému závisí na dostupnosti hardwarových mechanismů, které jsou schopny podporovat základní principy kybernetické bezpečnosti, které zahrnují integritu firmwaru, ověřování, šifrování a bezpečné úložiště. Zatímco jednotky DSC dsPIC33C a MCU PIC24F společnosti Microchip zjednodušují ochranu kódu, její bezpečnostní integrované obvody ATECC608 a TA100 poskytují další bezpečnostní mechanismy potřebné v účinné bezpečnostní platformě. Použitím těchto zařízení v kombinaci mohou vývojáři uspokojit potřebu zabezpečení na systémové úrovni ve vestavěných řešeních pro internet věcí, stejně jako v automobilových, průmyslových, spotřebitelských a lékařských aplikacích.

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.