HomeKit 数据安全性
HomeKit 数据可在使用 iCloud 和 iCloud 钥匙串的用户 iOS、iPadOS 和 macOS 设备间安全更新。更新期间,HomeKit 数据使用派生自用户 HomeKit 身份标识的密钥和随机数进行加密,并会作为不透明二进制大对象(即 blob)处理。最近处理的二进制大对象会储存在 iCloud 中,但不会用作其他目的。因为 HomeKit 数据加密所使用的密钥仅在用户的 iOS、iPadOS 和 macOS 设备上可用,因此在传输和 iCloud 储存过程中无法对其内容进行访问。
HomeKit 数据还可在同一个家庭的多个用户间同步。这一过程所采用的认证和加密方法与 iOS、iPadOS 和 macOS 设备及 HomeKit 配件之间所使用的相同。当用户加入家庭时,设备间会交换 Ed25519 公钥进行认证。新用户加入家庭后,会使用端对端协议和逐个会话密钥来认证和加密所有进一步的通信。
最初在 HomeKit 中创建家庭的用户或具有编辑权限的其他用户能添加新用户。家庭所有者的设备会使用新用户的公钥来配置配件,这样配件就能认证并接受新用户的命令。当具有编辑权限的用户添加一名新用户时,此过程委托给家居中枢来完成操作。
HomeKit 和 Apple TV
预置 Apple TV 以与 HomeKit 配合使用的过程在用户登录 iCloud 时自动执行。iCloud 帐户需要启用双重认证。Apple TV 与家庭所有者的设备通过 iCloud 交换临时 Ed25519 公钥。当家庭所有者的设备与 Apple TV 处于同一个本地网络时,临时密钥用于通过端对端协议和逐个会话密钥来维护本地网络上连接的安全性。这一过程所采用的认证和加密方法与 iOS、iPadOS 和 macOS 设备及 HomeKit 配件之间所使用的相同。通过这一安全的本地连接,家庭所有者的设备将用户的 Ed25519 公私密钥对传输到 Apple TV。然后,这些密钥会被用来维护 Apple TV 与 HomeKit 配件之间以及 Apple TV 与属于 HomeKit 家庭配置中的其他 iOS、iPadOS 和 macOS 设备之间通信的安全性。
如果用户没有多台设备且未批准其他用户访问其家庭,则 HomeKit 数据不会传输到 iCloud。
家庭数据和 App
用户可通过“隐私”设置来控制 App 对家庭数据的访问。当 App 请求访问家庭数据(与请求访问“通讯录”、“照片”及其他 iOS、iPadOS 和 macOS 数据源类似)时,会要求用户授予访问权限。如果用户批准,App 可以访问房间名称、配件名称、每个配件所处的房间以及在 HomeKit 开发者文稿中详述的其他信息,文稿网址为 https://developer.apple.com/homekit/
本地数据储存
HomeKit 将有关家庭、配件、场景和用户的数据储存在用户的 iOS、iPadOS 和 macOS 设备上。储存的数据会使用派生自用户 HomeKit 身份标识密钥的密钥和随机数进行加密。此外,HomeKit 数据还会使用“首次用户认证前保护”数据保护类进行储存。HomeKit 数据仅备份在加密的备份中,因此诸如通过 USB 备份到“访达”(macOS 10.15 或更高版本)或 iTunes (macOS 10.14 或更低版本)的未加密备份就不包含 HomeKit 数据。