Seguridad de la comunicación en HomeKit
HomeKit proporciona una infraestructura de automatización doméstica que utiliza la seguridad de iOS, iPadOS, macOS y iCloud para proteger y sincronizar los datos privados, sin exponerlos a Apple.
La identidad y la seguridad de HomeKit se basan en pares de claves pública y privada Ed25519. En el dispositivo iOS, iPadOS y macOS se genera un par de claves Ed25519 para cada usuario de HomeKit, que pasa a ser su identidad de HomeKit. Dicho par se utiliza para autenticar la comunicación entre dispositivos iOS, iPadOS y macOS, y entre accesorios y dispositivos iOS, iPadOS y macOS.
Las claves, almacenadas en el llavero e incluidas sólo en los respaldos encriptados del llavero, se mantienen actualizados entre dispositivos mediante el llavero de iCloud, cuando está disponible. HomePod y Apple TV reciben claves mediante el modo de configuración que requiere tocar para configurar o mediante el modo de configuración que se describe abajo. Las claves se comparten desde un iPhone a un Apple Watch mediante el servicio de identidad (IDS) de Apple.
Comunicación entre accesorios de HomeKit
Los accesorios de HomeKit generan su propio par de claves Ed25519 para la comunicación con dispositivos iOS, iPadOS y macOS. Si el accesorio se restaura con la configuración original de fábrica, se genera un par de claves nuevo.
Para establecer una relación entre un dispositivo iOS, iPadOS o macOS, y un accesorio de HomeKit, las claves se intercambian utilizando el protocolo de contraseña remota segura (3072 bits) y un código de 8 dígitos proporcionado por el fabricante del accesorio, que el usuario ingresa en el dispositivo iOS o iPadOS y que después se encripta con ChaCha20-Poly1305 AEAD mediante claves derivadas de HKDF‑SHA512. La certificación MFi del accesorio también se verifica durante la configuración. Los accesorios que no cuentan con un chip MFi pueden integrar soporte para la autenticación del software en iOS 11.3 y versiones posteriores.
Cuando el dispositivo iOS, iPadOS o macOS, y el accesorio de HomeKit se comunican durante el uso, se autentican entre sí mediante las claves intercambiadas en el proceso descrito más arriba. Todas las sesiones se establecen con el protocolo STS y se encriptan con claves derivadas de HKDF‑SHA512 basadas en claves Curve25519 por sesión. Esto se aplica tanto a los accesorios basados en IP como a los accesorios Bluetooth de baja energía (BLE).
En el caso de los dispositivos con BLE que son compatibles con las notificaciones de transmisión, el accesorio recibe una clave de encriptación para transmisión de un dispositivo iOS, iPadOS y macOS enlazado a través de una sesión segura. Esta clave se utiliza para encriptar los datos sobre los cambios de estado en el accesorio, los cuales se notifican mediante BLE. La clave de encriptación para transmisión es una clave derivada de HKDF-SHA512, y los datos se encriptan utilizando el algoritmo AEAD con ChaCha20-Poly1305. El dispositivo iOS, iPadOS y macOS modifica de forma periódica la clave de encriptación para transmisión y la actualiza en otros dispositivos utilizando iCloud, como se describe en Seguridad de los datos de HomeKit.
HomeKit y Siri
Siri se puede utilizar para enviar consultas a los accesorios y controlarlos, y para activar ambientaciones. A Siri se le proporciona de forma anónima una cantidad mínima de información sobre la configuración de la casa para proporcionar nombres de habitaciones, accesorios y ambientaciones necesarias para el reconocimiento de comandos. El audio enviado a Siri podría indicar accesorios o comandos específicos; sin embargo, estos datos de Siri no se asocian con otras funciones de Apple, tales como HomeKit.
Accesorios de HomeKit compatibles con Siri
Mediante la app Casa, los usuarios pueden activar nuevas funciones, como Siri, y otras funciones del HomePod, como temporizadores, alarmas, interfono y timbre, en accesorios compatibles con Siri. Cuando estas funciones están activadas, el accesorio se coordina con un HomePod enlazado en la red local que aloja estas funciones de Apple. El audio se intercambia entre los dispositivos a través de canales encriptados usando los protocolos de HomeKit y AirPlay.
Cuando está activada la función Oye Siri, el accesorio escucha la frase “Oye Siri” utilizando un motor de detección de frases de activación que se ejecuta localmente. Si este motor detecta la frase, envía los cuadros de audio directamente a un HomePod enlazado utilizando HomeKit. El HomePod realiza una segunda comprobación del audio y puede cancelar la sesión de audio si la frase no parece contener la frase de activación.
Cuando la función Toca para usar Siri está activada, el usuario puede presionar un botón dedicado en el accesorio para iniciar una conversación con Siri. Los cuadros de audio se envían directamente al HomePod enlazado.
Después de detectar una invocación exitosa de Siri, el HomePod envía el audio a los servidores de Siri y cumple la intención del usuario utilizando las mismas salvaguardas de seguridad, privacidad y encriptación que el HomePod aplica a las invocaciones del usuario hechas directamente al HomePod. Si Siri tiene una respuesta de audio, esta se envía a través de un canal de audio de AirPlay al accesorio. Algunas peticiones de Siri requieren información adicional por parte del usuario (por ejemplo, se le pregunta si quiere escuchar más opciones). En caso afirmativo, el accesorio recibe una indicación de que se debe preguntar al usuario, y el audio adicional se transmite al HomePod.
El accesorio debe tener un indicador visual (por ejemplo, un indicador LED) para indicarle al usuario cuando se está escuchando activamente. El accesorio no tiene conocimiento de la intención de la petición de Siri, salvo el acceso a las transmisiones de audio, y no se almacenan datos del usuario en el accesorio.