La "magia" dietro Find My, il servizio di Apple che ritrova i vostri dispositivi persi (e sconnessi)

Find My comunica la posizione dei propri dispositivi persi, anche se sono sconnessi dalla rete, senza che Apple ne venga a conoscenza. Com'è possibile? Crittografia, crittografia, crittografia (e un pizzico di Bluetooth).
Enrico Paccusse
Enrico Paccusse
La "magia" dietro Find My, il servizio di Apple che ritrova i vostri dispositivi persi (e sconnessi)

Una delle funzioni più interessanti e all'apparenza "magiche" che Apple ha presentato al WWDC di Lunedì è sicuramente Find My, un'applicazione che promette di segnalare al possessore di un dispositivo andato perso la sua posizione, anche nel caso in cui questo non sia connesso alla rete. Craig Federighi ci ha tenuto a placare sul nascere le possibili polemiche, rivelando che le posizioni comunicate non sono in alcun modo conservate da Apple, che addirittura neanche ha la possibilità di conoscerle. Ma come avviene tutto questo?

La risposta sta nella magia della crittografia, che permette questo e molto altro (Bitcoin, ad esempio). Ma c'è una cosa che è necessaria: possedere almeno un altro prodotto Apple, imprescindibile per l'utilizzo di questa applicazione, come vedremo più avanti. Wired ha voluto infatti approfondire la questione ed ha fornito una serie di informazioni aggiuntive per capire meglio come la magia avvenga.

Innanzitutto, quando si attiva la funzione Find My nei propri dispositivi Apple, viene generata una chiave privata (private key) casuale che è condivisa in modalità end-to-end tra tutti i dispositivi appartenenti allo stesso proprietario.

Ognuno di questi avrà poi la stessa chiave pubblica, che mantiene una relazione asimmetrica con la chiave privata (se ho la privata posso risalire alla pubblica, se ho la pubblica non posso avere la privata). Questa coppia di chiavi viene cambiata periodicamente.

La chiave pubblica è quella che viene usata per crittografare i dati sensibili così che solo chi ne è in possesso possa leggerli, ed è quella che viene emessa, tramite Bluetooth, nel momento in cui scopriamo di aver perso uno dei dispositivi. Se l'iPhone di uno sconosciuto (o qualsiasi altro prodotto Apple) capta il segnale nelle sue vicinanze, non fa altro che crittografare la posizione usando la chiave pubblica emessa dal dispositivo perso ed inviare il risultato ai server di Apple, insieme ad un hash (anch'esso in relazione asimmetrica) della chiave pubblica utilizzata, che servirà come ID.

Apple riceverà in questo modo delle informazioni crittografate decifrabili solo e soltanto con la chiave privata salvata localmente sui dispositivi.

Nel frattempo, il dispositivo - un iPad per esempio - che sto utilizzando per ritrovare l'altro avrà generato la stessa serie di chiavi pubbliche (e private, presumiamo). Quando voglio sapere dove si trova l'altro dispositivo perso, l'iPad invierà l'hash della sua chiave pubblica ad Apple per verificare l'appartenenza alla stessa famiglia di dispositivi (anche se nel frattempo la chiave pubblica sarà cambiata, ci sarà uno storico che permetterà di verificare comunque chi sia il proprietario).

Se la verifica ha successo, Apple restituirà la posizione ancora crittografata del dispositivo perso che potremmo decifrare localmente grazie alla chiave privata, così da risalire all'ultima posizione rilevata. Ottimisticamente, tutto questo processo dovrebbe avvenire in pochissimo tempo e consentire un intervento piuttosto rapido.

Un processo che, visto nel suo complesso, gioca su delle dinamiche già ampiamente conosciute all'interno del mondo della crittografia, ma che effettivamente integrato su una scala di milioni e milioni di persone è tutto da verificare. Ciò che è certo è che, per come è stato spiegato, sembra effettivamente rispettare tutte le misure di privacy che Apple valorizza da sempre.

Chissà che non possa essere uno spunto per Google ed Android.