Qué es Certificate Transparency - el mecanismo de auditoría pública que sustenta la confianza en HTTPS

Aunque las comunicaciones estén cifradas con HTTPS, si el certificado TLS presentado por el servidor de destino fue emitido de forma fraudulenta, el cifrado carece de sentido. Si un atacante compromete una autoridad de certificación (CA) y obtiene un certificado falso, puede suplantar un dominio legítimo e interceptar las comunicaciones.

Certificate Transparency (CT, transparencia de certificados) es la solución de Google a este problema. Al registrar la emisión de todos los certificados TLS en registros públicos que cualquiera puede auditar, permite detectar rápidamente la emisión fraudulenta de certificados. Desde abril de 2018, Chrome dejó de confiar en certificados que no estén registrados en los registros CT.

Por qué se hizo necesaria la transparencia de certificados

El trasfondo del nacimiento de CT son los problemas estructurales del modelo de confianza de las autoridades de certificación.

Vulnerabilidad del modelo de confianza de las CA

Los navegadores registran cientos de autoridades de certificación como "CA raíz de confianza". Cualquiera de estas CA tiene la autoridad para emitir certificados para cualquier dominio. Es decir, basta con que una sola CA sea comprometida para que la confianza de todo HTTPS en internet pueda colapsar.

Incidentes reales de emisión fraudulenta

  • Incidente DigiNotar (2011): la CA holandesa DigiNotar fue comprometida y se emitieron certificados fraudulentos para más de 500 dominios, incluyendo google.com. Se cree que fueron utilizados por el gobierno iraní para interceptar comunicaciones de usuarios de Gmail. DigiNotar perdió la confianza y quebró
  • Emisión fraudulenta de Symantec (2015-2017): se descubrió que CAs subsidiarias de Symantec habían emitido numerosos certificados de prueba sin la aprobación de los propietarios de los dominios. Google revocó gradualmente la confianza en los certificados de Symantec
  • Incidente CNNIC (2015): CNNIC de China delegó inapropiadamente un certificado de CA intermedia, y esa CA intermedia emitió certificados fraudulentos para dominios de Google

Estos incidentes demostraron que simplemente "confiar" en las autoridades de certificación no es suficiente, y que se necesita un mecanismo para monitorizar continuamente los certificados emitidos.

Mecanismo técnico de CT

CT se compone de tres componentes:

1. Servidores de registro CT

Los registros CT son estructuras de datos de solo adición (append-only) que registran todos los certificados emitidos en orden cronológico. Utilizan árboles de hash Merkle, lo que hace computacionalmente imposible alterar las entradas una vez registradas.

Al emitir un certificado, la autoridad de certificación lo envía a al menos dos servidores de registro CT independientes. El servidor de registro registra el certificado y devuelve un SCT (Signed Certificate Timestamp), una marca de tiempo firmada. Este SCT es la prueba de que "este certificado está registrado en el registro CT".

2. Monitores

Los monitores son sistemas que escanean periódicamente los registros CT para detectar la emisión de certificados sospechosos. Los propietarios de dominios pueden monitorizar los certificados emitidos para su dominio.

Por ejemplo, si eres propietario de example.com, al monitorizar los registros CT puedes detectar inmediatamente si se emite un certificado para example.com que no solicitaste.

3. Auditores

Los auditores verifican que los servidores de registro CT funcionen correctamente. Verifican criptográficamente la consistencia del registro (que las entradas pasadas no hayan sido alteradas) y que las entradas correspondientes a los SCT existan realmente en el registro. Los navegadores también pueden desempeñar el rol de auditor.

Aplicación de CT por los navegadores

La efectividad de CT se garantiza porque los navegadores exigen el registro en los registros CT:

  • Chrome: desde el 30 de abril de 2018, no confía en certificados emitidos que no estén registrados en registros CT. Se requieren 2-3 SCTs según el período de validez del certificado
  • Safari: Apple también ha establecido su propia política de CT y la aplica en Safari
  • Firefox: la aplicación de CT se está introduciendo gradualmente

Si se accede a un sitio con un certificado no registrado en los registros CT, el navegador muestra una advertencia como "Tu conexión no es privada" y bloquea la conexión.

