Registro de dispositivos

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:

  1. Validar la cadena de certificados enviada en la /registerDevice solicitud. El certificado raíz de la cadena debe coincidir con el certificado proporcionado por Google.
  2. Asegurarse de que el certificado raíz no forme parte de la lista de revocación de certificados.
  3. Analizar el certificado de hoja, leer las extensiones y verificar lo siguiente:
    • El valor attestationChallenge coincide con el nonce enviado durante la operación /getDeviceRegistrationNonce.
    • teeEnforced.rootOfTrust tiene las siguientes propiedades:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • Los nombres de los paquetes en softwareEnforced.attestationApplicationId coinciden con com.google.android.gms o com.google.android.gsf.

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.