Az IoT eszközök biztonságának egyszerű megvalósítása SRAM PUF-kulcsok és TrustZone alapú elszigetelés segítségével
Contributed By DigiKey's North American Editors
2019-09-05
A dolgok internete (IoT) köré épült rendszerek egyre bonyolultabbak, így egyre jobb megoldások szükségesek a megfelelő rendszerbiztonság kialakításához és a szüntelen helyi és távoli támadások elhárításához. Az általában korlátozott erőforrásokkal rendelkező IoT eszközök biztonságossá tételére azonban nemigen helyeződött nagy hangsúly, és a megbízható működést vagy a támadási felületek laza szoftveres befoltozásával vagy a bonyolult titkosítási algoritmusokkal rendelkező nagyon kifinomult és drága lapkák alkalmazásával biztosították. A fejlesztőknek ezeknél összetettebb, ugyanakkor egyszerűbben használható megoldásokra van szükségük a megbízható működés gyors megteremtéséhez és megvalósításához.
Olyan technológiák jöttek létre, mint például a statikus véletlen elérésű memóriára (SRAM-ra) épülő fizikailag nem klónozható funkciók (PUF) és az Arm TrustZone nevű megoldása, amelyeket azóta továbbfejlesztettek, hogy megfeleljenek a beágyazottsággal kapcsolatos biztonsági követelményeknek és az IoT fejlesztők igényeinek. Ez a cikk az NXP Semiconductors, a Microchip Technology és a Maxim Integrated PUF és TrustZone technológiáira épülő megoldásait ismerteti.
SRAM PUF technológia
Az SRAM PUF technológia – a hagyományos titkosítási módok pehelysúlyú hitelesítési alternatívájaként – megtalálható az olyan biztonsági célú lapkákban, mint például az NXP cég LPC55S6x mikrovezérlő-családja, ahol ez képezi a megbízhatóság és a szolgáltatás alapját (1. ábra).
1. ábra: Az LPC55S6x mikrovezérlő-család blokkvázlatán látható, hogyan vannak beépítve az SRAM-ra épülő PUF technológiát tartalmazó biztonsági célú alkotóelemek. (Forrás: NXP)
A PUF technológia eltér a hagyományos, nem felejtő memóriában való kulcstárolástól, ahol a biztonsági kulcsokat az eredeti berendezésgyártó (OEM) illeszti be hagyományos beégetéses módszerrel vagy pedig egyszer programozható (OTP) memória alkalmazásával. A PUF technológia ehelyett az SRAM-bitcellák alapvető tulajdonságát, a természetes, véletlenszerű villamosságingadozását használja fel, és ezt az egyedi „ujjlenyomatot” alakítja át egy titkos rejtjelkulccsá, amely aztán a biztonsági alrendszer alapjául szolgál. Ez az igen erős és megbízható kulcs minden alkalommal és minden körülmények között újraalkotható ugyanazon rejtjelkulccsá. Ennek a módszernek számos előnye van:
- Nincs szükség harmadik fél általi, esetleg nem megbízható környezetben történő kulcskezelésre.
- A kulcstároló és a szolgáltató rendszert nem kell betölteni a lapka gyártásakor.
- hanem az beállítható a gyártási folyamat egy későbbi szakaszában, vagy akár már üzembe helyezett készülékek is továbbfejleszthetők vele.
- Az adott SRAM lapkához való fizikai hozzáférés nélkül ezeknek a biztonsági kulcsoknak a visszafejtése csaknem lehetetlen feladat.
- A kulcsokat csak akkor hozza létre a rendszer, amikor szükség van rájuk, és nem tárolja őket.
- Az a tény, hogy a kulcs nincs állandóan tárolva a rendszerben, és nem is létezik, amikor a készülék nincs használatban, nagyon megnehezíti a támadók számára a memória tartalmához való fizikai hozzáférést annak károsítása céljából.
Arm TrustZone
Az Arm Cortex®-M23 és Cortex-M33 processzormagokba integrált, ultra kisfogyasztású és beágyazott felhasználásra optimalizált TrustZone technológia védett környezetbe helyezi az olyan biztonság szempontjából kritikus tényezőket, mint például az indítókódot, a biztonsági beállításokat, a biztonsági kulcsokat, a titkosítási könyvtárakat és a belső vezérlőprogram (firmware) frissítéseit (2. ábra). A TrustZone-nal ellátott mikrovezérlőkben például a feladat szempontjából létfontosságú kódot a rendszer a nagy kódtömbökről való leválasztása után teljes mértékben ellenőrzi annak megelőzése érdekében, nehogy a fejlesztők által benne hagyott esetleges programhiba azt befolyásolni tudja.
2. ábra: A TrustZone lehetővé teszi több szoftveres biztonsági tartomány kialakítását, amelyek mindegyike csupán a megbízható szoftverkörnyezetek számára engedélyezi a megbízható memóriához és a bemenetekhez/kimenetekhez való hozzáférést. (Forrás: NXP)
Ami a megbízható adatokat és kódokat illeti, a TrustZone azzal biztosítja ezek biztonságát, hogy a szoftver kritikus részeit egymástól elszigeteli, és azokat egy felhasználói szoftver általi írástól és olvasástól védett hardveres felügyeleti környezetben futtatja.
A TrustZone lehetőséget ad a fejlesztőknek arra, hogy a memóriát megbízható és nem megbízható területekre osszák, így hitelesítés hiányában még akár a programhiba-javítási próbálkozások is elérhetetlenné tehetők még a megbízható kódok és adatok számára is. Ezenkívül egy nem megbízható CPU csak a nem megbízható memóriaterületen lévő adatokhoz tud hozzáférni, így csak a nem megbízható memóriaterületen lévő programokat tudja futtatni.
Fontos, hogy miközben a TrustZone mindezeket a biztonsági funkciókat nyújtja, továbbra is kis megszakításkésleltetéssel dolgozik mind a megbízható, mind a nem megbízható tartományban. Sőt mi több, nem növeli a többletkód-mennyiséget, a ciklusszámtöbbletet, és nem jellemző rá a virtuális alapú megoldások bonyolultsága sem.
A PUF és a TrustZone fizikai megvalósítása
Az NXP az Intrinsic ID cégnek (a PUF feltalálójának) a hardveres IP-blokkját (és az azt támogató szoftverkönyvtárakat) használta fel az LPC55Sxx mikrovezérlőkbe integrált saját PUF-ok kialakítására (3. ábra). A kulcsok generálását, a kulcsok tárolását, a készülékek hitelesítést, a kulcsszolgáltatást és a lapkaerőforrások kezelését az Intrinsic ID beágyazott hardveres IP-blokkja, a QuiddiKey végzi.
3. ábra: Az NXP az Intrinsic ID hardveres IP-blokkját, és az azt támogató szoftverkönyvtárakat használta fel az LPC55Sxx mikrovezérlőkbe integrált saját PUF-ok kialakítására. Az IP-blokk végzi a kulcsok generálását és azok kezelését. (Forrás: Intrinsic ID)
Az NXP az LPC55Sxx mikrovezérlőkben a TrustZone technológiát is alkalmazza, és az IoT biztonságnak ilyen CPU-központú megközelítésével a beágyazott rendszer egy megbízható és egy nem megbízható, két egymástól elszigetelt részre tagolódik.
A Microchip Technology SAM L10/11 mikrovezérlőiben például a TrustZone az egész rendszerre kiterjedő védelmet kínál, ahol a dolgok internetéhez tartozó eszközök megbízható és nem megbízható állapotúakra oszthatók fel. A hatékony beágyazás érdekében viszont a megbízható és a nem megbízható kód is ugyanazon a CPU-n fut.
Ez a CPU-központú megközelítés azért fontos, mert az olyan kapcsolódási célú technológiákat kiszolgáló protokollcsomagokkal, mint például a Wi-Fi, a Bluetooth és a TLS (Transport Layer Security, átviteli rétegbeli biztonság) a korszerű mikrovezérlőkbe épített szoftverek száma rohamosan nő. Ez a növekvő kódbázis jelentősen megnöveli az IoT eszközöknek a rosszindulatú támadásoknak való kitettségét. Az okosotthonoknál és okosépületeknél például egy sérült protokollcsomag az interneten keresztül elérhető ajtózárakat, garázsajtónyitókat és biztonsági kamerákat nagyon sebezhetővé teheti.
Ha azonban az IoT fejlesztők a feladat szempontjából létfontosságú kódokat a TrustZone által védett környezetbe helyezik, még a külső cégek által írt protokollcsomagokban lévő programhibák sem befolyásolhatják súlyosan az eszközök működőképességét.
Kártyaszintű biztonság
Az IoT biztonsági paradigmának egy másik világosan körvonalazott alterülete a helyi peremhálózati eszközök egymás közötti, illetve a felhő és a peremhálózati eszközök közötti kommunikációjának a leegyszerűsítése. A rendelkezésre álló referenciaterveknek köszönhetően ez megvalósítható, így a fejlesztők viszonylag könnyen úrrá tudnak lenni a biztonsági és kommunikációs protokollok bonyolultságán. A Maxim Integrated MAXREFDES155# DeepCover® referenciaterve és a Microchip AC164164 PIC®-IoT WG jelű fejlesztőkártyája mindezt remekül szemlélteti.
A MAXREFDES155# biztonsági kialakításnál egy Arm mbed™ modul van csatlakoztatva egy érzékelő végponthoz egy 300 mm hosszú kábellel. Az érzékelő végpont egy DS28C36 DeepCover biztonsági hitelesítőegységet, egy infravörös (IR) hőérzékelőt és az ahhoz tartozó célzólézert tartalmaz (4. ábra).
4. ábra: A Maxim Integrated MAXREFDES155# DeepCover nevű IoT kapcsolódást biztosító referenciaterve egy Arm mbed modult, egy I2C sínen kapcsolódó érzékelő végpontot és a felhőhöz Wi-Fi útján történő kapcsolódási lehetőséget tartalmaz. (Forrás: Maxim Integrated)
A DS28C36 biztonsági lapka a biztonsági állapot ellenőrzésére és a szintérzékelésre két hitelesített, általános célú be- és kimeneti (GPIO) lábbal rendelkezik (amelyek használata opcionális). Ez lehetővé teszi az IoT fejlesztők számára egy hitelesített EEPROM (elektronikusan törölhető programozható csak olvasható memória) beprogramozásával és egy 17 bites csak visszaszámláló egységgel a perifériák használatának figyelését és korlátozását. A DS28C36 a következő alkalmazásokat könnyíti meg: a kétirányú hitelesítés, a rendszeradatok (például rejtjelkulcsok) biztonságos tárolása, a feladat szempontjából létfontosságú adatok ellenőrzése, a biztonságos indítás és a végtermék használatának ellenőrzése.
A MAXREFDES155# referenciatervben lévő modul tartalmaz egy DeepCover biztonsági segédprocesszort, Wi-Fi kommunikációt, folyadékkristályos kijelzőt (LCD), nyomógombos kezelőszerveket és állapotjelző világítódiódákat (LED). A referenciatervnél az MAX32600MBED# mbed fejlesztőkártya van felhasználva az azonnali tesztekhez, a modul Wi-Fi-áramköre pedig megkönnyíti a kommunikációt a web szerverrel.
A MAXREFDES155# referenciatervnél az mbed modulon lévő biztonsági segédprocesszor a DS28C36 hitelesítőlapka kisegítésére szolgál, és a DS28C36 biztonsági műveleteinek részét képező HMAC (Hash-based Message Authentication Code, kivonatalapú üzenethitelesítő kód) és ECDSA (Elliptic Curve Digital Signature Algorithm, elliptikus görbéjű digitális aláírási algoritmus) számításokat könnyíti meg.
A segédprocesszor rendelkezik egy titkosítóeszköz-alapkészlettel, amely megkönnyíti az IoT tervezők számára a titkosítóprogramok létrehozását és az FIPS/NIST szervezetek (Federal Information Processing Standards/National Institute of Standards and Technology) valódi véletlenszám-generátorának (RNG) beépítését. A nyilvános és privát biztonsági kulcsok a NIST által meghatározott szabványoknak megfelelően működnek. Ez tartalmazza a FIPS 186 szabványt és az ECDSA aláírás-generáló és ellenőrző mechanizmust, amely egy kétirányú, aszimmetrikus kulcsos hitelesítési modellt támogat.
A felhővel való kapcsolat biztonságának egyszerűsítése
A Microchip AC164164 PIC-IoT WG jelű fejlesztőkártyája hasonló elemeket tartalmaz, de az IoT-csomópontnak a felhő-platformokkal (pl. Google Cloud) való kapcsolatának egyszerűsítésére összpontosít. A cég PIC mikrovezérlőire épülő fejlesztőplatform a nagy szoftveres keretrendszerek és a valós idejű operációs rendszereket (RTOS) használó platformok használatával együtt járó sebezhetőség megszüntetésére az ATECC608A segédprocesszort használja.
Az AC164164 egy IoT tervezőplatform, amelyben a peremhálózati eszköz és a felhő közötti kapcsolatot egy a Google Cloud IoT Core szolgáltatáshoz gyárilag regisztrált és beállítás nélkül (ZTP, zero-touch provisioning) azonnal használatra kész biztonsági elem biztosítja. A fejlesztőkártya az ATECC608A biztonsági segédprocesszor mellett tartalmaz egy PIC24FJ128GA705 mikrovezérlőt is, amely kevesebb kóddal és kisebb fogyasztással kezeli a bonyolult alkalmazásokat.
Az IoT csomópontot egy teljes értékű IEEE 802.11b/g/n IoT Wi-Fi-s vezérlőegység kapcsolja a Google Cloud felhőhöz. Ennek eredményeképpen az IoT fejlesztőknek nem kell külön szakértelemmel rendelkezniük a vezeték nélküli hálózati protokollok, a biztonság és a hardverkompatibilitás területén ahhoz, hogy biztonságos IoT termékeket tudjanak megtervezni.
Összegzés
Mivel az IoT kialakításoknál a fő processzor vagy a mikrovezérlő mellett már segédlapkaként rendelkezésre állnak célirányos biztonsági lapkák is, ezért ez lehetővé teszi a fejlesztők számára, hogy az IoT csomópontoknak a végpontokkal, illetve a felhő-platformokkal való kapcsolatát külön biztonsági szakértelem nélkül is biztonságossá tegyék. Ahogyan az IoT rendszerek biztonsági követelményei egyre fokozódnak, az olyan kiegészítő technológiák, mint a PUF és a TrustZone beépítésével ezeknek a kis fogyasztású, olcsó mikrovezérlőknek a biztonsági minősítése is még nagyobbá tehető.
Mindezeken túlmenően a rendelkezésre álló referenciatervek és fejlesztőkártyák tovább egyszerűsítik a biztonsági egyenletet azáltal, hogy többszintű beágyazott védelmet biztosítanak az IoT eszközök széles körében.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