Uso de los registros CT - lo que pueden hacer los propietarios de dominios

Los registros CT son públicos y cualquiera puede buscar en ellos. Los propietarios de dominios pueden monitorizar el estado de emisión de certificados para su dominio usando las siguientes herramientas:

  • crt.sh: motor de búsqueda de registros CT operado por Sectigo. Al buscar por nombre de dominio, se pueden listar todos los certificados emitidos para ese dominio
  • Google Certificate Transparency Search: herramienta de búsqueda de registros CT proporcionada por Google
  • Certspotter: servicio de monitorización CT proporcionado por SSLMate. Envía notificaciones por correo electrónico cuando se emite un nuevo certificado

Se recomienda verificar periódicamente el estado de emisión de certificados para tu dominio y comprobar que no se hayan emitido certificados que no reconozcas. Si descubres un certificado fraudulento, solicita la revocación a la CA emisora.

CT y el compromiso con la privacidad

Dado que los registros CT son información pública, también existen preocupaciones de privacidad:

  • Los nombres de dominio incluidos en los certificados (incluyendo subdominios) se hacen públicos. Subdominios de sistemas internos (ej: staging.internal.example.com) podrían quedar expuestos al exterior
  • Los atacantes podrían monitorizar los registros CT para descubrir la existencia de nuevos subdominios y convertirlos en objetivos de ataque
  • El uso de certificados comodín (*.example.com) puede prevenir la exposición de nombres de subdominios individuales

Este compromiso requiere sopesar los beneficios de seguridad que aporta la transparencia de CT frente al riesgo de exposición de nombres de subdominios. En la mayoría de los casos, la capacidad de detectar certificados fraudulentos es más importante que mantener en secreto los nombres de subdominios.

Uso combinado con registros CAA

Junto con CT, configurar registros CAA (Certification Authority Authorization) en DNS puede reducir aún más el riesgo de emisión fraudulenta de certificados.

Los registros CAA son un mecanismo que restringe a nivel de DNS qué CAs pueden emitir certificados para ese dominio. Por ejemplo, para permitir la emisión solo a Let's Encrypt, se configura así:

example.com. IN CAA 0 issue "letsencrypt.org"

Si se configuran registros CAA, ninguna CA distinta a la especificada puede emitir certificados (según RFC 8659, las CAs tienen la obligación de verificar los registros CAA antes de la emisión). Combinar la detección posterior mediante registros CT con la restricción previa mediante registros CAA logra una defensa en profundidad.

Conclusión

Certificate Transparency es una infraestructura importante que sustenta la base de confianza de HTTPS. Diseñado asumiendo la posibilidad de fraude o compromiso de las autoridades de certificación, permite detectar rápidamente la emisión fraudulenta de certificados al registrar todas las emisiones en registros públicos.

Se recomienda que los propietarios de dominios monitoricen periódicamente el estado de emisión de certificados para su dominio con herramientas como crt.sh y configuren registros CAA para restringir las CAs autorizadas. Verifica en IP Check-san que tu conexión está protegida por HTTPS y, junto con la configuración de cabeceras de seguridad, mejora integralmente la seguridad de tus comunicaciones web.

Términos del glosario relacionados

HTTPS Protocolo de comunicación que añade cifrado TLS/SSL a HTTP. Previene la interceptación y alteración del contenido de las comunicaciones y verifica la legitimidad del servidor mediante certificados. TLS (Transport Layer Security) Protocolo que cifra las comunicaciones de internet. Sucesor de SSL y tecnología base de las comunicaciones HTTPS actuales. TLS 1.3 es la versión más reciente. Autoridad de Certificación (CA) Tercero de confianza que emite certificados TLS. Verifica la identidad del propietario del dominio y firma la clave pública para garantizar la legitimidad del sitio web. DNS (Sistema de Nombres de Dominio) Sistema fundamental de internet que convierte nombres de dominio en direcciones IP. Es el primer sistema al que consulta el navegador al acceder a un sitio web. Cifrado Tecnología que convierte datos a un formato ilegible para terceros. Existen dos métodos: cifrado simétrico y cifrado de clave pública, que protegen la confidencialidad e integridad de los datos.