Jste zde

Zabezpečení vestavěného systému pomocí vnitřních bezpečnostních funkcí DSC a MCU

Bezpečnostní funkce se staly nezbytnou součástí vestavěných systémů. Autentizace, šifrování, zabezpečené úložiště a bezpečné spouštění se tak zařadily mezi základní vlastnosti aplikací komunikující s okolním světem.

Tento článek poskytuje stručný úvod do principů vestavěného zabezpečení. Ukážeme si použití výkonného digitálního signálového kontroleru (DSC) a nízkoenergetického mikroprocesoru PIC24F (MCU) od Microchip Technology s integrovanými bezpečnostními funkcemi.

Čtyři klíčové principy vestavěné bezpečnosti

Po připojení produktu k veřejnému internetu otevírají bezpečnostní vrátka. Mezi dvě zásadní normy kybernetické bezpečnosti patří evropská norma ETSI EN 303 645 - Kybernetická bezpečnost pro spotřebitelský internet věcí a americká NIST IR 8259 - Základní činnosti v oblasti kybernetické bezpečnosti pro výrobce zařízení IoT. Z těchto norem plynou čtyři klíčové principy kybernetické bezpečnosti:

  • Použití jedinečných hesel
  • Dostupnost bezpečného úložiště pro citlivé bezpečnostní parametry přímo v zařízení
  • Bezpečná komunikace díky vzájemné autentizaci a šifrované komunikaci
  • Schopnost zajistit integritu a autentičnost firmware prostřednictvím zabezpečeného spouštění a zabezpečené aktualizace firmware

Systém splňující výše uvedené principy se neobejde bez důvěryhodné platformy, která zabraňuje hackerům vkládat kompromitovaný kód. Tento kód uvnitř aplikace může provést změny v komunikaci, v přístupu k úložišti nebo dokonce modifikovat 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ů. Implementace zabezpečení na úrovni systému je nelehký úkol, protože bezpečnostní slabina v jakékoli části systému může poskytnout cestu ke kybernetickému útoku. Signálové procesory dsPIC33C a nízkoenergetické mikrokontrolery PIC24F v kombinaci s dalšími bezpečnostními prvky od Microchipu tvoří dokonalou ochranu zařízení připojeného k internetu.

Splnění požadavků na výkon a napájení

DSC dsPIC33C DSC a MCU PIC24F mají integrovány analogové, digitální a komunikační periferie. Pomocí vícenásobné pulzně šířkové modulace (PWM), zesilovačů s programovatelným zesílením (PGA), analogově-digitálních převodníků (ADC) a dalších periferií na dsPIC33C lze vytvářet složité systémy s minimem dalších komponent. Obvykle je nutné pouze připojit napájecí obvod. Příkladem je použití DSC DSPIC33CK512MP608 k vytvoření návrhu nepřerušitelného zdroje napájení tzv. UPS (obrázek 1).

Obrázek 1: DSC DSPIC33CK512MP608 má integrovanou komplexní sadu periferií, a to zjednodušuje návrh komplexních systémů, jako je například UPS zdroj. (Zdroj obrázku: Microchip Technology)

Pro aplikace, které vyžadují jak schopnosti řízení v reálném čase, tak digitální zpracování signálu je vhodný DSC dsPIC33C, který navíc vyhovuje funkční bezpečnosti dle IEC 60730 a ISO 26262 a poskytuje řadu hardwarových funkcí pro zjednodušení certifikace úrovně integrity automobilové bezpečnosti B (ASIL-B) a SIL-2.

DSC dsPIC33C je navržen pro aplikace, kde je prvořadý výkon, zatímco MCU PIC24F poskytuje rovnováhu mezi výkonem a energetickou účinností pro univerzální vestavěné systémy, spotřební elektroniku, průmyslovou automatizaci, lékařská zařízení a další aplikace, které vyžadují ovládání a konektivitu, ale nepotřebují schopnosti DSP. Stejně jako u DSC dsPIC33C jsou MCU PIC24F připraveny na funkční bezpečnost dle IEC 60730 třídy B pro domácí aplikace v budovách.

Jak již bylo zmíněno dříve, integrita firmware je základním principem vestavěné kybernetické bezpečnosti. Pro zajištění integrity firmware a celkové ochrany kódu Microchip poskytuje jednorázově programovatelné Flash paměti (OTP) pomocí in-circuit serial programming (ICSP), Write Inhibit a CodeGuard Flash zabezpečení v dsPIC33C DSC jako je jedno jádrové DSPIC33CK512MP608 a dvoujádrové DSPIC33CH512MP508. Stejné ochranné funkce nabízí také PIC24F jako je PIC24FJ512GU405 MCU.

