Uma etapa fundamental no processo de autenticação de uma VM SDV Android de mesmo nível é determinar se essa VM de mesmo nível está sendo executada em um dispositivo confiável. Somente VMs que executam software verificado em dispositivos confiáveis podem participar da malha segura do SDV. Para mais detalhes sobre o processo de verificação de software do peer, consulte o Perfil SDV para DICE.
Para confiança do dispositivo, a SDV do Android define duas autoridades distintas com diferentes poderes:
Atribua confiança ao dispositivo: somente o OEM tem essa autoridade.
Defina o conjunto de dispositivos cujas VMs constituem a malha segura de SDV de um veículo. O OEM precisa atribuir e controlar o acesso. O pessoal que substitui peças tem essa autoridade.
As seções a seguir descrevem os detalhes da associação e da confiança de dispositivos de malha.
Arquivo uds_pubs
Os dispositivos são identificados de forma inequívoca pelas respectivas chaves públicas UDS (Unique Device Secret).
Quando uma VM SDV do Android entra na malha segura do SDV, dizemos que o dispositivo em que essa VM está sendo executada entrou na malha segura do SDV.
O arquivo uds_pubs contém as chaves públicas do UDS de todos os dispositivos que
podem participar da malha segura do SDV. Esse arquivo é criado no fluxo de provisionamento de fábrica e atualizado no fluxo de substituição de peças.
Esse arquivo está localizado na partição vvmtruststore.
A inclusão nessa lista não implica confiança. Para que um dispositivo participe da malha segura do SDV, duas condições precisam ser atendidas:
- A chave pública (ou chaves) do UDS precisa estar em
uds_pubs. - Precisa ser um dispositivo de confiança.
Métodos de confiança do dispositivo
Para que uma VM SDV do Android confie em um dispositivo em que uma VM SDV do Android pareada está sendo executada, há dois métodos:
- O dispositivo tem certificados UDS. Esse é o método preferencial.
- Os dispositivos ficam permanentemente vinculados durante o fluxo de provisionamento de fábrica. Isso é expresso pelo VVMFactoryTrust. Esse é o método alternativo que os OEMs podem usar quando não é tecnicamente viável fornecer certificados UDS aos dispositivos na linha de montagem do veículo (ou antes).
Certificados UDS
A VM Android SDV pareada pode apresentar um certificado UDS para a chave pública UDS.
A chave pública da autoridade de provisionamento raiz do UDS, que serve como a âncora de confiança final para autenticação de dispositivos, é definida no arquivo vvmconfig.
Os próprios certificados UDS da VM são armazenados no arquivo uds_certs na partição
vvmtruststore.
O suporte a esse método de confiança do dispositivo é obrigatório.
Vincular dispositivos com o VVMFactoryTrust
Os dispositivos provisionados juntos podem ser vinculados permanentemente, criando um grupo confiável que não depende de certificados UDS. Isso elimina a necessidade de a infraestrutura de chave pública associada gerar esses certificados. Essa confiança inerente é específica para esse grupo. Portanto, se qualquer dispositivo dentro desse grupo vinculado for substituído, a confiança estabelecida para todo o grupo será revogada.
Essa vinculação permanente é feita com o VVMFactoryTrust, que é um hash do arquivo uds_pubs armazenado em uma memória programável uma única vez (OTP, na sigla em inglês).
Mais especificamente, é um valor de 32 bytes que armazena o SHA256 de uds_pubs como era durante o provisionamento. Esse valor é transmitido para a SDV do Android como um parâmetro do kernel. Se o VVMFactoryTrust armazenado corresponder ao hash de uds_pubs, os dispositivos identificados por essas chaves públicas do UDS serão confiáveis.
Para garantir que aqueles autorizados a fazer apenas a substituição de peças também não ganhem a autoridade para atribuir confiança ao dispositivo, eles devem receber apenas dispositivos com um VVMFactoryTrust que não pode ser gravado. Sem essa precaução, um técnico de oficina pode misturar dispositivos autênticos e não autênticos durante a substituição completa de um dispositivo do veículo.
O suporte a esse método de confiança de hardware é opcional e só deve ser implementado se o provisionamento de certificados UDS na (ou antes da) linha de montagem do veículo não for viável.