Безопасность обмена данными HomeKit
HomeKit предоставляет инфраструктуру «умного дома», которая использует функции безопасности iCloud и устройства в целях защиты и синхронизации личных данных без передачи этой информации в компанию Apple.
Идентификация и защита в HomeKit реализованы на базе пар открытых и личных ключей. Пара ключей Ed25519 генерируется на устройстве пользователя и затем становится идентификатором пользователя в HomeKit. Такая пара ключей используется как часть протокола HomeKit Accessory Protocol (HAP) для аутентификации прямого обмена данными между устройствами Apple и аксессуарами HomeKit пользователя.
При наличии домашнего центра пользователи общего дома могут отправлять команды аксессуарам через домашний центр. Такие команды, защищенные двойным шифрованием и прошедшие аутентификацию, отправляются с устройства пользователя на домашний центр через службу идентификации Apple (IDS), а затем перенаправляются на нужный аксессуар по протоколу HomeKit Accessory Protocol (HAP) или по стандарту подключения умного дома Matter.
Ключи хранятся в связке ключей и добавляются только в зашифрованные резервные копии связки ключей. Для синхронизации ключей между устройствами используется Связка ключей iCloud.
Связь между аксессуарами HomeKit
Аксессуары HomeKit генерируют собственные пары ключей Ed25519 для связи с устройствами Apple. При восстановлении заводских настроек аксессуара генерируется новая пара ключей.
Для установления связи между устройством Apple и аксессуаром HomeKit выполняется обмен ключами по 3072‑битному протоколу Secure Remote Password: производитель аксессуара предоставляет восьмизначный цифровой код, который пользователь вводит на устройстве; затем этот код шифруется по алгоритму ChaCha20-Poly1305 AEAD с использованием производных ключей HKDF-SHA512. Во время настройки также выполняется проверка сертификата MFi устройства. Аксессуары без чипа MFi могут обладать встроенной поддержкой аутентификации программного обеспечения в iOS 11.3 и новее.
Если в процессе эксплуатации устройству и аксессуару HomeKit необходимо обменяться данными, каждый из них аутентифицирует вторую сторону, используя ключи, которыми они обменялись ранее (см. выше). Каждый сеанс связи устанавливается с использованием протокола Station-to-Station и шифруется с использованием производных ключей HKDF-SHA512, полученных из сеансовых ключей Curve25519. Этот метод применяется как для IP-аксессуаров, так и для аксессуаров стандарта Bluetooth Low Energy (BLE).
При работе с устройствами BLE, которые поддерживают широковещательные уведомления, аксессуар в ходе безопасного сеанса получает ключ шифрования широковещательной передачи от связанного устройства. Ключ используется для шифрования данных об изменении состояния аксессуара, которые передаются с помощью оповещений BLE. Ключ шифрования широковещательной передачи является производным ключом HKDF-SHA512, а для шифрования данных используется алгоритм ChaCha20-Poly1305 AEAD. Ключ шифрования широковещательной передачи периодически изменяется и обновляется на других устройствах с помощью iCloud, как описано в разделе «Безопасность данных HomeKit».
Обмен данными с аксессуарами Matter
При использовании аксессуаров Matter их идентификация и защита выполняются на основе сертификатов. В домах Apple корень доверия центра сертификации генерируется на устройстве первоначального пользователя («владельца»), а частный ключ центра сертификации хранится в его Связке ключей iCloud. Каждое устройство Apple в доме генерирует запрос на подписание сертификата (CSR) с использованием NIST P256. Этот запрос CSR принимается устройством владельца, которое создает сертификат удостоверения Matter для устройства, используя свой частный ключ центра сертификации. Такой сертификат впоследствии обеспечивает аутентификацию при обмене данными между устройствами пользователей и их аксессуарами.
Аксессуары Matter генерируют свою собственную пару ключей NIST P256, а также запрос CSR. Во время создания пары с аксессуарами они получают сертификат от центра сертификации. До момента генерирования пар ключей аксессуар Matter и устройства владельца дома обмениваются ключами по протоколу SPAKE2+ с использованием PIN-кода, предоставляемого производителем аксессуара. Таким образом совершается процесс аттестации устройства. Затем происходит обмен запроса CSR и сертификата по этому зашифрованному каналу с помощью AES-CCM с использованием производных ключей HKDF-SHA256. Если настройки аксессуара сбрасываются до заводских, генерируется новая пара ключей и новый запрос CSR, а также во время создания пары выпускается новый сертификат для этого аксессуара.
Если в процессе эксплуатации устройству Apple и аксессуару Matter необходимо обменяться данными, каждый из них аутентифицирует вторую сторону, используя собственные сертификаты. Каждый сеанс связи устанавливается с использованием трехфазного протокола (сигма) и шифруется с использованием производных ключей HKDF-SHA256, полученных из сеансовых ключей P256.
Подробнее о безопасном взаимодействии устройств Apple и аксессуаров Matter можно узнать на веб-странице о поддержке аксессуаров Matter в iOS 16 на сайте для разработчиков Apple.
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, но ему доступны аудиопотоки. При этом никакие данные пользователя не хранятся аксессуаром.