Skip to main content

A Microchip Trust platformja

Megjelent: 2020. március 18.

01microchip

Biztonság a koncepciótól a telepítésig

A jelenkor rendszereit az olcsó tömegcikkektől az összetett berendezések digitális vezérléséig egyre gyakrabban bízzák beágyazott megoldásokra, amelyeket az internetkapcsolaton át végrehajtható kibertámadások biztonsági kockázata fenyeget. Ennek csökkentésére több gyártó is előállít a titkosításhoz szükséges, megbízható biztonsági elemeket. A Microchip terméke azzal az üzleti modellel tűnik ki, amely már kis sorozatok számára is elérhetővé teszi.

 

Az informatikai biztonság jelenleg a beágyazott rendszerek egyik kulcsfogalma. Az az igény, hogy az eszközeinket a könnyebb kezelhetőség érdekében az internetre csatlakoztassuk, és azon át a szenzoraikban keletkező élő adatokat összegyűjthessük, az illetéktelen beavatkozások magas kockázatát hozza magával. Ez a kockázat pedig nem korlátozódik az egyes berendezésekre, hanem egész hálózatokra is kiterjed.
Az irány világos: az eszközszállítók nem léphetnek piacra olyan internetre csatlakozó (IoT) készülékkel, amelynek a tervezése során figyelmen kívül hagyták az informatika biztonságszempontjait. Azoknak a készülékgyártóknak, akik a termékeiket az IoT képességeivel kívánják felruházni, a fő problémát a hatékony és aktuális informatikai biztonsági mechanizmusok megvalósításának bonyolultsága okozza. A hozzáférési jogosultság és a titkosítás alapvető fontossága könnyen belátható, megvalósítani azonban sokkal nehezebb. Sokféle rendszeralkotó elem létezik – hardver és szoftver egyaránt –, amely szükséges ahhoz, hogy egy beágyazott rendszer biztonságát megalapozhassuk. Bármelyik biztonsági alkotóelem gyengesége könnyen a védelem feltöréséhez vezethet, amelyet kihasználva a kiberbűnöző rosszindulatú kódot helyez el a hardverbe, vagy érzékeny adatokat szivárogtathat ki. Ugyanakkor sok tervezőcsapat kerül abba a helyzetbe, hogy először kell szembesülnie a biztonsági szempontok érvényesítésével járó nehézségekkel.
A hatékony biztonság alapkövetelménye, hogy minden telepített eszköznek önálló identitással kell rendelkeznie. Az egyik legközönségesebb biztonsági rés, amit a rendszert támadó személyek kihasználhatnak, a triviális jelszó, vagy a rendszerkarbantartást végző szakemberek beléptetésére szolgáló rendszer. Az ilyen beléptetőrendszer részleteit gyakran igen könnyű kitalálni, vagy ha nem, más módon könnyen megszerezheti azokat a támadó. Ezeken át gyakran nemcsak egy-egy készülék, hanem az egész rendszer feletti ellenőrzés megszerzése is lehetséges. Az ilyen rendszerekből a kiberbűnözők botneteket, azaz az azonos gépeknek olyan „hadseregét” hozhatják létre, amelyek túlterheléses támadások végrehajtására alkalmasak (DoS – Denial of Service, amelyben a túl sok hozzáférési igénnyel túlterhelt rendszerelem képtelenné válik eredeti feladatának ellátására – A szerk. megj.) Mindez egyszerű programokkal, szkriptekkel végrehajtható. Ezek révén felismerhetők egy bizonyos, internet-hozzáféréssel rendelkező készüléktípus azonos elemei, és azokon belépve lehetőség nyílik a rendszer rosszindulatú felhasználására. Ha viszont a készülékek egyedi identitással rendelkeznek, lehetővé válik, hogy minden rendszert saját önálló biztonsági hitelesítő adatokkal lássunk el, amely jelentősen csökkenti az esélyt, hogy a rendszer támadója botnetet alakítson ki a rendszerelemekből. Ilyen feltételek mellett csak egy hozzáférési joggal rendelkező, és a megfelelő hitelesítési eljárás végrehajtására képes felhasználó szerezhet ellenőrzési jogot, és ő is csak egyetlen rendszerelem felett. Ez a megnövelt szintű védelem azonban elágazások létrehozását teszi szükségessé a tervezés, a fejlesztés és a rendszerkarbantartás eljárásaiban.
Ha a hatékony védelmet olyan módszerekkel kívánjuk megvalósítani, amelyek inkább lehetőségeket tárnak fel ahelyett, hogy gátolnák a fejlesztést, az gondosan előkészített döntéseket tételez fel. Az első ilyen döntés a hardverkoncepció olyan megalapozása, amely a termék integritásának védelmét szolgálja. Ez az alap nemcsak azt biztosítja, hogy lehetetlen legyen a készülék alapvető működését meghatározó firmware-hez jogosultság nélkül hozzáférni, de azt is garantálnia kell, hogy azt ne lehessen a hálózat támadására felhasználni. Ez például azt jelenti, hogy ha a támadó meg is szerezte egyetlen rendszerelem hitelesítési adatait, azokat lehetetlen legyen úgy „átalakítani”, hogy felhasználhatók legyenek egy másik rendszerelem feletti ellenőrzés megszerzésére – például botnet létrehozása céljából. Ez más szóval azt jelenti, hogy a hálózati elemek identitása és integritása közt rendkívül szoros a kapcsolat.
A nyilvános kulcsú adatvédelmi infrastruktúra (Public Key Infrastructure – PKI) módot nyújt arra, hogy ne csak egyetlen készülék számára biztosítsuk az egyedileg hitelesített identitást, hanem ez a hálózat egészére is kiterjedjen. A PKI az aszimmetrikus kriptográfia elvén alapul, amely lényegében egy olyan eljárás, amely két numerikus kulcs között matematikai összefüggést képes létrehozni. A számok egyike a nyilvános kulcs, amelyet tipikusan az üzenetek hitelességének ellenőrzésére használnak. Mint a neve is mutatja, ez a kulcs széles körben terjeszthető a biztonság veszélyeztetése nélkül. Ez egyben egyszerű módot is kínál arra, hogy bárki, aki tudja, melyik nyilvános kulcsot kell használnia, biztonságosan küldhessen üzenetet egy készüléknek. Ez utóbbinak viszont rendelkeznie kell egy titkos kulccsal, amely lehetővé teszi, hogy a neki küldött üzenetek digitálisan alá legyenek írva. Az aláírás hitelességét viszont a nyilvános kulccsal lehet ellenőrizni.
Ezekből az alapvető PKI-műveletekből lehetséges olyan összetettebb jogosultságellenőrzési és hitelesítési eljárásokat is összerakni, mint a digitális tanúsítványok kezelése, amely például egy készülék identitásának ellenőrzésére használható. Egy digitális tanúsítvány létrehozásához a készülék létrehoz egy üzenetet – más szóval „kihívást” – amely a titkos kulcs felhasználásával előállított aláírás. Az, aki ezt megkapja, a megfelelő nyilvános kulcs segítségével ellenőrizheti az aláírás hitelességét.
Magától értetődik, hogy a titkos kulcs erős védelmet igényel. Nem elég, ha ezt a kulcsot telepítés előtt beírjuk az eszköznek egy kikapcsoláskor nem törlődő tárolójába, mert az így nagyon könnyen hozzáférhető. A titkos kulcsnak soha nem szabad nyilvánosságra kerülnie. Ha ez mégis megtörténik, az lehetőséget ad arra, hogy a rendszer támadója a birtokába jutott titkos kulccsal létrehozza az eredeti készülék azonos másolatait, klónjait. Ezekkel aztán megszemélyesítheti az eredeti készüléket, annak nevében megtévesztő adatokat küldhet, és ezzel lerombolhatja annak a hálózati alkalmazásnak a biztonságát, amelynek értéke a készülék által küldött adatok valódiságától függ.

 

02microchip

1. ábra  A mikrovezérlő „társfunkciójaként” megvalósított biztonsági elem a titkos adatok védett kezelésére


Egy hagyományos mikrovezérlő-alapú rendszer problémája, hogy a processzormagon futó bármilyen szoftvernek hozzá kell tudni férnie a titkos kulcshoz annak érdekében, hogy el tudja végezni a szükséges számításokat a vezérlőben található titkos kulcsot felhasználva. A processzormag hardverében ezek szerint szükség van egy biztonsági funkciókat megbízhatóan megvalósító alkatrészre (a továbiakban „biztonsági elem” néven említjük), amely egy – a kriptográfiai műveleteket a rendszer többi része által elérhetetlen – védett hardverből és egy – a titkos kulcsok tárolására szolgáló – biztonságos tárolóból áll. Ezáltal a kulcs és a kriptográfiai funkciókat végrehajtó egység ugyanazon a fizkailag is lehatárolt, biztonságos zónán belül kerül, ezért nincs szükség arra, hogy biztonságkritikus adatokat kelljen továbbítani a rendszer általános célú belső adatbuszán (1. ábra). Ehelyett, ha a rendszernek biztonságosan kell kommunikálnia, vagy igazolnia kell az identitását, felszólítja a biztonsági elemet, hogy válaszoljon egy véletlenszerűen generált kihívásra. Ez a válasz egy kód, amit a kihívás véletlen részének aritmetikai feldolgozásából állít elő a biztonsági elemben található titkos kód felhasználásával. Más szavakkal: a biztonsági elem digitálisan aláírja a véletlen kihívást. Ezen a módon a biztonsági elem anélkül képes hitelesen bizonyítani, hogy rendelkezik a megfelelő titkos kulccsal, hogy ezt a biztonságkritikus, érzékeny adatot fel kellene fednie.
A biztonsági elem ezenkívül képes megvédeni az eszközt attól, hogy egy támadó visszafejtse a kódot, és megkísérelhesse azt futtatni, hogy annak felhasználásával feltörhesse a védelmet. Az ennek megelőzésére szolgáló védelmi mechanizmus egyfajta kódellenőrzés, ami biztonságos rendszerbetöltésként vagy futásidejű kódellenőrzésként is ismert. Ebben az esetben a kihívás, amit a processzor a biztonsági elemnek küld, egy olyan tömörített kód, amelyet az eszközben tárolt, és digitálisan aláírt rendszerbetöltő képfájlból állít elő. Ehhez bármilyen szoftverfrissítésnek az eredeti berendezésgyártó (OEM) titkos kódjával generált aláírással kell rendelkeznie. A biztonságos rendszerbetöltés és a futásidejű ellenőrzési eljárások segítségével a rendszer a hálózaton keresztül (over-the-air) továbbíthatja a szoftverfrissítéseket anélkül, hogy harmadik fél által kivitelezett közbeékelődéses (man-in-the-middle) vagy más hasonló támadás kockázatát kellene vállalnia.
Az a kulcs, amivel a programkód digitális aláírása ellenőrizhető, érzékeny, biztonságkritikus adat, és mint ilyet, védett és kívülről felül nem írható tárolóterületen kell elhelyezni. Ha a kulcs megváltoztatható, a rendszer egyszerűen nem működik. Ha a kulcspár mindkét elemét egyszerre változtatják meg, a kód hasonlóképpen illetéktelenül megváltoztatottnak tekinthető.
Tekintsünk át röviden egy hatékony védelmi rendszert, amely a Microchip Technology ATECC608A termékében valósult meg. Ez egy olyan biztonsági elem, amelyet bármilyen mikrovezérlő-alapú rendszerben fel lehet használni a szabványos I2C vagy egyvezetékes kommunikációs képességének köszönhetően. Az eszközben egy kikapcsoláskor nem törlődő memória mellett néhány olyan – hardvergyorsítóval kivitelezett – titkosítóalgoritmus működik, amely az elliptikus kriptográfia módszerét valósítja meg biztonságos szilíciumtechnológiával. A biztonsági elem soha nem teszi láthatóvá a titkos kulcsokat a kommunikációs csatornákon, és számos babrálásvédelmi célú hardvertulajdonsággal rendelkezik, ami gyakorlatilag lehetetlenné teszi a hozzáférést a titkos kulcsokhoz.
Bár egy mikrovezérlőhöz csatlakoztatott biztonsági elem hatékonyan megalapozza a magas biztonsági szintet garantáló beágyazott rendszerek felépítését, ez a kombináció csupán része egy teljes megoldásnak. Számos használati eset vonatkozik komplex protokollok beépítésére a beágyazott szoftverekben a biztonságos elem által biztosított alapvető funkciókból. Például a biztonságos rendszerbetöltésen túl egy IoT-eszköznek szüksége van arra, hogy olyan titkosított protokollokkal tudjon kommunikálni távoli hosztgépekkel, mint a TLS, és hogy képes legyen olyan tanúsítványokat generálni külső igény esetén, amellyel bizonyítható, hogy az eszköz nem kompromittálódott, amikor egy új szolgáltatáshoz kíván csatlakozni. Amikor a gyártó vagy egy szolgáltatás üzemeltetője egy kódfrissítést akar küldeni, az elküldeni kívánt firmware-kód digitális aláírását ellenőrizni kell, mielőtt az az eszköz flashmemóriájába betöltődne, és a rendszer újraindítása megtörténne.

 

03microchip

2. ábra  Fejlesztési folyamat a Microchip Trust Platformjával

 


További követelmény lehet egy olyan képesség megvalósítása, amely detektálja, hogy az eszköz működéséhez szükséges tartozékok jelen vannak, illetve megállapítja, hogy azok autentikus forrásból származnak-e. Ez a funkció olyan protokollok felhasználásával hajtható végre, amelyek hasonlítanak ugyan a kódellenőrzési példában említettekhez, de néhány kulcsfontosságú különbséggel. Például minden perifériának lehet saját biztonsági eleme, amellyel azt ellenőrzi, hogy a hoszt, amihez csatlakoztatták, maga is autentikus-e.
Noha az egyes protokollok mögött meghúzódó alapelvek, amelyek ezeket a funkciókat realizálják, meglehetősen egyértelműek, a megvalósítás mégis nehéz lehet, mivel a problémák hibakeresésének képességét korlátozza annak szükségessége, hogy a rendszernek be kell tartania a biztonsági protokollokat.
Általános az a feltételezés a fejlesztés során, hogy a reset gomb megnyomásával vagy a memória tartalmának törlésével a mérnökök hozzáférhetnek egy válaszképtelen eszközhöz. A hibakeresési módok általában magas szintű hozzáférést biztosítanak a rendszerhez a fejlesztők számára. Ám az internethez csatlakoztatott rendszerekhez szükséges magasabb szintű biztonság bevezetése után ezek a feltételezések részben már nem érvényesek. A szoftver helyes megvalósításánál elkövetett hiba a prototípuspéldány elérhetetlenségét okozhatja. A biztonságos rendszerek fejlesztésének legproblematikusabb része a magprotokollok hibakeresése. Például könnyű bevinni a hibákat a kódok vagy a biztonsági tanúsítványok feldolgozását végző programkódba, amelyek miatt az eszköz képtelenné válhat arra, hogy érvényes kérésekre válaszoljon. Ha az eszközt alaphelyzetbe állítással hozzáférhetővé lehetne tenni, akkor ez a lehetőség a rendszer feltöréséhez könnyen kihasználható „hátsó ajtót” nyitna a rendszerbe. Ennek eredményeként a biztonságra törekvő fejlesztés akadályokat gördíthet a fejlesztési folyamat útjába. Ezeket nehéz kezelni, ha a csapatnak nincsenek tapasztalatai a szükséges eljárásokkal kapcsolatban.
A PKI-infrastruktúrára épülő rendszerek egyik előnye azonban, hogy az alkalmazások az alapvető protokollok és használati esetek főlé építhetők. Ilyen például az aláírt végrehajtható fájlok ellenőrzése, és a tanúsítványok létrehozása, amelyeket számos projektben újra felhasználhatunk. Ez a látásmód vezetett a Microchip Trust Platform létrehozásához. Ez a platform konfigurációs, forráskód-, hardver- és szoftvereszközöket kínál, amelyek megkönnyítik a fejlesztők számára a sokféle használati eset megvalósítását egy olyan munkafolyamatban, amely a felhasználót a koncepciótól a megvalósításig vezeti. Ennek egyik kulcseleme az olyan biztonsági hardver, mint például az ATECC608A

 

04microchip

3. ábra  A Microchip Trust Platform megrendelési / szállítási folyamata


A Trust Platform három fő szolgáltatási szintet ajánl. A legegyszerűbb a Trust & GO, amely rögzített funkciókkal rendelkezik, például hozzáférhetővé teszi az eszköz számára az AWS, a Google Cloud, a Microsoft Azure felhőszolgáltatásokat vagy valamilyen privát felhőszolgáltatást. A Trust & GO által támogatott másik konfiguráció egy teljes biztonságos hitelesítési megoldás olyan eszközökhöz, amelyeknek LoRaWAN vezeték nélküli hálózathoz kell csatlakozniuk.
A második szolgáltatási szint, a TrustFLEX további testreszabási lehetőséget kínál a biztonsági műveletek széles választékának támogatásával a biztonságos rendszerindítástól a tanúsítványok generálásáig. A harmadik szolgáltatási szint a TrustCUSTOM, amely lehetővé teszi a felhasználók számára, hogy a biztonsági elemek létrehozását és integrálását a kívánt biztonsági modellnek megfelelően „finomhangolják” (2. ábra).
A Trust Platform egyik fontos eleme, amely más megoldásoknál könnyebbé teszi a biztonsághoz való hozzáférést, az a mód, amely a titkoskulcs-szolgáltatást a kis sorozatú alkalmazások számára is elérhetővé teszi. A biztonsági elemeket gyártó versenytársaknál a minimális rendelési mennyiség akár 100 000 is lehet, mivel az eredeti tanúsítványok és kulcsok előállításának magasak az általános költségei, ugyanis a titkos információkat a gyártó biztonságos gyártósorában kell a hardverbe programozni. A Trust & GO segítségével viszont az ügyfelek akár 10 darabos minimális rendelésekkel is vásárolhatnak biztonsági elemeket, amelyhez megkapják a Trust Platform infrastruktúrájának minden támogatását, a termék aktiválását is beleértve. A TrustFLEX esetében a minimális rendelési mennyiség 2000 egység, az aktiválást is beleértve. Ez az opció viszont azt a fokozottabb ellenőrzési lehetőséget kínálja a felhasználónak a tanúsítványok, kulcsok és alkalmazások felett, amire az egyedi biztonságos ellátásilánc-megoldásoknál lehet szükség.
A Microchip Trust Platform keretében az ügyfelek testreszabható biztonsági mechanizmusokhoz férhetnek hozzá, mégpedig a piacon elérhető, más ismert megoldásoknál sokkal kisebb fejlesztési és telepítési kockázattal. Az eszközök, a forráskód és az ellátási infrastruktúra kombinációja a beágyazottrendszer-fejlesztők számára teljesen biztonságosan felszerelt rendszerhez kínál útvonalat a koncepciótól a telepítésig, a fejlesztési folyamatot hónapokról napokra rövidítve.

 

Szerző: Nicolas Demoulin, EMEA marketingmenedzser – Microchip Technology Inc., biztonsági termékek részleg

 

www.microchip.com

 

még több Microchip