HomeKit 資料保安
可以使用 iCloud 和 iCloud 鑰匙圈,在同一名用户的 iOS、iPadOS 和 macOS 裝置間安全地更新 HomeKit 資料。在此期間,HomeKit 資料會使用從用户 HomeKit 身份與隨機數衍生的密鑰來進行加密,並當成不透明二進位大型物件(或稱為 blob)來處理。最近的物件會儲存在 iCloud 中,但不會用於任何其他用途。因為它是使用僅可於用户 iOS、iPadOS 和 macOS 裝置上取得的密鑰進行加密,因此它的內容在傳輸與 iCloud 儲存期間是無法存取的。
HomeKit 資料也會在同一家居的多位用户間進行同步。此處理會使用認證與加密,就像 iOS、iPadOS 和 macOS 裝置與 HomeKit 配件間使用的一樣。認證是以 Ed25519 公用密鑰為基礎,當用户加入家居時,便會在裝置間交換這些密鑰。在新用户加入家居後,所有進一步的通訊都會使用站對站的通訊協定與作業階段專屬的密鑰進行認證和加密。
一開始在 HomeKit 中建立家居的用户或具有編輯權限的其他用户可以新增用户。擁有者的裝置會使用新用户的公用密鑰來設定配件,以便讓配件可認證和接受來自新用户的指令。當具有編輯權限的用户新增用户時,系統便會將此程序委派至家居控制中樞以完成操作。
HomeKit 和 Apple TV
當用户登入 iCloud 時,便會自動執行配置 Apple TV 的程序以配搭 HomeKit 使用。iCloud 帳户需要啟用雙重認證。Apple TV 與擁有者的裝置會透過 iCloud 交換臨時 Ed25519 公用密鑰。當擁有者的裝置與 Apple TV 連接相同區域網絡時,臨時密鑰會使用站對站的通訊協定與作業階段專屬密鑰來保護區域網絡的連線。此處理會使用認證與加密,就像 iOS、iPadOS 和 macOS 裝置與 HomeKit 配件間使用的一樣。透過安全的區域連線,擁有者的裝置會將用户的 Ed25519 公用-專用密鑰組傳送至 Apple TV。這些密鑰之後會用來保護 Apple TV 與 HomeKit 配件間的通訊,還有 Apple TV 和其他 iOS、iPadOS 和 macOS 裝置(HomeKit 家居的一部份)間的通訊。
如用户沒有多部裝置,且並未將其家居的存取權限授予其他用户,便不會將 HomeKit 資料傳輸至 iCloud。
家居資料與 App
App 對家居資料的存取權是受用户的「私隱」設定所控制。當 App 要求提供家居資料時,系統會要求用户授予存取權,過程類似於要求提供「通訊錄」、「相片」和其他 iOS、iPadOS 和 macOS 資料來源。如用户許可,App 便可存取房間的名稱、配件名稱、每個配件所在的房間,以及 HomeKit 開發者文件中所載明的其他資料,網址為:https://developer.apple.com/homekit/。
本機資料儲存
HomeKit 會在用户的 iOS、iPadOS 和 macOS 裝置上儲存家居、配件、場景和用户的相關資料。儲存的資料會透過自用户 HomeKit 身份密鑰所衍生的密鑰加上隨機數來進行加密。此外,系統會使用「資料保護」類別的「首次用户認證前的保護」來儲存 HomeKit 資料。HomeKit 資料只會備份在經過加密處理的備份檔案中,因此,諸如備份至 Finder(macOS 10.15 或較新版本)或透過 USB 備份至 iTunes(macOS 10.14 或較早版本)的未加密備份,就不會包含 HomeKit 資料。