Saltar al contenido principal

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.

Hash raíz (H1234)
H12 = hash(H1 + H2)H34 = hash(H3 + H4)
Certificado 1Certificado 2Certificado 3Certificado 4

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.

CA
Emite el certificado
Registro CT
Registra + emite SCT
Servidor web
Entrega certificado + SCT
Navegador
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)

Google Chrome estableció una política que exige compatibilidad con CT para todos los certificados emitidos después del 30 de abril de 2018, y comenzó a aplicar esta verificación a partir de Chrome 68, lanzado en julio de 2018. 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ó la adopción de CT, y las autoridades de certificación públicas deben tratar el registro en logs CT como un requisito previo para emitir certificados. 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 2015 los registros CT revelaron que una autoridad de certificación dependiente de Symantec había emitido certificados de prueba para los dominios de Google sin autorización. Posteriormente salieron a la luz nuevas emisiones indebidas de la misma empresa y, finalmente, en 2017, el negocio de autoridad de certificación de Symantec se vendió 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.

Términos relacionados

¿Te resultó útil este artículo?