
Segurança das chaves de carro no iOS
Os desenvolvedores podem oferecer compatibilidade segura com o acesso ao veículo sem usar chaves em um iPhone compatível e um Apple Watch emparelhado.
Emparelhamento do proprietário
O proprietário deve provar a posse do veículo (o método depende do fabricante do automóvel e, normalmente, é preciso ter uma ou duas chaves eletrônicas) e pode iniciar o processo de emparelhamento no app do fabricante do automóvel ao usar um link no e‑mail recebido do fabricante do automóvel ou a partir do menu do veículo. Em todos os casos, o proprietário deve apresentar uma senha de emparelhamento de uso único confidencial ao iPhone, que é usada para gerar um canal de emparelhamento seguro por meio do protocolo SPAKE2+ com curva NIST P‑256 para criar um canal seguro com o protocolo Global Platform SCP03 e transferir dados entre o dispositivo e o veículo. Ao usar o app ou o link no e‑mail, a senha é transferida automaticamente para o iPhone, no qual, ao iniciar o emparelhamento a partir do veículo, ela precisa ser digitada manualmente.
Caso o proprietário inicie o processo de emparelhamento, o veículo envia um pedido pelo canal do SCP03 e instrui o Secure Element do dispositivo a gerar um par de chaves de Criptografia de Curva Elíptica (ECC). O identificador do veículo e a chave pública dele são associadas de forma segura a esse par de chaves. A chave pública do dispositivo (device.PK) é enviada de volta para o veículo no formato de certificado X.509 junto com uma cadeia de certificados que pode ser verificada com a chave pública do certificado raiz do fabricante (root.PK), o qual é incorporado ao veículo durante a produção. Isso permite verificar e aceitar a chave pública do dispositivo como chave do proprietário.
A chave do proprietário no Secure Element do dispositivo também associa o root.PK do fabricante do automóvel (fornecido ao veículo por meio do canal do SCP03) ao device.PK de forma segura para compartilhar a chave.
Se necessário para fins de seguro, cada chave do proprietário precisa ser registrada no servidor do fabricante do automóvel. O dispositivo envia sua cadeia de certificados device.PK ao servidor de rastreamento de chaves (KTS), que envia uma assinatura para confirmar o registro. O dispositivo fornece a assinatura ao veículo no final do processo de emparelhamento do proprietário ou na próxima transação padrão com o veículo (veja abaixo), e o veículo ativará a chave do proprietário se a assinatura do KTS tiver sido verificada com sucesso. As chaves de assinatura do KTS são proprietárias do fabricante do automóvel.
Compartilhamento de chave
Para compartilhar chaves com outros dispositivos qualificados, o iPhone do remetente pode enviar um URL de convite para o destinatário por qualquer canal de comunicação, como e‑mail, iMessage, WhatsApp, WeChat ou AirDrop. O URL direciona o destinatário a uma caixa de correio com proteção de privacidade em um servidor de retransmissão, implementado de acordo com uma especificação da IETF. A chave de criptografia de privacidade é enviada como um fragmento no URL de compartilhamento.
Durante esse processo, o iPhone do remetente solicita uma autenticação do usuário (Face ID, Touch ID ou entrada do código) e uma intenção de usuário segura, descrita em Usos do Optic ID, Face ID e Touch ID. A autorização do remetente é armazenada temporariamente no Secure Element para consumo posterior, quando o dispositivo do destinatário retornar o pedido de assinatura.
Para dar segurança adicional à ativação da chave compartilhada, o remetente pode exigir que o destinatário use uma das opções de ativação disponibilizadas pelo fabricante do automóvel ou insira o código no dispositivo do destinatário.
Depois de aceitar o convite, o dispositivo do destinatário obtém os dados de criação da chave da caixa de correio do servidor de retransmissão e cria uma chave digital de acordo com a Especificação de Chaves Digitais CCC. Como parte do processo de criação da chave, ela é assinada pelo remetente. O dispositivo do destinatário envia a cadeia de certificados de criação de chave por meio do servidor de retransmissão para o iPhone do remetente. O iPhone do remetente usa o root.PK integrado no Secure Element para verificar se a chave do remetente foi criada com a cadeia de certificados esperada. Em uma verificação bem‑sucedida, o iPhone do remetente assina a chave pública ECC do dispositivo do destinatário e envia a assinatura de volta ao destinatário pelo servidor de retransmissão. A autorização do remetente, armazenada anteriormente no Secure Element, é consumida para autorizar a assinatura.
Os direitos da chave e a assinatura do remetente são fornecidos ao veículo durante o primeiro uso da chave compartilhada no veículo (consulte Transações padrão). Os direitos descrevem o seguinte:
Nível de acesso: por exemplo, destrancar ou dirigir.
Política de recompartilhamento: por exemplo, recompartilhamento proibido, recompartilhamento limitado ou recompartilhamento ilimitado (em termos do tamanho da cadeia de compartilhamento).
Alguns fabricantes de automóveis exigem que cada chave compartilhada seja registrada no servidor do fabricante. Se necessário, o dispositivo do destinatário envia sua cadeia de certificados device.PK para o KTS do fabricante do automóvel, que retorna uma assinatura para confirmar o registro. O dispositivo do destinatário apresenta a assinatura ao veículo na primeira transação com ele (consulte Transações padrão). O veículo valida a assinatura e, se a assinatura for verificada com sucesso, ativa a chave compartilhada. Essas chaves de assinatura são proprietárias do fabricante do automóvel.
Apagamento de chaves
É possível apagar chaves das seguintes maneiras:
No dispositivo que tem a chave
Do dispositivo do proprietário
De um dispositivo de compartilhamento com as devidas autorizações
Enquanto dentro do veículo
Os apagamentos no iPhone de quem possui a chave têm efeito imediato, mesmo que a pessoa esteja usando a chave ou o dispositivo não esteja conectado à internet.
O apagamento da chave no veículo pode acontecer a critério da política do fabricante do automóvel:
A qualquer momento
Apenas quando o veículo estiver on‑line
Apenas com uma chave eletrônica presente (para evitar ficar sem chave)
Em cada caso, o apagamento no dispositivo que tem a chave é comunicado ao KTS do fabricante do automóvel, que registra as chaves que foram emitidas a um veículo para fins de seguro.
O proprietário e os usuários qualificados podem solicitar o apagamento com um pedido de término remoto assinado pela chave privada do solicitante (device.SK). Para isso, é preciso selecionar os usuários na lista de contas de compartilhamento de quem tem a chave, no verso do tíquete da chave do carro no app Carteira de Apple. O pedido é enviado primeiro para o fabricante do automóvel para a remoção da chave no veículo. As condições para remover a chave do veículo são definidas pelo fabricante do automóvel (conforme enumerado acima). O servidor do fabricante do automóvel envia um pedido de término remoto para o dispositivo que tem a chave apenas quando a chave é removida no veículo.
Quando uma chave é eliminada em um dispositivo, o applet que gerencia as chaves digitais de carros cria um atestado de término criptograficamente assinado, o qual é usado como prova de apagamento pelo fabricante do automóvel e usado para remover a chave do KIS.
Privacidade
O KTS do fabricante do automóvel não armazena o ID, SEID ou Conta Apple do dispositivo. Ele armazena apenas um identificador mutável, a instância do identificador de AC. Esse identificador não está associado a nenhum dado privado no dispositivo ou no servidor e é apagado quando o usuário inicia o comando Apagar Conteúdo e Ajustes.
O padrão CCC também exige que o fabricante do automóvel mantenha o sigilo das informações do KTS e as use apenas para fins de seguro ou outros pedidos pertinentes.
Os dados de registro da chave (identificador da chave, identificador do veículo, chave pública do veículo, cadeia de certificados da chave pública do dispositivo e direitos da chave) que são enviados pelo dispositivo para o KTS são criptografados com uma chave pública de criptografia de privacidade do KTS. Os servidores da Apple que transmitem os dados do registro da chave do dispositivo para o servidor do fabricante do automóvel não conseguem descriptografar esses dados. A Apple não sabe com quem o proprietário do veículo compartilhou a chave.
Qualquer outro acessório para iPhone ou Apple Watch que não consiga se autenticar no dispositivo não pode receber um identificador estável por meio de uma transação padrão ou rápida via NFC ou Bluetooth. Se o dispositivo não reconhece o identificador do veículo (ao tentar, por exemplo, acessar um veículo semelhante ao de quem tem a chave), o applet no Secure Element usa uma chave substituta que gera valores aleatórios em vez de chaves ou criptogramas relevantes.
A conexão Bluetooth inicial é protegida pelo uso de chaves temporárias, fornecidas ao compartilhar a chave do carro ou pelo fabricante do automóvel em resposta ao pedido de rastreamento da chave.