Téged véd, mégsem látod – az iOS biztonsági funkciói – 1. rész

Apple security

Két nappal ezelőtt kaptam egy kérdést emailben az egyik ügyfelemtől iOS MDM témában. Mivel nem voltam teljesen világos és tájékozott a témában így kutakodni kezdtem a neten, illetve a belső forrásokban. Aztán rátaláltam erre és elszabadult a pokol. 🙂

A dokumentum amit linkeltem dióhéjban (khm: 157 oldalban – igaz tokkal-vonóval) azt írja le, hogy az Apple az iOS / iPadOS / macOS az iCloud és úgy az egész Apple ökoszisztéma milyen biztonsági funkciókat, lépéseket valósít meg annak érdekében, hogy a felhasználók és adataik, az Apple, meg úgy kb. mindenki a lehető legnagyobb biztonságban legyen. Mindezt természetesen úgy, hogy kicsit azért a részletekbe is belemegy. A dokumentum kitér a hardverre, a szoftverre, infrastruktúrára és az egyes szolgáltatásokra is. Érdemes elolvasni akit kicsit is érdekel a téma.

Előre szeretném leszögezni, hogy jelen poszt sorozatnak nem célja semmilyen körülmények között véleményt alkotni a most éppen aktuális Apple – FBI ügyről, sem arról, hogy az Apple mennyire etikus vagy sem. Olvassátok úgy, hogy a szakmai kiváncsiság vezessen, tudjátok meg mi duruzsol az iOS motorház teteje alatt.

Azt is szeretném előre leszögezni, hogy nem vagyok az IT biztonság minden témájában szakértő (sőt) – bár IT biztonságban dolgozom, de mint oly sok minden másnak, úgy ennek a szakterületnek is kvázi végtelen iránya van, így nem akarok olyanról mélyrehatóan értekezni, amit nem ismerek.

Utolsó előre tisztázandó pont, hogy az írásokban lesz szakmai kifejezés bőven, ezeket a végtelenségig lehetne definiálni, de nem fogom. Van Google meg internet, akit mélyebben érdekel, utána nézhet (én is ezt teszem). Szóval nézzük mi mindent találtam a dokumentumban, ami szerintem érdekes annyira, hogy kiemeljem (nyilván az egész PDF az, de na… :)).

Ja, még valami: a macOS mint platformot nem említem. Ennek oka az, hogy a doksiban bár említve van, engem személy szerint nem érdekel, illetve azokkal a szolgáltatásokkal és alkalmazásokkal sem foglalkozok, amik itthon nem elérhetőek. Köszönöm a megértést!

Hardver biztonság és biometria

Az informatikában úgy általánosságban amikor titkosításról, kulcsokról, SSL-ről, meg hasonlókról beszélünk, akkor alapvetően nagyon durva és számításigényes matematikai műveletekről beszélünk. Ezek a számításigényes feladatok a mai hardvereken már nem érződnek olyan vészesnek, ám mégis ha mondjuk egy olyan operációs rendszerről beszélünk, ami alapvetően a biztonságra van kihegyezve (ahogy az Apple mondaná: Secure by design), akkor azért kicsit másképp kell gondolkodni. Éppen ezért az Apple, hogy ezeket a borzasztóan nehéz és bonyolult számításokat a kriptográfia érdekében hatékonyan tudja végezni és alkalmazni, a mai modern Apple készülékek rendelkeznek egy úgynevezett Secure Enclave “segéd processzorral”, illetve egy dedikált AES hardveres modullal, amely a valósidejű kódolást és dekódolást tesz lehetővé. Ez a modul egyébként a memória (RAM) és tárhely egység (flash memory, SSD) között helyezkedik el.

A Secure Enclave tehát alapvetően egy hardveres kulcskezelő, megspékelve egy nagyon gyors kódoló/dekódoló segéd modullal. A Secure Enclave az alábbi készülék verzióktól felfelé kivétel nélkül mindegyikben megtalálható:

  • iPhone 5S és iPad Air
  • Apple TV 4. generáció
  • HomePod
  • Watch Series 1
  • Mac számítógépek T2 chippel

A Secure Enclave egyedisége egyébként abban is rejlik, hogy minden modul csak és kizárólag abban a készülékben használható és működik, amelyikbe azt a gyártáskor belerakták. Ennek köszönhető többek között például az is, hogy ha a telefonodból kiveszik a tárhelyet és átrakják egy másik készülékbe, az azon tárolt adatok elérhetetlenek a hardver szintű párosításnak köszönhetően. Ami azért elég menő. 🙂

