Sicurezza dei contatti per il recupero dell’account
È possibile aggiungere fino a cinque persone che, in caso di necessità, potrebbero aiutare l’utente a recuperare l’account iCloud e tutti i dati in esso archiviati, inclusi tutti i dati protetti da crittografia end-to-end, indipendentemente dal fatto che sia attiva o meno la protezione avanzata dei dati. Né Apple, né il contatto di recupero individualmente sono in possesso delle informazioni necessarie per decrittografare i dati iCloud dell’utente protetti con crittografia end-to-end.
Il contatto di recupero è concepito per tutelare la privacy degli utenti. I contatti di recupero scelti dall’utente non sono noti ad Apple. I server Apple vengono a conoscenza delle informazioni relative a un contatto di recupero solo in un momento successivo al tentativo di recupero, dopo che l’utente ha chiesto aiuto al contatto e che quest’ultimo ha iniziato a contribuire al recupero. Tali informazioni non vengono mantenute dopo il completamento del recupero.
Procedura di sicurezza per i contatti di recupero
Quando un utente configura un contatto di recupero per un account, viene generata una chiave associata a tale contatto. Questa chiave protegge l’accesso ai dati di iCloud dell’utente (compresi i dati protetti con crittografia end‑to‑end di CloudKit). Successivamente, viene generata una chiave AES a 256 bit casuale, utilizzata per crittografare la chiave del contatto di recupero e creare un pacchetto del contatto di recupero. Il pacchetto crittografato viene inviato al contatto di recupero perché venga conservato e la chiave AES casuale viene archiviata presso Apple. Né la chiave AES né il pacchetto sono in grado di fornire informazioni sulla chiave sottostante. Al momento del recupero, una volta che il dispositivo dell’utente avrà ottenuto correttamente sia il pacchetto dal contatto di recupero sia la chiave AES da Apple, i due elementi potranno essere combinarli per ricevere la chiave originale e accedere ai dati di iCloud dell’utente.
Per creare un contatto di recupero dell’account, il dispositivo dell’utente comunica con i server Apple per caricare la porzione di informazioni sulla chiave che saranno in possesso di Apple (la chiave AES menzionata sopra). Quindi stabilisce un contenitore CloudKit protetto con crittografia end-to-end con il contatto di recupero per condividere la parte di cui il contatto di recupero ha bisogno (il pacchetto del contatto di recupero crittografato utilizzando la chiave AES). Con il contatto di recupero viene condiviso anche un segreto utilizzato per l’autorizzazione, creato da Apple. Questo verrà usato per recuperare l’account e aiutare a inizializzarne la password. La comunicazione per invitare e accettare i contatti di recupero avviene attraverso un canale IDS reciprocamente autenticato. Il contatto di recupero memorizza automaticamente le informazioni ricevute nel proprio portachiavi iCloud. Apple non può accedere né al contenuto del contenitore CloudKit, né al portachiavi iCloud che memorizza queste informazioni. Quando viene eseguita la condivisione, i server Apple visualizzano solo un ID anonimo del contatto di recupero.
Successivamente, quando l’utente avrà la necessità di recuperare l’account e i dati iCloud, potrà chiedere aiuto al contatto di recupero selezionato. In quel caso, un codice di recupero verrà generato dal dispositivo del contatto di recupero, che lo fornirà all’utente tramite un accesso fuori banda, ossia di persona o tramite una chiamata telefonica. L’utente quindi inserirà il codice di recupero sul proprio dispositivo per stabilire una connessione sicura tra i dispositivi che utilizzano il protocollo SPAKE2+, i cui contenuti non sono accessibili da parte di Apple. Sebbene l’iterazione descritta sopra sia gestita dai server Apple, Apple non è in grado di avviare la procedura di recupero.
Una volta che la connessione sicura è stata stabilita e tutte le necessarie verifiche di sicurezza sono state completate, il dispositivo del contatto di recupero restituisce la propria parte di informazioni e l’autorizzazione segreta stabilita in precedenza all’utente che ha richiesto il recupero. L’utente presenta l’autorizzazione segreta a un server Apple, che gli consente di accedere alle informazioni sulla chiave di cui Apple dispone. Fornire l’autorizzazione segreta autorizza anche l’inizializzazione della password dell’account per ripristinare l’accesso.
Infine, il dispositivo dell’utente combina nuovamente le informazioni sulla chiave ricevute da Apple e dal contatto di recupero dell’account e le utilizza per decrittografare e recuperare i dati di iCloud.
Per evitare che un contatto di recupero avvii il ripristino senza il consenso dell’utente, sono state adottate delle misure di salvaguardia, tra cui un controllo dell’attività dell’account dell’utente. Se l’account è in uso, il recupero tramite un contatto di recupero richiede anche la conoscenza di un codice di accesso recente del dispositivo o del Codice di sicurezza iCloud.