česky english Vítejte, dnes je středa 25. prosinec 2024

Ochrana dat v nízkopříkonových vestavných aplikacích

DPS 1/2017 | Články
Autor: Alexis Alcott, Microchip Technology

Ve světě, který je síťovými technologiemi „protkán“ stále větší měrou, se klíčovými požadavky na vyvíjené aplikace stávají zabezpečený přenos a ukládání dat spolu s dlouhou výdrží bateriového zdroje napájení. A právě odpovídající ochranu dat pro nízkopříkonové aplikace nabídne i rodina mikrokontrolérů (MCU) PIC24F „GB2“. Ta v sobě integruje plnohodnotnou hardwarovou šifrovací jednotku s podporou AES, DES a 3DES, ke generování klíčů pro kódování, dekódování a ověřování dat slouží generátor náhodného čísla RNG (Random Number Generator) a bezpečné uložení klíče zase umožňuje paměť OTP (One-Time-Programmable) s 512 bity.

Jak jsme již naznačili, jedná se o MCU s integrovanou hardwarovou šifrovací jednotkou a technologií XLP (eXtreme Low Power) pro ochranu dat v zabezpečených vestavných aplikacích s nízkou vlastní spotřebou. Řada jiných šifrovacích řešení si bude žádat větší výkony a s nimi i výkonnější 32bitové mikrokontroléry, které však baterii nemusí příliš šetřit. Specifikace technologie XLP pro rodinu „GB2“ naštěstí stanovují odběr ve spánkovém režimu na pouhých 18 nA a za běhu programu pak 180 μA/MHz, což bude ideálním řešením právě pro bateriové zdroje napájení.

Abychom však mohli propojit aplikaci se zbytkem světa, přináší „GB2“ integrované rozhraní USB pro snadné spojení s flash disky nebo počítači. Vývojáři se však mohou připojovat i bezdrátově a využívat přitom certifikovanou podporu ze strany Microchipu pro technologie Wi-Fi®, ZigBee® nebo Bluetooth® Low Energy. I tyto zmiňované moduly pak rovněž umožňují vykazovat ve spojení s internetem nebo dalšími protokoly nízkou vlastní spotřebu.

Cílové aplikace

Díky nízkému proudovému odběru a také možnosti zabezpečení dat můžeme rodinu „GB2“ nasadit v celé řadě průmyslových, počítačových nebo zdravotních (fitness) aplikací. Jako příklad uvedeme zajištění dveřních zámků spolu se systémy pro řízení přístupu, ať již je budeme ovládat přes klávesnici, magnetickou kartou, nebo bezdrátově. Z dalších aplikací vybíráme bezpečnostní kamery a platební terminály POS, kdy v obou případech vyžadujeme skutečně vysokou úroveň ochrany dat. A pak zde máme spoustu senzorových uzlů zapojených v internetu věcí (IoT). I takové aplikace mohou při sledování tlaku, teploty, intenzity osvětlení nebo vlhkosti těžit právě z nízké spotřeby a zabezpečeného provozu svého mikrokontroléru.

V oblasti výpočetní techniky se „GB2“ stává skvělou volbou pro nízkopříkonová periferní zařízení s požadavky na malou spotřebu a USB či bezdrátové rozhraní, např. sluchátka nebo bezdrátové tiskárny. V rámci zdravotnictví a oblasti fitness doplňků se zase potkáváme třeba s krokoměry a další nositelnou elektronikou, která sbírá citlivé osobní údaje a ještě k tomu potřebuje komunikovat s dalšími zařízeními typu chytrých telefonů, tabletů či osobních počítačů.

Obr. 1 Příklady vybraných aplikací

Bez zajištěného ukládání dat se prostě neobejdeme v řadě aplikací, včetně těch, které zapisující údaje na flash disky, nebo dalších, které zase musí natahovat data a pracovat přitom s různými konfiguračními soubory. Ať již tedy data ukládáme „kousek“ od MCU na desce plošného spoje a využíváme přitom externí paměť, jako je např. EEPROM, nebo vše odesíláme přes USB či bezdrátovým spojem do jiného zařízení a stále přitom máme na mysli integritu svých dat, bez vhodného kódování se prostě neobejdeme.

Šifrovací jednotka

Rodina mikrokontrolérů PIC24 „GB2“ zahrnuje plnohodnotnou hardwarovou šifrovací jednotku s podporou AES, DES a také Triple DES. Je velmi dobře konfigurovatelná, a to včetně možností 128-, 196- nebo 256bitového šifrování a dešifrování AES. Pro celou řadu aplikací vyžadujících zabezpečený přenos dat včetně jejich ukládání, „GB2“ v rámci takových postupů rovněž podporují veškeré režimy (ECB, CBC, CFB, OFB a CTR, který se také používá pro podporu GCM).

