Segurança de comunicação do HomeKit
O HomeKit oferece uma infraestrutura de automação doméstica que usa a segurança do iCloud e do iOS, iPadOS e macOS para proteger e sincronizar dados privados sem expô-los à Apple.
A segurança e identidade do HomeKit são baseadas em pares de chaves públicas-privadas Ed25519. Um par de chaves Ed25519 é gerado no dispositivo iOS, iPadOS e macOS para cada usuário do HomeKit, definindo sua respectiva identidade HomeKit. Ela é usada para autenticar a comunicação entre dispositivos iOS, iPadOS e macOS e entre dispositivos iOS, iPadOS e macOS e acessórios.
As chaves — armazenadas nas chaves e incluídas apenas em backups criptografados das Chaves — são mantidas sincronizadas entre dispositivos através das Chaves do iCloud, onde disponíveis. O HomePod e a Apple TV recebem chaves por meio de toque para configurar ou do modo de configuração descrito abaixo. As Chaves são compartilhadas a partir de um iPhone para um Apple Watch emparelhado por meio do Serviço de Identidade da Apple (IDS).
Comunicação entre acessórios HomeKit
Os acessórios HomeKit geram seus próprios pares de chaves Ed25519 para uso nas comunicações com dispositivos iOS, iPadOS e macOS. Se o acessório for restaurado aos ajustes de fábrica, um novo par de chaves é gerado.
Para estabelecer um relacionamento entre um dispositivo iOS, iPadOS e macOS e um acessório HomeKit, as chaves são trocadas usando o protocolo Secure Remote Password (3072 bits), utilizando um código de oito dígitos fornecido pelo fabricante do acessório, digitado no dispositivo iOS ou iPadOS pelo usuário e criptografado usando ChaCha20-Poly1305 AEAD com chaves derivadas HKDF-SHA512. A certificação MFi do acessório também é verificada durante a configuração. Acessórios sem um chip MFi podem integrar a compatibilidade com a autenticação de software no iOS 11.3 ou posterior.
Quando o dispositivo iOS, iPadOS e macOS e um acessório HomeKit se comunicam durante o uso, um autentica o outro pelas chaves trocadas no processo acima. Cada sessão é estabelecida usando o protocolo Station-to-Station e criptografada com chaves derivadas HKDF-SHA512, baseadas em chaves Curve25519 únicas por sessão. Isso se aplica tanto a acessórios com base em IP como a acessórios Bluetooth Low Energy (BLE).
Para dispositivos BLE compatíveis com notificações transmitidas, o acessório recebe uma chave de criptografia de transmissão de um dispositivo iOS, iPadOS e macOS emparelhado por meio de uma sessão segura. Essa chave é usada para criptografar os dados sobre mudanças de estado do acessório, que são notificadas por meio de anúncios do BLE. A chave de criptografia de transmissão é uma chave derivada HKDF-SHA512, e os dados são criptografados usando o algoritmo AEAD ChaCha20-Poly1305. A chave de criptografia de transmissão é alterada periodicamente pelo dispositivo iOS, iPadOS e macOS e atualizada para outros dispositivos através do iCloud, conforme descrito em Segurança de dados do HomeKit.
HomeKit e Siri
A Siri pode ser usada para consultar e controlar acessórios e para ativar cenas. Informações mínimas sobre a configuração da casa são fornecidas anonimamente à Siri para fornecer o nome de quartos, acessórios e cenas necessários para o reconhecimento de comandos. O áudio enviado para a Siri pode indicar acessórios ou comandos específicos, mas tais dados da Siri não são associados a outros recursos da Apple, como o HomeKit.
Acessórios do HomeKit compatíveis com a Siri
Os usuários podem ativar novos recursos como a Siri e outros recursos do HomePod, como timers, alarmes, interfone e campainha, em acessórios compatíveis com a Siri no app Casa. Quando esses recursos estão ativados, o acessório trabalha em conjunto com um HomePod emparelhado na rede local que hospeda esses recursos da Apple. O áudio é trocado entre os dispositivos por meio de canais criptografados usando os protocolos HomeKit e AirPlay.
Quando o recurso “Ouvir E aí Siri” está ativado, para ouvir a frase “E aí Siri” o acessório utiliza um mecanismo executado localmente para detecção de frases de acionamento. Se esse mecanismo detectar a frase, ele envia os quadros de áudio diretamente a um HomePod emparelhado usando o HomeKit. O HomePod faz uma segunda verificação do áudio e pode cancelar a sessão de áudio caso não pareça que a frase contenha o trecho de acionamento.
Quando o recurso Pressionar para a Siri está ativado, o usuário pode pressionar um botão dedicado no acessório para iniciar uma conversa com a Siri. Os quadros de áudio são enviados diretamente ao HomePod emparelhado.
Depois que uma chamada bem-sucedida da Siri é detectada, o HomePod envia o áudio aos servidores da Siri e cumpre a solicitação do usuário com as mesmas proteções de segurança, privacidade e criptografia que o HomePod aplica às chamadas que o usuário faz ao próprio HomePod. Se a Siri tiver uma resposta de áudio, essa resposta é enviada ao acessório por meio de um canal de áudio AirPlay. Algumas solicitações à Siri exigem informações adicionais do usuário (por exemplo, perguntar se o usuário deseja ouvir mais opções). Nesse caso, o acessório recebe uma indicação de que deve ser feita uma pergunta ao usuário e o áudio adicional é transmitido ao HomePod.
O acessório é obrigado a ter um indicador visual para mostrar ao usuário quando está ouvindo ativamente (um indicador de LED, por exemplo). O acessório não tem qualquer conhecimento da intenção da solicitação à Siri, exceto pelo acesso às transmissões de áudio. Além disso, nenhum dado do usuário é armazenado no acessório.