Sécurité de la communication HomeKit
HomeKit fournit une infrastructure d’automatisation à domicile qui fait appel aux fonctionnalités de sécurité d’iCloud, d’iOS, d’iPadOS et de macOS pour protéger et synchroniser les données personnelles sans les exposer à Apple.
La sécurité et l’identité HomeKit reposent sur des paires de clés publique et privée Ed25519. Une paire de clés Ed25519 est générée pour HomeKit sur l’appareil iOS, iPadOS et macOS pour chaque utilisateur et devient son identité HomeKit. Elle est utilisée pour authentifier la communication entre les appareils iOS, iPadOS et macOS, et entre les appareils iOS, iPadOS et macOS et les accessoires.
Les clés sont stockées dans le trousseau et incluses uniquement dans les sauvegardes chiffrées du trousseau. S’il y a lieu, elles sont synchronisées entre les appareils à l’aide du trousseau iCloud. Le HomePod et l’Apple TV reçoivent des clés au moyen de la fonction « Toucher pour configurer » ou du mode de configuration décrit ci-dessous. Les clés sont transmises d’un iPhone à une Apple Watch jumelée à l’aide du service d’identité d’Apple (IDS).
Communication entre les accessoires HomeKit
Les accessoires HomeKit génèrent leur propre paire de clés Ed25519 pour communiquer avec les appareils iOS, iPadOS et macOS. Si les réglages d’origine de l’accessoire sont rétablis, une nouvelle paire de clés est générée.
Pour établir une relation entre un appareil iOS, iPadOS ou macOS et un accessoire HomeKit, les clés sont échangées à l’aide du protocole Secure Remote Password (3 072 bits), en utilisant un code à 8 chiffres fourni par le fabricant de l’accessoire et saisi sur l’appareil iOS ou iPadOS par l’utilisateur, puis chiffré avec l’algorithme de chiffrement authentifié avec données associées (AEAD, Authenticated Encryption with Associated Data) ChaCha20-Poly1305 et des clés obtenues à l’aide de la fonction de dérivation HKDF‑SHA512. La certification MFi de l’accessoire est également vérifiée lors de la configuration. Les accessoires sans puce MFi peuvent obtenir la prise en charge de l’authentification logicielle sous iOS 11.3 et les versions ultérieures.
Lorsque l’appareil iOS, iPadOS ou macOS et l’accessoire HomeKit communiquent, chacun authentifie l’autre en utilisant les clés échangées de la façon décrite ci‑dessus. Chaque session est établie à l’aide du protocole Station‑to‑Station et chiffrée avec les clés obtenues avec la fonction de dérivation HKDF‑SHA512 à partir des clés Curve25519 de session. Cela s’applique aux accessoires IP et aux accessoires Bluetooth faible énergie (BLE).
Pour les appareils BLE qui prennent en charge les notifications de diffusion, l’accessoire reçoit une clé de chiffrement de diffusion de la part d’un appareil iOS, iPadOS ou macOS jumelé au cours d’une session sécurisée. Cette clé est utilisée pour chiffrer les données concernant les changements d’état de l’accessoire, qui sont signalés par les notifications BLE. La clé de chiffrement de diffusion est une clé obtenue à l’aide de la fonction de dérivation HKDF‑SHA512, et les données sont chiffrées avec l’algorithme AEAD ChaCha20-Poly1305. La clé de chiffrement de diffusion est régulièrement modifiée par l’appareil iOS, iPadOS ou macOS et synchronisée avec les autres appareils à l’aide d’iCloud, comme le décrit la section Sécurité des données HomeKit.
HomeKit et Siri
Siri peut être utilisé pour interroger et commander les accessoires, et pour activer des scènes. Un minimum d’informations sur la configuration du domicile est donné de façon anonyme à Siri afin de communiquer le nom des pièces, des accessoires et des scènes nécessaires à la reconnaissance des commandes. Il se peut que le contenu audio envoyé à Siri fasse état d’accessoires ou de commandes spécifiques, mais ces données de Siri ne sont pas associées aux autres fonctionnalités d’Apple comme HomeKit.
Accessoires HomeKit compatibles avec Siri
Les utilisateurs peuvent activer de nouvelles fonctionnalités comme Siri, et d’autres fonctionnalités du HomePod comme les minuteries, les alarmes, l’interphone et la sonnette, sur les accessoires compatibles avec Siri en utilisant l’app Domicile. Lorsque ces fonctionnalités sont activées, l’accessoire se coordonne avec un HomePod jumelé sur le réseau local qui héberge ces fonctionnalités Apple. L’audio est échangé entre les appareils sur des canaux cryptés à l’aide des protocoles HomeKit et AirPlay.
Lorsque la fonctionnalité Utiliser « Dis Siri » est activée, l’accessoire écoute la phrase « Dis Siri » à l’aide d’un moteur de détection de phrases de déclenchement fonctionnant localement. Si ce moteur détecte la phrase, il envoie les trames audio directement à un HomePod jumelé à l’aide de HomeKit. Le HomePod effectue une deuxième vérification de l’audio et peut annuler la session audio si la phrase ne semble pas contenir l’expression de déclenchement.
Lorsque la fonctionnalité « Toucher pour Siri » est activée, l’utilisateur peut appuyer sur un bouton dédié sur l’accessoire pour démarrer une conversation avec Siri. Les trames audio sont envoyées directement au HomePod jumelé.
Après la détection du déclenchement réussi de Siri, le HomePod envoie l’audio aux serveurs Siri et exécute l’intention de l’utilisateur en utilisant les mêmes garanties de sécurité, de confidentialité et de chiffrement que le HomePod applique aux demandes de l’utilisateur adressées directement au HomePod. Si Siri a une réponse audio, celle-ci est envoyée à l’accessoire par le biais d’un canal audio AirPlay. Certaines demandes de Siri nécessitent des informations supplémentaires de la part de l’utilisateur (par exemple, demander si l’utilisateur veut entendre plus d’options). Dans ce cas, l’accessoire reçoit une indication selon laquelle l’utilisateur doit être invité et l’audio supplémentaire est diffusé sur le HomePod.
Il est nécessaire que l’accessoire dispose d’un indicateur visuel pour signaler à un utilisateur qu’il est en écoute active (par exemple, un indicateur DEL). L’accessoire ignore tout de l’intention de la demande de Siri, sauf l’accès aux flux audio, de sorte qu’aucune donnée de l’utilisateur n’est stockée sur l’accessoire.