Crittografia iCloud
La crittografia dei dati in iCloud è strettamente legata al modello di archiviazione dei dati, a partire dai framework e dalle API di CloudKit che consentono alle app e al software di sistema di archiviare i dati in iCloud per conto dell’utente e di mantenere tutto aggiornato sui dispositivi e sul web.
Crittografia CloudKit
CloudKit è un framework che consente agli sviluppatori di app di archiviare dati chiave-valore, dati strutturati e risorse (dati di grandi dimensioni archiviati separatamente dal database, come immagini o video) in iCloud. CloudKit supporta database sia pubblici che privati, raggruppati in contenitori. I database pubblici sono condivisi a livello globale, vengono di norma utilizzati per attività generiche e non sono crittografati. I database privati contengono i dati iCloud di ciascun utente.
CloudKit utilizza una gerarchia di chiavi che corrisponde alla struttura dei dati. Il database privato di ogni contenitore è protetto da una gerarchia di chiavi, radicata in una chiave asimmetrica denominata chiave di servizio CloudKit. Queste chiavi sono uniche per ogni utente iCloud e vengono generate sul dispositivo sicuro di ciascun utente. Quando i dati vengono scritti su CloudKit, tutte le chiavi di registrazione vengono generate sul dispositivo sicuro dell’utente e inserite nella gerarchia di chiavi appropriata prima che i dati vengano caricati.
Molti servizi Apple, elencati nell’articolo del supporto Apple Panoramica sulla sicurezza dei dati iCloud, utilizzano la crittografia end-to-end con una chiave di servizio CloudKit protetta allo stesso modo della sincronizzazione del portachiavi iCloud. Per tali contenitori CloudKit, le chiavi di servizio sono disponibili solo per i dispositivi sicuri dell’utente e né Apple né altre terze parti possono accedervi. Queste chiavi sono sincronizzate sui vari dispositivi dell’utente anche se non viene utilizzato il portachiavi iCloud per la sincronizzazione di password, passkey e altri dati dell’utente. In caso di smarrimento del dispositivo, l’utente può recuperare i dati del portachiavi iCloud utilizzando il Recupero sicuro del portachiavi iCloud, i Contatti di recupero dell’account o una Chiave di recupero dell’account.
Gestione delle chiavi di crittografia
La sicurezza dei dati crittografati in CloudKit si basa sulla sicurezza delle chiavi di crittografia corrispondenti. Le chiavi di servizio CloudKit si dividono in due categorie: crittografate end-to-end e disponibili dopo l’autenticazione.
Chiavi di servizio crittografate end-to-end: per i servizi iCloud crittografati end-to-end, le relative chiavi private del servizio CloudKit non vengono mai rese disponibili ai server Apple. Le coppie di chiavi di servizio, comprese le chiavi private, vengono create localmente sul dispositivo sicuro dell’utente e trasferite agli altri dispositivi dell’utente utilizzando la sicurezza del portachiavi iCloud. Sebbene i flussi di ripristino e sincronizzazione del portachiavi iCloud siano mediati dai server Apple, a questi server è impedito crittograficamente di accedere ai dati del portachiavi dell’utente. Nel caso in cui si perda l’accesso al portachiavi iCloud e a tutti i suoi meccanismi di recupero, i dati crittografati end-to-end in CloudKit andranno persi. Apple non può aiutare nel recupero di tali dati.
Chiavi di servizio disponibili dopo l’autenticazione: per altri servizi, come Foto e iCloud Drive, le chiavi di servizio sono memorizzate nei moduli di sicurezza hardware di iCloud nei data center Apple e sono accessibili da alcuni servizi Apple. Quando un utente accede a iCloud su un nuovo dispositivo ed effettua l’autenticazione del proprio ID Apple, i server Apple possono accedere a queste chiavi senza ulteriori azioni o input da parte dell’utente. Ad esempio, dopo aver effettuato l’accesso a iCloud.com, l’utente può immediatamente visualizzare le proprie foto online. Queste chiavi di servizio sono disponibili dopo l’autenticazione.