
SĂ€ker synkronisering av nyckelringen
NÀr en anvÀndare slÄr pÄ iCloud-nyckelring för första gÄngen för ett konto med tvÄfaktorsautentisering upprÀttar och skapar enheten en synkroniseringsidentitet Ät sig sjÀlv. Synkroniseringsidentiteten bestÄr av asymmetriska elliptiska nycklar (med P-384) som lagras i enhetens nyckelring. Varje enhet upprÀtthÄller sin egen lista med synkroniseringsidentiteter pÄ anvÀndarens andra enheter och signerar denna lista med en av dess identitetsnycklar. Dessa listor lagras i CloudKit sÄ att anvÀndarens enheter kan uppnÄ samstÀmmighet om hur nyckelringsdata ska synkroniseras sÀkert mellan sig sjÀlva.
För kompatibilitet med Àldre iCloud-enheter skapas en liknande tillförlitlighetscirkel för synkronisering och en annan synkroniseringsidentitet bildas. Den publika nyckeln till synkroniseringsidentiteten lÀggs till i cirkeln och cirkeln signeras tvÄ gÄnger: först av den privata nyckeln i synkroniseringsidentiteten och sedan igen med en asymmetrisk elliptisk nyckel (med P-256) som hÀrleds ur lösenordet till anvÀndarens iCloud-konto. I cirkeln sparas ocksÄ parametrarna (slumpmÀssigt salt och iterationer) som anvÀnds till att skapa nyckeln som baseras pÄ anvÀndarens iCloud-lösenord.
iCloud-lagring av synkroniseringscirkeln
För konton med tvÄfaktorsautentisering lagras varje enhets lista med betrodda enheter i CloudKit. Listorna kan inte lÀsas utan att kÀnna till anvÀndarens iCloud-lösenord och kan inte Àndras utan tillgÄng till de privata nycklarna för Àgarenheten.
PÄ liknande sÀtt lagras den signerade synkroniseringscirkeln i anvÀndarens lagringsutrymme för nyckelvÀrden pÄ iCloud. Den kan inte lÀsas utan att kÀnna till anvÀndarens iCloud-lösenord och kan inte Àndras pÄ ett giltigt sÀtt utan tillgÄng till den privata nyckeln för medlemmens synkroniseringsidentitet.
SÄ hÀr lÀggs anvÀndares andra enheter till i synkroniseringscirkeln
NÀr nya enheter loggar in pÄ iCloud ansluter de till iCloud-nyckelrings synkroniseringscirkel pÄ ett av tvÄ sÀtt: antingen genom att parkoppla med och sponsras av en befintlig enhet med iCloud-nyckelring eller genom att anvÀnda ÄterstÀllning för iCloud-nyckelring.
Under parkopplingsflödena skapar den sökande enheten nya synkroniseringsidentiteter för bÄde synkroniseringscirkeln och synkroniseringslistorna (för konton med tvÄfaktorsautentisering) och presenterar dem för sponsorn. Sponsorn lÀgger till den nya medlemmens publika nyckel i synkroniseringscirkeln och signerar den igen med bÄde dess synkroniseringsidentitet och med nyckeln som hÀrleds ur anvÀndarens iCloud-lösenord. Den nya synkroniseringscirkeln placeras pÄ iCloud dÀr den sedan signeras pÄ ett liknande sÀtt av den nya cirkelmedlemmen. I konton med tvÄfaktorsautentisering tillhandahÄller sponsorenheten Àven ett kvitto som Àr signerat med dess identitetsnycklar till den anslutande enheten, vilka visar att den ansökande enheten Àr tillförlitlig. Sedan uppdaterar den dess enskilda lista med betrodda synkroniseringsidentiteter sÄ att den ansökande inkluderas.
Det finns nu tvÄ medlemmar i signeringscirkeln och varje medlem har den publika nyckeln till den andra medlemmen. De börjar nu att utvÀxla enskilda nyckelringsobjekt via iCloud, eller lagringsutrymmet för nyckelvÀrden pÄ iCloud, beroende pÄ vad som Àr mest lÀmpligt i den aktuella situationen. Om bÄda cirkelmedlemmarna har uppdateringar för samma objekt vÀljs den ena eller den andra, vilket leder till eventuell konsekvens. Varje objekt som synkroniseras krypteras sÄ att det bara kan avkrypteras av en enhet som finns i anvÀndarens tillförlitlighetscirkel. Det kan inte avkrypteras av nÄgon annan enhet eller av Apple.
NĂ€r nya enheter ansluter till synkroniseringscirkeln upprepas den hĂ€r âanslutningsprocessenâ. NĂ€r en tredje enhet ansluter kan den exempelvis parkopplas med vilken som helst av de befintliga enheterna. NĂ€r nya enheter lĂ€ggs till synkroniseras alla enheter med den nya enheten. Detta garanterar att alla har samma nyckelringsobjekt.
Endast vissa objekt synkroniseras
En del nyckelringsobjekt Àr enhetsspecifika, exempelvis iMessage-nycklar, och mÄste dÀrför stanna pÄ enheten. I syfte att förhindra ovÀntad datatransport mÄste alla objekt som synkroniseras uttryckligen mÀrkas med attributet kSecAttrSynchronizable
.
Apple har stÀllt in det hÀr attributet för Safari-anvÀndardata (inklusive anvÀndarnamn, lösenord och kreditkortsnummer), liksom för Wi-Fi-lösenord, HomeKit-krypteringsnycklar och andra nyckelringsobjekt som stöder heltÀckande iCloud-kryptering.
Som förval synkroniseras inte nyckelringsobjekt som har lagts till av tredjepartsappar. Utvecklarna mÄste stÀlla in attributet kSecAttrSynchronizable
nÀr de lÀgger till objekt i nyckelringen.