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