Co to znamená, aby byl SoC bezpečný? Bližší pohled…

Co dělá skutečně bezpečnou SoC … bezpečnou? Podívejte se na tento přehled hardwarových bezpečnostních funkcí v ukázkovém IC v reálném světě.
Zabezpečení je důležitým hlediskem, když inženýři vyvíjejí nová zařízení, zejména pro aplikace IoT. Výběr bezpečných komponent může v tomto procesu jít dlouhou cestou, ale co to znamená pro bezpečné zařízení?
V tomto příspěvku se blíže podíváme na bezdrátový SoC EFR32xG21 Gecko Series 2 od Silicon Labs. Tento IC má silikonové bezpečnostní jádro a rádio spolu s procesorem Arm-M33. Je navržen pro použití s protokoly Zigbee, Thread a Bluetooth.
Obrázek ze Silicon Labs.
Podle Silicon Labs se řada 2 SoC liší od svého předchůdce tím, že se více zaměřuje na poskytování funkcí pro inteligentní domácnosti, inteligentní města a průmyslové aplikace IoT.
Odkaz na rozpočet
EFR32 Blue Gecko SoC je k dispozici s výstupem 10 dBm nebo 20 dBm a má citlivost až -104,5 dBm v závislosti na konfiguraci rádia. To poskytuje rozpočet linky až 124,5 dB (915 MHz 2GFSK, 0,6 kbps). V dokumentu Silicon Labs UG147 najdete další konfigurace, rozsahy a nabídněte dokumenty odkazů.

Zabezpečení uvnitř EFR32
Je integrován do křemíkové matice EFR32 spolu s procesorem ARM Cortex-M33 a jedná se o hardwarové bezpečnostní jádro obsahující generátor skutečných náhodných čísel (TRNG) a hardwarový krypto akcelerátor. Jádro má silikonové brány nakonfigurované a optimalizované pro konkrétní kryptografické úkoly, včetně:
- Advanced Encryption Standard (AES)
- Šifrování eliptické křivky (ECC)
- Safe Hash Algorithm (SHA)
- 32bitová kontrola cyklické redundance (CRC32)
Zabezpečené spuštění, bezpečné ladění a bezpečné odemknutí ladění
Typicky, když špatný herec fyzicky získá přístup k vašemu mikrokontroléru, může provádět nejrůznější škodlivé akce, od čtení paměti až po instalaci nového firmwaru a objevení vašich soukromých bezpečnostních klíčů. Silicon Labs eliminuje mnoho vektorů útoků pomocí zabezpečeného spouštění a zabezpečeného ladění pomocí Root of Trust a Secure Loader (RTSL). Secure Boot zabraňuje vložení malwaru spuštěním pouze správně podepsaného kódu.
Secure Boot zajišťuje, že na Wireless Gecko Series 2 poběží pouze správně podepsaný firmware. Ať už se hacker pokouší aktualizovat vzduchem (OTA) nebo je fyzicky připojen k pinům JTAG, nejhorší věcí, kterou může udělat, je uzamčení zařízení.
Zabezpečené ladění zajišťuje, že všechna data opouštějící zařízení jsou plně šifrována. Tato funkce zabezpečení zajišťuje, že pouze původní programátoři zařízení mohou odemknout a interpretovat data ladění. To často znamená, že výrobce zařízení nemůže pomoci při analýze chyb; proto Silicon Labs zahrnovala funkci Secure Debug Unlock, která umožňuje Silicon Labs pokračovat v práci na zařízení. Zákazníci poskytnou zařízení, které se chová špatně, Silicon Labs bezpečnostním klíčem a data v zařízení lze dešifrovat.
Skutečný generátor náhodných čísel
Jednou ze základních součástí každého bezpečnostního systému je generátor náhodných čísel. Tento hardware neustále pracuje na vytvoření plynulé a nepředvídatelné sekvence 1 s a 0 s. EFR32xG21 používá kruhový oscilátor ke generování náhodných čísel. Kruhové oscilátory se skládají z lichého počtu stupňů invertoru.

Schéma třístupňového kruhového oscilátoru. Obrázek s laskavým svolením Guerberj.
Kruhové oscilátory používané jako generátory náhodných čísel využívají skutečnosti, že existuje mírně proměnlivé zpoždění přechodu brány z jednoho stupně oscilátoru do druhého (jitter). Když výstup prvního stupně přejde z logického minima na logický vysoký, druhý stupeň situaci okamžitě nezmění. Malá kapacita na vstupu dalšího stupně zpomaluje změnu napětí. Když je dosaženo prahového napětí, druhý stupeň změní stav a proces pokračuje kolem prstence, dokud poslední stupeň neotevře první stupeň a celý cyklus se opakuje. Výsledkem je obdélníková vlna, která se pohybuje ve smyčce kolem prstence. Pokud je jeden stupeň oscilátoru vzorkován asynchronně na části kmitočtu oscilace, je výstup nepředvídatelný a náhodný.
A v případě, že někteří špatní herci najdou způsob, jak manipulovat s prstencovým oscilátorem nebo nějak začít fungovat, ukazuje se, NITS-800-90. a AIS 31.
Bělicí filtr
Každý, kdo nějakou dobu pracoval na náhodných číslech, vám řekne, že 0B0000000000000000 je stejně pravděpodobné jako 0B1011010010110110 se skutečným generátorem náhodných čísel, což je stejně pravděpodobné jako 0B0000000011111111 a 0B111111111111. K šifrování dat však lze použít pouze jednu z těchto čtyř možností. Výstup kruhového oscilátoru je tedy přiváděn do filtru bělení dat. Data blanking využívá vícebodový lineární zpětnovazební posuvný registr, aby se zabránilo dlouhým sekvencím 1 s a 0 s.

