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 crea un contatto di recupero dell'account, la chiave per accedere ai dati iCloud dell'utente (compresi i dati CloudKit crittografati end-to-end) viene crittografata con una chiave casuale molto sicura. Tale chiave casuale viene poi divisa tra il contatto di recupero e Apple. Al momento del recupero, solo quando le due porzioni di chiave vengono combinate nuovamente è possibile recuperare la chiave originale e accedere ai dati 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. Quindi stabilisce un contenitore CloudKit crittografato end-to-end con il contatto di recupero per condividere la parte di cui il contatto di recupero ha bisogno. Sia Apple che il contatto di recupero ricevono anche la stessa autorizzazione segreta dall'utente, necessaria in seguito per il recupero. 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.