Adatvédelem kisfogyasztású, beágyazott alkalmazásokban
A jelenkor trendje, hogy egyre több – „nem hagyományos” IT-eszköznek tekinthető – készülék, gép, berendezés kapcsolódik az internetre, amelyek akár érzékeny adatokat is tárolhatnak. Ez a jelenség az adatvédelem teljesen új alkalmazási területét hívja életre, amely a beágyazott rendszerekhez történő illetéktelen hozzáférést hivatott megelőzni.
Ebben az egyre inkább „internetesedő” világban a biztonságos adatátvitel és -tárolás – természetesen hosszú elemélettartammal – az alkalmazások kulcsfontosságú követelményei közé emelkedik. A PIC24F „GB2” mikrokontroller (MCU) család adatvédelmet kínál a kis teljesítményfelvételű alkalmazásokhoz. Ebbe a típuscsaládba teljes képességű, hardveres titkosítóegységet integráltak, amely az AES-, a DES- és a 3DES-titkosítási algoritmusokat támogatja. A beépített véletlenszám-generátor (Random Number Generator – RNG) célja, hogy kulcsokat generáljon az adatkódoló és -dekódoló algoritmusokhoz és a hozzáférés-védelemhez (autentikáció). Az „egyszer programozható” (One-Time-Programmable – OTP) memória 512 bitnyi helyet kínál a kulcsinformációk biztonságos tárolására.
Ezt az MCU-t az integrált titkosítóhardverrel és a rendkívül alacsony fogyasztású (eXtreme Low Power – XLP) technológiával a kisfogyasztású, beágyazott adatvédelmi alkalmazásokra fejlesztette ki a Microchip Technology[1]. Sok adattitkosítási eljárás igényel nagyobb számítási teljesítményű (és természetesen nagyobb energiafogyasztású) 32 bites mikrovezérlőt, amely nagyon gyorsan kimerítheti a tápforrásként használt akkumulátort. Az XLP-specifikációjú „GB2”-család azonban alvó üzemmmódban csupán 18 nA-t, programfutás közben is csak 180 μA/MHz-et fogyaszt, tehát ideális megoldás a teleptáplálású alkalmazásokhoz.
Annak érdekében, hogy az alkalmazás „a világ többi részével” kommunikálhasson, a GB2 integrált USB-t tartalmaz a pendrive-memóriákkal vagy más számítógépekkel történő kapcsolattartásra. A tervezők választhatnak akár vezetékmentes kommunikációs eljárásokat is a Microchip által tanúsított Wi-Fi®-, ZigBee®- vagy Bluetooth® Low Energy-protokollok közül. Ezek kis teljesítményfelvétellel képesek kommunikálni az interneten vagy más protokollal működő kommunikációs csatornán.
Alkalmazási „célterületek”
A kis teljesítményfelvételt és biztonságos adatátvitelt egyszerre kínáló GB2-család az ipari, informatikai és orvosi-egészségügyi alkalmazások széles körében alkalmazható (1. ábra). Példaként említhetjük a biztonságos ajtózárakat és hozzáférés-védelmi rendszereket, attól függetlenül, hogy billentyűzeten, mágneskártyán vagy vezetékmentes kommunikáción keresztül történik a hozzáférés. Ezenkívül említhetjük például a biztonsági kamerákat vagy a kereskedelmi terminálokat, amelyek használata egyaránt magasfokú adatvédelmet igényel. Továbbá sok olyan szenzor és csomópont is élvezheti a kis teljesítményfelvétel és a magasfokú adatvédelem előnyét, amelyet a dolgok internetje (Internet of Things – IoT) alkalmazásaiban használnak (nyomás-, hőmérséklet-, fény- vagy nedvességtartalom-érzékelés).
1. ábra A kis teljesítményfelvételű alkalmazások is igénylik a biztonságos adatkezelést
Az informatika területén a „GB2” célszerűen használható olyan perifériákban, amelyekben kis teljesítményfelvétellel kell megvalósítani az USB- vagy vezetékmentes kommunikációt (például fejhallgatókban vagy vezetékmentes nyomtatókban).
Az orvostechnikai vagy egészségmegőrzési alkamazási körben a lépésszámlálók és más viselhető készülékek is kezelhetnek érzékeny személyes adatokat, miközben más eszközökkel (okostelefonokkal, tábla- és más személyi számítógépekkel) cserélnek adatokat.
A biztonságos adattárolás rendkívül fontos számos területen, például a pendrive-tárolókkal működő adatgyűjtőkben, vagy olyan alkalmazásokban, amelyekhez konfigurációs fájlok betöltésére van szükség. Még ha az adatok az MCU „közelében” is vannak tárolva, de kívülről is hozzáférhető módon (mint például egy EEPROM-ban) vagy USB-n, esetleg vezetékmentesen továbbítják azokat egy másik készülékbe, az adattitkosítás elemi követelmény az adatok integritásának megőrzése érdekében.
Titkosítóhardver
A PIC24 „GB2”-családba AES-, DES- és 3DES-titkosítóalgoritmusokat támogató, teljes képességű hardveres titkosítóegységet integráltak. Ez nagymértékben konfigurálható, beleértve azt is, hogy képes 128-, 196- vagy 256-bites AES-titkosítás és visszafejtés elvégzésére. A „GB2” ezek mindenféle üzemmódját támogatja (ECB, CBC, CFB, OFB és CTR, amelyet a GCM-titkosítás megvalósítására is használnak). Ezek a protokollok széles körben használatosak biztonságos adattovábbítási és -tárolási célra.
Azáltal, hogy ezek a képességek a szofver helyett hardverrel vannak megvalósítva, és a háttérszámítások nem foglalnak le számítási teljesítményt, jelentős feldolgozási kapacitás marad meg az alkalmazás számára. A hardveres titkosító- és visszafejtőegység ezenkívül sokszorta gyorsabb a szoftveres végrehajtásnál. A nagyságrendek érzékeltetésére a hardveres megvalósításnál egy blokk átvitele néhány száz gépi ciklust vesz igénybe, szemben a szoftveres megvalósítással, amelynek a végrehajtásához több ezer ciklusnyi processzoridőre van szükség. Ráadásul, amíg a szoftveres megoldás leköti a processzort, miközben az adattitkosítási műveletet hajt végre, a hardveres megvalósításnál a CPU más feladatok végrehajtásával foglalkozhat. A hardveres végrehajtás ideje természetesen függ a végrehajtandó művelet fajtájától, a titkosítva kezelt adatblokkok számától és a titkosítókulcs erősségétől. A titkosítóhardver működéséhez nincs szükség CPU-beavatkozásra, ezért a processzor más feladatok műveleteit hajthatja végre, miközben a hardveregységben végrehajtódik a kriptográfiai művelet. A 2. ábra közelítő adatokat mutat be a PIC24 „GB2”-családdal végrehajtható hardveres támogatású titkosítási műveletekre. Ez is példa a Microchip „magfüggetlen periféria” koncepciójára (Core Independent Peripherals – CIP). Az a tény, hogy a feladatot kevesebb óraciklus alatt tudjuk elvégezni, azt jelenti, hogy kevesebb ideig vesszük igénybe az erőforrásokat, tehát ugyanakkora feladat elvégzéséhez kevesebb energiát fogyaszt az MCU. A tervező megteheti, hogy az MCU-t alacsonyabb órafrekvencián futtatja az energiafogyasztás csökkentése érdekében, vagy nagyobb frekvenciát használ a feladat mielőbbi befejezéséhez, amely által az MCU hamarabb kerül a legkisebb fogyasztású, alvó állapotba. Lehetséges az is, hogy az alkalmazást egy kisebb, olcsóbb MCU-ra bízzuk, amelynek kisebb a feldolgozási teljesítménye és a memóriakapacitása is, és még így is marad elegendő számítási teljesítmény és tárterület az alkalmazás többi része számára.
2. ábra A hardveres kriptográfiai műveletek becsült végrehajtási idői [2] [3]
Vegyünk példának egy 128 bites AES-kódoló/dekódoló alkalmazást, amely blokkonként 250 gépi ciklust vesz igénybe a hardveres titkosítás végrehajtásához, feltételezve, hogy 1024 bájt adatot kell feldolgoznia. Ha a hardver a maximális sebességgel fut (32 MHz-es órajellel), akkor 16 millió óraciklust hajt végre másodpercenként. A maximális adatsávszélesség ekkor 1 Mbájt/s lesz, lásd az 1. egyenletet:
-
1. egyenlet: a maximális adatáteresztő-képesség átszámítása(16 000 000 ciklus/s) / (250 ciklus/blokk) × (16 bájt/blokk) = 1 024 000 bájt/s
A végrehajtáshoz szükséges energia számításához vegyünk példának egy 1024 bájtos adatmennyiséget, és számítsuk ki, hány ciklust igényel a kódolása. Ezután használjuk fel a processzor sebességét meghatározó órafrekvenciát (32 MHz) ahhoz, hogy kiszámítsuk a feladat végrehajtásához szükséges energiafelvételt, feltéve, hogy a maximális áramfelvétel 7,6 mA (32 MHz-nél és 2 V-os tápfeszültségnél). Ebből a végrehajtási időre 0,001 s, azaz 1 ms adódik, amely közben 0,0076 mAs töltést használ fel az akkumulátorból a feladat teljes megoldásához. Lássuk ezt számítás formájában is:
-
2. egyenlet: a teljes feladat elvégzéséhez szükséges idő számítása 1024 bájt / (1 024 000 bájt/s) = 0,001 s (1 ms)
-
3. egyenlet: A teljes feladathoz felhasznált akkumulátortöltés számítása 7,6 mA × 0,001 s = 0,0076 mAs, az energiafelhasználás tehát 7,6 mA × 1 ms × 2 V = 15,2 μWs
Kulcsgenerálás
Az adatok kódolásának és dekódolásának, valamint az autentikációnak a nagyobb biztonsága, a kulcsok nehezebb reprodukálhatósága érdekében véletlen számokat használnak, amelyet véletlenszám-generátorral (Random Number Generator – RNG) állítanak elő. A „GB2”-család a valódi- és az álvéletlen számok előállítását is támogatja. A valódi véletlen számokból előállított kulcsokat nem lehet reprodukálni. Ez csökkenti a szoftveres kódtörés esélyét, ezért ideális a biztonsági és szerencsejáték-alkalmazásokhoz. Bizonyos szimulációknál és modellezési alkalmazásokban azonban előnyösebb az álvéletlen számsorozatok determinisztikus jellege. Ez az oka annak, hogy a „GB2”-család véletlenszám-generátora mindkét megoldást támogatja.
Kulcsadatok biztonságos tárolása
Az egyszer programozható (One Time Programmable – OTP) kulcstároló védi a titkosítási kulcsot a szoftverrel történő kiolvasás és a felülírás ellen. Ez teszi a kulcsot „programozási szempontból biztonságossá”, mivel a kulcs a szoftver által közvetlenül nem elérhető.
A biztonságos kulcstárolás nélkül a kulcsokat könnyebb lenne ellopni, különösképpen, ha az alkalmazás egy bekapcsoláskor működő programbetöltőt (boot loadert) valósít meg. Az 512 bites OTP-tárolóban akár több kulcsot is tárolhatunk. Ha a felhasználó 256 bites AES-titkosítást használ, két 128 bites vagy 4 128 bites kulcsot is tárolhat.
A DES 64 bites kulcsból pedig 8 db fér el az OTP-tárolóban. Van egy módszer arra is, hogy akár tetszőleges mennyiségű kulcsinformációt tárolhassunk a Key Encryption Key (KEK) felhasználásával. Tároljuk a titkosított kulcsot a flash- vagy a RAM-memóriában, az OPT-ben tárolt kulccsal titkosítva. Az ilyen módon védett kulcsokat már biztonságosan tarthatjuk a nyílt hozzáférésű memóriában, ahonnan a RAM-ba áttöltve a KEK segítségével dekódolni lehet azokat.
Alkalmazási példa: elektronikus ajtózár
A 3. ábrán egy elektronikus ajtózár vagy más hozzáférés-védelmi rendszer tömbvázlata látható. A rendszer a „GB2” titkosítóhardverét használja olyan adatok titkosítására, mint az alkalmazott neve, kódja, a belépés és távozás időpontja stb. Ez egyben arra is használható, hogy elbírálja a belépési jogosultságot egy épület korlátozott hozzáférésű területeire, az alkalmazott jogosultsági besorolása alapján. A biztonságos kulcstároló-funkció az ellen is védelmet nyújt, ha valaki megkísérli visszafejteni a kulcsinformációt. Ráadásul a mikrovezérlő „töltési időt” a mérő integrált egysége (Charge Time Measurement Unit – CTMU) segítségével az is megvalósítható, hogy az érintőgombos vezérlést vagy a közelségi detektort vezérelje. Ha nincs a közelben olyan személy, aki használni kívánja a készüléket, az a legkisebb teljesítményfelvételű alvó üzemmódba kapcsolódhat az elem újratöltés nélküli használati idejének megnövelésére. Egy egyszerű programmegszakítást használhatunk annak jelzésére, hogy a motor kinyithatja a zár reteszét. E rendszerek némelyike közvetlen tápellátást kaphat, míg a többi 4 db AA-méretű elemről is működtethető. Ha a rendszer állandóan elemről működik is, a fogyasztása olyan kicsi, hogy több évig működhet egyetlen elemkészlettel. A „GB2”-nek van egy VBAT-csatlakozópontja is, amelyre a valós idejű órát működtető elemet lehet csatlakoztatni. Ez még akkor is működésben tartja az időnyilvántartást, ha a fő elem kimerült. Az UART-interfész segítségével csatlakoztatható a mágneskártyaegység és/vagy a vezetékmentes kommunikáció modulja. Bizonyos magas technológiai színvonalú alkalmazásoknál a felhasználó az okostelefonjában is tárolhatja az ajtót nyitó és záró kódot. Ilyen esetekben a kommunikáció a Bluetooth LE- vagy az NFC-protokoll segítésével történhet.
3. ábra Az elektronikus ajtózár tömbvázlata
Alkalmazási példa: rendszeradatok biztonságos tárolása EEPROM-ban
Számos általános célú alkalmazás tárol fontos, rendszerszintű paramétereket a processzoron kívül, a kártyára ültetett, külső EEPROM-tárolóban. Még ha ezek az adatok lokálisan vannak is tárolva, mégis fontos védeni ezeket. Megtörténhet ugyanis, hogy egy illetéktelen személy kiszereli az EEPROM-csipeket a panelről, és megváltoztatott paramétereket tartalmazó másik csipet épít be a helyére, megváltoztatva ezzel a vezérelt eszköz tulajdonságait például autókban, játékgépekben vagy nyerőautomatákban. Például egy autóban a felhasználó megváltoztathatja a motor teljesítménykorlátozó paramétereit, illetéktelenül megnövelve ezzel a motor teljesítményét, amely viszont befolyásolja a hatásfokot, és ezen keresztül megnövelheti a jármű károsanyag-emisszióját. Egy másik példa a játékgép, amelyben ezzel a módszerrel megváltoztatható a játék nehézségi foka, vagy felülírhatók a tisztességes játék érdekében alkalmazott korlátozások. Mindezek a használat szabályait megkerülő, illetéktelen rendszermódosítások megelőzhetők, ha az EEPROM-ban tárolt rendszeradatokat titkosítva tároljuk.
Fejlesztőkörnyezet
A PIC24 „GB2”-család a Microchip teljes Explorer 16 fejlesztőkártya-ökoszisztémájával képes együttműködni. Az egyetlen dolog, amire a felhasználónak – ezenkívül – szüksége van, az új, dugaszolható processzormodul (Plug-in-Module – PIM). A két új PIM-et a 4. ábrán sárga háttérszínnel emeltük ki. Az egyikük az USB-s, a másikuk az USB nélküli alkalmazásokhoz használatos. Rugalmasan használható „leánykártyák” rendelhetők arra a célra, hogy az USB-hez, az okoskártyákhoz vagy a SIM-kártyákhoz szükséges hardvercsatlakozásokkal egészítsék ki a rendszert. Ezenkívül többféle, tanúsítvánnyal rendelkező vezetékmentes leánykártya (köztük WiFi és Bluetooth LE) is megtalálható a kínálatban.
4. ábra Fejlesztőeszközök
Összegzés
A PIC24F „GB2” mikrovezérlő-család segít kielégíteni a beágyazott alkalmazásokban felmerülő igényeket, amelyek a jelenkor interneten kommunikáló világában megfelelő szintű adatvédelmet is szükségessé tesznek, ráadásul hosszabb elemélettartammal. A biztonságos adatátvitel és -tárolás érdekében a PIC24F-családnak ezek a tagjai beépített titkosító és autentikációs hardvert is tartalmaznak. Az RNG és a biztonságos adattárolást lehetővé tevő OTP-memória további fontos hozzájárulást jelent a kulcsgenerálás és -tárolás biztonságosabb megvalósításához. A felhasználók anélkül tudják megoldani a biztonságos adattovábbítási és -tárolási feladataikat, hogy fel kellene áldozniuk az alacsony energiafogyasztás előnyét, mivel az eszközcsalád megfelel a kis teljesítményfelvételt garantáló XLP-specifikációnak, amely hosszabb elemélettartamot tesz lehetővé a hordozható alkalmazásokban. A „GB2”-család más rendszerekhez is könnyen csatlakoztatható vezetékes és vezetékmentes kommunikációval egyaránt. Az integrált USB segítségével például egyszerű a csatlakoztatás számítógépekhez és pendrive-tárolókhoz. A „GB2” a Microchip tanúsított vezetékmentes moduljaival is könnyedén kommunikál az UART-interfészen keresztül. Mindezek segítségével kommunikálni képes, kisfogyasztású és biztonságos alkalmazások fejleszthetők. Az érdeklődők további információt, adatlapokat és a termékcsalád referencia-kézikönyvét is letölthetik a www.microchip.com/pic24fj128gb204 webhelyről. A rendelhető termékváltozatokat az 5. ábra mutatja.
5. ábra A rendelhető típusváltozatok
Szerző: Alexis Alcott – vezető termékmenedzser – Microchip Technology Inc., MCU-16 részleg
[1] A Microchip neve és logója, a PIC és a PICtail a Microchip Technology Inc. bejegyzett védjegye az USA-ban és más országokban. Az összes többi, itt említett védjegy a megfelelő cégek tulajdona.
[2] A „munkamenet” szót a cikkben az elterjedt angol „session” szakkifejezés fordításaként használjuk. – A ford. megj
[3] KEK: (Key Encryption Key: a „kulcstitkosítás kulcsa”). A kulcsinformációt ezzel a kulccsal titkosítva korlátlan számú kulcsot tárolhatunk nyílt hozzáférésű memóriában úgy, hogy ezeket a biztonságosan tárolt KEK-kulccsal titkosítjuk. A módszer a biztonságos tárolókapacitásra vonatkozó igényt csökkenti. – A szerk megj.
www.microchip.com
Még több Microchip
Címkék: PIC23 | GB2 | titkosított | kommunikáció | hardver AES | hardver DES | OTP | RNG