HomeKit 通訊保安
HomeKit 提供家居自動化的基礎架構,利用 iCloud 與 iOS、iPadOS 和 macOS 保安來保護與同步私隱資料,無須將其透露給 Apple。
HomeKit 身份與保安是以 Ed25519 公用-專用密鑰組為基礎。iOS、iPadOS 和 macOS 裝置會為 HomeKit 的每位用户產生 Ed25519 密鑰組,這些密鑰組會變成他們的 HomeKit 身份,用於認證 iOS、iPadOS 和 macOS 裝置之間以及 iOS、iPadOS 和 macOS 裝置與配件之間的通訊。
密鑰會儲存在鑰匙圈,並只納入加密的「鑰匙圈」備份中,會在使用「iCloud 鑰匙圈」(如可用)的裝置間保持最新狀態。HomePod 和 Apple TV 會使用以下敘述的「點一下來設定」或設定模式來接收密鑰。密鑰會由 iPhone 使用 Apple 識別服務(IDS)分享給配對的 Apple Watch。
HomeKit 配件之間的通訊
HomeKit 配件會產生其自己的 Ed25519 密鑰組,以用於與 iOS、iPadOS 和 macOS 裝置的通訊。如將配件還原成原廠設定,便會產生新的密鑰組。
為了在 iOS、iPadOS 和 macOS 裝置與 HomeKit 配件之間建立關係,系統會使用「安全遙距密碼」(3072 位元)通訊協定來交換密鑰,利用配件製造商所提供並由用户於 iOS、iPadOS 裝置上輸入的八位數代碼,然後使用 ChaCha20-Poly1305 AEAD 與 HKDF-SHA512 衍生密鑰來加密。配件的 MFi 認證也會在設定期間進行驗證。沒有 MFi 晶片的配件可以在 iOS 11.3 或較新版本中建立軟件認證的支援。
當 iOS、iPadOS 和 macOS 裝置與 HomeKit 配件在使用期間進行通訊時,每個裝置會使用上述過程中交換的密鑰來認證另一部裝置。每個作業階段都會使用站對站的通訊協定來建立,並使用以作業階段專屬的 Curve25519 密鑰為基礎的 HKDF-SHA512 衍生密鑰來進行加密。這同時適用於 IP 型與低耗電藍牙(BLE)配件。
針對支援廣播通知的 BLE 裝置,配件會由配對的 iOS、iPadOS 和 macOS 裝置透過安全的作業階段以廣播加密密鑰配置。此密鑰會用於在配件上加密有關狀態變更的資料,這些資料會使用 BLE 廣播傳送通知。廣播加密密鑰是一種 HKDF-SHA512 衍生密鑰,資料會由 ChaCha20-Poly1305 AEAD 演算法進行加密。廣播加密密鑰會定期由 iOS、iPadOS 和 macOS 裝置變更並使用 iCloud 更新至其他裝置,如 HomeKit 資料保安所説明。
HomeKit 和 Siri
Siri 可用來查詢和控制配件,並可啟動場景。匿名提供給 Siri 的家居配置資料會盡量最小化,以提供房間名稱、配件和指令識別所需的場景。傳送給 Siri 的音訊可能與特定配件或指令相關,但此類 Siri 資料不會與其他 Apple 功能(如 HomeKit)產生關聯。
支援 Siri 的 HomeKit 配件
用户可以使用「家居」App 在支援 Siri 的配件上啟用 Siri 等新功能,以及計時器、鬧鐘、對講機和門鐘等其他 HomePod 功能。啟用這些功能後,配件會與本機網絡上託管這些 Apple 功能的已配對 HomePod 進行協調。音訊會使用 HomeKit 和 AirPlay 通訊協定透過加密通道在裝置間交換。
開啟「聆聽『喂 Siri』」後,配件會使用本機執行的觸發字詞偵測引擎來聽取「喂 Siri」詞組。如果此引擎偵測到該詞組,便會使用 HomeKit 將音訊分段直接傳送到配對的 HomePod。HomePod 會對音訊進行第二次檢查,如果詞組似乎不包含觸發詞組,則可能會取消該音訊分段。
開啟「觸碰以呼叫 Siri」時,用户可以按下配件上的專用按鈕來開始與 Siri 對話。系統會將音訊分段會直接傳送到已配對的 HomePod。
偵測到成功呼叫 Siri 後,HomePod 會將音訊傳送到 Siri 伺服器,並依據 HomePod 套用到 HomePod 本身的用户呼叫內容,使用相同保安、私隱和加密保護措施,來滿足用户的意圖。如果 Siri 有音訊回覆,系統會透過 AirPlay 音訊通道將 Siri 的回覆傳送到配件。部份 Siri 要求需要用户提供其他資料(例如,詢問用户是否想聽到更多選項)。在這種情況下,配件會收到提示用户的指示,並將附加音訊以串流到 HomePod。
配件需配備視覺指示器,以便在其主動聆聽時向用户發出訊號(例如,LED 指示燈)。除了取用音訊串流之外,配件不會知道 Siri 要求的意圖,且配件上不會儲存任何用户資料。