![](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/zh_CN/52d714626638d3391623c853be0c593b.png)
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 位)协议使用在用户设备上输入且由配件生产企业提供的八位数代码来交换密钥,然后使用 HKDF-SHA512 派生密钥按照 ChaCha20-Poly1305 AEAD 加密交换过程。在设置过程中,还会对配件的 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 和证书,交换过程使用 HKDF-SHA256 派生密钥按照 AES-CCM 进行加密。如果配件恢复为出厂设置,则会生成新的密钥对和 CSR,并在配对过程中为配件签发新的证书。
当 Apple 设备和 Matter 配件在使用过程中进行通信时,各自会使用自己的证书相互进行认证。每个会话均使用三阶段 (Sigma) 协议建立,并基于逐个会话 P256 密钥通过 HKDF-SHA256 派生密钥进行加密。
有关 Apple 设备如何与 Matter 配件安全交互的更多信息,请参阅 Apple 开发者网站上 iOS 16 中的 Matter 支持。
HomeKit 与 Siri
Siri 可用来询问和控制配件以及激活各种场景。Siri 只会匿名获得有关家庭配置的极少量信息。所提供有关房间名称、配件和场景的信息为命令识别所需。发送给 Siri 的音频可能会指示具体的配件或命令,但此类 Siri 数据并不会关联到 HomeKit 等 Apple 其他功能。
支持 Siri 的 HomeKit 配件
用户可以使用“家庭” App 在支持 Siri 的配件上启用 Siri 等新功能以及其他 HomePod 功能,如计时器、闹钟、广播和门铃。这些功能启用后,配件会与本地网络上具有这些 Apple 功能的已配对 HomePod 协作。音频使用 HomeKit 和“隔空播放”协议通过加密通道在设备之间交换。
“用‘嘿 Siri’唤醒”打开时,配件使用本地运行的触发短语检测引擎来听取“嘿 Siri”短语。如果此引擎检测到该短语,它会使用 HomeKit 将音频帧直接发送到配对的 HomePod。HomePod 会对音频执行第二次检查,如果短语似乎不包含触发短语,则可能取消音频会话。
“触碰使用 Siri”打开时,用户可以按下配件上的专用按钮以开始与 Siri 对话。音频帧会直接发送到配对的 HomePod。
在检测到成功激活 Siri 后,HomePod 会将音频发送到 Siri 服务器,并使用安全、隐私和加密保护措施(与 HomePod 应用于用户激活 HomePod 本身时一样)来满足用户的意图。如果 Siri 有音频回复,则 Siri 的回复会通过“隔空播放”音频通道发送到配件。部分 Siri 请求需要用户提供更多信息(例如,询问用户是否想要听取更多选项)。在这种情况下,配件会收到应该提示用户的指示,然后更多音频会流播放到 HomePod。
配件需要有视觉指示器,以便在其听取活跃时向用户发出信号(例如,LED 指示灯)。除了访问音频流之外,配件不知道 Siri 请求的意图,也不会储存任何用户数据。