Sikkerhed i forbindelse med kontakter til kontogendannelse
Brugere kan tilføje op til fem personer, de stoler på, som kontakt til kontogendannelse og få hjælp fra dem til at gendanne deres iCloud-konto og data, herunder alle end-to-end-krypterede data, uanset om brugeren har slået Avanceret databeskyttelse til. Hverken Apple eller gendannelseskontakten har de oplysninger, der kræves for at gendanne brugerens end-to-end-krypterede data i iCloud.
Gendannelseskontakt er designet med brugerens anonymitet for øje. En brugers valgte gendannelseskontakter kendes ikke af Apple. Apples servere kan kun få oplysninger om en gendannelseskontakt sent i forløbet med et forsøg på gendannelse, når brugeren beder kontakten om hjælp, og kontakten begynder at hjælpe med gendannelsen. Oplysningerne opbevares ikke, efter gendannelsen er gennemført.
Sikkerhedsproces i forbindelse med gendannelseskontakter
Når en bruger indstiller en kontakt til kontogendannelse, genereres der en nøgle, som er knyttet til den kontakt. Nøglen beskytter adgangen til brugerens iCloud-data, herunder end-to-end-krypterede CloudKit-data. Der genereres herefter en tilfældig 256-bit AES-nøgle, som bruges til at kryptere nøglen til gendannelseskontakten, så der oprettes en gendannelseskontaktpakke. Den krypterede pakke sendes til gendannelseskontakten til sikker opbevaring, og den tilfældige AES-nøgle opbevares hos Apple. Hverken AES-nøglen eller pakken indeholder oplysninger om den underliggende nøgle alene. På gendannelsestidspunktet, efter at brugerens enhed henter både gendannelseskontaktpakken fra gendannelseskontakten og AES-nøglen fra Apple, kan enheden kombinere de to, så den originale nøgle gendannes, og der opnås adgang til brugerens iCloud-data.
Når en kontakt til kontogendannelse skal indstilles, kommunikerer brugerens enhed med Apple-servere for at overføre den del af nøgleoplysningerne, som Apple opbevarer (den førnævnte AES-nøgle). Derefter etableres en CloudKit-beholder med end-to-end-kryptering sammen med gendannelseskontakten, så den del, gendannelseskontakten har brug for, kan deles (gendannelseskontaktpakken, som krypteres vha. AES-nøglen). En hemmelig godkendelsesoplysning, som er oprettet af Apple, deles også med gendannelseskontakten. Den hemmelige godkendelsesoplysning vil blive brugt til at gendanne kontoen og nulstille adgangskoden til kontoen. Kommunikation om at invitere og acceptere gendannelseskontakter sker gennem en gensidigt godkendt IDS-kanal. Gendannelseskontakten opbevarer automatisk de modtagne oplysninger i sin iCloud-nøglering. Apple har ikke adgang til indholdet i CloudKit-beholderen eller iCloud-nøgleringen, der opbevarer disse oplysninger. Når delingen sker, ser Apples servere kun et anonymt id til gendannelseskontakten.
Hvis en bruger senere har behov for at gendanne sin konto og sine iCloud-data, kan brugeren anmode sin gendannelseskontakt om hjælp. På det tidspunkt genererer gendannelseskontaktens enhed en kode, som gendannelseskontakten oplyser til brugeren med en analog metode (f.eks. personligt eller i et telefonopkald). Brugeren indtaster koden på sin enhed for at etablere en sikker forbindelse mellem enheder ved brug af SPAKE2+-protokollen, hvis indhold Apple ikke har adgang til. Interaktionen gennemføres ved hjælp af Apple-servere, men Apple kan ikke igangsætte gendannelsesprocessen.
Når den sikre forbindelse er etableret, og alle de nødvendige sikkerhedskontroller er gennemført, sender gendannelseskontaktens enhed sin del af nøgleoplysningerne og den hemmelige godkendelsesoplysning tilbage til brugeren, der anmoder om gendannelse. Brugeren angiver denne hemmelige godkendelsesoplysning til en Apple-server, hvilket giver adgang til nøgleoplysningerne, som Apple opbevarer. Når den hemmelige godkendelsesoplysning angives, er det også en godkendelse af, at nulstilling af adgangskoden til kontoen kan bruges til at retablere adgangen til kontoen.
Til sidst kombinerer brugerens enhed nøgleoplysningerne fra Apple og kontakten til kontogendannelse og bruger dem til at dekryptere og gendanne brugerens iCloud-data.
Der findes sikkerhedsforanstaltninger, som skal forhindre en gendannelseskontakt i at starte gendannelse uden brugerens samtykke, hvilket inkluderer en aktivitetskontrol af brugerens konto. Hvis kontoen er i brug, kræver gendannelse med en gendannelseskontakt også oplysninger om en nylig kode til enheden eller iCloud-sikkerhedskoden.