Természetesen nagyon speciális esetekben (és megfelelő szakértelemmel és célszerszámmal) menthetők az adatok, de ahhoz tudnunk kell a jelkódot mindenképpen. Annak hiányában reménytelen az eset.

Touch ID és Face ID

Mindkettőt megszoktuk, mert kényelmes, gyors és biztonságos. Na de nézzük részleteiben, vajon tényleg azok-e, illetve hogyan működnek?

Amikor a Touch ID-ra rárakod az ujjad, akkor a szenzor “minutiae” pontokat keres, majd azokból egyirányú hash-t készít. Ezt a hash-t hasonlítja össze a szenzor Secure Enclave-ben tárolttal. (A szenzor egyébként csak azzal a Secure Enclave chippel kommunikál, akivel a gyártás során hardveresen párosítják. Ezért nem lehet olyan egyszerűen a Touch ID szenzort cserélni.). A hash mindvégig a készüléken, a Secure Enclave-ben vannak, a telefonról soha semmilyen körülmények között nem kerül ki (se az Apple-hez, sem iCloud mentésbe, sehova). Részletesen egyébként itt olvashattok róla magyarul.

Annak a valószínűsége, hogy a telefonunkat egy idegen feloldja a Touch ID-t használva 1:50 000-hez, ha egy ujjunk van csak regisztrálva. Öt ujj esetén ez már 1:10 000-hez.

Hasonlóan működik a Face ID is, annyi extrával, hogy a TrueDepth kamera ott először meggyőzödik arról, hogy a készülékre nézel, nyitva van a szemed, nem egy fotót mutatnak-e rólad. Ha igen, akkor 30 000 infravörös pontot vetít az arcodra. Ezeknek a pontoknak segítségével egy “mélység-térkép” keletkezik az arcodról, valamint képet is készít rólad szintén infravörös tartományban. Ezt a két adatot digitálisan aláírja a szenzor és elküldi a Secure Enclave modulnak. A Secure Enclave rendelkezik belül egy Neural Engine modullal, amely felépíti a kapott adatokból a szükséges matematikai modellt. Ezt a modellt összehasonlítja a feltanításkor eltárolttal és eldönti, hogy te vagy-e az, vagy sem.

Az adatok küldését a szenzorból a Secure Enclave-be egyébként a készülék véletlenszerűen variálja, ami az eszközre jellemző mintát mutat. Tehát két iPhone X például teljesen más sorrendben és csomagban küldi el ugyanazt az adatot a Secure Enclave chipnek mondjuk ugyanarról a személyről.

Annak a valószínűsége pedig, hogy a telefonunkat egy idegen feloldja a Face ID esetén, 1:1 000 000-hoz, ha nem állítottunk be alternatív arcot. Utóbbi esetben 1:500 000-hezre változik az arány. Természetesen a Face ID-nál lehetnek gondok a 13 évesnél fiatalabb személyekkel, csak úgy, mint a nagyon közeli rokonok esetén.

Időről-időre a rendszer a Secure Enclave-ben tárolt matematikai modellt valóban frissíti és tovább tanítja. Erre három esetet ír az Apple:

  • Sikeres volt a feloldás, de az új matematikai modell jobb/pontosabb, mint ami korábban volt. Ekkor az új modellt tárolja el a rendszer.
  • Ha nem volt sikeres a feloldás, de egy bizonyos szintet mégis csak megütött a modell, illetve mi rögtön megadtuk a jelkódunkat, akkor a rendszer egy új letapogatást csinál és frissíti a modellt. Így lehetséges az, hogy sállal, napszemüvegben, más frizurával is megismer minket.

Végezetül álljon itt egy lista, hogy mikor kell mindenképpen a jelkódot használunk a Touch ID / Face ID helyett:

  • ha frissítették a készüléket
  • ha törölni készülnek az eszközt
  • ha módosítanak a jelkód beállításokon
  • konfigurációs profilt telepítenek
  • újraindították a készüléket
  • 48 órán belül a készüléket nem oldották fel
  • ha a felhasználó nem használta a jelkódját 156 órán belül ÉS a biometrikus azonosítást sem használták 4 órán belül
  • lezárták a készüléket távolról (például elvesztett mód)
  • 5 sikertelen biometrikus azonosítás után
  • azután a képernyő után, ami akkor jelenik meg, ha az egyik hangerő és a kikapcsoló gombot 2 másodpercig nyomva tartják (Power off / emergency SOS).

A hardver biztonsági részből számomra ennyi volt érdekes. A következő részben a rendszerrel magával fogunk foglalkozni, hogy milyen lépések történnek amikor bekapcsoljuk a telefont, hogy épül fel a “chain of trust”.

A bejegyzés kiemelt képét készítette:

unsplash-logoMatt Seymour