Transparencia de certificados - Registro público de certificados TLS
Lectura de 2 min aprox.
La Transparencia de Certificados (Certificate Transparency, CT) es un mecanismo que registra cada emisión de certificados SSL/TLS en registros públicos para que cualquiera pueda auditarlos. Su objetivo es permitir que los propietarios de dominios y los proveedores de navegadores detecten rápidamente cuando una autoridad de certificación (CA) emite un certificado fraudulento. Los ingenieros de Google Ben Laurie y Adam Langley lo propusieron como RFC 6962 en 2013, y hoy los principales navegadores, encabezados por Chrome, exigen la compatibilidad con CT.
El incidente de DigiNotar y los orígenes de CT
El detonante directo de CT fue la vulneración en 2011 de la autoridad de certificación neerlandesa DigiNotar. Los atacantes penetraron en los sistemas de DigiNotar y emitieron más de 500 certificados fraudulentos, incluidos algunos para google.com. Estos certificados se usaron en ataques de intermediario contra usuarios de Irán, y se dice que se interceptaron comunicaciones de Gmail.
Este incidente puso al descubierto una debilidad fundamental de la PKI (infraestructura de clave pública): cualquier autoridad de certificación podía emitir un certificado para cualquier dominio, y los propietarios de dominios no tenían forma de enterarse. DigiNotar perdió la confianza y se vio obligada a cerrar, pero CT se diseñó como un mecanismo técnico para evitar que se repitieran incidentes similares.
Cómo funcionan los registros CT - árboles de Merkle
Los registros CT se gestionan mediante un árbol de Merkle (árbol de hash), una estructura de datos criptográfica. Cada vez que se añade un nuevo certificado al registro, el árbol se actualiza, y manipular una entrada pasada provoca una discrepancia en el valor hash que puede detectarse de inmediato.
Manipular un solo certificado se propaga en cadena hasta el hash raíz
Los registros CT son operados por múltiples organizaciones independientes (como Google, Cloudflare y DigiCert), y una autoridad de certificación debe registrar un certificado en al menos dos registros al emitirlo. A menos que los operadores de los registros se confabulen, ocultar un certificado fraudulento es extremadamente difícil.
Verificación del SCT (Signed Certificate Timestamp)
Cuando una autoridad de certificación registra un certificado en un registro CT, el servidor del registro devuelve un SCT (Signed Certificate Timestamp). El SCT es una prueba criptográfica de que «este certificado se registró en el log», y el navegador verifica el SCT durante el protocolo de enlace (handshake) TLS.
Emite el certificado
Registra + emite SCT
Entrega certificado + SCT
Verifica el SCT
Hay tres formas de entregar un SCT: incrustar el SCT en el propio certificado (una extensión X.509 v3), enviarlo mediante una extensión del protocolo de enlace TLS y enviarlo mediante OCSP stapling. Las principales autoridades de certificación, encabezadas por Let's Encrypt, adoptan el método de incrustación en el certificado.
Chrome hace obligatorio CT (2018)
Desde abril de 2018 (Chrome 68), Google Chrome exige compatibilidad con CT para todos los certificados recién emitidos. Cuando estableces una conexión HTTPS con un certificado que no lleva un SCT adjunto, Chrome muestra una advertencia de seguridad. Esta decisión aceleró de forma decisiva la adopción de CT, y hoy prácticamente todas las autoridades de certificación públicas han incorporado el registro en logs CT a su proceso estándar. CT se ha vuelto indispensable como base que sustenta la fiabilidad de los certificados digitales.
Detección de certificados fraudulentos y uso práctico
Cualquiera puede buscar en los registros CT usando crt.sh o el Certificate Transparency Search de Google. Al monitorear la emisión de certificados de sus propios dominios, los administradores de dominios pueden detectar pronto la emisión de certificados fraudulentos. De hecho, en 2017 los registros CT revelaron que una autoridad de certificación dependiente de Symantec había emitido certificados de prueba fraudulentos para los dominios de Google, lo que finalmente llevó a que el negocio de autoridad de certificación de Symantec se vendiera a DigiCert.
Monitorear los registros CT es un mecanismo importante que complementa el modelo de confianza de la PKI basada en la criptografía de clave pública. Consulta también nuestros artículos sobre los fundamentos del cifrado, la protección contra el phishing y la seguridad de las contraseñas en el navegador.
libros sobre criptografía (Amazon) también te ofrecen más para explorar.
¿Te resultó útil este artículo?