Tím, že zmíněné funkce implementujeme hardwarově a ne softwarově, snižujeme zároveň zatížení procesoru. Hardwarová šifrovací jednotka kromě toho může oproti softwaru provádět nezbytné výpočty mnohonásobně rychleji. Přesněji řečeno, hardwarová implementace potřebuje k dokončení operace s daným blokem dat jen několik stovek cyklů, zatímco v případě softwaru musíme počítat s několika tisíci cykly na blok. Když se data zpracovávají, může se CPU v případě HW implementace „věnovat“ dalším věcem. Uvažujeme-li však SW řešení, bude jednotka CPU po dobu vykonávání této činnosti blokována.

Obr. 2 Časová náročnost hardwarově řešeného šifrování

Základní doba potřebná k této operaci bude záviset na činnostech, které provádíme, množství dat, která potřebujeme zašifrovat, a také síle použitého klíče. Šifrovací jednotka pracuje bez jakéhokoli zásahu CPU, takže MCU může provádět instrukce, zatímco dochází ke kódování. Přibližnou časovou náročnost řady šifrovacích režimů rodiny PIC24 „GB2“ vidíme na obr. 2. Jedná se o další příklad periférií od společnosti Microchip nezávislých na jádru – tzv. Core Independent Peripherals.

Pokud stihneme dokončit práci s menším počtem cyklů, rovněž se to ve výsledku promítne do celkové spotřeby. Vývojáři proto mohou nechat běžet MCU na nižší frekvenci a šetřit přitom energii nebo zase s vyšším kmitočtem, kdy pak ale úlohu vykonávají svižněji, a mohou proto systému umožnit výrazně rychlejší návrat do nejúspornějšího režimu spánku. Pro svou aplikaci si však můžeme vybrat i menší a také levnější mikrokontrolér s nižšími požadavky na paměť nebo zpracování a stále nám přitom ještě zůstane spousta výkonu a také prostoru pro zbytek aplikace.

Pojďme se nyní podívat na konkrétní příklad 128bitového AES v rámci šifrovací jednotky s počtem 250 cyklů na blok. Ke zpracování předpokládáme 1 024 bajtů dat. Budeme-li pracovat na plné rychlosti, tj. 32 MHz, dostáváme 16 000 000 cyklů za vteřinu. Maximální propustnost pak bude 1 024 000 bajtů za vteřinu.

rovnice 1

Ke stanovení potřebného množství energie nyní vezmeme objem dat ke zpracování (1 024 bajtů) a zjistíme počet cyklů, které šifrování zabere. K výpočtu výsledného množství energie spotřebované při dokončení tohoto úkolu použijeme rychlost procesoru 32 MHz a budeme přitom předpokládat maximální proudovou spotřebu 7,6 mA na 32 MHz a dále při 2 V. Dostáváme tedy 0,001 s nebo 1 ms, resp. 0,0076 mAs.

rovnice 2, 3

Generování klíče

K vytvoření klíčů pro kódování, dekódování a také ověřování slouží generátor RNG. S obtížnou reprodukovatelností takových klíčů jde ruku v ruce též vyšší úroveň zabezpečení. Rodina „GB2“ podporuje jak true RNG, tak i pseudo RNG. Skutečně náhodné klíče nemůžeme replikovat a snižujeme tak možnost případného nabourání se do systému, kterou oceníme např. v zabezpečovacích nebo herních aplikacích. Některé aplikace (simulace, modelování) však upřednostňují deterministické rysy pseudo RNG, a tak „GB2“ podporuje obě varianty – true i pseudo.

Bezpečné uložení klíče

Paměť OTP pro uložení šifrovacího klíče chrání před případným přečtením nebo přepsáním ze strany softwaru a klíče se tak stávají „programově bezpečné“. Nemáme- li tedy zabezpečené úložiště, bude poněkud snazší takové klíče zneužít – zejména pak ve spojení s bootloaderem. V rámci 512 bitů OTP dokážeme uložit hned několik klíčů. Jestliže zákazník používá 256bitové AES, uložíme klíče dva a pro 128bitové AES zase čtyři. V případě DES pracujeme s délkou klíče 64 bitů, takže jich můžeme uložit rovných osm.

Další způsob, jak dosáhnout prakticky neomezeného počtu klíčů, spočívá v konceptu KEK (Key Encryption Key). Šifrované klíče uložíme v paměti flash nebo RAM a klíč, který byl k jejich zašifrování použit, může být uložen v OTP. Klíče lze rovněž uložit v externí paměti a pro dešifrování s využitím KEK pak natáhnout do RAM. V takovém případě zmíněné klíče modul dekóduje v registru, k jehož čtení nemá software přístup.

Příklad: elektronické zámky dveří

Obr. 3 Blokový diagram aplikace elektronického dveřního zámku

Na obr. 3 vidíme příklad blokového diagramu elektronického dveřního zámku nebo též systému pro řízení přístupu. K zakódování uživatelských dat, jako jsou např. jména zaměstnanců, kódy a údaje nebo časy příchodu a odchodu, zde slouží šifrovací jednotka na „GB2“. V závislosti na oprávnění konkrétních osob to může rovněž sloužit k ověřování před vstupem do některých zabezpečených míst v budově. Díky zajištěnému uložení klíče pak budou data chráněna až do okamžiku jejich dešifrování.

Integrovaná periferní jednotka mikrokontroléru CTMU (Charge Time Measurement Unit) může kromě toho sloužit k implementaci dotykových tlačítek nebo pro ovládací klávesnici zajistit detekci přiblížení. Pokud tedy se systémem nikdo nekomunikuje, může přejít do spánkového režimu s nejnižší spotřebou proudu a prodlužovat přitom výdrž napájecí baterie.

K ohlášení, že motorek odjistil západku ve dveřích, slouží jednoduché přerušení. Některé z takových systémů budou napájeny přímo, zatímco jiné ze čtyř baterií typu AA. Zařízení tak může běžet po celou dobu na baterie, které jen každých několik let vyměníme. „GB2“ bude mít rovněž vývod Vbat pro záložní baterii spolu s RTCC (Real Time Clock Calendar) pro zajištění správné časomíry, a to i v případě vybité hlavní baterie. Magnetické karty nebo bezdrátová rozhraní pak využijeme díky UARTu. V některých špičkových aplikacích dostávají uživatelé přístupový kód k uzamčení nebo odemčení dveří rovnou na svůj chytrý telefon. Taková komunikace se může uskutečnit prostřednictvím Bluetooth LE nebo NFC (Near Field Communication).

Další příklad: zajištění systémových dat v EEPROM

Spousta běžných aplikací ukládá důležité parametry na systémové úrovni v externí paměti EEPROM na desce plošného spoje. Třebaže jsou taková data uložena lokálně, bude stále důležité je chránit. Lidé někdy z koncových produktů takové čipy odstraňují a nahrazují je s pozměněnými parametry, jen aby dosáhli jiných vlastností zařízení. Jedná se např. o automobily, video herní systémy nebo pinballové automaty. V autech se to třeba týká EEPROM s omezujícími parametry motoru. Lidé však chtějí větší výkony, což se po takovém zásahu pravděpodobně odrazí nejen na dosahované účinnosti, ale také vypouštěných emisích vozidla. V herních systémech může být zase pozměněna obtížnost nebo ohrožena pravděpodobnost výhry. Zmiňovaným nechtěným modifikacím ale dokážeme zabránit, budou-li data v EEPROM vhodně šifrována.

Vývojové prostředí

Rodina PIC24 „GB2“ pracuje s kompletním ekosystémem okolo vývojové desky Explorer 16 od Microchipu. Jediné, co jako vývojáři potřebujeme, tak bude zásuvný modul PIM (plug-in module) s novým procesorem. Dva nové moduly PIM jsme na obr. 4 zvýraznili žlutě – jeden pro USB a další pro aplikace bez USB.

Obr. 4 Se spuštěním návrhu pomohou vývojové nástroje

Další hardwarová spojení s USB, smart kartami nebo SIM zajišťují flexibilní dceřiné karty. A nechybí zde ani řada certifikovaných dceřiných karet s podporou bezdrátové komunikace, včetně Wi-Fi a Bluetooth LE.

Závěr

Rodina mikrokontrolérů PIC24F „GB2“ řeší požadavky vestavných aplikací v současném věku internetu s ohledem na zabezpečení dat a delší výdrž baterie.

K zabezpečenému přenosu dat a jejich ukládání rodina PIC24F využívá integrovanou šifrovací jednotku pro kódování, dekódování a také ověřování. Další bezpečnostní úroveň v otázce generování klíče a jeho ukládání pak představuje generátor RNG spolu s pamětí OTP.

Uživatelé mohou dosáhnout bezpečného uložení dat, včetně jejich přenosu, aniž by přitom spotřebovali spoustu energie. Mohou za to právě nízkopříkonové specifikace XLP, které v přenosných aplikacích umožňují delší výdrž bateriového zdroje.

Rodina „GB2“ také umožňuje snadné propojení s dalšími systémy, ať již to bude „drátově“, nebo bez nich. Díky integrovanému USB se zase jednoduše připojíme k počítačům nebo flash diskům. A zapomenout nesmíme ani na jednoduše použitelná rozhraní UART pro certifikované bezdrátové moduly od Microchipu, s jejichž pomocí pak „GB2“ vytváří nízkopříkonové, propojené a zabezpečené aplikace.

Kam dál

Pro podrobnější informace a ke stažení datasheetu, odborných příruček věnovaných této rodině MCU a další související dokumentace navštivte webové stránky www.microchip.com/pic24fj128gb204.