magyar elektronika

Elfogadom az adatkezelési tájékoztatóban foglaltakat:*

rutronik lidHogyan segít az STM32L5-sorozat leküzdeni az IoT kihívásait

A hardveres elkülönítés elvére épülő ARM TrustZone technológia CPU-alapú biztonságot nyújt egy különféle rendszereket felölelő chipre integrált rendszeren keresztül. Ez lehetővé teszi a megfelelő IoT-végpontok és a megbízható eszközpark kiépítését. Az ARMv8-M architektúra a TrustZone technológiát Cortex-M-alapú rendszerekre is kiterjeszti.

 

Napjainkban egyre több eszköz kapcsolódik egymáshoz vezeték nélkül az interneten keresztül. Ez megnövelte a megbízható funkciók iránti igényt az IoT-csomópontokon, különösen a fogyasztói cikkek, ipari eszközök és „háztartási készülékek” terén, mivel az ilyen internetkapcsolatok támadási felületet jelentenek a hackerek számára – a DDoS támadásoktól (elosztott szolgáltatásmegtagadás) kezdve a belső hálózatokhoz való illetéktelen hozzáférésig.
Elsőbbséget élveznek az olyan megoldások, amelyek a rendszerbe integrált hardverekben, nevezetesen a hálózatba kapcsolt, integrált eszközökben nyújtanak manipuláció elleni védelmet. A legfontosabb szempont azonban az, hogy a rendszerek fizikai szinten biztonságos indítási folyamatokkal rendelkezzenek, mivel a hackerek gyakran célozzák meg a célrendszerek újraindítási mechanizmusait. Ennek a fenyegetésnek a leküzdésére különféle szoftveres megoldásokat alkalmaznak, amelyek hardveres mechanizmusokra épülnek. Ilyen megoldás az ARM TrustZone technológia is. A piacon elérhető más megoldásokhoz hasonlóan a TrustZone sem képes tökéletes és örök időkre szóló védelmet nyújtani a kívülről érkező támadások ellen, de jelentősen megnehezíti a rendszerbe való behatolást.

 

rutronik 1

 

Megbízható védelmi funkciók a chip szintjén

A TrustZone által kínált védelem alapját két hardveresen elkülönített terület alkotja: a „biztonságos világ” és a „nem biztonságos világ” szintje. Ezek egyszerre, egyetlen magon keresztül valósíthatók meg, amivel megakadályozható, hogy a szoftverek közvetlen kapcsolatba kerüljenek nem biztonságos erőforrásokkal. A chipre integrált rendszeren (SoC) belüli két terület elkülönítése nemcsak a processzort, hanem a memóriát, az adatbuszok műveleteit, a megszakításokat és a perifériákat is magában foglalja.
A TrustZone technológia megteremti a rendszerszintű biztonság alapjait, és megbízható platformot kínál, amelyen a rendszer bármely része rugalmasan megvalósítható az említett keretrendszerben értelmezett „biztonságos világ” részeként. A kiépített alrendszer lehetővé teszi az eszközök védelmét a szoftveres és hardveres támadások ellen.
A TrustZone képes megfelelő védelmet nyújtani egy szoftverkönyvtár vagy akár egy teljes operációs rendszer futtatásához. A nem biztonságos szoftverek nem érhetők el a védett területhez és az ott található erőforrásokhoz való hozzáférés során.

 

A TrustZone olyan eljárásokat tartalmaz, amelyek megbízható hardvert biztosítanak a hardveralapú tároláshoz, a véletlenszám-generátorokhoz (RNG-k) és az időbeállításhoz szükséges referenciaórához.

 

TrustZone technológia a Cortex-M mikrokontrollerekben

