Web site de seguridad en línea de Google: confíe pero verifique la certificación con revocación
Publicado por Rob Barnes y Shawn Willden, equipo de seguridad y privacidad de Android
(Publicación cruzada de Weblog de desarrolladores de Android)
Miles de millones de personas confían en sus dispositivos con Android para almacenar de forma segura su información confidencial. Un componente critical de la pila de seguridad de Android es el sistema de certificación clave. Los dispositivos Android desde Android 7. pueden generar un certificado de certificación que atestigua las propiedades de seguridad del hardware y computer software del dispositivo. Los OEM que producen dispositivos con Android 8. o excellent deben instalar una clave de certificación por lotes proporcionada por Google en cada dispositivo en el momento de la fabricación.
Es posible que sea necesario revocar estas claves por una serie de razones, incluida la divulgación accidental, el mal manejo o la sospecha de extracción por parte de un atacante. Cuando esto ocurre, las claves afectadas deben revocarse inmediatamente para proteger a los usuarios. La seguridad de cualquier sistema de Infraestructura de clave pública depende de la solidez del proceso de revocación de clave.
Todas las claves de certificación emitidas hasta ahora incluyen una extensión que incorpora una URL de lista de revocación de certificados (CRL) en el certificado. Descubrimos que el sistema CRL (y el protocolo de estado del certificado en línea) no period lo suficientemente adaptable para nuestras necesidades. Así que nos propusimos reemplazar el sistema de revocación de las claves de certificación de Android con algo que sea versatile y very simple de mantener y usar.
Nuestra solución es una única URL asegurada por TLS (https://android.googleapis.com/attestation/status) que devuelve una lista que contiene todas las claves de certificación de Android revocadas. Esta lista está codificada en JSON y sigue un estricto formato definido por el esquema JSON. Solo las claves que tienen un estado no válido aparecen en la lista, por lo que no es una lista exhaustiva de todas las claves emitidas.
Este sistema nos permite expresar más matices sobre el estado de una clave y la razón del estado. Una clave puede tener un estado de REVOKED
o SUSPENDED
, donde revocado es permanente y suspendido es temporal. El motivo del estado se explain como Essential_COMPROMISE
, CA_COMPROMISE
, Outdated
o Application_FLAW.
Puede encontrar una lista completa y actualizada de estados y razones en el documentación del desarrollador.
Las URL de CRL incrustadas en los certificados de lote existentes continuarán funcionando. En adelante, los certificados de lote de certificación ya no contendrán una extensión de CRL. El estado de estos certificados heredados también se incluirá en la lista de estados de certificación, de modo que los desarrolladores puedan cambiar de forma segura para usar la lista de estado de certificación tanto para los certificados actuales como para los heredados. Un ejemplo de cómo verificar correctamente las claves de certificación de Android se incluye en el Muestra de certificación clave.

