Jste zde

Bezpečnost IoT - Část 3: Bezpečné spouštění a aktualizace firmwaru

Hardwarová kryptografie a bezpečné úložiště jsou jedním ze základů bezpečnosti embeded zařízení. Kritickou částí systému je spouštění aplikace a vzdálená aktualizace firmware. Během této činnosti jsou zařízení ve speciálním režimu a je nutné je ochránit před hrozícím útokem.

Internet věcí rychle pronikl do všech koutů digitálního světa a stal se běžnou součástí průmyslových lékařských, dopravních a jiných aplikacích. Vnitřní průmyslové sítě jsou běžně důmyslně zabezpečeny, ale problém nastává s rozšířením sítě o zařízení, které nemají dostatečný výkon procesoru pro složité bezpečnostní algoritmy. Hackeři jsou si této zranitelnosti vědomi, a tak připojená zařízení čelí obrovskému počtu hrozeb. Proto je nutné, aby každé zařízení IoT obsahovalo důmyslná bezpečnostní opatření. Proto vznikla série článků pojednávající o různých stupních bezpečnosti Embeded zařízení.

Série článků o bezpečnosti Embeded zařízení:

  • Část 1 pojednává o kryptografických algoritmech, které jsou základem bezpečnosti.
  • Část 2 pojednává o roli soukromých klíčů, správě klíčů a bezpečném uložišti.
  • Část 3 zkoumá mechanismy integrované přímo do procesorů k odrazení útoků na systémové a aplikační části software.
  • Část 4 ukazuje použití bezpečnostního mechanismu přímo v procesorech k zajištění bezpečnosti v runtime režimu.
  • Část 5 popisuje zabezpečení na vyšší úrovni při komunikaci s cloudovými službami.

Tento článek popisuje zvýšení ochrany embeded zařízení pomocí metody Root of Trust, která je postavena na základních bezpečnostních mechanismech a poskytuje důvěryhodné prostředí pro procesory od Maxim Integrated , Microchip Technology , NXP Semiconductors a Silicon Labs.

Co je Root of Trust?

Kryptografické metody a zabezpečené klíče poskytují základní mechanismy pro ochranu dat a komunikaci. V embeded zařízení dochází k resetu systému v důsledku výpadku napájení nebo kritické softwarové výjimky. V tom okamžiku se zapojí proces spuštění softwaru a načte se obraz firmwaru z energeticky nezávislé paměti.

Restartování software je důležitým bezpečnostním mechanismem, který se používá k obnovení funkce systému, který se náhodně nebo úmyslně destabilizoval. Například v roce 2018 FBI doporučila, aby spotřebitelé a majitelé podniků restartovali své switche, aby se zmařila masivní hackerská kampaň, která v té době probíhala.

V praxi restart není zárukou integrity systému. Pokud se podaří hackerovi podsunout falešný(kompromitovaný) obraz firmwaru, systém bez příslušné ochrany zůstává pod kontrolou hackera. Proto existuje metoda Root of Trust, aby zařízeni před spuštěním daného obrazu firmware prošlo ověřovacím procesem, který tuto možnost napadaní eliminuje.

Ověření obrazu firmware pro bezpečné spuštění

V embeded zařízení obvykle hlavní procesor načte obraz firmware z flash paměti do hlavní paměti procesoru a spustí daný kód. V případě procesoru XIP se firmware spouští přímo z flash paměti. Pokud se podaří hackerům narušit obraz firmwaru je v ohrožení spuštění celého systému.

Ověření integrity firmware před jeho spuštěním používá proces podepisování kódu, který začíná už na začátku dodavatelského řetězce. Obraz firmware je podepsán soukromým klíčem, který je vytvořen spolu s veřejným klíčem pomocí kryptografického algoritmu digitálního podpisu s eliptickými křivkami (ECDSA). 

Procesor použije veřejný klíč k ověření podpisu obrazu firmware před spuštěním. Pokud je veřejný klíč v embeded systému nechráněný, mohou hackeři vyměnit tento veřejný klíč vlastním veřejným klíčem a příslušný soukromí klíč použít v obrazu firmware. Pak procesor vezme falešný veřejný klíč k vygenerování soukromého klíče a ten bude souhlasit s falešným klíčem v upraveném firmware a obrovská bezpečnostní díra je na světě.

Z tohoto důvodu je nutné veřejný klíč držet v bezpečném integrovaném obvodu jaký je například  DS28C36 od Maxim Integrated nebo ATECC608A od Microchip Technology. Procesor pošle přes sériové rozhraní obraz firmware do čipu DS28C36. DS28C36 použije veřejný klíč k ověření, že firmwarový podpis byl skutečně vytvořen příslušným soukromým klíčem. Nakonec DS28C36 informuje procesor o výsledku ověření. Pokud je podpis platný, spustí se firmware (obrázek 1).

Obrázek 1: K ověření podpisů firmware lze použít speciální obvody jako je DS28C36 od Maxim Integrated, aby se zabránilo spuštění falešného firmware. (Zdroj obrázku: Maxim Integrated)

Tato metoda ověření nemusí probíhat jen v externích integrovaných obvodech, ale často bývá součástí procesorů jako je LPC55S69JBD100 od NXP, MAX32520 od Maxim Integrated nebo ATSAML11D16A od Microchip Technology. Pomocí těchto funkcí mohou tyto procesory poskytnout bezpečnost Root of Trust, která je nutná pro vytvoření důvěryhodného prostředí pro běh systémového a aplikačního softwaru.

