To ale neznamená, že by kdokoli mohl z anonymního počítače s Linuxem jednoduše dotazovat Find My. Výzkum ukázal, že neapplovský operační systém může po dokončení autentizace a registrace napodobit chování oficiálního klienta.
Projekt propojil několik částí ekosystému Applu, které běžně zůstávají skryté:
Přihlášení k účtu: Zerotistic využil přihlašovací protokol GrandSlam. Popsaný postup zahrnoval výměnu Secure Remote Password a dvoufaktorové ověření. Výsledkem byly identifikátory účtu a krátkodobý token ekvivalentní heslu.
Registrace zařízení: Klient vytvořil žádost o vydání certifikátu PKCS#10 s 2048bitovým klíčem RSA a podpisem SHA-1. Žádost odeslal na starší registrační endpoint authenticateDS, který vrátil certifikát Apple Identity Services.
Registrace v IDS: S certifikátem a souvisejícími údaji o zařízení se Linux mohl zaregistrovat jako zařízení podporující Identity Services, deklarovat podporované typy šifrování, přihlásit se k potřebným podslužbám pro zasílání zpráv a získat přihlašovací údaje pro doručování přes Apple Push Notification Service.
Synchronizace Find My: Klient napodobil nativní posloupnost požadavků Find My People, včetně inicializace, obnovení dat a požadavku SubscribeAndFetch s parametry intent: distributeKeysmode: proactive
Lokální dešifrování: Zašifrovaná zpráva IDS obsahovala údaje o vztahu mezi účty a klíče SearchParty. Open-source knihovna pypush obsloužila push notifikace a vrstvu IDS, zatímco FindMy.py načetla a dešifrovala příslušné reporty Find My do souřadnic, časových údajů a informace o přesnosti.
Nešlo o padělání certifikátu Applu. Server příslušné přihlašovací údaje vydal až po dokončení autentizace účtu a registračního procesu.
Chování požadavku SubscribeAndFetch naznačuje, že Apple umí doručit aktuální materiál lokalizačních klíčů nově autorizovanému zařízení, pokud už mezi účty existuje vztah pro sdílení polohy. Je to praktická podmínka pro výměnu zařízení a synchronizaci účtu: uživatel by neměl žádat všechny kontakty, aby sdílení pokaždé vypnuli a znovu zapnuli jen proto, že si přidal další zařízení.
Popsaná datová zpráva obsahovala identifikátor vztahu, index klíče, 32bajtový klíč hashované reklamy a 85bajtovou reprezentaci soukromého klíče. Tyto položky naznačují, že dešifrování lokalizačních reportů Find My závisí na materiálu vázaném na konkrétní vztah a verzi klíče, který lze prostřednictvím IDS znovu distribuovat.
Veřejně dostupný popis ukazuje mechanismus synchronizace a rotace klíčů, nestanovuje však univerzální interval jejich obměny. Z výzkumu tedy lze vyčíst, jak se doručuje aktuální stav klíčů, nikoli kompletní veřejnou specifikaci správy klíčů Applu.
Testovaný klient byl záměrně úzce zaměřený. Dokázal přečíst už schválené sdílení polohy na účtu výzkumníka a data zpracovat lokálně. Stejně tak lokálně fungovalo vyhodnocování geofencingu, tedy upozornění při vstupu do určité oblasti nebo odchodu z ní.
Podle zveřejněného popisu neuměl:
Výsledek je proto přesnější chápat jako zjištění o interoperabilitě a hranici důvěry, nikoli jako vzdálený exploit umožňující sledovat libovolnou osobu. Realističtějším bezpečnostním rizikem je kompromitace Apple účtu nebo důvěryhodného zařízení: pokud by útočník získal kontrolu nad účtem či do něj zaregistroval neoprávněné zařízení, mohl by potenciálně odhalit sdílení, ke kterým má tento účet přístup.
Práce Zerotistica a výzkum nRootTag se týkají odlišných částí Find My a představují různé modely útoku.
Zerotistic se zaměřil na Find My People. Napodobil příjem dat z již existujícího a autorizovaného vztahu sdílení. Apple musel účet i zařízení přijmout a daná osoba musela svou polohu s účtem sdílet.
nRootTag cílil na Find My Network a offline hledání. Výzkumníci uvedli, že služba Applu přijímala i typy Bluetooth adres, které by podle očekávání používat neměla. Útočník tak mohl přimět počítač s Bluetooth, aby se choval jako sledovací maják podobný AirTagu, a využít okolní zařízení Applu k předávání jeho polohy bez vědomí vlastníka cílového zařízení.
Stručně řečeno: Zerotistic přijímal data, která měl účet už oprávnění vidět. nRootTag se snažil vytvořit neoprávněný mechanismus sledování. Smíchání obou případů by linuxovou demonstraci vykreslilo jako mnohem silnější nástroj, než jaký popsané důkazy skutečně ukazují.
Původní motivace byla založená na souhlasu a automatizaci. Přítel, který už svou polohu sdílel, souhlasil s tím, aby Linux lokálně vyhodnocoval geofence a posílal do Discordu upozornění, když dorazí na konkrétní místo nebo z něj odjede.
Zerotistic původně čekal, že půjde o jeden autentizovaný webový požadavek, a odhadoval práci přibližně na jeden večer. Reverzní inženýrství se však podle popisu výrazně rozrostlo. Dostupné zdroje neuvádějí přesnou celkovou dobu dokončení projektu, takže konkrétnější údaj by byl spekulací.
Citované zpravodajství potvrzuje samotnou demonstraci, nikoli ověřené veřejné vyjádření Applu k této konkrétní implementaci Find My People pro Linux, potvrzenou opravu nebo zveřejněný výsledek bug bounty programu.
Hlavní poučení tak zůstává stejné: omezení funkce na hardware Applu automaticky neznamená, že hardware sám představuje bezpečnostní hranici. Pokud serverová důvěra vychází především z přihlašovacích údajů, certifikátů, deklarovaných schopností a správného chování protokolu, může dostatečně kompatibilní klient na jiném operačním systému tuto produktovou hranici překonat — přičemž stále zůstane omezen oprávněními účtu a kryptografickými klíči, které legitimně získal.