Szerző: Asztalos Olivér

2015. november 12. 13:04:00

ARMv8-M, az első biztonságos mikrokontroller ISA

Az ARM legújabb utasításarchitektúrája a biztonságra gyúr. A vállalat első, TrustZone támogatással rendelkező ARM-M ISA-ja már a hordozható eszközök és az IoT biztonsági igényei alapján készült.

A tegnap hírül adott Coretex-A35 mikroarchitektúra mellett egy új utasításarchitektúráról is lerántotta a leplet a processzorok tervezésével foglalkozó ARM. A bejelentett ARMv8-M nevű ISA az ARM-M családba illeszkedik, amit kifejezetten a mikrokontrollerek fejlesztéséért tart fent a brit vállalat. Ezek az utasításarchitektúrák jellemzően "keskenyebbek" az alkalmazásprocesszorokban alkalmazott ARM-A ISA-khoz képest. Számítási teljesítmény szempontjából a mikrovezérlők jellemzően kis étvágyúak, illetve rendkívül alacsony fogyasztásúak, így nem csoda, hogy ebben a szegmensben egy nagyban leegyszerűsített utasításarchitektúra is kiszolgálja az igényeket.

Miért érdemes belevágnod a Scrum képzésünkbe? (x) Október 21-én Scrum alapozó képzést indít a HWSW, íme néhány jó érv a kurzus mellett.

Ennek megfelelően az ARMv8-M-nél a tempó növelésével ellentétben sokkal inkább az újabb funkciók beépítésén volt a hangsúly, így az újdonság továbbra is a 32 bites Thumb utasításkészlet alkalmazza. A fejlesztési irányvonal jegyében ugyanakkor már a mikrokontrollerek kategóriájában is elérhetővé válik a TrustZone technológia. A fejlett hardveres biztonsági megoldás ez eddig csak az ARM-A típusú ISA-k kiváltsága volt, a mikrovezérlők térnyerésének köszönhetően viszont a vállalat már elérkezettnek látta az időt, hogy az ARM-M is megkapja a technológiát. Minderre a viselhető és az IoT eszközökre mutatott egyre nagyobb érdeklődés miatt volt szükség, hisz ezzel a chipek az internettől elszigetelt ipari komplexumok és beágyazott rendszerek helyett már az internetre kapcsolt eszközökbe kerülnek, felértékelődik így a hardveres biztonság.

A TrustZone technológia képességeit számtalan forgatókönyvben használják, így a multimédiás DRM-től az operációs rendszer vagy az androidos bootloader lezárásáig, vagy például a kártékony kódon (pl. kémszoftverek), elleni védekezésben is segíthet. Közreműködésével akár egy teljesen elszeparált, titkosított tárhely is létrehozható, melyben manapság például az ujjlenyomatainkat tárolják az arra felkészített okostelefonok. Az ilyen dedikált tárolókhoz semmi, még az operációs rendszer sem fér hozzá korlátlanul, innen adatok csak szigorúan határozott procedúrán keresztül nyerhetőek ki.

A TrustZone a megbízható és nem megbízható kódokat, adatokat, illetve hardvereket két egymástól kvázi hermetikusan elszeparált halmazba különíti szét, majd az adott folyamatok jogosultsági szintjének megfelelően engedélyez hozzáférést ezekhez. Ez a biztonság egyelőre sziklaszilárdnak számít, nem véletlen, hogy egyre több megoldás ebbe az irányba indult el - a hardveres alapokon ugyanis felépíthető az eszközön a "chain of trust", vagyis az egymás után betöltődő/lefutó szoftverek csak a megfelelően azonosított, biztonságosnak minősített következőnek adják át az irányítást, ebben a hardveres biztonság adja a kiindulási pontot.

Ennek köszönhetően több funkció válik elérhetővé, így például lehetőség van biztonságos titkosításra, távolról végzett firmware frissítésre, vagy éppen hibakeresésre.

Mindezt a CryptoCell nevű fixfunkciós blokk egészíti ki, mely a különféle titkosítással kapcsolatos számítási feladatok hardveres gyorsításáért felel. Az egység segítéségével nagyobb végrehajtási tempó érhető el alacsonyabb fogyasztás mellett.

A TrustZone implementációját tekintve egy új megoldással rukkoltak elő a tervezők. A ARMv8-M esetében az AMBA 5 AHB5 (Advanced Microcontroller Bus Architecture 5, Advanced High-performance Bus 5) nevű rendszerbuszon keresztül operál a TrustZone, mely így a rendszer teljes egészére ki tudja terjeszteni hatáskörét, azaz megbízható, vagy épp nem megbízható kategóriába tudja sorolni az különféle elemeket. Ebbe többek között már az SRAM (pl. cache), a flash-alapú háttértár, illetve az egyes perifériák is beletartozhatnak.

Az ARM tehát lassan a teljes ökoszisztémájára kiterjeszti biztonsági rendszerét, melybe hamarosan a mikrokontrollerek is beletartoznak majd. Mindez a fejlesztők számára is előnyt jelenthet, hisz egy egységes, a teljes utasításarchitektúra palettán átívelő szabványra könnyebb építeni. A tervezőcég egyelőre csak az ARMv8-M ISA-ról beszélt, mikroarchitektúráról, vagyis implementációról még nem esett szó. Ennek bejelentése a közeljövőben várható, míg az első kereskedelmi forgalomban is elérhető terméket 2017-re prognosztizálják.

Annyira buta, hogy már nem is x86

Eközben a konkurensek sem alszanak. Az Imagination Technologies például a napokban jelentett be két MIPS-alapú, beágyazott eszközökbe szánt mikroarchitektúrát. Érdekesebb hír, hogy az Intel Quark D1000 nevű mikrokontrollere nem lesz x86 kompatibilis, ugyanis a vállalat az x87-es lebegőpontos utasításokért felelős FPU-t teljesen kukázta. Ez az egység az i486DX 1989-es megjelenése óta szerves része az Intel processzorainak. Az FPU-nélkül bizonyos alkalmazások esetében még ugyan megtartható lett volna a kompatibilitás, de a mérnökök az x86-os utasításokat is megnyirbálták, amivel már teljesen elveszett az átjárhatóság. Az új ISA-t az Intel csak "32 bites utasításarchitektúrának" hívja, külön márkanevet még nem kapott. A Quark D1000 várhatóan az ARM Cortex-M0 és M0+ jelzésű mikrovezérlők konkurense lesz.

a címlapról