Jste zde

Bezpečnost IoT - Část 2: Ochrana klíčů

Pokud nejsou zabezpečeny klíče pro kryptografické funkce, nepomůže ani nejdokonalejší šifrování. Toho si jsou výrobci polovodičů vědomi, a proto se zabývají ochranou klíčů a dalších důvěrných dat prostřednictvím různých mechanismů zabudovaných přímo do specializovaných bezpečnostních integrovaných obvodů a procesorů.

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 význam klíčů v kryptografii a popisuje různé mechanismy ochrany klíčů zabudované přímo do procesorů od Maxim Integrated , NXP , STMicroelectronics a Microchip Technology.

Role tajných klíčů v kryptografii

Celá řada hardwarem podporovaných kryptografických algoritmů používá pro šifrování a dešifrování zpráv klíče. Úroveň zabezpečení jednotlivých algoritmů je tak přímo dána ochranou klíčů a důvěrných dat. Již v 19. století kryptograf Auguste Kerckhoffs poznamenal, že systém zůstane bezpečný, dokud zůstanou klíče také v bezpečí. Toto tvrzení je známé pod pojmem Kerckhoffův zákon.

Ochrana bezpečnostních klíčů

I když je ochrana kryptografických dat koncepčně jednoduchá, v praxi to zas tak jednoduché není. Bezpečnostní protokoly a algoritmy vyžadují určitou kombinaci statických a krátkodobých klíčů. Například protokol Transport Layer Security (TLS) používá statický klíč během autentizace a sdílený krátkodobý (efemérní) klíč relace pro bezpečnou výměnu zpráv.

Americký národní institut pro standardy a technologie (NIST) definuje 19 různých typů klíčů a 11 typů přidružených dat mezi které patří parametry eliptické křivky či průběžné výsledky šifrování. NIST doporučuje, aby informace spojené s použitím klíče byly chráněny po určitá časová období, jak je uvedeno v tabulce 1.

Tabulka 1: Výběr z doporučení NIST uvádí několik různých typů klíčů a přidružených dat, které by měly být chráněny po určité časové období. (Zdroj tabulky: Digi-Key Electronics, od NIST)

U embeded zařízení není jednoduché ochránit klíče a přidružená data v každé fázi procesu: v klidu, při přenosu a během používání při šifrování. Zabezpečení dat v klidu vyžaduje mechanismy bezpečného ukládání. Zabezpečení dat při přenosu vyžaduje metody ochrany při přenosu v síti nebo přes systémovou sběrnici. Zabezpečení dat během provádění kryptografických algoritmů je nutné použít mechanismy, které zabraňují expozici dat nezvaným hostům.

Jak zabezpečit citlivá data přímo v polovodiči

Procesory nebo integrované obvody s podporou kryptografie obvykle nabízí určitý typ bezpečné energeticky nezávislé paměti pro ukládání klíčů a jiných utajených dat. Přístup do této paměti je odlišný u procesoru a u speciálního bezpečnostního čipu.

Speciální bezpečnostní čipy jsou navrženy tak, aby sloužily jako samostatné subsystémy, které snižují zatížení hostitelského procesoru. Veškeré kryptografické algoritmy běží právě v samostatném bezpečnostním čipu a hlavní procesor se může věnovat plně aplikačnímu kódu. Bezpečnostní čip se k hostitelskému procesoru obvykle připojuje prostřednictvím sériové sběrnice.

Například bezpečnostní čip DS28C36  od Maxim Integrated slouží k provádění autentizace a připojuje se k hlavnímu procesoru pomocí sběrnice I2C. K dispozici jsou dva obecné I / O (GPIO) porty, které se používají k poskytnutí zpětné vazby (úspěch nebo selhání autentizace) do hostitelského procesoru.

Obrázek 1: Bezpečnostní čip DS28C36 od Maxim Integrated zjednodušuje implementaci bezpečnostních prvku do designu a zvyšuje ochranu interních klíčů. (Zdroj obrázku: Maxim Integrated)

Pro bezpečnostní čipy je k dispozici příslušná knihovna software pod názvem Plug and Trust Middleware od společnosti NXP, která obsahuje příslušné funkce pro bezpečnostní čipy SE050 a A71CH (obrázek 2).

Obrázek 2: Softwarové knihovny, jako je Plug & Trust Middleware od NXP umožňují vývojářům používat několik intuitivních volání funkcí k vytvoření klíčů (vlevo), přístupových klíčů (vpravo) a plně využívat základní funkce v bezpečnostních prvcích SE050 a A71CH NXP . (Zdroj obrázku: NXP)

Vytvoření nového klíče (obrázek 2, vlevo) vrátí keyId. Při pozdějším použití klíče se již odkazuje na jeho keyId (obrázek 3, vpravo) nikoli na skutečný uložený klíč. Pomocí NXP Plug & Trust Middleware lze rychle vytvářet zabezpečené aplikace pomocí Arduino NXP Kinetis Freedom K64F vývojového kitu s rozšiřující deskou OM-SE050ARD pro čip SE050 nebo OM3710 / A71CHARD pro čip AC71CH.

Speciální integrované obvody bezpečnosti DS28C36, SEX50, AC71CHTK2 / TOBC2VJ nabízejí několik různých výhod. Mezi ně patří jednoduchá implementace bezpečnostních funkcí do zařízení, které ulehčí práci procesoru, který může svůj výkon plně použít na aplikační kód. Například DS28C36 obsahuje hardwarové kryptografické akcelerátory, generátory pravých náhodných čísel a navíc 8 Kb zabezpečené EEPROM. Když DS28C36 ověřuje podpis firmware pomocí algoritmu Elliptic Curve (ECDSA), bezpečnostní čip zajišťuje ochranu dat v klidu, při přenosu i během používání, protože soukromý klíč, přidružená data (viz obrázek 1) a operace, které je používají zůstávají uvnitř čipu (obrázek 3).

Obrázek 3: Použitím bezpečnostního čipu DS28C36 se dosáhne toho, že soukromé klíče a přidružená data zůstávají pouze v čipu. (Zdroj obrázku: Maxim Integrated)

Ochrana bezpečnostního klíče přímo v procesoru

Při vývoji zařízení narazíme někdy na aplikaci, kdy není možné použít bezpečnostní čip. Může to být z důvodu místa na desce, tlaku na cenu nebo je nutné použít jiné kryptografické metody, které bezpečnostní čipy neposkytují. A tak je nutné, aby se bezpečnostní algoritmy a funkce prováděly přímo v procesoru. Například STM32WB55 od STMicroelectronics a ATSAML11 od Microchip Technology mají integrovány šifrovací akcelerátory a mechanismy na ochranu osobních údajů. Procesory poskytují řadu dalších sofistikovaných bezpečnostních prvků, které jsou popsány v části 3 této série článků o bezpečnosti IoT.

STM32WB55 je dvoujádrový procesor, z nichž první jednotka CPU1 je procesor Arm Cortex-M4, který komunikuje s mikrokontrolérem Arm Cortex-M0 + (CPU2) prostřednictvím vyhrazeného meziprocesorového komunikačního rozraní IPCC(inter-processor communication controller) a pomocí semaforového mechanismu (HSEM). CPU2 poskytuje zabezpečenou paměťovou oblast pro úložiště zákaznických klíčů (CKS) používané hardwarovým akcelerátorem Advanced Encryption Standard (AES) (obrázek 4).

Obrázek 4: Dvoujádrový procesor STM32WB55 umožňuje přímý přístup ke klíčům pouze prostřednictvím jádra subsystému (CPU2) a umožňuje používat důvěryhodné aplikace spuštěné v hostitelském jádře (CPU1). (Zdroj obrázku: STMicroelectronics)

Architektura STM32WB55 chrání CKS klíče před přístupem přes debugovací port nebo pomocí nezabezpečených rutin, které běží v aplikačním kódu na procesoru CPU1. Důvěryhodné aplikace spuštěné v hostitelském CPU1 mohou současně používat specifické CKS klíče pouze pomocí odkazů na příslušné indexy klíčů. Hardwarový blok AES přijímá požadovaný klíč z oblasti CKS prostřednictvím interní sběrnice, čímž se zajišťuje chráněný přenos klíčů.

U procesorů ATSAML11 na bázi Arm Cortex-M23 se využívá technologie Arm TrustZone. TrustZone používá hardwarové mechanismy pro vytvoření izolace mezi důvěryhodnými a nedůvěryhodnými funkcemi či daty. Procesory ATSAML11 používají TrustZone Implementation Defined Attribution Unit pro bezpečnostní politiku, včetně řízení diferenciálního přístupu k podoblastím paměti pomocí zabezpečeného a nezabezpečeného aplikačního kódu. 256bitová paměť s náhodným přístupem (RAM) zvaná TrustRAM, poskytuje další bezpečné úložiště pro krátkodobé klíče.

Nastavení bezpečnostního procesu

Procesory nebo speciální bezpečnostní čipy poskytují ochranu klíčů a přidružených dat v podobě poskytnutí bezpečného uložiště. Zranitelnost však často nastává při prvotním nahrání či spuštění bezpečnostního prvku nebo procesoru. Proto je nutné dodržet celý doporučený proces, aby nedošlo k úniku dat. Kyberzločinci rychle prodávají takové odcizené klíče a certifikáty na černém trhu, a to hackerům umožňuje proniknout do zabezpečených sítí se zdánlivě platnými přihlašovacími údaji.

Například Amazon Web Services, Microsoft Azure, Google Cloud a další poskytovatelé cloudových služeb poskytují vývojářům vývojové kity s přednastavenými klíči a certifikáty, ale pro produkční nasazení je nutné použít své vlastní klíče a certifikáty. Například Microchip poskytuje nástroj Secure Thingz od Trustonic a IAR Systems, který umožňuje ochránit zákaznické klíče a certifikáty (obrázek 5).

 

Obrázek 5: OEM vývojáři mohou použít speciální nástroj pro ochranu svých zákaznických klíčů a certifikátů, které se později použijí při programování procesorů Microchip SAML11. (Zdroj obrázku: Microchip Technology)

V momentu, kdy je vše připraveno pro produkci, vývojář OEM použije nástroj Secure Thingz k poskytnutí klíčů a certifikátů do továrny Microchip v šifrované formě, kterou lze dešifrovat pouze hardwarovým zabezpečovacím modulem umístěným přímo v programovacím zařízení.  Tento proces umožňuje výměnu výrobních informací prostřednictvím nezabezpečených sítí, kde výsledkem jsou zařízení s procesory, které mají uvnitř nahrané tajné klíče a příslušný podepsaný firmware.

Technologie PUF

Technologie PUF se liší ukládáním klíčů. Standardní zabezpečení ukládá klíče do energeticky nezávislé paměti, kde je výrobci OEM vkládají pomocí jednorázového programování paměti (OTP).  Místo toho technologie PUF využívá náhodné elektrické variace bitových buněk paměti SRAM nebo jiného polovodiče a přeměňuje tento jedinečný „otisk prstu“ na tajný kryptografický klíč, který slouží jako základ bezpečnostního subsystému.

Přestože existují různé mechanismy PUF, základní postup zůstává stejný. Například mikrokontroler MAX32520 od Maxim Integrated používá PUF technologii pod názvem ChipDNA. Tato varianta PUF technologie se používá i v některých bezpečnostních integrovaných obvodů, kde se při generování klíče spoléhá na řadu analogových prvků a řídicí logiku (obrázek 6).

Obrázek 6: V technologii ChipDNA PUF od Maxim Integrated jsou náhodné stavy pole použity pro generování unikátního klíče daného zařízení. (Zdroj obrázku: Maxim Integrated)

U bezpečnostního čipu autentizace DS28C39 ECDSA společnosti Maxim Integrated je výstup z ChipDNA PUF funkce používán jako soukromý klíč pro operace ECDSA a jako soukromý klíč pro zabezpečení přidružených dat (obrázek 7).

Obrázek 7: Bezpečnostní čip autentizace od Maxim Integrated DS28C39 ECDSA používá soukromý klíč vytvořený pomocí technologie ChipDNA PUF. (Zdroj obrázku: Maxim Integrated)

NXP používá pro rodinu procesorů LPC55S technologii PUF založenou na náhodné elektrické variaci bitových buněk paměti SRAM (obrázek 8).

Obrázek 8: Rodina procesorů LPC55S od NXP využívá paměť SRAM pro generování digitálního otisku prstu a přidruženého aktivačního kódu, který se používá k šifrování nebo generování soukromého klíče. (Zdroj obrázku: NXP)

Použití technologie PUF vždy začíná operací zápisu, která vygeneruje jedinečný digitální otisk prstu a přidružený aktivovaný kód, který zůstává v platnosti, dokud není provedena nová operace zápisu. Aktivační kód uložený v chráněné flash paměti umožňuje rekonstruovat digitální otisk prstu z dat SRAM při zapnutí. S digitálním otiskem prstu lze šifrovat vlastní klíče nebo generovat klíče.

Pomocí aktivačního kódu, kódu klíče a indexu lze dešifrovat požadovaný soukromý klíč z příslušného slotu klíčů na čipu a doručit jej do kryptografického softwaru. Slot pro klíče 0 poskytuje speciální metodu dešifrování klíčů, která dodává klíč prostřednictvím interní sběrnice přímo do hardwarového kryptografického enginu procesoru AES (obrázek 9). Digitální podpis LPF55S PUF slouží jako šifrovací/dešifrovací klíč (KEK), který se používá k posílení ochrany tajných dat v klidu nebo při přesunu. Při použití šifrovacího/dešifrovacího klíče KEK není nutné použít velké bezpečné úložiště, a s tím související interní mechanismy potřebné k ochraně důvěrných dat.

Obrázek 9: Rodina procesorů LPC55S od NXP používá svůj digitální otisk prstu jako KEK k dešifrování klíčů v uložišti klíčů. (Zdroj obrázku: NXP)

Tato metoda umožňuje chránit různé typy klíčů a přidružených dat i v zařízeních s malým zabezpečeným úložištěm. Díky dostupnosti KEK generovaných PUF lze chránit IoT aplikace během celého vývojového cyklu.

Závěr

Dostupnost speciálních bezpečnostních integrovaných obvodů a zabezpečených procesorů s kryptografickými akcelerátory výrazně pomáhá zrychlit vývoj bezpečných systémů. Bezpečnost celého systému je závislá na bezpečnosti soukromých klíčů a dalších přidružených dat pro kryptografické mechanismy.

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

Hodnocení článku: