A biztonságos kommunikációban nem csak a szoftvernek, a titkosításnak van jelentősége – amellett, hogy az is nagyon fontos – de az adatbiztonság terén a hardvernek is nagy jelentősége van. A hardver fejlesztésekor elsőrendű a megfelelő technológia kiválasztása, hogy az elkészült termék adatvédelmi szempontból biztonságos legyen.
Hardver és adatbiztonság
Az adatbiztonság terén a kommunikáció oldali lehallgatás elkerülése mellett meghatározó hardverünk védettsége is, mert a biztonságos hardver az egyik alapja az adatbiztonságnak. A fizikai eszközökhöz, kellően hosszú ideig történő hozzáférés esetén a szoftveres védelem hatékonysága is mihamar köddé válhat.
Biztonsági szempontból meghatározó a hardveres integritás a mikrokontroller- és processzor szinten alkalmazott szoftverek védelmében. Igen nagy fontosságú a megfelelő hardverelemek alkalmazása, mert a biztonságunk egyik alapját a megbízható hardverek adják. Komoly támadási felület lehet, ha az alkatrészek rendelkeznek olyan hátrányos tulajdonságokkal, amelyeken át a hátsó kapukat fellelő támadók az operációs rendszer megkerülésével nyomtalanul hozzáférnek a firmware-hez, titkosító kulcsokhoz vagy a számítógép egyéb elemi funkciójához. Ez származhat alkatrész hamisításból, tervezési hibából, más külső befolyásolásból. Az ilyen támadások kockázata miatt van szükség az integritást védő módszerekre.
A hardver sebezhetőségének csökkentésére ma már több féle módszertanok, megoldások léteznek. Különböző szinteken egy időben is alkalmazható módszerekkel biztonságos környezet hozható létre ahhoz, hogy a támadók ne férhessenek információkhoz, de érdemes a tervezés alábbi lépéseit is megfontolni:
- Egyetlen komponens hardveres áldozattá válása esetén a támadó által szerzett információk csak az áldozat komponens működését veszélyeztethessék.
- A támadás hatásai ne futhassanak végig az egész rendszeren, ne adjanak egyéb támadási lehetőségeket a rendszer más elemeihez. Védelmet nyújthat a rendszer moduláris szerkezete.
- A hardver komponensek gyártási folyamata, eredetisége ellenőrizhető legyen.
- Meg kell akadályozni az idegen kódnak a firmware futásba való beinjektálását.
- A komponensek feleljenek meg az elekromágneses kompatibilitás (ESD és EMC) követelményeinek.
- Kontrollált környezet biztosítása a komponensekből történő rendszer felépítési folyamatához.
- Az architektúra biztosítson támogatást a kulcsok védelméhez, a titkosítási és védelmi algoritmusok futtatásához.
Véletlenek és számok
A kulcsok védelme, a titkosítási és védelmi algoritmusok futtatásához nyújtott védelem egyik alapja a véletlenszám-generátor. A generátor használható a legtöbb védelmi módszerhez, például az egyedi titkosítási és hitelesítési kulcsok generálásához. Átlagos hardveren kért véletlen számot a szoftver általában a rendszeridőből, és más, hardverhez kötődő véletlenszerűnek látszó generálási magból, matematikai számítások eredményeként adja meg, ami megjósolható, teljesmértékben kiszámítható paraméterek kombinációjaként létrehozott számot jelent. Ez többnyire megfelelő, de ha kritikusan védendő adatunk van, ez nem lesz elég, mert a paraméterek és folyamatok determinisztikusak, tehát visszafejthető a generált szám. Különösen így van egy kevésbé fejlett mikrokontroller használatakor, melynél még egyszerűbb a véletlenszám generátor.
„Kitalált” véletlenszámok
A megjósolhatóság, valójában kiszámíthatóság elkerülésére fejlesztették ki a valós véletlenszám-generátort (TRNG – True Random Number Generator), mellyel anélkül kaphatunk egy kriptográfiában használatos, nem előre meghatározható véletlen számot, hogy konkrét matematikai algoritmus legyen az alapja. E számok generálásának alapja entrópikus forrás (radioaktív izotópok bomlása, környezeti zaj), és azok mintavételezése alapján hozzák létre a valós véletlenszámot. Ez lehet mindennapos eljárás is, mint a CloudFlare megoldása, mely manapság az internetbiztonság egyik alapja: lávalámpákra irányított kamerákkal, viaszbuborékok mozgásának vektorizálásával generálnak véletlenszámot. Ezek már valóban véletlenszámok, és jól használhatók olyan valós kulcsok generálásához, melyekkel titkosíthatjuk adatainkat akár erős támadások ellen is, mert ha ismerik is a titkosítási és számgenerálási algoritmust, nem tudják matematikailag visszafejteni a titkosításhoz generált számot, mert nem tudják megjósolni, hiszen nincs benne sem szabályosság, sem minta.
A TRNG valódi processzorban tobbnyire fizikai folyamatok (hőmérséklet változás, áramfelvétel ingadozás) és környezeti zajok (interferencia, induktív vagy kapacitív csatolások) kombinációit alkalmazza generálási magként.
Ha betörnek?
Ha létrejött fizikai hozzáférés során a támadó egy kártékony kódot próbál feltelepíteni a rendszerünkre, a Secure Boot (biztonságos rendszerindítás) lehet a segítség: felügyeli a betöltés folyamatát, és megakadályozza az általunk nem hitelesített kódok futtatását. A Secure Boot megakadályozza a nem hiteles kódok betöltését is az operációs rendszerbe vagy az indítási folyamat során, mert bekapcsoláskor ellenőrzi a bootloader/bios hitelességét és eredetiségét, majd a bootloadert elindítva ellenőrzi az operációs rendszer magjának hitelességét és a hitelesítési kulcsokat. Csak akkor indul el a működtető szoftver tényleges betöltése és futtatása, ha a folyamat mindent hitelesnek és eredetinek talált.
A Secure Boottal együtt sokszor használjuk a Fuse Biteket, melyek permanens, csak egyszer írható adattárolásra képesek (általában a bootloader vagy firmware első feltöltésével egyidőben), melyeket később nem lehet megváltoztatni, de kikapcsolt állapotban, hosszú idő alatt is állandó az értékük, mert beíráskor fizikailag megváltozik a tároló felépítése (pl elég egy átvezetés a rétegek között). Az ilyen bitek segítségével tárolhatunk biztonsági kulcsokat, aláírásokat, melyek felhasználásával ellenőrizhetjük a futtatandó szoftver valódiságát, vagy azt, hogy a folyamatok az elvárásainknak megfelelő, előre meghatározott, hiteles módon működnek.
Előfordul, hogy hibás, leselejtezett, ellopott hardverből a hitelesítési kulcsokat akár az IC-k tokozásának lecsiszolásával és belső pontokra történő kapcsolódással próbálják megszerezni. Védekezni csak a megfelelően fejlesztett chipekkel lehet. A tokozatba beépített “chip fuse”-ok segítségével elérhető, hogy az IC-k tokozásának sérülésekor olyan extra fuse bitek is “kiégnek”, melyek az eredetileg tárolt információt módosítják, ami biztosítja, hogy csak hibás adatot lehessen kiolvasni.
A Secure Boot biztosítja az eredetiséget, ám nem védi meg az eszközt a hamisítványoktól, külsőleg aláírt programoktól, például ha ismert az aláíráshoz használt kulcs, vagy a hackerek offline módban elérhetik az adatainkat, ezért célszerű ezt a módszert más titkosítási módszerekkel együtt használni.
A problémára megoldás lehet a Secure Boot alternatív verziója, a Measured Boot, mert a rendszer minden indításkor méri és tárolja a boot során betöltött komponensek integritási metrikáit biztonságos, manipulálhatatlan helyen, például egy Trusted Platform Modulban. A folyamat nem blokkolja a nem hitelesített komponensek betöltését, egyszerűen rögzíti a betöltött kritikus szoftverkódok és fájlok digitális ujjlenyomatait, vagy a hashelt állapot értékeit az indítási folyamatban.
Az adatokat biztonsági tárolóba mentve később újra lehet használni annak ellenőrzésére, hogy a rendszer indítási folyamata megfelelt-e a biztonsági előírásoknak.
Ha az aktuális és a korábban rögzített metrikák között fellelhető eltérés, akkor jelezhető és kezelhető a biztonsági incidens a működés blokkolásával, vagy vészhelyzeti protokollok futtatásával, biztosítva, hogy a hardver és az adatok integritása ne sérüljön.
A Trusted Platform Module (TPM) chipeket direkt a fenti megoldások biztonságos és megbízható támogatására fejlesztették: egy IC-ben összpontosítva a kriptográfiai műveletek támogatását, a kulcskezelést, az integritás ellenőrzését, valamint a bootolási folyamat védelmét, sérthetetlenségét, valamint külső behatás elleni védelemmel is meg vannak erősítve. Telepítésük jelentősen megnehezíti a rosszindulatú szoftvereknek, hogy elrejtsék tevékenységüket, esetleg módosítsák a rendszer működését. Továbbá a TPM lehetőséget ad arra, hogy a hitelesítéshez szükséges információkat, mint a biometrikus adatok és az azonosítási protokollok, biztonságosan tároljuk. E chipek gyorsan terjednek, az elmúlt években a PC-k elengedhetetlen részeivé váltak, de mikrokontrolleres környezetben is sok gyártó ad hardver támogatást a TMP modulok alkalmazásához.
A hardverünk kifejlesztése során az ebben a cikkben említett módszertanokat és technológiákat vizsgáltuk meg és használtunk fel.
További információ kérhető:
CRITERION Biztonságtechnikai Zrt.
Cím: 1139 Budapest, Teve utca 51/b.
E-mail: systems@criterion.hu
Honlap: www.criterion.hu/biztonsagtechnika