Posuvný registr snižování zátěže dat
Advanced Encryption Standard (AES)
Advanced Encryption Standard je bloková šifra generovaná NIST. Toto symetrické šifrování klíčů se používá ke kódování a dešifrování dat pomocí něčeho, co se nazývá Rijndaelův algoritmus (za příjmením jednoho z belgických kryptografů, kteří jej vynalezli). Data jsou šifrována / dešifrována ve 128bitových blocích pomocí 128, 192 nebo 256 bitových klíčů.
Šifrování eliptické křivky
Elliptic Curve Encryption vytvořili nezávisle Neal Koblitz a Victor Miller. Umožňuje dvěma stranám, které se nikdy nesetkaly, vytvořit sdílené tajemství v plném obrazu vetřelce. Sdílené tajemství je kombinováno s daty, která se mají zašifrovat / dešifrovat, aby se kódovaly / dešifrovaly tajné zprávy.
Tato animace ukazuje, jak mohou Alice a Bob vytvořit sdílené tajemství.

Vizualizace kódování eliptické křivky Marka Hughese
Alice a Bob se dohodnou na bodě a přidají náhodné číslo (zde Alice zvolí α = 7 a Bob zvolí ß = 5) Chcete-li najít body A a B, Alice a Bob poté změňte hodnoty skrytých bodů a znovu vynásobte tajemství sdílené s čísly. dosáhne S (Alice provede 2α = 14 a Bob celkem 2ß = 10 operací).
Přečtěte si můj článek o kryptografii eliptických křivek a dozvíte se více.
Safe Hash Algorithm (SHA)
Zabezpečený hashovací algoritmus přijímá vstup libovolné délky a vytváří výstup s pevnou délkou. To je užitečné pro ověření integrity dat, protože jakákoli změna ve vstupu ovlivní výstup. Aktualizace firmwaru lze doručit do cílového mikrokontroléru spolu s jeho hodnotami hash. Pokud mikrokontrolér vypočítá pro hash jinou hodnotu, chápe, že je problém se soubory firmwaru, a nezapíše je do paměti.
32bitová kontrola cyklické redundance (CRC32)
Kontroly cyklické redundance se používají k zajištění integrity dat během přenosu, ukládání a přístupu. Hodnoty CRC se počítají z původních dat a přepočítávají se z přenesených nebo přijatých dat. Pokud se dvě hodnoty CRC neshodují, jsou data poškozena.

24bitová CRC animace je zobrazena výše, protože 32 bitů je příliš malých na čtení.
O individuální sadě pro vývoj sítě
Tato sada je navržena tak, aby vývojářům umožnila zabezpečit bezdrátovou komunikaci ve dvouuzlových a víceuzlových aplikacích prostřednictvím různých protokolů, včetně sítě Bluetooth, Zigbee a Thread.
Wireless Gecko EFR32 je dodáván s obslužnou základní deskou, která se připojuje k vývojové základní desce. Po naprogramování lze bezdrátovou kartu Gecko vyjmout ze základní desky a napájet externí baterií.

Silicon Labs Wireless Gecko Development Board Image použitý se svolením Silicon Labs.
Tato vývojová sada se mírně liší od ostatních nabízených Silicon Labs v tom, že kromě ladicího programu USB poskytuje i programový / ladicí kanál založený na Ethernetu. To umožňuje uživatelům připojit zařízení od programovacího počítače a zůstat připojeni ke stávající IT infrastruktuře budovy.
Díky této vlastnosti jsou sady vhodné pro práci s bezdrátovými rozhraními, protože lze bezdrátově připojit více zařízení na hranici jejich rádiového dosahu a stále přenášet všechny potřebné ladicí informace pomocí programovacího počítače. Silicon Labs má ve svých bostonských kancelářích síť 500 bezdrátových uzlů připojených k Ethernetu, což jim umožňuje testovat zákaznický kód v reálných podmínkách. Mohou vzdáleně aktualizovat zařízení během několika minut namísto hodin / dní, když se musí fyzicky dotknout každého zařízení.
Základní deska má několik možností napájení, včetně mini USB, které se připojuje k počítači, přenosné baterie nebo 5V nástěnné nabíječky. Základní deska má také displej, dvě tlačítka pro přihlášení uživatele, dvě LED, dvě okamžitá tlačítka a snímač teploty / vlhkosti.

Blokové schéma bezdrátové vývojové sady Silicon Labs Gecko Silicon Labs Začínáme Průvodce obrázek Klikněte pro zvětšení.
Základní deska v podstatě umožňuje uživatelům programovat bezdrátový SoC EFR32xG21.
Existuje nespočet důvodů, proč implementovat odpovídající zabezpečení do vašich bezdrátových projektů. Výrobci usnadňují a usnadňují konstruktérům přijímání vhodných opatření, aby se špatní aktéři dostali dál od svých mikroprocesorů.
To umožňuje technikům chránit zdrojový kód a duševní vlastnictví, kontrolovat aktualizace OTA (vzduchem) před instalací, zajistit neomezený přenos dat a bezpečně komunikovat s počítači založenými na internetu.