Ochrana firmware

ICSP Write Inhibit umožňuje konfigurovat části paměti Flash jako paměť OTP a chránit paměť proti čtení a zápisu. K ICSP programování je zapotřebí pouze dva piny. Zatímco ICSP vyžaduje použití externího programátoru, Enhanced ICSP umožňuje integrovanému bootloaderu řídit proces Flash OTP zevnitř. To znamená, že lze spustit „samoprogramování“ za běhu (RTSP - run-time self-programming) a kód uživatelské aplikace je schopen se sám aktualizovat za běhu.

Po naprogramování produkčního zařízení lze aktivovat blokování zápisu ICSP, které zabrání jakémukoli dalšímu programování nebo vymazání ICSP. Operace mazání a programování RTSP Flash však mohou zůstat povoleny, i když je aktivováno blokování zápisu ICSP. Lze použít důvěryhodný bootloader ke změně paměti, i když je aktivována funkce ICSP Write Inhibit, a to umožňuje bezpečně aktualizovat firmware a zároveň zvýšit ochranu proti externím útokům.

Zabezpečení CodeGuard Flash poskytuje ochranu paměti 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 (BSLIM) v registru BSLIM. Obecný segment (GS) zabírá zbývající paměť. Pro další ochranu citlivých informací obsahuje každý segment další oddíly. Například obsahuje tabulku vektorů přerušení (IVT), volitelnou tabulku vektorů alternativních přerušení (AIVT) a další prostor instrukčního slova (IW). Konfigurační segment (CS) obsahuje kritická data uživatelské konfigurace a leží v prostoru uživatelských adres v GS (obrázek 2).

Obrázek 2: dsPIC33C a PIC24F nabízí ochranu kódu v samostatných oddílech jako je Boot Sector BS a General Segment GS. (Zdroj obrázku: Microchip Technology)

Po nastavení oddílů jednotlivých segmentů se použije registr zabezpečení firmware (FSEC), který povoluje ochranu proti zápisu a nastavuje požadovanou úroveň ochrany kódu pro každý segment. Kódu v segmentu s nižší úrovní ochrany se zabrání v přístupu ke kódu v segmentu s vyšší úrovní. V typickém systému se chrání Boot Sector BS proti zápisu a nastaví se ochrana jeho kódu na vysokou úroveň. Tím se zvýší ochrana vůči externím snahám změnit tento sektor.

Zabezpečená bezdrátová aktualizace firmware

Vzdálená bezdrátová aktualizace je nutností, jelikož díky ní lze opravit aplikační chyby a bezpečnostní díry. Během aktualizace firmware může dojít v nejlepším případě k narušení aktuálně spuštěných aplikací nebo v nejhorším případě ke „zničení“ systému. DSC dsPIC33C a nízkoenergetické mikrokontrolery PIC24F obsahují mechanismus dvou oddílů navržených tak, aby se předcházelo potenciálním problémům při aktualizaci. Ve standardním provozním režimu se využívá veškerá dostupná fyzická paměť jako kontinuální paměťový prostor s jedním oddílem (obrázek 3, vlevo), který lze konfigurovat do sektorů: Boot sector BS a General sector GS. V režimu dvou oddílů je rozdělena fyzická paměť na samostatné aktivní a neaktivní oddíly (obrázek 3 vpravo).

Obrázek 3: dsPIC33C DSC a PIC24F lze provozovat ve výchozím režimu jednoho oddílu nebo v režimu dvou oddílů. (Zdroj obrázku: Microchip Technology)

Zařízení pracující v režimu dvou oddílů má obrovskou výhodu. Aplikační kód běží v aktivním logickém oddílu, zatímco se programuje (nahrává nová verze aplikačního kódu) neaktivní logický oddíl. Po dokončení programování se provede runtime instrukce boot swap (BOOTSWP), která způsobí, že zařízení přepne cíl spouštění na aktualizovaný oddíl. Pokud kód v aktualizovaném oddílu selže nebo je shledán jako narušený, automaticky se provede reset a spouštění se přepne na původní oddíl (obrázek 4).

Obrázek 4: V režimu dvou oddílů mohou dsPIC33C DSC a PIC24F MCU aktualizovat aplikační kód v prvním oddílu a zároveň pokračovat ve spouštění kódu aplikace v druhém oddílu. (Zdroj obrázku: Microchip Technology)

