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:
- Valide a cadeia de certificados enviada na solicitação
/registerDevice. O certificado raiz na cadeia precisa corresponder ao certificado fornecido pelo Google. - Verifique se o certificado raiz não faz parte da lista de revogação de certificados.
- Analise o certificado de folha, leia as extensões e verifique o seguinte:
- O valor
attestationChallengecorresponde aononceenviado durante a operação/getDeviceRegistrationNonce. teeEnforced.rootOfTrusttem as seguintes propriedades:deviceLocked=TRUEverifiedBootState=VERIFIED
- Os nomes de pacotes em
softwareEnforced.attestationApplicationIdcorrespondem acom.google.android.gmsoucom.google.android.gsf.
- O valor
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.