Logo hu.androidermagazine.com
Logo hu.androidermagazine.com

Hogyan menti az Android az ujjlenyomatait?

Anonim

Az ujjlenyomat-érzékelő nélküli iPhone kiadása magában foglalta az ujjlenyomatok hitelesítéshez való felhasználásának és az adatok tárolásának biztonságosságát. Ez elképesztő. Még ha nem is aggódik amiatt, hogyan történik, sok más emberrel kell aggódnia, hogy az oly módon történjen, hogy ne kelljen aggódnia!

A kezdőknek az Apple hasonló megoldást használ, és ha van régebbi, ujjlenyomat-érzékelővel rendelkező modell, akkor ugyanolyan biztonságban használja, mint korábban. Ugyanez vonatkozik a régebbi Samsung telefonokra, amelyek elindították a Marshmallow-ot és a Samsung saját módszereit használják.

A jelenlegi technológiával a lehető legbiztonságosabb módon tárolja az ujjlenyomatadatokat a Google. Izgalmas az is, hogy egyszerû az egész áttekintése, ha megnézi. Az egyszerű és biztonságos mindig egy nyerő kombináció.

A tárolás jellegénél fogva nem túl biztonságos. Ugyanaz a dolog, mint valamit írni egy post-it jegyzetre, és egy dossziéba helyezni. Azért van, mert ott kell lennie, és a legjobb dolog, amit tehetünk, az, hogy ellenőrizzük, ki fér hozzá. A rekesznél zárot használ, telefonja esetén titkosítást használ. Az ujjlenyomatadatok vonatkozásában a dolgok egy lépéssel tovább mennek: Megbízható végrehajtási környezet (TEE).

A TEE egy különálló és elkülönített terület a telefon hardverében. A TEE saját processzort és memóriát használhat, vagy virtualizált példányt is használhat a fő CPU-n. Mindkét esetben a TEE teljesen el van szigetelve és szigetelve hardver által támogatott memória és bemeneti / kimeneti védelem segítségével. Csak akkor léphet be, ha a TEE enged be, és soha nem fog. Még akkor is, ha a telefon gyökerezik, vagy a rendszerbetöltő nincs feloldva, a TEE külön és még mindig ép.

Az ujjlenyomatadatok elemzésére és tárolására külön processzor, saját memóriájával és operációs rendszerével kerül sor.

A Google ezt támogatja az úgynevezett Trusty TEE-nek. Egy nagyon kicsi és hatékony operációs rendszer, amelyet Trusty OS-nek hívnak, a TEE hardveren fut, és a kernel illesztőprogramjai lehetővé teszik a kommunikációt a rendszerrel. Vannak Android könyvtárak (kitalálta: a Trusty API), amelyeket a fejlesztők használhatnak, hogy felkérdezzék, mi jelent igen vagy nem kérdést a TEE számára. Nem csak az ujjlenyomatadatokat tárolja a TEE-ben. Az olyan dolgok, mint a DRM kulcsok és a gyártó bootloader titkosítási kulcsa is a TEE-ben élnek, és ugyanúgy működnek, mint az ujjlenyomatadatok - válaszoljon arra, hogy az alkalmazás által szolgáltatott adatok megegyeznek-e a tárolt ismert jó adatokkal.

Más gyártók használhatják a Trusty OS-t, vagy használhatnak más rendszert. Mindaddig, amíg az összes kritérium teljesül (az alábbiakban felsoroljuk), és a TEE el van szigetelve és szigetelve, akkor megfelel a Pixel Imprint (korábban Nexus Imprint) használatához szükséges biztonsági előírásoknak.

ARM TrustZone TEE blokkdiagram.

