Luni, la conferința WWDC, compania Apple . Spre deosebire de standardul , care se bazează pe infrastructura rețelelor mobile și GPS-ul dispozitivului pierdut, funcția „Find Me” poate găsi chiar și dispozitivele fără SIM card și GPS. De exemplu, laptopuri sau chiar , atașate la orice obiect (Apple a menționat acest lucru doar într-un sens general).
Ideea este de a transforma întreaga rețea existentă de iPhone-uri într-un sistem masiv de crowdsourcing pentru urmărirea obiectelor din jur. Fiecare iPhone activ va monitoriza constant semnalele beacon BLE care provin de la alte dispozitive. Atunci când găsește unul dintre aceste semnale, acesta etichetează pachetul cu coordonatele sale GPS - și le trimite pe serverele Apple. Este minunat pentru cei dintre noi care pierd lucruri: dacă îmi las rucsacul în autobuzul turistic din China, cineva va găsi semnalul său - și voi afla imediat unde să-l găsesc.
(Este de menționat că ideea nu a fost inventată de Apple. De fapt, companii precum activează de mult timp. Și da, ar trebui să-și facă griji pentru afacerea lor).
Dacă descrierea de mai sus nu te-a impresionat, permite-mi să formulez întrebarea pe care ar trebui să o pui: cum va proteja acest sistem împotriva încălcărilor grotești ale confidențialității?
Să enumerăm problemele potențiale:
- Dacă dispozitivul emite constant un semnal BLE care îl identifică în mod clar, toată lumea are (încă) o modalitate de a te urmări. Marketerii folosesc deja adresele MAC WiFi și Bluetooth pentru acest lucru, iar funcția Find My creează încă un canal de urmărire.
- De asemenea, îi descoperă pe cei care participă la proces. Acum, acești oameni vor trimite Apple locația lor actuală (probabil că și așa fac). Dar acum va trebui să împărtășească aceste informații de asemenea cu străini care își „pierd” dispozitivele. Aceasta ar putea avea consecințe neplăcute.
- Fraudatorii ar putea de asemenea lansa atacuri active, în care falsifică locația dispozitivului tău. Deși pare puțin probabil, oamenii ne pot surprinde întotdeauna.
Veștile bune sunt că Apple susține că sistemul oferă cu adevărat confidențialitate de încredere prin aplicarea corespunzătoare a criptografiei. Dar, ca de obicei, ei s-au abținut de la a comunica detalii de implementare. Andy Greenberg în Wired a relatat parțial conform spuselor Apple, care ne permite să înțelegem multe. Din păcate, acest raport lasă în continuare lacune uriașe. Acestea sunt cele pe care intenționez să le umplu, oferind o descriere cât mai probabilă despre ce face cu adevărat Apple.
O mare precizare: multe pot fi complet greșite. Voi actualiza articolul cu siguranță atunci când Apple va împărtăși mai multe.
Câteva probleme principale
Pentru a contura scenariul, trebuie să introducem câteva dispozitive. Ca inspirație, să luăm serialul din anii 1950 „Lassie”.
Primul dispozitiv, pe care îl vom numi Timmy, „pierdut”. Acesta Timmy are un transmițător BLE, dar nu are GPS sau conexiune la internet. Din fericire, s-a asociat deja cu al doilea dispozitiv numit Ruth, care vrea să îl găsească. Eroul nostru principal este Lassie: acesta este un iPhone al unui străin întâmplător (și care nu știe nimic despre asta), care (să presupunem) are cel puțin o conexiune periodică la internet și GPS de încredere. Și, de asemenea, Lassie este o fetiță foarte bună. Dispozitivele de rețea interacționează prin serverele iCloud Apple, așa cum este arătat mai jos:

