La fase de registro de dispositivos prepara un dispositivo para almacenar un VDC registrando una clave de identidad en el sistema de la entidad emisora.
Flujo de solicitud
Descripción del flujo
| Paso | Fuente | Descripción |
|---|---|---|
| 1 | Dispositivo con tecnología Android |
Se creó una nueva solicitud de VDC en el dispositivo del usuario. La entidad emisora 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
deviceReferenceId, y lo devuelve a Google.
|
| 4 | Servidores de Google | Google retransmite el nonce al dispositivo del usuario. |
| 5 | Dispositivo con tecnología Android |
El dispositivo del usuario firma el nonce y lo incorpora en un certificado x509.
Esto se incluye en la llamada registerDevice para verificar el dispositivo.
|
| 6 | Servidores de Google | Google retransmite la registerDevice llamada 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 con el dispositivo. |
Cómo verificar la integridad de un dispositivo
La certificación de dispositivos es una función de seguridad que permite a los emisores 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:
- Validar la cadena de certificados enviada en la
/registerDevicesolicitud. El certificado raíz de la cadena debe coincidir con el certificado proporcionado por Google. - Asegurarse de que el certificado raíz no forme parte de la lista de revocación de certificados.
- Analizar el certificado de hoja, leer las extensiones y verificar lo siguiente:
- El valor
attestationChallengecoincide con elnonceenviado 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
Explicación de las diferentes partes del proceso de certificación de dispositivos
- Cadena de certificados: Es una serie de certificados que autentican la identidad del dispositivo. El certificado raíz de la cadena es el certificado más confiable, y cada certificado posterior de la cadena está firmado por el certificado que se encuentra arriba.
- Lista de revocación de certificados: 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 de dispositivos está en la CRL, el certificado no es válido y no se debe confiar en la certificación de dispositivos.
- 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: Son información adicional que se incluye en el certificado. El certificado de certificación de dispositivos contiene varias extensiones que se usan para verificar la integridad del dispositivo. Para obtener más información, consulta el esquema de datos de la extensión de certificado schema.