Sikkerhet for kontakt for kontogjenoppretting
Brukere kan legge til opptil fem personer de stoler på, som kontakter for kontogjenoppretting, slik at de kan få hjelp til å gjenopprette iCloud-konto og data, inkludert gjennomgående krypterte, uavhengig av om de har slått på Avansert databeskyttelse. Verken Apple eller kontakten for kontogjenoppretting har nødvendig informasjon for å kunne gjenopprette brukerens gjennomgående krypterte iCloud-data.
Funksjonen med kontakter for gjenoppretting er utviklet for å ivareta brukerens personvern. Apple vet ikke hvilke kontakter for gjenoppretting brukeren har valgt. Apple-tjenere får bare informasjon om en kontakt for gjenoppretting sent i gjenopprettingsforsøket, etter at brukeren har bedt kontakten om hjelp, og kontakten har begynt å hjelpe brukeren. Informasjonen lagres ikke etter at gjenopprettingen er fullført.
Sikkerhetsprosess for gjenopprettingskontakt
Når brukeren konfigurerer en gjenopprettingskontakt, krypteres nøkkelen til brukerens iCloud-data, inkludert CloudKit-data med gjennomgående kryptering, med en sterk tilfeldig nøkkel. Deretter deles nøkkelen opp mellom gjenopprettingskontakten og Apple. Når dataene senere skal gjenopprettes, må de to delene av nøkkelen kombineres før den opprinnelige nøkkelen kan gjenopprettes og tilgang til brukerens iCloud-data åpnes opp.
For å opprette en kontakt for kontogjenoppretting kommuniserer brukerens enhet med Apple-tjenere for å laste opp den halvdelen av nøkkelen som Apple skal ta vare på. Enheten etablerer deretter en gjennomgående kryptert CloudKit-beholder med gjenopprettingskontakten for å dele den delen av nøkkelen som gjenopprettingskontakten skal ha. Både Apple og gjenopprettingskontakten mottar den samme autoriseringshemmeligheten fra brukeren. Denne er nødvendig for å kunne utføre en gjenoppretting senere. Kommunikasjonen for å invitere og godta gjenopprettingskontakter foregår via en gjensidig autentisert IDS-kanal. Den mottatte informasjonen lagres automatisk på nøkkelringen til gjenopprettingskontakten. Apple har ingen tilgang til innholdet verken i CloudKit-beholderen eller iCloud-nøkkelringen som inneholder denne informasjonen. Under selve informasjonsutvekslingen får Apples tjenere kun tilgang til en anonym ID for gjenopprettingskontakten.
Når brukerne deretter skal gjenopprette kontoen og iCloud-dataene, kan de be om hjelp fra gjenopprettingskontakten. Da genererer gjenopprettingskontaktens enhet en gjenopprettingskode som gjenopprettingskontakten gir til brukeren (for eksempel personlig eller over telefon). Deretter angir brukeren gjenopprettingskoden på enheten sin for å opprette en sikker forbindelse mellom enheter ved hjelp av SPAKE2+-protokollen. Apple kan ikke lese innholdet. Denne interaksjonen settes opp av Apple-tjenere, men Apple kan ikke starte gjenopprettingsprosessen.
Når den sikre forbindelsen er opprettet og alle nødvendige sikkerhetskontroller er utført, vil gjenopprettingskontaktens enhet sende sin halvdel av nøkkelinformasjonen og autoriseringshemmeligheten som ble opprettet tidligere, tilbake til brukeren som ber om gjenoppretting. Brukeren identifiserer seg med denne autoriseringshemmeligheten for en Apple-tjener, som gir tilgang til nøkkelinformasjonen som Apple lagrer. Ved å oppgi autoriseringshemmeligheten gis det også tillatelse til å tilbakestille kontopassordet for å få tilgang til kontoen igjen.
Når brukerens enhet setter sammen nøkkelinformasjonen mottatt fra Apple og kontakten for kontogjenoppretting, brukes denne til å dekryptere og gjenopprette iCloud-dataene til brukeren.
Sikkerhetsmekanismer forhindrer at gjenopprettingskontakten kan sette i gang gjenoppretting uten brukersamtykke. Det inkluderer en aktivitetskontroll av brukerens konto. Hvis kontoen er i aktiv bruk, krever gjenoppretting med en gjenopprettingskontakt kunnskap om en nylig brukt enhetskode eller sikkerhetskoden til iCloud-kontoen.