Az ARMv8-M architektúra kiterjeszti a TrustZone technológiát a Cortex-M-alapú rendszerekre, és megbízható védelmet nyújt, méghozzá alacsonyabb költségekkel, mint a dedikált IC-alapú megoldások.
Jelentősen csökkenti a processzoralapú védelem költségeit és fejlesztési munkaigényét, ezért a hardver használata többé nem jár jelentős kiadásokkal.
A Cortex-M és a Cortex-A processzorok elvileg ugyanazt a megóvó koncepciót alkalmazzák, de alapvető eltérések is vannak közöttük. A Cortex-M fő előnye, hogy a biztonságos és nem biztonságos világ közötti kontextusváltás a hardver szintjén történik, ami gyorsabb átváltást és nagyobb energiahatékonyságot tesz lehetővé. A Cortex-A-tól eltérően nincs szükség biztonságfelügyeleti szoftverre. A Cortex-A processzorok védelme azonban sokkal magasabb szintű.
rutronik 2A TrustZone alapelve, hogy csak a szükséges engedélyek abszolút minimumát adja meg. Ez azt jelenti, hogy a rendszermodulok, például az illesztőprogramok és az alkalmazások csak szükség esetén kapnak hozzáférést egy erőforráshoz. A szoftverek végrehajtására általában biztonságos és nem biztonságos környezetben is sor kerül. A két környezet között a tartalmak átadását az „alaplogika” (Cortex-M processzorok) vagy „biztonságos felügyelet” (Cortex-A processzorok) elnevezésű rutin végzi.
A TrustZone for ARMv8-M ideális technológia a Platform Security Architecture (PSA) számára, mivel a normál programkód és a megbízható kódbázis közötti hardver izolálva van. A technológia rugalmas alapokat biztosít ahhoz, hogy a SoC-tervezők a megbízható környezet használatával férjenek hozzá adott funkciókhoz, ami költséghatékony és alacsony energiafelhasználású megoldások kifejlesztését teszi lehetővé. A Cortex-M23 alacsony fogyasztású mikrokontroller ebben a kategóriában a legkisebb, ugyanakkor a legerősebb mikrokontroller, amely TrustZone technológiával rendelkezik.
A Cortex-M33-sorozat költséghatékonyság és energiafogyasztás szempontjából is optimalizált. A Cortex-M33-sorozat kevert jelű alkalmazásokhoz készült, különösen olyanokhoz, amelyek hatékony védelmet és adott esetben digitális jelvezérlést igényelnek.

 

Szabványosított szoftverfejlesztési szabályok

A TrustZone-ban rejlő potenciál azonban csak akkor használható ki teljesen, ha a szoftverfejlesztési folyamat során betartják az elismert adatbiztonsági szabályokat. Itt kerül a képbe a „jó programozási gyakorlatot” meghatározó C CERT szabvány, amely többek között annak biztosítására szolgál, hogy:

  • betartsák a változók életciklusára vonatkozó konvenciókat (lokális, globális, automatikus stb.);
  • az előfeldolgozó utasításai egyértelműek legyenek (pl. befoglalási védelem használatával);
  • betartsák a változók értékhatárait;
  • betartsák és felügyeljék a memóriakorlátozásokat (pl. a tömböknél).

Ez egy olyan eszköz integrálásával valósul meg a fejlesztői környezetben, amely minden egyes kódfordításkor ellenőrzi a szoftverfejlesztésre vonatkozó szabályok betartását. A meglévő kód visszamenőleges módosítása (például a MISRA-C szabványban, az autóipar C programozási szabványában) bonyolult lehet, mivel a szabvány megsértése a program jelentős részének újratervezését és újrakódolását teszi szükségessé.
Mind a C CERT, mind a MISRA-C esetében megtörténik a kód statikus elemzése, valamint az adott programozási szabályok alapján történő ellenőrzése. A kettő között az a különbség, hogy a MISRA-C szabályai funkcionális eszközbiztonságot nyújtanak, míg a C CERT adatvédelmet és adatbiztonságot kínál.
Az STM32L5-család az STM32L4+ Cortex-M-család utódja, és ez az első olyan ST-termékcsalád, amely az ARMv8-M architektúrára épül, TrustZone technológiával. Ez jelentősen megkönnyíti, hogy a fejlesztők a Corsax-M33 processzorral, a TrustZone technológiával és a továbbfejlesztett SoC funkciókkal megbízható eszközöket hozzanak létre a PSA keretrendszer alapján. Az integrált digitális és analóg perifériák és interfészek széles választékának köszönhetően (többek között CAN FD, USB Type-C és USB Power Delivery) az STM32L5 mikrokontrollerek ideális platformot kínálnak olyan termékek számára, mint az ipari érzékelők, a vezérlők, az otthonautomatizálási eszközök (például intelligens otthon), az intelligens mérők, a fitneszeszközök, az okosórák, az orvostechnikai alkalmazások (például szivattyúk és mérőberendezések) és egyéb készülékek.
A Cortex-M33 processzor továbbfejlesztése, valamint a belső és külső programmemória-gyorsítótárak javítják az STM32L5 teljesítményét az elődhöz képest. Az optimalizált energiagazdálkodás kikapcsolt állapotban 33 nA-re csökkenti az áramfogyasztást, és maximális energiahatékonyságot kínál a hosszú üzemidejű alkalmazásokhoz.
Az STM32L5 a mikrokontrollereken legtöbbször nem megtalálható, további védelmi funkciókkal fokozza a biztonságot, például titkosítási segédprocesszorral és külső adathordozó-titkosítással. A további fejlesztések közé tartozik a szoftverek izolációja, a védett rendszerindítás és a titkosítási kulcsok különleges védelmet élvező tárterülete.
Az alábbiakban konkrétan ismertetünk néhány perifériát (integrált funkcionális egységek) és azok TrustZone biztonsági koncepcióhoz kapcsolódó megvalósítását a mikrokontrollerekben.

 

