La fase de registro del dispositivo prepara un dispositivo para almacenar un DC registrando una clave de identidad en el sistema del emisor.
Flujo de solicitud
Descripción del flujo
| Paso | Fuente | Descripción |
|---|---|---|
| 1 | Dispositivo con Android |
Se creó una nueva solicitud de DC en el dispositivo del usuario. El emisor debe crear una nueva clave de identidad. El dispositivo del usuario llama a getDeviceRegistrationNonce para iniciar este proceso.
|
| 2 | Servidores de Google |
Google retransmite la solicitud getDeviceRegistrationNonce a la entidad emisora.
|
| 3 | Servidores de la entidad emisora |
La entidad emisora genera un nonce, lo almacena con el objeto deviceReferenceId y se lo devuelve a Google.
|
| 4 | Servidores de Google | Google retransmite el nonce al dispositivo del usuario. |
| 5 | Dispositivo con Android |
El dispositivo del usuario firma el nonce y lo incorpora en un certificado X.509.
Esto se incluye en la llamada a registerDevice para verificar el dispositivo.
|
| 6 | Servidores de Google | Google retransmite la llamada registerDevice a la entidad emisora. |
| 7 | Servidores de la entidad emisora | La entidad emisora realiza las verificaciones de integridad del dispositivo y almacena la clave de identidad asociada a él. |
Cómo verificar la integridad de un dispositivo
La certificación del dispositivo es una función de seguridad que permite a las entidades emisoras verificar la integridad de un dispositivo antes de registrarlo. Esto ayuda a evitar el registro de dispositivos que se hayan manipulado o que ejecuten software no autorizado.
Para verificar la integridad del dispositivo, el emisor debe hacer lo siguiente:
- Valida la cadena de certificados enviada en la solicitud
/registerDevice. El certificado raíz de la cadena debe coincidir con el certificado que proporciona Google. - Asegúrate de que el certificado raíz no forme parte de la Lista de revocación de certificados.
- Analiza el certificado de hoja, lee las extensiones y verifica lo siguiente:
- El valor de
attestationChallengecoincide con el valor denonceenviado durante la operación/getDeviceRegistrationNonce. teeEnforced.rootOfTrusttiene las siguientes propiedades:deviceLocked=TRUEverifiedBootState=VERIFIED
- Los nombres de los paquetes en
softwareEnforced.attestationApplicationIdcoinciden concom.google.android.gmsocom.google.android.gsf.
- El valor de
Explicación de las diferentes partes del proceso de certificación del dispositivo
- Cadena de certificados: La cadena de certificados es una serie de certificados que autentican la identidad del dispositivo. El certificado raíz de la cadena es el más confiable, y cada certificado subsiguiente de la cadena está firmado por el certificado anterior.
- Lista de revocación de certificados: La lista de revocación de certificados (CRL) es una lista de certificados que se revocaron por algún motivo. Si el certificado raíz de la cadena de certificados de certificación del dispositivo se encuentra en la CRL, el certificado no es válido y no se debe confiar en la certificación del dispositivo.
- Certificado de hoja: El certificado de hoja es el certificado específico del dispositivo. Contiene información sobre el dispositivo, como sus identificadores de hardware y su versión de software.
- Extensiones: Las extensiones son fragmentos de información adicionales que se incluyen en el certificado. El certificado de certificación del dispositivo contiene varias extensiones que se usan para verificar la integridad del dispositivo. Para obtener más información, consulta el esquema de los datos de extensión del certificado.