iCloud 加密
iCloud 中的資料加密與資料儲存模型環環相扣,從允許 App 和系統軟件代表用户將資料儲存在 iCloud 中的 CloudKit 架構和 API 開始,並讓所有內容在裝置之間和網上保持在最新狀態。
CloudKit 加密
CloudKit 架構可讓 App 開發者在 iCloud 中儲存密鑰值資料、結構資料和資產(與資料庫分開儲存的大型資料,例如影像或影片)。CloudKit 同時支援公用和專用資料庫,其會以容器來分組。公用資料庫會與全域分享,此資料庫專門供一般資產使用,且不會被加密。專用資料庫則會儲存各個用户的 iCloud 資料。
CloudKit 會使用符合資料架構的密鑰階層。各個容器的專用資料庫都會由一個密鑰階層保護,該密鑰階層根值於名為「CloudKit 服務」密鑰的非對稱式密鑰。這些密鑰對各個 iCloud 用户都是獨一無二,並且都是在用户的受信任裝置上產生。資料寫入 CloudKit 時,系統在上載任何資料前都會先在用户的受信任裝置上產生所有記錄密鑰,並將密鑰封裝到適當的密鑰階層。
許多 Apple 服務(Apple 支援文章 iCloud 資料保安概覽中詳盡列出)都使用點對點加密,並配搭受到與「iCloud 鑰匙圈」同步功能相同保護的 CloudKit 服務密鑰。對這些 CloudKit 容器而言,服務密鑰只能在用户信任的裝置上使用,Apple 或任何第三方均無法取用。就算用户選擇不使用「iCloud 鑰匙圈」來同步密碼、通行密匙和其他用户資料,這些密鑰還是會在用户的裝置間同步。在遺失裝置的情況下,用户可以透過使用「iCloud 鑰匙圈」安全還原、「帳户還原聯絡人」或「帳户還原密鑰」來還原他們的「iCloud 鑰匙圈」資料。
加密密鑰管理
CloudKit 中的加密資料之保安有賴於對應的加密密鑰之保安。CloudKit 服務密鑰會分兩個類別:點對點加密和認證後可使用。
點對點加密服務密鑰:針對點對點加密的 iCloud 服務,Apple 伺服器永遠無法取用相關 CloudKit 服務專用密鑰。服務密鑰組(包括專用密鑰)會在用户受信任的裝置上於本機製作,並會使用「iCloud 鑰匙圈」保安來傳送到用户的其他裝置。雖然「iCloud 鑰匙圈」還原和同步流程都是由 Apple 伺服器協調,這些伺服器皆會以加密編譯方式來避免取用用户的任何鑰匙圈資料。在失去「iCloud 鑰匙圈」的取用權限及所用還原機制的最差情況下,就會失去 CloudKit 中的點對點加密資料。Apple 無法協助還原此資料。
認證後可使用服務密鑰:針對其他服務(例如「相片」和「iCloud 雲碟」),服務密鑰會儲存在 Apple 資料中心的「iCloud 硬件安全模組」,並可透過部份 Apple 服務取用。當用户在新裝置上登入 iCloud 並認證其 Apple ID,Apple 伺服器就可以取用這些密鑰,無需進一步的用户互動或輸入。例如,在登入 iCloud.com 後,用户就可以即時在網上檢視其相片。這些服務密鑰就是認證後可使用密鑰。