iOS biztonság 3. - Data security: IN USE - AT REST - IN TRANSMIT
Rábízhatom-e az adataimat egy iOS eszközre?
A te dolgod – a te adataid ☺ De tegyük félre a viccet. Személyes, vagy üzleti kritikus adatoknál ez egyébként sem vicc.
A digitálisan aláírt és elszeparált szoftverek megbízható környezetet nyújtanak az iOS eszközökön. Azonban nem lehet minden bitsorozatot befagyasztani és változatlanságra ítélni. A programok futása során keletkező állapotváltozások és az általunk készített adatok eltárolásához meg kell oldani változó információk tárolást. Azok az adatok, amit a felhasználó eltárol, sok esetben több alkalmazás számára is szükségesek. Biztosítani kell az alkalmazások közötti ellenőrzött és szabályozott információ átadást. Ugyanígy meg kell oldani adatok fogadását és továbbítását is a külvilág felé.
Data Security at rest
Sokan kérdezik, hogyan titkosíthatnák adataikat az iOS eszközön. Úgy, hogy bekapcsolják a jelkód védelmet. Ugyanis az eszközön eleve titkosítva tárolódnak az adatok. A titkosításhoz két adatot használ fel az Apple: Az A7 chipbe gyárilag beégetett eszköz azonosítót és a felhasználó által megadott jelkódot. Ha valaki galád módon átforrasztaná a háttértárat egy másik eszközbe, nem tud hozzáférni az adatokhoz, mivel nem stimmelne a chipben levő azonosító. Ez a védelem akkor is működik, ha nem adtunk meg jelkódot (csak jelkód hiányában bárki hozzáférhet). Ha jelkóddal zárolva van az eszközünk, nem csak hogy nem tudjuk megnézni az adatokat, hanem azok többsége sehogy sem elérhető. Még az iOS és az appok számára is hozzáférhetetlenek (titkosítottak) ezek az információk, amig fel nem oldjuk a zárolást a jelkódunkkal (vagy ujjlenyomatunkkal), mivel a visszafeltő kulcs másik részlete a jelkódból készül. Ha ismét zároljuk az eszközt, törlődik a jelkódunk a memóriából és újra visszafejthetetlenekké válnak az adatok. Tehát egy zárolt eszközről hiába próbálnánk kábelen, vagy egy app segítségével megszerezni a felhasználói adatok többségét, nem lehetséges visszafejteni őket, mivel még az eszköz sem tárolja a teljes visszafejtő kulcsot.
Hardwer encryption
Az adatok titkosított tárolása nem lassítja a rendszert. Nem a processzor végzi a titkosítási folyamatokat, hanem a DMA útvonalba beépített kiegészítő áramkör.
Touch ID
Nem csak jelkóddal, hanem ujjlenyomattal is feloldhatjuk a zárolást a Touch IDval szerelt eszközökön. Így adhatunk hosszú, bonyolult jelkódot, ami jelentősen emeli a védelmet, mégis kényelmesen oldhatjuk fel az eszközt egy érintéssel. Három ujjlenyomatot is eltárolhatunk. Ha netán egyik ujjunk elveszne, van még másik kettő, amivel feloldhatjuk a zárolást ☺ Annak pedig ugye nincs sok esélye, hogy másnak ugyanolyan ujjlenyomata lenne, mint nekünk. Igaz, ez inkább a Hardwer Security témakörhöz tartozik, de nélküle nehéz lenne mesélni az ujjlenyomatok védelméről.
Secure Enclave
Az A7, vagy annál újabb chipben egy teljesen elkülönített processzor is helyet kapott. A Secure Enclave coprocesszor saját, beégetett szoftverkóddal rendelkezik, önállóan bootol és szintén ellenőrzi a saját kódja megbízhatóságát (sérülés elkerüléshez). Ez a kis fekete doboz felel az ujjlenyomatok kezeléséért.
Ebben tárolódnak el az ujjlenyomatok. Pontosabban az ujjlenyomatok rajzai nem tárolódnak el, csak a rajzolatuk alapján kialakított matematikai képletek. Azonban ezekhez sem lehet hozzáférni, mert a secure enclave belsejében tárolódnak el. Amikor ujjlenyomatot ellenőriz a rendszer, átadja az épp beolvasott ujjlenyomat információit a secure enclavenek. Ezen az elszeparált rendszeren belül a coprocesszor összehasonlítja az eltárolt képletekkel. Ha megfelelő az egyezés, akkor csak annyit jelez vissza az iOS felé, hogy azonos a kapott ujjlenyomat. Tehát az ujjlenyomatok információi soha nem jönnek ki a secure enclaveből. Semilyen rendszerelem nem fér hozzájuk, nem lehet őket megszerezni.
Effaceable Storage
Az adatok védelméhez az is hozzátartozik, hogy szükség esetén gyorsan megsemmisíthessük őket, mielőtt illetéktelenek hozzáférhetnek.
Az eltárolt adatok visszafejtéséhez szükséges egyik kulcs (a File System Key) az effaceable storage nevű tárolóba van beírva. Ha szükség van az eszközön tárolt információk gyors megsemmisítésére, elég csak ezt a kicsi tárolót törölni visszaállíthatatlanul. Ezzel megsemmisül a visszafejtő kulcs, azaz egy szempillantás alatt visszafejthetetlenné válnak a flash tárolóban levő adatok. Nincs idő arra, hogy valaki félbeszakítsa az adatok törlési folyamatát, mivel a háttértárról nem is kell törölni az adatokat a megsemmisítésükhöz.
Data Security in use
Data Protection Classes
A felhasználó által készített adatok többségére csak akkor van szükség, amikor a jelkóddal feloldottuk az eszköz képernyőjét. Ezért ahogy írtam, ezek az adatok zárolt eszközön nem is visszafejthetőek. Viszont vannak olyan információk, amikre zárolt eszköznél is szükség lehet. Ilyen pl. a wifi jelszó, vagy a címjegyzék, amiből a zárolt eszköz is szeretné beazonosítani és kiírni a telefonáló számhoz tartozó nevet.
Az Apple data protection classokat alakított ki. Ezek határozzák meg, melyik adat, mikor elérhető.
Például a „Complete Protection” osztályba sorolt adatok csak akkor elérhetők, amíg nem zárolt az eszköz. A bevezetőben már írtam róla.
A „Protected Until First User Authentication”
az alapértelmezett osztály, hacsak nincs máshova besorolva, ide tartoznak a felhasználói adatok. Ezek az adatok szintén csak a zárolás feloldásakor válnak elérhetővé, de elérhetők maradnak egészen az eszköz újraindításáig. Akkor is, ha zároljuk a képernyőt.
A „Protected Unless Open” osztály adatainak csak addig marad elérhető a visszafejtő kulcsa, amíg az adat meg van nyitva. Mihelyt bezárjuk az fájlt, a memóriából a fájl is és a visszafejtő kulcsa is törlődik.
Még a „No Protection” osztályba sorolt adatok is titkosítva tárolódnak. Viszont a visszafejtésükhöz csak az Effaceable Storageban eltárolt File System Key szükséges. Ezért bármikor visszafejthetők, elérhetők a rendszer és az alkalmazások számára. Egészen addig, amig nem wipeoljuk az eszközt (a File System Keyt).
Keychain
A jelszavak, tokenek, vagy szenzitív információk a keychainben tárolódnak el. A keychain hasonló szabályok szerint kezeli őket, mint a fájlokat a Data Protection Classes. Ezen felül a keychain biztosítja azt is, hogy egy-egy érzékeny információt melyik alkalmazások érhetnek el. A digitálisan aláírt szoftverek miatt egyértelműen meghatározható, melyik alkalmazás kapja az elérést, az alkalmazás Group IDk segítségével pedig a fejlesztő egész alkalmazáscsaládjai közösen használhatják a számukra biztosított érzékeny információt.
Az alkalmazások közötti közvetlen adat átadást az Entitlements szabályozza és a Sandboxing védi, ahogy a második fejezetben már olvashattátok.
Data Security in transmit
iOS Pairing
Csak trustolt számítógépre lehet adatot szinkronizálni. Szintén a 2. fejezetben írtam le. A nélkül, hogy a felhasználó ne fogadná el az eszközön megbízhatóként a kábellel rácsatlakoztatott számítógépet, nem lehet kábelen elérni adatokat. Ha pedig elfogadtuk megbízhatónak, akkor a digitálisan aláírt és így ellenőrzött iTunes, vagy Apple Configurator programok tudják elérni és szinkronizálni, vagy menteni az eszköz adatait.
MDM protocoll
Az MDM protokoll segítségével távolról monitorozható és szabályozható az Apple eszköz. De személyes adatokat nem ad át az iOS az MDM szervernek.
Network protocolls
Az adatok átvitelét WiFin, BlueToothon, AirDropon, vagy kábelen keresztül is általánosan ismert kommunikációs protokollok biztosítják. Pl: SSL, TLS, 802.1X wifi, Kerberos...
A támogatott VPN szabványok között megtaláljuk az IKEv2, SSL, Cisco IPSec... tunneleket. Használhatjuk a Per App VPN, VPN On Demand, Always-on VPN funkciókat.
Ezek a funkciók és protokollok biztonságos adatátvitelt tudnak biztosítani a céges hálózatba.
Nagyon sok információt lehetne még leírni, de próbálom a lehető legrövidebben, leegyszerűsítve bemutatni az iOS eszközök biztonsági működését. Remélem, tetszik. Az Apple szakmai anyagokban ennél lényegesen több és pontosabb leírást találhattok.
Ha az eddig leírtak így vannak, akkor jól konfigurált eszközökről az adataink nem tudnak illetéktelen alkalmazás kezébe kerülni. Sem zárolt, sem újraindított, sem szétszerelt eszközből nem lehet kinyerni az adatokat. Ha pedig az eszköz illetéktelen kézbe kerül, egy pillanat alatt végrehajthatja az összes adat elérhetetlenné tételét a remote-, vagy az automatikus wipe funkció.
A következő cikkben azt nézzük meg, mi védi az eszközöket az illetéktelen kezek közt.
Ugrás a sorozat elejére: Apple iOS Biztonsági Funkciók
Szeptember 28-án Apple Eszközök Vállalati környezetben címmel rendezvényt tartunk, ahol személyesen is találkozhatunk. A rendezvény ingyenes, de regisztrációhoz kötött.