Registro do dispositivo

A fase de registro prepara um dispositivo para armazenar um DC 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 DC 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 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 está 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

A declaração do dispositivo é um recurso de segurança que permite aos emissores verificar 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. Valide a cadeia de certificados enviada na solicitação /registerDevice. O certificado raiz na cadeia precisa corresponder ao certificado fornecido pelo Google.
  2. Verifique se o certificado raiz não faz parte da lista de revogação de certificados.
  3. Analise o certificado de folha, leia as extensões e verifique 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 comprovação do dispositivo

  • 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) é uma lista de certificados que foram revogados por algum motivo. Se o certificado raiz na cadeia de certificados de atestado do dispositivo estiver na CRL, o certificado será inválido e o atestado do dispositivo não será confiável.
  • Certificado de folha:é o certificado específico do dispositivo. Ele contém informações sobre o dispositivo, como identificadores de hardware e versão do software.
  • Extensões:são informações adicionais incluídas no certificado. O certificado de atestado do dispositivo contém várias extensões usadas para verificar a integridade dele. Para mais informações, consulte o esquema dos dados de extensão de certificado.