Sekvenci flash boot (FBTSEQ) aktualizovaného oddílu lze nastavit na nižší hodnotu než původní oddíl. Při následných resetech zařízení se zařízení spustí do aktualizovaného oddílu s nižší hodnotou FBTSEQ (obrázek 5).

Obrázek 5: Režim dvou oddílů umožňuje určit pořadí bootování. (Zdroj obrázku: Microchip Technology)

OTP Flash, ICSP Write Inhibit a CodeGuard poskytují zabezpečení kódu. Komplexní integrované zabezpečení vyžaduje další mechanismy jako je bezpečné úložiště klíčů, ověřování kódu a zabezpečenou komunikaci.

Doprovodné bezpečnostní funkce

Kombinace dsPIC33C a PIC24F s bezpečnostním obvodem CryptoAuthentication ATECC608 nebo bezpečnostním integrovaným obvodem TrustAnchor100 ( TA100 ) CryptoAutomotive tvoří kompletní sadu hardwarových bezpečnostních funkcí. Tyto bezpečnostní integrované obvody poskytují hardwarové bezpečnostní mechanismy odolné proti neoprávněné manipulaci jako je zabezpečené úložiště, hardwarový kryptografický engine, generátor skutečných náhodných čísel a mnoho dalších. Integrované obvody lze snadno přidat k návrhům s DSC nebo MCU a vytvořit tak plnohodnotné zabezpečení vestavěného systému (obrázek 6).

Obrázek 6: Bezpečnostní integrované obvody ATECC608 nebo TA100 doplňují bezpečnostní funkce dsPIC33C DSC a PIC24F MCU. (Zdroj obrázku: Microchip Technology)

Technika podepisování kódu slouží k ověření pravosti a integrity kódu před dokončením aktualizace firmware. Proto aktualizační balíček obsahuje nejen samostatný kód, ale i metadata a podpis (obrázek 7).

Obrázek 7: Podepisování kódu poskytuje zásadní 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: Microchip Technology)

Hardwarové ověření podpisu eliminuje riziko zanesení podezřelého kódu do systému. Doprovodný bezpečnostní obvod ATECC608 a TA100 rychle a bezpečně provádí operace ověřování podpisu bez přídavného rizika (obrázek 8).

Obrázek 8: Hardwarové ověření podpisu pomocí ATECC608 nebo TA100 zajišťuje ověření kódu před aktualizací firmwaru bootloaderem. (Zdroj obrázku: Microchip Technology)

Urychlení vývoje software i hardware

K dispozici je integrované vývojové prostředí MPLAB X (IDE) a kompilátor MPLAB XC C. Grafické rozhraní MPLAB Code Configurator (MCC) umožňuje automatické sestavování ovladačů, přidělování pinů a implementaci knihoven. K dispozici je také Bootloader pro dsPIC33 DSC a PIC24 MCU, který umožňuje konfigurovat a generovat vlastní bootloader přímo pro danou aplikaci. Pro urychlení vývoje hardware lze využít vývojové desky EV54Y39A a PIC-IoT AC164164 (obrázek 9), které jsou vybaveny bezpečnostními credentials pro webové služby Amazon (AWS) a Google Cloud.

Obrázek 9: PIC-IoT Board AC164164 urychluje vývoj vestavěného zabezpečení, díky bezpečnostních integrovaných obvodů, které obsahují přihlašovací údaje pro AWS nebo Google Cloud. (Zdroj obrázku: Microchip Technology)

Microchip dále nabízí vývojovou desku dsPIC33CH Curiosity ( DM330028-2 ) založenou na dvoujádrovém DSC dsPIC33CH512MP508. Alternativně lze připojit zásuvný modul Microchip dsPIC33CH128MP508 ( MA330040 ) k Microchip Explorer Embedded Evaluation Board ( DM240001-2 ).

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 ( integrita firmware, ověřování podpisu, šifrování a bezpečné úložiště). DSC dsPIC33C a MCU PIC24F se zaměřují na ochranu kódu a bezpečnostní integrované obvody ATECC608 a TA100 poskytují dodatečné bezpečnostní mechanismy, díky nimž se docílí dokonalé ochrany vestavěných řešeních pro IoT, automobilové, průmyslové, spotřebitelské a lékařské aplikace.

 

Článek vyšel v originále na webu DigiKey.com

Hodnocení článku: