Skip to content

Mecanismos de revocación de certificados SSL/TLS

En el sector de la ciberseguridad existe un reto constante y que preocupa porque, de no satisfacerse, los responsables del negocio no comprarán nuestra propuesta de esquema seguro: la comodidad. Seguridad y practicidad deben ir siempre en armonía (y no siempre es fácil).

Un ejemplo de lo difícil que es cumplir esta máxima lo encontramos al fijarnos en como se hace llegar la información relevante sobre certificados revocados desde las CA, siguiendo la cadena hacia abajo al resto de partes..

CRL, OCSP Stapling o Must Staple y CRLite

Hay quien pudiera pensar que el mundo de las entidades de certificación es estático y cambia con poca frecuencia. Sin embargo esto no es así -mismamente el otro día se produjo un importante cambio en la vigencia de los certificados SSL que conviene conocer- y, si hablamos de mecanismos o estándares de revocación de certificados, tenemos una serie de acrónimos que vamos a aclarar en este artículo.

OCSP

Online Certificate Status Protocol (OCSP) es el protocolo de internet utilizado por los navegadores web para determinar si un certificado es válido o, por el contrario, pudiera haberse revocado. Esta información la facilitan los propios sitios HTTPS en la negociación inicial.

Pasos iniciales de una negociación cliente-servidor HTTPS

Aunque cuando se expide un certificado este ya tiene una fecha de caducidad, en cierto casos será necesario interrumpirlo y dejar sin efecto la validez restante. Esto, normalmente, se produce cuando ya no es seguro utilizarlo, porque su clave privada pudiera haber sido comprometida.

Es por ello que durante la negociación inicial, ambas partes deben informar/ser informados de que la conexión es posible y el certificado SSL es apto. Para eso existe OCSP.

Pasos de una negociación OCSP

  • Un navegador web recibe un certificado de un servidor web
  • El navegador envía una solicitud de información el OCSP Responder, un servidor perteneciente a la infraestructura PKI (CA) que emitió dicho certificado.
  • El servidor devuelve una respuesta firmada al navegador, que indica si el certificado ha sido revocado o no.

Por desgracia el protocolo OCSP tiene una serie de limitaciones. Muchas implementaciones no funcionan bien, por lo que ciertos navegadores u otro software tienen orden de esperar un determinado tiempo y, si la respuesta no llega, dan el certificado como válido.

Pueden producirse ataques tipo MitM (man in the middle) que exploten este fallo, bloqueando todas las solicitudes o conexiones de tipo OCSP, utilizando un certificado «robado» para obtener acceso a una conexión HTTPS de confianza. Esto podría provocar una filtración de datos con terceros.

OCSP Stapling

Para solventar el problema descrito anteriormente sobre el OCSP se introdujo el concepto OCSP Stapling. También se introdujo para solventar el importante problema de ancho de banda de las consultas de revocación en infraestructuras de clave pública y la escalabilidad.

¿En qué consiste el «Grapado» OCSP u OCSP Stapling?

  • Un servidor web requiere y recibe una respuesta OCSP firmada para su certificado, desde un OCSP responder, que podría cachearse por una semana como mucho.
  • El servidor incluye la respuesta OCSP cacheada, junto con («grapado» a) su certificado, en su respuesta HTTP a los navegadores web.
  • Para impedir un potencial ataque en el que una web sirva un certificado revocado (por ejemplo, ha sido robado) sin una respuesta OCSP, los certificados deben emitirse con la extensión Must-staple, de forma que sea obligatorio.

Según describe la norma RFC 7633, OCSP Must-Staple requiere OCSP Stapling para el certificado o será rechazado. No solamente impediremos así ataques de downgrade al protocolo TLS, sino que mejoraremos la velocidad del OCSP.

ocsp-stapling

OCSP Must Staple

OCSP Must Staple es una extensión para certificados SSL definida en el RFC 7633, introducida con el objetivo de impedir ataques de tipo MITM. Las CA (Entidades de Certificación) públicas se pusieron de acuerdo con los desarrolladores de navegadores web para su diseño.

Must-Staple requiere OCSP Stapling para el certificado (lógicamente). De esta forma, si un navegador se topa con un certificado sin la extensión OCSP Stapling, será rechazado.

OCSP Must-Staple ayuda a mitigar los ataques de tipo downgrade y además mejora el rendimiento general de OCSP, al reducir tráfico innecesario a los OCSP Responder.

CRLite

Y llegamos a la actualidad -ya que todo lo anterior tiene algo de solera- y si tenemos que hablar de CRLite, diremos que es un estándar recientemente propuesto y que su virtud es enviar la información sobre todos los certificados SSL/TLS revocados, directamente a los navegadores sobre cada petición HTTPS.

Claro, que esto tendría teóricamente un impacto negativo en el consumo de ancho de banda, dado que las CRLs (Listas de Revocación de Certificados) son muy grandes y ya suponen un freno con el protocolo OCSP.

CRLite promete una compresión sustancial del conjunto; la forma binaria de todos los números de serie de los certificados sin expirar ocupa 16 GB de memoria en Redis; la forma hexadecimal de los certificados enrolados y en vigencia ocupa 6,7 GB en disco, mientras que el binario resultante de aplicar el Bloom filter en el mismo requiere de una descarga de 1,3 MB.

Mozilla

CRLite utiliza lo que se conoce como Bloom Filtering para comprimir grandes cantidades de datos, intentando paliarlo. Es posible que, si nuestro certificado no es nuevo, el navegador siga utilizando el clásico OCSP.

deweloper View All

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

Deja un comentario