Tämä ei tarkoita, että Find My -sijaintitietoja voisi hakea miltä tahansa nimettömältä Linux-koneelta. Tutkimus osoitti, että muu kuin Applen käyttöjärjestelmä pystyi jäljittelemään tarvittavan asiakaskäyttäytymisen sen jälkeen, kun Applen tunnistautumis- ja rekisteröintivaiheet oli suoritettu.
Projekti yhdisti useita Applen ekosysteemin normaalisti piilossa olevia osia:
Tilille kirjautuminen: Zerotistic käytti Applen GrandSlam-kirjautumisprotokollaa. Kuvattuun työnkulkuun kuului Secure Remote Password (SRP) -vaihto ja kaksivaiheinen tunnistautuminen. Niiden tuloksena saatiin muun muassa tilin tunnisteita ja lyhytkestoinen salasanaa vastaava tunniste eli PET.
Laitteen rekisteröinti: Asiakas loi PKCS#10-muotoisen varmenteen allekirjoituspyynnön, joka sisälsi 2048-bittisen RSA-avaimen ja SHA-1-allekirjoituksen. Pyyntö lähetettiin Applen vanhaan authenticateDS-profiilirekisteröinnin rajapintaan, joka palautti Apple Identity Services -varmenteen.
Rekisteröityminen Identity Services -palveluun: Varmenteen ja siihen liittyvien laitetietojen avulla Linux voitiin rekisteröidä Identity Services -yhteensopivaksi laitteeksi. Se pystyi ilmoittamaan tukemansa salaustyypit, tilaamaan tarvittavat viestinnän alipalvelut ja hankkimaan Apple Push Notification Service (APNs) -toimitustunnukset.
Find My -tietojen synkronointi: Asiakas jäljitteli alkuperäisen Find My People -sovelluksen pyyntöketjua. Siihen kuuluivat alustaminen, päivitykset sekä intent: distributeKeysmode: proactiveSubscribeAndFetch-pyyntö. Tämän jälkeen Apple ohjeisti sijaintinsa jakaneen yhteyshenkilön laitteen toimittamaan nykyiset sijaintiavaimet uudelle rekisteröidylle identiteetille IDS:n ja APNs:n kautta.
Paikallinen salauksen purku: Salattu IDS-sanoma sisälsi suhteen tunnisteen sekä SearchParty-avaimiin liittyviä tietoja. Avoimen lähdekoodin pypush käsitteli push-ilmoitukset ja IDS-kerroksen, kun taas FindMy.py haki ja purki Find My -raportit koordinaateiksi, aikaleimoiksi ja tarkkuustiedoiksi.
Kyse oli protokollan jäljittelystä, ei väärennetystä Apple-varmenteesta. Palvelin myönsi tarvittavat tunnistetiedot vasta, kun tilin tunnistautumis- ja laiterekisteröintiketju oli mennyt läpi.
Esitelty SubscribeAndFetch-toiminta viittaa siihen, että Apple voi toimittaa nykyiset sijaintiavaimet uudelle valtuutetulle laitteelle sen jälkeen, kun sijainninjako on jo olemassa. Tämä on käytännöllistä esimerkiksi laitteen vaihtamisen ja tilin synkronoinnin kannalta: käyttäjän ei pitäisi joutua pyytämään jokaista yhteyshenkilöä lopettamaan ja aloittamaan sijainninjakoa aina uuden laitteen käyttöönoton yhteydessä.
Raportoidussa hyötykuormassa oli suhteen tunniste, avainindeksi, 32-tavuinen hajautettu mainosavain sekä 85-tavuinen yksityisavaimen esitys. Yhdessä nämä kentät viittaavat siihen, että Find My -sijaintiraporttien purkaminen perustuu suhde- ja avainversiokohtaiseen materiaaliin, jota voidaan jakaa uudelleen IDS:n kautta.
Julkinen kuvaus näyttää synkronoinnin ja avainten vaihtumisen toimintaa, mutta se ei vahvista yleistä avainten kiertoväliä. Tutkimuksesta voidaan siis päätellä, miten nykyinen avaintila toimitetaan – ei sitä, millä aikataululla Apple vaihtaa avaimia kaikissa tilanteissa.
Testattu asiakas oli tarkoituksella rajattu. Se pystyi lukemaan tutkijan Apple-tilille jo hyväksytyn sijainninjaon ja käsittelemään tiedot paikallisesti. Myös geofence-logiikka, eli sijaintialueiden valvonta, suoritettiin Linux-koneella eikä Applen palvelussa.
Kirjoituksen mukaan asiakas ei pystynyt:
Tulos onkin ennen kaikkea yhteensopivuus- ja luottamusrajahavainto, ei etänä toimiva keino seurata ketä tahansa. Realistisempi tietoturvariski liittyy tilin tai luotetun laitteen kaappaamiseen: jos hyökkääjä saisi Apple-tilin hallintaansa tai rekisteröisi siihen luvattoman laitteen, hän voisi mahdollisesti paljastaa kaikki jaot, joihin tilillä on jo oikeus.
Zerotisticin esittely ja nRootTag käsittelevät Find My -järjestelmän eri osia ja niihin liittyy erilainen uhkamalli.
Zerotistic keskittyi Find My People -toimintoon. Työssä jäljiteltiin jo olemassa olevan ja käyttäjän hyväksymän sijainninjaon vastaanottajaa. Apple-tilin ja laitteen piti olla Applen hyväksymiä, ja henkilön sijainnin piti olla jaettu kyseiselle tilille.
nRootTag kohdistui Find My Network -verkkoon ja offline-paikannukseen. Tutkijat raportoivat, että Applen palvelu hyväksyi Bluetooth-osoitetyyppejä, joita sen ei odotettu hyväksyvän. Tämä saattoi antaa hyökkääjälle mahdollisuuden saada Bluetooth-yhteensopiva tietokone toimimaan AirTag-tyyppisenä seurantalähettimenä, jonka sijaintia lähellä olevat Apple-laitteet välittävät eteenpäin ilman kohdelaitteen omistajan tietämystä.
Tiivistettynä: Zerotisticin projekti vastaanotti tietoja, jotka Apple-tilillä oli jo lupa nähdä. nRootTag puolestaan pyrki luomaan luvattoman seuranta-alustan. Näiden yhdistäminen tekisi Linux-esittelystä paljon todellista voimakkaamman kuuloisen.
Alkuperäinen motiivi oli suostumukseen perustuva automaatio. Ystävä, joka jakoi jo sijaintinsa, oli hyväksynyt Linux-järjestelmän, joka valvoisi paikallisia geofence-alueita ja lähettäisi Discord-ilmoituksen, kun hän saapui tiettyyn paikkaan tai poistui sieltä.
Zerotistic arvioi aluksi, että työ vaatisi vain tunnistautuneen verkkopyynnön ja noin yhden illan. Käänteinen suunnittelu laajeni kuitenkin huomattavasti alkuperäistä arviota suuremmaksi projektiksi. Saatavilla olevat lähteet eivät kerro valmiin toteutuksen tarkkaa kokonaiskestoa, joten täsmällisempi aika-arvio olisi spekulaatiota.
Saatavilla olevat lähteet vahvistavat esittelyn, mutta eivät sisällä varmennettua julkista Apple-kommenttia juuri tästä Linuxin Find My People -toteutuksesta. Ne eivät myöskään vahvista korjausta tai julkistettua bugipalkkiota.
Keskeinen opetus on silti selvä: ominaisuuden rajaaminen Apple-laitteisiin ei automaattisesti tee Applen omasta raudasta tietoturvan varsinaista rajaa. Jos palvelin myöntää luottamuksen pääasiassa tunnusten, varmenteiden, ilmoitettujen ominaisuuksien ja protokollakäyttäytymisen perusteella, riittävän yhteensopiva asiakas toisessa käyttöjärjestelmässä voi ylittää tuoterajan – samalla kun sen oikeudet pysyvät edelleen sen tilin ja kryptografisten avainten rajoissa, jotka se saa laillisesti.