rutronik 3

 

Adatbusz-interfészek

A konfigurálható Secure Attribute Units egységek (SAU-k) akár nyolc memóriatartományt képesek kezelni, opcionálisan biztonságos vagy nem biztonságos tartományként. A Cortex-M33 processzor támogatja a System AHB (S-AHB) és a Code AHB (C-AHB) adatbusz-interfészeket. Az S-AHB használatos minden meghívott utasításhoz és a memóriában leképezett SRAM-ban való minden adathozzáféréshez, az utasításhívásokhoz, valamint az SoC-perifériákhoz, a külső RAM-hoz és a külső hardverekhez való hozzáférésekhez is. Az egyes utasításhívások, valamint a kódolási memóriatartományban való adathozzáférések a C-AHB-t használják.

 

Valós idejű óra

A TrustZone teljesen megbízható valós idejű órát (RTC) biztosít az Alarm A/B ébresztési időzítőfunkcióhoz, további testre szabható időbélyegzőt kínál a biztonságos és nem biztonságos konfigurációkhoz.

 

A Global TrustZone Controller áttekintése

A Global TrustZone Controller (GTZC) három alblokkból áll:

  • A TrustZone Security Controller (TZSC) a biztonságos, elsőbbséget élvező master/slave perifériaállapotokat, valamint a nem biztonságos terület méretét határozza meg a Watermark Memory Peripheral Controller (MPCWM) eszközben. A vezérlő értesíti a megfelelő integrált perifériás egységeket az RCC és az I/O-logika megosztott használata kapcsán a „védelemmel ellátható perifériák”, például az RCC és a GPIO-k állapotáról.
  • A blokkalapú memóriavédelmi vezérlő (MPCBB) gondoskodik a társított SRAM összes blokkjának (256 bájtos oldalak) megfelelő állapotáról.
  • A TrustZone illetéktelen hozzáférési események hozzáférés-vezérlője (TZIC) összegyűjti az összes illetéktelen hozzáférési eseményt a rendszerben, és biztonságos megszakítást generál az NVIC (Nested Vectored Interrupt Controller) számára. Az alblokkok használatával a TrustZone és az elsőbbséget élvező attribútumok konfigurálása a teljes rendszeren megtörténik.

A GTZC legfontosabb jellemzői:

  • Három független 32 bites AHB interfész a TZSC, az MPCBB és a TZIC számára;
  • az MPCBB és a TZIC csak megbízható tranzakciókkal érhető el;
  • a TZSC privát és nem privát területe támogatott a biztonságos és nem biztonságos hozzáférés szempontjából.

 

TrustZone-támogatás a manipulációs és biztonsági mentési adatbázisban (TAMP)

A manipuláció ellen védett / nem biztonságos konfigurációkhoz a TAMP biztonsági mentési adatbázis-konfigurációt kínál számos konfigurálható memóriaterületen a következők szerint: egy biztonságos olvasási-írási terület, egy biztonságos írási-olvasási terület, egy nem biztonságos olvasási-írási terület, valamint egy monoton számláló.

 

TrustZone az integrált flash memóriában

A beágyazott flash memóriában a TrustZone 512 kB-ot tart fenn a programok és adatok tárolására, továbbá lehetővé teszi az „egy-/kétbankos” működési állapotokat és az „olvasás/írás közben” (RWW) módot kettős memóriabank-módban.

