
帳户還原聯絡人保安
用户最多可以將五位他們信任的人員加入帳户還原聯絡人,以協助他們還原其 iCloud 帳户和資料,包括所有點對點加密資料(不論他們是否已開啟「進階資料保護」)。Apple 和還原聯絡人都沒有可用來獨立解密用户的點對點加密 iCloud 資料之必要資料。
「還原聯絡人」的設計相當重視用户的私隱。Apple 不會知道用户選擇的還原聯絡人。只有在用户向還原聯絡人求助,且該聯絡人開始實際協助進行還原的情況下,Apple 伺服器才會在還原嘗試的較後階段知道關於還原聯絡人的資料。完成還原後,該項資料不會被保留。
還原聯絡人保安程序
用户設定「帳户還原聯絡人」時,系統會產生連繫至該聯絡人的密鑰。此密鑰可保護用户的 iCloud 資料(包括點對點加密的 CloudKit 資料)之取用權限。接着,系統會產生一組隨機 256 位元 AES 密鑰,用於加密「還原聯絡人」密鑰以建立「還原聯絡人封包」。經加密的封包會傳送給「還原聯絡人」保管,而隨機 AES 密鑰則會由 Apple 儲存。AES 密鑰和封包都不會提供有關基礎密鑰本身的任何資料。進行還原時,當用户裝置成功向其「還原聯絡人」取得「還原聯絡人封包」並向 Apple 取得 AES 密鑰後,就能組合這兩者來還原原始密鑰,並取用用户的 iCloud 資料。
如要設定「帳户還原聯絡人」,用户的裝置要與 Apple 伺服器通訊,以上傳 Apple 持有那部份的密鑰資料(上述的 AES 密鑰)。然後其會與還原聯絡人建立點對點加密的 CloudKit 容器,以分享還原聯絡人所需的部份(使用 AES 密鑰加密的「還原聯絡人封包」)。Apple 建立的授權密鑰也會與還原聯絡人分享。此密鑰將用於還原帳户及協助帳户重設密碼。邀請和接受還原聯絡人的通訊是透過相互認證的 IDS 頻道進行。還原聯絡人會自動將收到的資料儲存在他們的「iCloud 鑰匙圈」中。Apple 無法取用 CloudKit 容器的內容,也無法取用儲存此資料的「iCloud 鑰匙圈」。在進行分享時,Apple 伺服器只會檢視還原聯絡人的匿名識別碼。
之後,當用户需要還原他們的帳户和 iCloud 資料時,可以向他們的還原聯絡人要求協助。屆時,還原聯絡人的裝置會產生一個還原代碼,還原聯絡人便可於頻外(例如親自或透過電話)將其提供給用户。然後用户在他們的裝置上輸入還原代碼,以使用 SPAKE2+ 通訊協定在裝置間建立安全連線,Apple 無法取用其中的內容。此互動由 Apple 伺服器協調,但 Apple 無法啟動還原程序。
建立安全連線並完成所有必要的安全檢查後,還原聯絡人的裝置會將他們那部份的密鑰資料以及之前建立的授權密鑰,傳回給要求還原的用户。用户向 Apple 伺服器出示此授權密鑰,其會將取用 Apple 儲存的密鑰資料之取用權限授予用户。提供授權密鑰也會授權重設帳户密碼以還原帳户取用權限。
最後,用户的裝置會結合從 Apple 和「帳户還原聯絡人」接收的密鑰資料,並使用有關資料來解密和還原用户的 iCloud 資料。
系統會實施保護機制來防止還原聯絡人在未得到用户的同意下啟動還原,這些保護機制包括在用户帳户上進行活動性分析。如果帳户正被積極使用,就會需要知道最近使用的裝置密碼或「iCloud 安全碼」才能使用「還原聯絡人」進行還原。