帳號復原聯絡人安全性
無論使用者是否已開啟「進階資料保護」,使用者最多可以加入五位他們信任的人員作為帳號復原聯絡人,以協助他們復原其 iCloud 帳號和資料,包括其所有端對端加密資料。Apple 和復原聯絡人都沒有個別的必要資訊來復原使用者的端對端加密 iCloud 資料。
「復原聯絡人」的設計將使用者隱私納入考量。使用者所選的復原聯絡人無法由 Apple 識別。Apple 伺服器只會在使用者要求聯絡人協助且其聯絡人實際開始協助復原後的復原嘗試末期得知復原聯絡人的相關資訊。該資訊在復原完成後不會保留。
復原聯絡人安全程序
當使用者設定「帳號復原聯絡人」時,用來取用使用者 iCloud 資料(包含端對端加密 CloudKit 資料)的密鑰會使用高強度隨機密鑰進行加密。該隨機密鑰接著會在復原聯絡人和 Apple 之間分割。在復原時,只有當兩個密鑰重新合併時,才能復原原始密鑰及其取用使用者的 iCloud 資料。
為設定「帳號復原聯絡人」,使用者的裝置會與 Apple 伺服器通訊以上傳 Apple 持有的密鑰資訊部分。裝置接著會與復原聯絡人建立端對端加密 CloudKit 容器來分享復原聯絡人所需的部分。Apple 和復原聯絡人都會從使用者收到相同的授權密鑰,日後復原時會需要。邀請和接受復原聯絡人的通訊是透過相互認證的 IDS 通道進行。復原聯絡人會自動在「iCloud 鑰匙圈」中儲存接收到的資訊。Apple 並無法取用 CloudKit 容器的內容,也無法取用儲存此資訊的「iCloud 鑰匙圈」。執行分享時,Apple 伺服器只會檢視復原聯絡人的匿名 ID。
之後,當使用者需要復原他們的帳號和 iCloud 資料時,可以向他們的復原聯絡人要求協助。屆時,復原聯絡人的裝置會產生一個代碼,復原聯絡人便可透過不同的方法(例如親自或透過電話)將其提供給使用者。然後,使用者在他們的裝置上輸入代碼,以使用 SPAKE2+ 通訊協定在裝置間建立安全連線,Apple 並無法取用此內容。此互動由 Apple 伺服器協調,但 Apple 無法啟動復原程序。
建立安全連線並完成所有必要的安全檢查後,復原聯絡人的裝置會將密鑰資訊的部分和先前建立的授權密鑰傳回給要求復原的使用者。使用者向 Apple 伺服器出示此授權密鑰,此授權密鑰會授予權限來存取 Apple 保管的密鑰資訊。提供授權密鑰也會授權重置帳號密碼以復原帳號取用權限。
最後,使用者的裝置會合併從 Apple 及「帳號復原聯絡人」接收的密鑰資訊,然後用來解密和復原其 iCloud 資料。
有保護措施可以防止復原聯絡人在未經使用者同意的情況下啟動復原,其中包括對使用者帳號的活動性檢查。如果帳號處於使用中狀態,使用「復原聯絡人」進行復原也需要知道最近裝置密碼或 iCloud 安全碼。