Amikor ujjlenyomatot regisztrál az Android telefonjára, az érzékelő megragadja a beolvasott adatokból. A Trusty OS elemzi ezeket az adatokat a TEE-ben, majd két dolgot hoz létre: egy érvényesítési adathalmazt és egy titkosított ujjlenyomat-sablont. Ez úgy tűnik, hogy mindent kéretlen adatnak számít, kivéve a TEE-t, aki szintén rendelkezik a kulcsgal a kéretlen adatok megfejteni. Ezt a titkosított ujjlenyomat-sablont titkosított tárolóban tárolja a TEE-n vagy a telefon titkosított tárolóján. A három titkosítási réteg azt jelenti, hogy szinte lehetetlen beszerezni az adatokat, és még ha meg is tudta volna használni, akkor haszontalan lehet anélkül, hogy megfejtené.

Az Android megköveteli, hogy az ujjlenyomat-adatait egyedi kulccsal védjék, és nem viheti át másik telefonra, vagy nem használhatja újra egy másik felhasználó számára.

Az érvényesítési adatokat a TEE-ben tárolják. Amikor az ujját a szkennerre helyezi, hogy megpróbáljon valamit tenni, a szkenner elkészíti az adatprofilt. A Trusty API-n keresztül a társított alkalmazás arra kéri a kernelt, hogy kérje meg a TEE-t, ha helyes-e. A TEE a processzor és a memória segítségével ellenõrzi a tárolt érvényesítési adatokat, és ha az adatok megfelelnek, mondja igen. Ha nincs elég egyező adat, azt mondja: nem. Ezt a sikertelen vagy sikertelen választ szoftvermagként küldjük vissza a rendszermagnak, amelyet az API elolvashat az eredmény megjelenítéséhez.

Míg a TEE önálló operációs rendszert és hardvert használ a biztonság megőrzése érdekében, az ujjlenyomat-sablon szoftver-alapú titkosítást használ. Az érvényességhez egy nagyon specifikus kulccsal kell aláírni. Ezt a kulcsot eszköz-specifikus információk, felhasználó-specifikus információk és idő-specifikus információk felhasználásával hozzák létre. Más szavakkal: ha eltávolít egy felhasználót, megváltoztatja az eszközöket vagy megpróbálja újraregisztrálni az ujjlenyomatot (a rendszer tudja, hogy felülírja-e egy meglévő ujjlenyomatot), a kulcs már nem kerül felismerésre, és nem használható fel az ujjlenyomat dekódolására sablon.

Az alapvető szabályok, amelyeket minden ujjlenyomat-érzékelővel Android telefonokat gyártó vállalatnak be kell tartania:

  • Az összes ujjlenyomat-elemzést a TEE-ben kell elvégezni
  • Az ujjlenyomattal kapcsolatos összes adatot a TEE-ben vagy a megbízható memóriában kell tárolni (a memóriában, amelyet a fő CPU még nem is lát)
  • Az ujjlenyomat-profil adatainak öntulajdonban kell lenniük, még akkor is, ha azokat titkosított telefontárban tárolják
  • A felhasználói fiók eltávolításának biztonságosan törölnie kell az összes felhasználó ujjlenyomatainak adatait
  • Az a hely, ahol az ujjlenyomat-profilok tárolódnak, egyetlen alkalmazásnak, folyamatnak vagy felhasználónak, beleértve a gyökér felhasználót sem, nem szabad látni
  • Bármilyen ujjlenyomat-adatot nem szabad más forrásból menteni, ideértve a felhőt, a számítógépet vagy az alkalmazást
  • Az ujjlenyomat-hitelesítést az azt igénylő folyamatnak kell használnia (nem szabad megosztani az ujjlenyomatadatokat, még csak az igen vagy a nem válasz választ, hogy kiderüljön, hogy helyes-e)

Ha van néhány egyértelmű szabványos előírása, akkor nem nehéz ezeket teljesíteni. Ez biztosítja, hogy függetlenül attól, hogy melyik Android-telefont használja az ujjlenyomat-adatait, biztonságosan tárolódik, és egyetlen más rendszerfolyamat vagy alkalmazás sem fér hozzá. A kriptográfia fejlődésével, különös tekintettel a hardver által támogatott titkosításra, az ujjlenyomatadatok biztonságos megőrzésének ez a módszere is meg fog változni. Érdekes lesz visszatekintni az Android Z elindulására, és megnézni, milyen messzire mentünk.