![](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/da_DK/52d714626638d3391623c853be0c593b.png)
Sikker synkronisering af nøglering
Når en bruger slår iCloud-nøglering til for første gang på en konto med tofaktorgodkendelse, etablerer og opretter enheden en synkroniseringsidentitet til sig selv. Synkroniseringsidentiteten består af asymmetriske elliptiske nøgler (der bruger P-384), som opbevares i enhedens nøglering. De enkelte enheder danner deres egen liste med synkroniseringsidentiteter for brugerens andre enheder og signerer listen med en af deres identitetsnøgler. Disse lister opbevares i CloudKit, så brugerens enheder kan nå til enighed om, hvordan nøgleringsdata på alle brugerens enheder synkroniseres indbyrdes på sikker vis.
Af hensyn til kompatibilitet med ældre iCloud-enheder oprettes der en lignende synkroniseringsgodkendelseskæde, og der dannes endnu en synkroniseringsidentitet. Synkroniseringsidentitetens offentlige nøgle placeres i kæden, og kæden signeres to gange. Først med synkroniseringsidentitetens private nøgle og derefter igen med en asymmetrisk elliptisk nøgle (der bruger P-256) afledt af adgangskoden til brugerens iCloud-konto. I kæden gemmes også de parametre (tilfældig saltnøgle og gentagelser), som bruges til at danne den nøgle, der er baseret på brugerens adgangskode til iCloud.
Lagring af synkroniseringskæden i iCloud
Til konti med tofaktorgodkendelse opbevares hver enheds liste over godkendte enheder i CloudKit. Listerne kan ikke læses uden kendskab til brugerens iCloud-adgangskode og kan ikke ændres uden private nøgler på ejerenheden.
Den signerede synkroniseringskæde opbevares på samme måde i brugerens iCloud-lagringsområde til nøgleværdier, kan ikke læses uden kendskab til brugerens iCloud-adgangskode og kan ikke ændres på en gyldig måde uden den private nøgle til medlemmets synkroniseringsidentitet.
Sådan føjes en brugers andre enheder til synkroniseringskæden
Når der logges ind på iCloud på nye enheder, indlemmes enhederne i synkroniseringskæden i iCloud-nøglering på en af to måder: Enten ved at danne par med og blive sponsoreret af en eksisterende enhed i iCloud-nøglering eller ved at bruge gendannelse af iCloud-nøglering.
Under pardannelsen opretter ansøgerenheden nye synkroniseringsidentiteter til såvel synkroniseringskæden som synkroniseringslisterne (til konti med tofaktorgodkendelse) og præsenterer dem for sponsoren. Sponsoren føjer det nye medlems offentlige nøgle til synkroniseringskæden og signerer den igen med både dets synkroniseringsidentitet og den nøgle, der er afledt af brugerens iCloud-adgangskode. Den nye synkroniseringskæde placeres i iCloud, hvor den ligeledes signeres af det nye medlem af kæden. Ved konti med tofaktorgodkendelse forsyner sponsorenheden også den enhed, der skal indlemmes, med en kupon, der er signeret med dens identitetsnøgler, og som viser, at ansøgerenheden er godkendt. Den opdaterer derefter sin egen liste med godkendte synkroniseringsidentiteter ved at tilføje ansøgeren.
Der er nu to medlemmer af signeringskæden, og hvert medlem har det andet medlems offentlige nøgle. De kan nu begynde at udveksle de enkelte emner i nøgleringen via CloudKit eller iCloud-lagringsområdet til nøgleværdier, alt efter situationen. Hvis begge medlemmer af kæden har opdateringer til samme emne, vælges en af dem, så emnerne efterhånden bliver ens. Hvert emne, der synkroniseres, bliver krypteret, så det kun kan dekrypteres af en enhed i brugerens godkendelseskæde. Det kan ikke dekrypteres af nogen anden enhed eller af Apple.
Denne “indlemmelsesproces” gentages, når nye enheder indlemmes i synkroniseringskæden. Når en tredje enhed indlemmes, kan den danne par med en af de to eksisterende enheder. Når der tilføjes nye enheder, synkroniseres hver enhed med de nye. Det har til formål at sikre, at alle medlemmer har samme emner i nøgleringen.
Kun visse emner synkroniseres
Nogle emner i nøgleringen gælder kun en enhed, iMessage-nøgler, og må ikke forlade enheden. Alle de emner, der skal synkroniseres, skal eksplicit mærkes med attributten kSecAttrSynchronizable
for at forhindre uventet datatransport.
Apple indstiller denne attribut til brugerdata i Safari (herunder brugernavne, adgangskoder og kreditkortnumre) samt til Wi-Fi-adgangskoder, HomeKit-krypteringsnøgler og andre emner i nøgleringen, der understøtter end-to-end-kryptering af iCloud.
Desuden gælder, at emner i nøgleringen, som er tilføjet af apps fra tredjeparter, ikke synkroniseres. Udviklerne skal indstille attributten kSecAttrSynchronizable
, når de føjer emner til nøgleringen.