Seguridad de las comunicaciones de HomeKit
HomeKit proporciona una infraestructura de automatización doméstica que usa la seguridad de iCloud y de iOS, iPadOS y macOS para proteger y sincronizar los datos privados sin exponerlos a Apple.
La identidad y la seguridad de HomeKit se basan en pares de claves Ed25519 constituidos por una clave pública y una privada. En el dispositivo iOS, iPadOS y macOS, se genera un par de claves Ed25519 para cada usuario de HomeKit, y este 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 (que se almacenan en el llavero y solo se incluyen en las copias de seguridad encriptadas del llavero) se mantienen siempre actualizadas entre dispositivos utilizando el llavero de iCloud si está disponible. El HomePod y el Apple TV reciben claves al pulsar para configurar o mediante el modo de configuración que se describe más adelante. Las claves se comparten desde un iPhone con un Apple Watch enlazado 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 los ajustes originales de fábrica, se genera un par de claves nuevo.
Para establecer una relación entre un dispositivo iOS, iPadOS y macOS y un accesorio de HomeKit, las claves se intercambian utilizando el protocolo de contraseña remota segura (3072 bits), que usa un código de ocho dígitos proporcionado por el fabricante del accesorio. El usuario lo introduce en el dispositivo iOS, iPadOS y macOS y, 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 sin un chip MFi pueden integrar la compatibilidad con la autenticación de software en iOS 11.3 o versiones posteriores.
Cuando el dispositivo iOS, iPadOS y 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 BLE que admiten notificaciones de difusión, un dispositivo iOS, iPadOS y macOS enlazado proporciona al accesorio una clave de encriptación de difusión a través de una sesión segura. Esta clave se utiliza para encriptar los datos sobre los cambios de estado del accesorio, que se notifican mediante avisos de BLE. La clave de encriptación de difusión es una clave derivada de HKDFSHA‑512 y los datos se encriptan con el algoritmo ChaCha20‑Poly1305 AEAD. El dispositivo iOS, iPadOS y macOS cambia periódicamente la clave de encriptación de difusión, que se actualiza en otros dispositivos mediante iCloud, tal como se describe en el apartado Seguridad de los datos de HomeKit.
HomeKit y Siri
Siri se puede utilizar para enviar consultas a los accesorios y controlarlos, y para activar ambientes. Siri recibe anónimamente información mínima sobre la configuración de la casa para facilitar los nombres de las habitaciones, accesorios y ambientes necesarios para el reconocimiento de comandos. El audio enviado a Siri puede hacer referencia a determinados accesorios o comandos, pero esos datos de Siri no se asocian a otras funciones de Apple, como HomeKit.
Accesorios de HomeKit compatibles con Siri
Los usuarios pueden habilitar nuevas funciones como Siri, y otras funciones del HomePod como los temporizadores, las alarmas, el intercomunicador y el timbre, en los accesorios compatibles con Siri usando la app Casa. Cuando se activan estas funciones, el accesorio se coordina con un HomePod enlazado en la red local que tiene 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 “Al oír ‘Oye Siri’” está activado, el accesorio escucha la frase “Oye Siri” utilizando un motor de detección de la frase de activación que se ejecuta localmente. Si este motor detecta la frase, envía el audio directamente a un HomePod enlazado usando el 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 “Toca para Siri” está activado, el usuario puede pulsar un botón dedicado en el accesorio para iniciar una conversación con Siri. El audio se envía directamente al HomePod enlazado.
Cuando se detecta una invocación correcta de Siri, el HomePod envía el audio a los servidores de Siri y cumple la intención del usuario usando las mismas garantías de seguridad, privacidad y encriptación que el HomePod aplica a las invocaciones del usuario realizadas al propio HomePod. Si Siri tiene una respuesta de audio, la respuesta de Siri se envía a través de un canal de audio AirPlay al accesorio. Algunas peticiones de Siri requieren información adicional por parte del usuario (por ejemplo, preguntarle si quiere escuchar más opciones). En ese caso, 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 para señalar al usuario cuándo está escuchando activamente (por ejemplo, un indicador LED). El accesorio no tiene conocimiento de la intención de la petición de Siri, salvo el acceso a los flujos de audio, y no se almacenan datos del usuario en el accesorio.