Безопасность обмена данными HomeKit
HomeKit предоставляет инфраструктуру «умного дома», которая использует функции безопасности iCloud и iOS, iPadOS и macOS для защиты и синхронизации личных данных без передачи этой информации в компанию Apple.
Идентификация и защита в HomeKit реализованы на базе пар открытых и личных ключей. Устройство iOS, iPadOS и macOS генерирует пару ключей Ed25519 для каждого пользователя HomeKit, и эта пара ключей становится идентификатором пользователя в HomeKit. Он используется для аутентификации обмена данными между устройствами iOS, iPadOS и macOS, а также между устройствами iOS, iPadOS и macOS и аксессуарами.
Ключи хранятся в связке ключей и добавляются только в зашифрованные резервные копии Связки ключей. Для синхронизации ключей между устройствами используется Связка ключей iCloud (если доступно). HomePod и Apple TV получают ключи через настройку касанием или режим настройки, описанный ниже. Ключи передаются с iPhone на Apple Watch, с которыми создана пара, через службу идентификации Apple (IDS).
Связь между аксессуарами HomeKit
Аксессуары HomeKit генерируют собственные пары ключей Ed25519 для связи с устройствами iOS, iPadOS и macOS. При восстановлении заводских настроек аксессуара генерируется новая пара ключей.
Для установления связи между устройством iOS, iPadOS и macOS и аксессуаром HomeKit выполняется обмен ключами по 3072‑битному протоколу Secure Remote Password: производитель аксессуара предоставляет восьмизначный цифровой код, который пользователь вводит на устройстве iOS или iPadOS; затем этот код шифруется по алгоритму ChaCha20-Poly1305 AEAD с использованием производных ключей HKDF-SHA512. Во время настройки также выполняется проверка сертификата MFi устройства. Аксессуары без чипа MFi могут обладать встроенной поддержкой аутентификации программного обеспечения в iOS 11.3 и новее.
Если в процессе эксплуатации устройству iOS, iPadOS или macOS и аксессуару HomeKit необходимо обменяться данными, каждый из них аутентифицирует вторую сторону, используя ключи, которыми они обменялись ранее (см. выше). Каждый сеанс связи устанавливается с использованием протокола Station-to-Station и шифруется с использованием производных ключей HKDF-SHA512, полученных из сеансовых ключей Curve25519. Этот метод применяется как для IP-аксессуаров, так и для аксессуаров стандарта Bluetooth Low Energy (BLE).
При работе с устройствами BLE, которые поддерживают широковещательные уведомления, аксессуар получает ключ шифрования широковещательной передачи от связанного устройства iOS, iPadOS или macOS в ходе безопасного сеанса. Ключ используется для шифрования данных об изменении состояния аксессуара, которые передаются с помощью оповещений BLE. Ключ шифрования широковещательной передачи является производным ключом HKDF-SHA512, а для шифрования данных используется алгоритм ChaCha20-Poly1305 AEAD. Ключ шифрования широковещательной передачи периодически изменяется устройством iOS, iPadOS или macOS и обновляется на других устройствах с помощью iCloud, как описано в разделе «Безопасность данных HomeKit».
HomeKit и Siri
С помощью Siri можно отправлять запросы аксессуарам, управлять ими и включать сценарии. Siri получает минимальный объем анонимной информации о конфигурации дома, включая имена комнат, аксессуаров и сценариев, необходимые для распознавания команд. Аудиоданные, отправляемые в Siri, могут включать упоминания определенных аксессуаров или команд, но такие данные Siri не связываются с другими функциями Apple, такими как HomeKit.
Аксессуары HomeKit с поддержкой Siri
Пользователи могут включить такие новые функции, как Siri, а также другие функции HomePod, в том числе таймеры, будильники, интерком и дверной звонок, на аксессуарах с поддержкой Siri в приложении «Дом». Когда эти функции включены, аксессуар связывается с объединенным в пару HomePod в локальной сети, который поддерживает эти функции Apple. Аудио передается между устройствами по зашифрованным каналам, одновременно используя протокол HomeKit и протокол AirPlay.
Когда функция «Слушать "Привет, Siri"» включена, аксессуар ожидает, когда будет произнесена фраза «Привет, Siri», используя модуль распознавания ключевой фразы. Если этот модуль распознает ее, он отправляет фрагменты аудио напрямую на объединенное в пару устройство HomePod, используя HomeKit. HomePod во второй раз проверяет аудио, чтобы отменить его отправку, если фрагмент не содержит ключевой фразы.
Когда функция «Siri: коснуться и удерживать» включена, пользователь может нажать кнопку на аксессуаре, чтобы вызвать Siri. Фрагменты аудио отправляются напрямую на объединенное в пару устройство HomePod.
Когда будет установлено, что был совершен вызов Siri, HomePod отправит аудио на серверы Siri и выполнит команду пользователя, используя те меры обеспечения безопасности, конфиденциальности и средства шифрования, которые применяет HomePod, когда к нему обращается пользователь. Если у Siri есть аудиоответ, тогда ответ Siri будет передан аксессуару по аудиоканалу AirPlay. Иногда для запросов к Siri требуется дополнительная информация от пользователя (например, нужно ли огласить другие параметры). В таком случае аксессуар получает указание о том, что нужно спросить пользователя, и дополнительная аудиозапись передается в потоковом режиме на HomePod.
У аксессуара должен быть индикатор, включающийся, когда устройство ожидает ключевую фразу (например, светодиодный индикатор). Аксессуару неизвестно содержание запроса к Siri, но ему доступны аудиопотоки. При этом никакие данные пользователя не хранятся аксессуаром.