(Deoarece Timmy și Ruth trebuie să fie asociate dinainte, probabil că ambele aparțin aceleași persoane. Am menționat că va trebui să cumpărați doi dispozitive Apple pentru ca sistemul să funcționeze? Asta îi convine de minune Apple).
Analizăm un sistem de securitate, așa că prima întrebare este: cine este răufăcătorul? В этой ситуации ответ неприятный: un potențial infractor poate fi oricine. De aceea problema este atât de interesantă.
Menținerea anonimatului lui Timmy
Cel mai important aspect al sistemului este că nu trebuie să permitem persoanelor terțe să-l urmărească Timmy, mai ales când nu este pierdut. Aceasta exclude unele soluții destul de evidente, de exemplu, atunci când dispozitivul Timmy pur și simplu strigă: „Hei, mă numesc Timmy, te rog sună-mi mama Ruth și spune-i că m-am pierdut”. Aceasta exclude de asemenea practic orice identificator static neschimbat, chiar și cele opace și care par întâmplătoare.
Cerința finală este bazată pe experiența tristă a serviciilor care abuzează de identificatori statici (de exemplu, ) pentru a urmări mișcarea dispozitivelor. Apple împotriva acestei urmăriri prin randomizarea identificatorilor, cum ar fi adresele MAC. Dacă Apple va adăuga un identificator static de urmărire pentru „Find My”, toate problemele se vor agrava doar.
Această cerință înseamnă că orice mesaje transmise Timmy, trebuie să fie opace. Mai mult, conținutul acestor mesaje trebuie să se schimbe relativ des cu valori noi, care nu pot fi asociate cu cele vechi. Una dintre modalitățile evidente prin care un dispozitiv legat recunoaște astfel de mesaje este să facă Timmy și Ruth să accepte o listă lungă de aleatorii „” pentru Timmy, și să lase Timmy fiecare dată să aleagă alta.
Acest lucru ajută cu adevărat. De fiecare dată când Lassie vede un dispozitiv (necunoscut) transmitând un identificator, acesta nu va ști dacă aparține Timmy: dar poate să îl trimită la serverele Apple împreună cu propria sa locație GPS. În cazul în care Timmy se pierde, Ruth poate cere Apple să găsească toate pseudonimele posibile Timmy. În această situație, nimeni din afara Apple nu va ști această listă, și chiar și Apple o va ști doar după ce cineva s-a pierdut, astfel încât această abordare împiedică majoritatea opțiunilor de urmărire.
O modalitate puțin mai eficientă de a implementa această idee este de a folosi o funcție criptografică (de exemplu, MAC sau o funcție hash) pentru a genera o listă de pseudonime dintr-un singur „seed” scurt, o copie a căruia este păstrată Timmy și Ruth. Este bine pentru că reduce volumul de date stocate. Dar pentru a găsi Timmy, Ruth trebuie să trimită în continuare toate pseudonimele — sau seed — către Apple, care va trebui să caute fiecare pseudonim în baza sa de date.
Ascunderea locației lui Lassie
Abordarea descrisă cu pseudonimele ar trebui să ascundă bine identitatea Timmy de la Lassie inclusiv de Apple (până în momentul în care Ruth începe să îl caute). Cu toate acestea, există un mare dezavantaj: nu ascunde coordonatele GPS Lassie.
Acest lucru este rău, cel puțin din mai multe motive. De fiecare dată când Lassie detectează orice dispozitiv cu semnal BLE, trebuie să transmită serverelor Apple locația sa curentă (împreună cu pseudonimul pe care îl vede). Asta înseamnă că Lassie informează constant Apple despre locația sa. Și mai mult, chiar dacă Apple promite să nu păstreze identitatea Lassie, rezultatul tuturor acestor mesaje este o bază de date centralizată uriașă care arată toate locațiile GPS unde a fost detectat orice dispozitiv Apple.
Rețineți că o astfel de masă de date oferă foarte multe informații. Da, identificatorii dispozitivelor pot fi pseudonime — dar asta nu face informația inutilă. De exemplu, dacă un anumit dispozitiv Apple transmite aceleași coordonate seara, aceasta indică o probabilă adresă de rezidență pentru o persoană.
Un mod evident de a preveni divulgarea acestor date de către Apple este să le criptăm, astfel încât informația să fie văzută doar de cei care au cu adevărat nevoie să cunoască locația dispozitivului. Dacă Lassie primește un mesaj de la Timmy, atunci singura persoană care trebuie cu adevărat să știe locația Lassie, este Ruth. Pentru a păstra aceste informații confidențiale, Lassie trebuie să-și cripteze coordonatele cu cheia publică Ruth.
Desigur, apare întrebarea: cum Lassie va obține cheia Ruth? Очевидное решение для Timmy — strigând cheia publică Ruth în fiecare transmite. Dar asta va crea un identificator static, care din nou va permite urmărirea Timmy.
Pentru a rezolva această problemă, trebuie ca Ruth să aibă multe chei publice nelegate, astfel încât Timmy să poată furniza chei diferite cu fiecare transmisie. Una dintre opțiuni este să obligi Ruth și Timmy să genereze multe perechi de chei diferite (sau să genereze multe dintr-un seed comun). Dar asta este frustrant și Ruth va necesita stocarea multor chei secrete. Și identificatorii menționați în secțiunea anterioară pot fi obținuți prin hashing-ul fiecărei chei publice.
O abordare oarecum mai bună (pe care Apple o poate folosi sau nu) implică randomizarea cheilor. Aceasta este o caracteristică a unor criptosisteme, cum ar fi : ea , astfel încât să nu fie legată de original. Cea mai bună parte a acestei funcții este că Ruth poate folosi o cheie secretă, indiferent de versiunea aleatorizată a cheii sale publice utilizate pentru criptare.

Toate acestea duc la ideea finală a protocolului. În fiecare transmisie Timmy se transmite un nou pseudonim și o copie aleatorizată a cheii publice Ruth. Când Lassie primește transmisia, își criptează coordonatele GPS cu cheia publică și trimite mesajul criptat către Apple. Ruth poate trimite pseudonimele Timmy pe serverele Apple, iar dacă Apple găsește o potrivire, va putea obține și decripta coordonatele GPS.
Rezolvă asta toate problemele?
Partea neplăcută este că nu există o soluție perfectă pentru multe situații limită ciudate. De exemplu, ce se întâmplă dacă Timmy are intenții malefice și vrea să facă Lassie să dezvăluie locația sa Apple? Ce se întâmplă dacă Moshu Smithers încearcă să răpească Lassie?
Într-un anumit moment, răspunsul la această întrebare se reduce la faptul că am făcut tot ce a fost posibil: orice probleme rămase ar trebui să fie scoase din modelul de amenințare. Uneori, chiar și Lassie știe când să se oprească.
Sursa: habr.com