Root of Trust prostřednictvím bezpečného spuštění

Integrita obrazu firmware je základem Root of Trust konceptu. Například procesory EFR32MG21AEFR32BG22 ze série Gecko Series 2 od společnosti Silicon Laboratories tvoří koncepci Root of Trust prostřednictvím vícestupňového zaváděcího procesu založeného na hardwarovém bezpečnostním prvku a virtuálním bezpečnostním prvku (VSE) (obrázek 2).

Obrázek 2: Procesor EFR32MG21A používá integrovaný hardwarový bezpečnostní prvek v první fázi svého vícestupňového zaváděcího procesu, zatímco EFR32BG22 zahajuje svůj vícestupňový zaváděcí proces s virtuálním bezpečnostním prvkem. (Zdroj obrázku: Silicon Laboratories)

EFR32MG21A má k dispozici vyhrazené procesorové jádro pro kryptografii a bezpečnostní prvek pro bezpečné uložení klíčů. Procesor zahajuje proces spouštění pomocí kódu uloženého v paměti ROM, aby ověřil kód zaváděcího systému v první fázi (FSB). Po ověření se spustí kód FSB, který následně ověří podpis bootloaderu - druhé fáze (SSB). Spouštěcí sekvence pokračuje prováděním ověřeného SSB, které zase ověřuje podpis aplikačního kódu, který obvykle zahrnuje jak kód na úrovni systému, tak i kód aplikace na vyšší úrovni. Nakonec se spustí ověřený kód aplikace a systémové operace pokračují dle požadavků aplikace.

Tento proces začíná kódem uloženým v paměti ROM a spouští se pouze ověřené kódy FSB, SSB a aplikace. Výsledkem tohoto celého procesu je bezpečné prostředí pro běh aplikace. Současně tento postup umožňuje bezpečnou aktualizaci firmware a dokonce i kódu zavaděče (bootloaderu) první a druhé fáze (FSB i SSB). Proto je kladen důraz na testování prvotního kódu uloženého v paměti ROM, jelikož u ní nelze provést upgrade.

Procesory Gecko Series 2 poskytují další úroveň bezpečnosti při spuštění kódu, a to použitím bezpečnostních certifikátů. Certifikáty, které se používají v rutinních transakcích infrastruktury veřejného klíče (PKI), obsahují veřejný klíč spolu s odkazem na jeden nebo více přidružených certifikátů, které nakonec odkazují na hlavní certifikát (root certificate) udělovaný certifikační autoritou (CA). Každý certifikát v tomto řetězci slouží k ověření certifikátů pod ním. To má za následek vytvoření důvěryhodného řetězce založeného na důvěryhodné autoritě CA.

Internetové prohlížeče spoléhají na tento důvěryhodný řetězec během autentizační fáze - Transport Layer Security (TLS), aby potvrdily identitu webových serverů. Stejně tak embeded systémy používají certifikáty k potvrzení identity zdroje bootloaderu nebo kódu aplikace.

Obrázek 3: Procesory Gecko Series 2 zvyšují zabezpečení systému pomocí ověřováním certifikátů veřejných klíčů v každé fázi spouštěcího procesu. (Zdroj obrázku: Silicon Laboratories)

Procesory LPC55S69JBD100 od NXP podporují řadu různých možností pro ověření obrazu firmware. Kromě podepsaných obrazů firmware tyto procesory podporují tzv. zaváděcí obrazy pomocí průmyslového standardu pro identifikaci zařízení (DICE) od Trusted Computing Group.

Tato možnost umožňuje ukládat obrazy firmware do speciálních oblastí paměti flash v procesoru. Vše je šifrováno pomocí PRINCE. Jedná se o blokovou šifru s nízkou latencí, která může dosáhnout úrovně bezpečnosti srovnatelné s jinými šifry, ale v mnohem menší oblasti křemíku. PRINCE může provádět dešifrování za běhu šifrovaného kódu, protože tajné klíče používané pro dešifrování jsou přístupné pouze pro kryptografické jádro PRINCE. Ve skutečnosti jsou tyto tajné klíče chráněny klíčem pro šifrování klíčů (KEK) generované funkcí PUF.

Tato metoda umožňuje, aby embeded zařízení mohlo být aktualizováno bezdrátově tzv. FOTA. Pokud dojde k selhání ověření přeneseného obrazu firmware, dojde k obnově předchozí verze firmware. Protože všechny nové obrazy firmware musí projít kontrolou ověření podpisu je možné bezpečně využít bezdrátový upgrade FOTA k přidání nových funkcí nebo oprav chyb, aniž by se ohrozila bezpečnost celého systému.

Závěr

Zabezpečení celého systému vyžaduje bezpečné spouštění aplikace. Pouhé ověřování podpisu kódu nestačí a je nutné zavést komplexní proces s vícestupňovým mechanismem. Proto je vhodné pečlivě zvážit výběr procesoru, který již tyto mechanismy má integrovány přímo v křemíku. Díky tomu jsou embeded zařízení schopny odrazit kybernetické útoky, kterých ve světě nemalou mírou neustále přibývá.

Článek vyšel v originále na webu DigiKey.com, autorem je Stephen Evanczuk.

Hodnocení článku: