Registro do dispositivo

A fase de registro prepara um dispositivo para armazenar uma VDC registrando uma chave de identidade no sistema do emissor.

Fluxo da solicitação

Flow description

Etapa Origem Descrição
1 Dispositivo Android Uma nova solicitação de VDC foi criada no dispositivo do usuário. O emissor precisa criar uma nova chave de identidade. O dispositivo do usuário chama getDeviceRegistrationNonce para iniciar esse processo.
2 Servidores do Google O Google redireciona a solicitação getDeviceRegistrationNonce para o emissor.
3 Servidores do emissor O emissor gera um valor de uso único, armazena-o com o deviceReferenceId, e o retorna ao Google.
4 Servidores do Google O Google redireciona o valor de uso único para o dispositivo do usuário.
5 Dispositivo Android O dispositivo do usuário assina o valor de uso único e o incorpora em um certificado x509. Isso é incluído na chamada registerDevice para verificar o dispositivo.
6 Servidores do Google O Google redireciona a chamada registerDevice para o emissor.
7 Servidores do emissor O emissor realiza as verificações de integridade do dispositivo e armazena a chave de identidade associada a ele.

Como verificar a integridade de um dispositivo

O atestado de dispositivo é um recurso de segurança que permite que os emissores verifiquem a integridade de um dispositivo antes de registrá-lo. Isso ajuda a evitar o registro de dispositivos que foram adulterados ou que estão executando software não autorizado.

Para verificar a integridade do dispositivo, o emissor precisa:

  1. Validar a cadeia de certificados enviada na solicitação /registerDevice. O certificado raiz na cadeia precisa corresponder ao certificado fornecido pelo Google.
  2. Verificar se o certificado raiz não faz parte da lista de revogação de certificados.
  3. Analisar o certificado de folha, ler as extensões e verificar o seguinte:
    • O valor attestationChallenge corresponde ao nonce enviado durante a operação /getDeviceRegistrationNonce.
    • teeEnforced.rootOfTrust tem as seguintes propriedades:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • Os nomes de pacotes em softwareEnforced.attestationApplicationId correspondem a com.google.android.gms ou com.google.android.gsf.

Explicação das diferentes partes do processo de atestado de dispositivo

  • Cadeia de certificados:a cadeia de certificados é uma série de certificados que autenticam a identidade do dispositivo. O certificado raiz na cadeia é o mais confiável, e cada certificado subsequente na cadeia é assinado pelo certificado acima dele.
  • Lista de revogação de certificados:a lista de revogação de certificados (CRL, na sigla em inglês) é uma lista de certificados que foram revogados por algum motivo. Se o certificado raiz na cadeia de certificados de atestado de dispositivo estiver na CRL, o certificado será inválido e o atestado de dispositivo não será confiável.
  • Certificado de folha:o certificado de folha é específico do dispositivo. Ele contém informações sobre o dispositivo, como os identificadores de hardware e a versão do software.
  • Extensões:as extensões são informações adicionais incluídas no certificado. O certificado de atestado de dispositivo contém várias extensões usadas para verificar a integridade do dispositivo. Para mais informações, consulte o esquema de dados de extensão de certificado schema.