HomeKit 通訊安全性
HomeKit 提供家庭自動化的基礎架構,利用 iCloud 與 裝置安全功能來保護與同步隱私資料,無須透露給 Apple。
HomeKit 身分與安全性是以 Ed25519 公用密鑰與專用密鑰的組合為基礎。Ed25519 密鑰配對是在使用者的裝置上產生,會成為其 HomeKit 身分。密鑰配對會成為 HomeKit 配件通訊協定(HAP)的一部分,用於驗證使用者的 Apple 裝置和 HomeKit 配件之間的直接通訊。
如果共享家庭有設定家庭中樞,其成員可以透過這個家庭中樞傳送指令到配件。系統會使用 Apple 識別服務(IDS),對這些命令執行端對端加密和驗證,並從使用者裝置傳送到家庭中樞,然後使用 HomeKit 配件通訊協定(HAP)或 Matter(智慧家庭連線標準)轉送至相關配件上。
密鑰會儲存在鑰匙圈,並只納入加密的鑰匙圈備份中,會在使用「iCloud 鑰匙圈」的裝置間保持最新狀態。
HomeKit 配件之間的通訊
HomeKit 配件會產生自己的 Ed25519 密鑰組,用於與 Apple 裝置通訊。若將配件回復成原廠設定,便會產生新的密鑰組。
為了在 Apple 裝置與 HomeKit 配件之間建立關係,系統會使用「安全遠端密碼」(3072 位元)通訊協定來交換密鑰,並在使用者裝置上輸入配件製造商提供的八位數代碼,然後使用 ChaCha20-Poly1305 AEAD 與 HKDF-SHA512 衍生密鑰來加密。配件的 MFi 認證也會在設定期間進行驗證。沒有 MFi 晶片的配件可以在 iOS 11.3 或以上版本上建立軟體認證的支援。
當裝置與 HomeKit 配件在使用期間進行通訊時,各自會使用上述過程中交換的密鑰來認證對方。每個區段都會使用端到端的通訊協定來建立,並使用以各個區段 Curve25519 密鑰為基礎的 HKDF-SHA512 衍生密鑰來進行加密。這同時適用於 IP 型與低功耗藍牙(BLE)配件。
針對支援廣播通知的 BLE 裝置,配件會由配對的裝置透過安全的作業階段以廣播加密密鑰佈建。此密鑰會用於加密有關配件狀態變更的資料,這些資料是使用 BLE 廣播傳送通知。廣播加密密鑰是一種 HKDF-SHA512 衍生密鑰,資料會透過 ChaCha20-Poly1305 AEAD 演算法進行加密。廣播加密密鑰會定期變更並使用 iCloud 更新至其他裝置,如 HomeKit 資料安全性所說明。
與 Matter 配件通訊
Matter 配件的身分與安全性是以憑證為基礎。針對 Apple 家庭,信任根憑證授權管理中心(CA)是在初始使用者裝置(即「擁有者」)上產生,而 CA 的專用密鑰會儲存在其「iCloud 鑰匙圈」中。家庭中的每部 Apple 裝置都會使用 NIST P256 產生憑證簽署要求(CSR)。擁有者的裝置會摘要這個 CSR,進而為使用其 CA 專用密鑰的裝置建立 Matter 識別身分憑證。此憑證之後會用於驗證使用者裝置和配件之間的通訊。
配件配對期間,Matter 配件會產生自己的 NIST P256 密鑰配對和 CSR,並收到來自 CA 的憑證。產生密鑰配對之前,Matter 配件和家庭擁有者的裝置會交換密鑰(使用 SPAKE2+ 通訊協定搭配配件製造商提供的 PIN),並執行裝置認證程序。接著系統會透過此通道交換 CSR 和憑證(使用 AES-CCM 與 HKDF-SHA256 衍生密鑰進行加密)。如果配件回復成出廠設定,系統會產生新的密鑰配對和 CSR,並在配對期間為配對核發新憑證。
當 Apple 裝置和 Matter 配件在使用期間進行通訊時,各自會使用自己的憑證來認證對方。每個工作階段都會使用三階段(sigma)通訊協定來建立,並使用以各個工作階段 P256 密鑰為基礎的 HKDF-SHA256 衍生密鑰來進行加密。
如需更多關於 Apple 裝置如何與 Matter 配件安全互動的資訊,請參閱 Apple Developer 網站上的 iOS 16 的 Matter 支援。
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 要求的意圖,且配件上不會儲存任何使用者資料。