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 有音訊回覆,則 Siri 的回覆會透過 AirPlay 音訊通道傳送到配件。部分 Siri 要求需要使用者提供其他資訊(例如,詢問使用者是否想聽到更多選項)。在這種情況下,配件會收到提示用戶的指示,並將附加音訊以串流方式傳輸到 HomePod。
配件需有一個視覺指示器,以便在其主動聆聽時向使用者發出訊號(例如,LED 指示器)。除了取用音訊串流之外,配件並不清楚 Siri 要求的意圖,且配件上不會儲存任何使用者資料。