Seguridad de la comunicación en HomeKit
HomeKit proporciona una infraestructura de automatización doméstica que utiliza las funciones de seguridad del dispositivo 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 del usuario, se genera un par de claves Ed25519, el cual se convierte en su identidad de HomeKit. Este par de claves se utiliza como parte del protocolo de accesorios de HomeKit (HAP) para autenticar la comunicación directa entre los dispositivos Apple del usuario y sus accesorios HomeKit.
En casas que cuentan con una central de casa, los miembros de la casa compartida pueden enviar comandos a los accesorios mediante la central. Estos comandos se envían, encriptados de extremo a extremo y autenticados, desde el dispositivo del usuario a la central de casa mediante el servicio de identidad (IDS) de Apple, desde donde se reenvían al accesorio correspondiente usando el protocolo de accesorios de HomeKit (HAP) o Matter, un estándar de conectividad para casas inteligentes.
Las claves, que se almacenan en el llavero y se incluyen solamente en los respaldos encriptados del llavero, se mantienen actualizadas en los dispositivos mediante el llavero de iCloud.
Comunicación entre accesorios de HomeKit
Los accesorios de HomeKit generan su propio par de claves Ed25519 para la comunicación con dispositivos Apple. 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 Apple 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 debe ingresar en el dispositivo 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 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 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. La clave de encriptación para transmisión se cambia y actualiza de forma periódica en otros dispositivos utilizando iCloud, como se describe en Seguridad de los datos de HomeKit.
Comunicación con accesorios de Matter
La identidad y la seguridad de los accesorios Matter están basadas en certificados. En las casas de Apple, la raíz de confianza de la autoridad de certificación (CA) se genera en el dispositivo inicial del usuario (el “propietario”) y la clave privada de la CA se almacena en su llavero de iCloud. Cada dispositivo Apple de la casa genera una solicitud de firma de certificado (CSR) usando NIST P256. El dispositivo del propietario procesa la CSR y crea un certificado de identidad de Matter para el dispositivo utilizando su clave privada de la CA. Este certificado se utiliza posteriormente para autenticar la comunicación entre los dispositivos del usuario y sus accesorios.
Los accesorios de Matter generan su propio par de claves NIST P256 y CSR, y reciben un certificado de la CA al momento de enlazar los accesorios. Antes de generar los pares de claves, el accesorio Matter y los dispositivos del propietario de la casa intercambian claves, utilizando el protocolo SPAKE2+ con un PIN proporcionado por el fabricante del accesorio, y se realiza un proceso de afirmación del dispositivo. A continuación, la CSR y el certificado se intercambian a través de este canal encriptado utilizando AES-CCM con claves derivadas de HKDF-SHA256. Si se restaura la configuración de fábrica del accesorio, se generan un nuevo par de claves y una CSR, y se emite un nuevo certificado para el accesorio durante el proceso de enlace.
Cuando un dispositivo Apple y el accesorio Matter establecen comunicación durante el uso, cada uno autentica al otro mediante sus propios certificados. Todas las sesiones se establecen con un protocolo de tres fases (sigma) y se encriptan con claves derivadas de HKDF‑SHA512 basadas en claves P256 por sesión.
Para obtener más información sobre cómo los dispositivos Apple interactúan de forma segura con los accesorios de Matter, consulta la compatibilidad con Matter en iOS 16 en el sitio web para desarrolladores de Apple.
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.