A flash memóriához négy védelmi szint áll rendelkezésre:

  • A 0.5-ös szint csak a TrustZone aktiválásakor érhető el. A nem biztonságos flash memóriaterület összes olvasási/írási művelete engedélyezett, azzal a feltétellel, hogy a „TrustZone” aktív és az írásvédett hozzáférés nincs beállítva. A biztonságos területen hibakeresési hozzáférésre nincs lehetőség, ugyanakkor a nem biztonságos területek továbbra is elérhetők
  • 0. szint: Nincs olvasásvédelem
  • 1. szint: Memóriaolvasás-védelem: A flash memória nem olvasható és írható, amíg a hibakeresési funkciók aktívak, illetve amíg engedélyezve van a „Boot in RAM” vagy a Bootloader. Ha a TrustZone aktiválva van, lehetséges a „nem biztonságos hibakeresés”, de az SRAM-ban való rendszerindítás nem
  • 2. szint: IC-olvasásvédelem

 

TrustZone Security mód

Ha a „TrustZone Security” mód aktív, a teljes flash memória védve van az alaphelyzetbe állítás után, és a következő funkciók érhetők el:

Nem volatilis, biztonságos flash memóriaterület integrált ellenőrzéssel (vízjellel védett): A biztonságos területhez itt csak „védett módban” lehet hozzáférni. A címezhetőség szempontjából a memóriabank csak egybankos módban kezelhető 1 kB-os ugrásokkal, vagy a teljes memóriabank 4 kB-os blokkokra van felosztva.

Kódkiolvasás elleni védelem (PCROP): Ez a biztonságos flash memóriaterület azon része, amely védelmet nyújt harmadik felek jogosulatlan olvasási és írási műveleteivel szemben. A védett területet „csak végrehajtási” területnek nevezik, és csak az STM32 CPU kezelheti utasításkódokkal. Más hozzáférési mód (DMA [közvetlen memória-hozzáférés], hibakeresés, CPU-adatok olvasása, írása vagy törlése) nem lehetséges. Egybankos módban két terület választható ki mindkét védett területhez. Kétbankos módban memóriabankonként egy terület választható ki a biztonságos terület mellett.

A „biztonságos rejtett védelmi terület”: A biztonságos flash memóriaterület része, és védhető az olvasási műveletek, az írási műveletek vagy az ezen a területen lévő adatokhoz való hozzáférés megakadályozása érdekében.

Egy volatilis, blokkalapú biztonságos flash memóriaterületen minden oldal valós időben programozható biztonságosként vagy nem biztonságosként.

 

Aktiválás és hozzáférési engedélyek

A biztonsági architektúra az ARM TrustZone technológiáján alapul, az ARMv8-M kiegészítéssel.
A FLASH_OPTR regiszter TZEN opcióbitje (Trust Zone Enable) aktiválja a TrustZone Security szolgáltatást. Ebben az esetben a SAU (Security Attribution Unit) és az IDAU (Implementation Defined Attribution Unit) határozza meg a biztonságos és nem biztonságos állapotra vonatkozó hozzáférési engedélyeket.
A SAU a védelemhez kapcsolódó kiosztási egység, amelyet a hardveres attribútumok kezelésére használnak. Akár nyolc konfigurálható SAU-terület is használható a védelem kiosztásához.
Az IDAU olyan kiosztási egység, amely a hozzáférési engedélyekhez kapcsolódik. A nem biztonságos / nem biztonságosan hozzáférhető attribútumok első memóriapartícióját fedi le, ahol kód vagy adat tárolható. A rendszer ezeket a SAU védelmi kiosztás eredményeivel kombinálja, és a magasabb szintű védelmi állapotot választja ki. Az IDAU másolatot készít a flash, a rendszerszintű SRAM és a perifériák memóriájáról a biztonságos és nem biztonságos állapotok engedélyezése érdekében. A külső tárhelyek esetében azonban erre nem kerül sor.
Az itt meghatározott mechanizmusok használatával a TrustZone a mikrokontroller egyéb területeit is befolyásolja, összhangban a hardveres megoldás alapelvével.
A mikrokontrollerekkel kapcsolatos tudnivalókról (manipuláció, támadások) a Rutronik „Security Aspects” (Biztonsági szempontok) című szakmai ismertetőjében (74/75. oldal) olvashat részletes, mégis tömör összefoglalást: www.rutronik.com/security-aspects

 

 

rutronik szerzoSzerző: Martin Motz – digitálistermék-menedzser, Rutronik

Rutronik Magyarország Kft.
1117 Budapest, Alíz utca 1.
Tel.: +36 1 231 3349
E-Mail:rutronik_h@rutronik.com