El protocolo de estado de certificado en línea (OCSP) , formalmente conocido como extensión de solicitud de estado de certificado TLS , es un estándar para verificar el estado de revocación de los certificados digitales X.509 . [ 1 ] Permite que el presentador de un certificado asuma el costo de recursos involucrado en proporcionar respuestas del protocolo de estado de certificado en línea (OCSP) al adjuntar ("adjuntar") una respuesta OCSP con marca de tiempo firmada por la CA (autoridad de certificación) al protocolo de enlace TLS inicial , eliminando la necesidad de que los clientes se comuniquen con la CA, con el objetivo de mejorar tanto la seguridad como el rendimiento.
Motivación
La implementación original de OCSP tiene varias limitaciones.
En primer lugar, impone un coste operativo sustancial a las autoridades de certificación (CA), ya que deben proporcionar respuestas en tiempo real a cada cliente que consulta el estado de un certificado. Por ejemplo, cuando se emite un certificado para un sitio web con mucho tráfico, es probable que los servidores de las CA reciban enormes volúmenes de solicitudes OCSP que consultan la validez del certificado. [ 2 ]
Además, la verificación OCSP puede perjudicar la privacidad de los usuarios y ralentizar la navegación, ya que requiere que el cliente se ponga en contacto con un tercero (la CA) para confirmar la validez de cada certificado que encuentra. [ 2 ] [ 3 ]
Además, si el cliente no logra conectarse a la CA para obtener una respuesta OCSP, se ve obligado a decidir entre: (a) continuar la conexión de todos modos, lo que anula el propósito de OCSP, o (b) terminar la conexión bajo la suposición de que existe un ataque, lo que podría resultar en un exceso de falsas advertencias y bloqueos. [ 4 ]
El OCSP Stapling tiene como objetivo abordar estos problemas con la implementación original de OCSP. [ 5 ] [ 6 ]
Solución
El OCSP Stapling resuelve ambos problemas de una manera que recuerda al ticket Kerberos . En un escenario de Stapling, el propio titular del certificado consulta al servidor OCSP a intervalos regulares, obteniendo una respuesta OCSP firmada y con marca de tiempo . Cuando los visitantes del sitio intentan conectarse a él, esta respuesta se incluye ("stapled") con el protocolo de enlace TLS/SSL mediante la respuesta de extensión de solicitud de estado del certificado (nota: el cliente TLS debe incluir explícitamente una extensión de solicitud de estado del certificado en su mensaje de protocolo de enlace TLS/SSL ClientHello). [ 7 ]
Aunque pueda parecer que permitir que el operador del sitio controle las respuestas de verificación permitiría que un sitio fraudulento emitiera una verificación falsa para un certificado revocado, las respuestas adjuntas no se pueden falsificar, ya que deben ser firmadas directamente por la autoridad de certificación , no por el servidor. [ 6 ] Si el cliente no recibe una respuesta adjunta, simplemente contactará al servidor OCSP por sí mismo. [ 4 ] Sin embargo, si el cliente recibe una respuesta adjunta no válida, abortará la conexión. [ 1 ] El único riesgo aumentado del OCSP Stapling es que la notificación de revocación de un certificado puede retrasarse hasta que expire la última respuesta OCSP firmada.
Como resultado, los clientes siguen teniendo la garantía verificable de la autoridad certificadora de que el certificado es válido actualmente (o lo fue recientemente), pero ya no necesitan contactar individualmente con el servidor OCSP. Esto significa que la mayor parte de la carga de recursos recae ahora sobre el titular del certificado. También significa que el software cliente ya no necesita revelar los hábitos de navegación de los usuarios a terceros. [ 2 ]
El rendimiento general también mejora: cuando el cliente obtiene la respuesta OCSP directamente de la CA, normalmente implica la búsqueda del nombre de dominio del servidor OCSP de la CA en el DNS, así como el establecimiento de una conexión con dicho servidor. Cuando se utiliza OCSP Stapling, la información del estado del certificado se entrega al cliente a través de un canal ya establecido, lo que reduce la sobrecarga y mejora el rendimiento. [ 5 ]
Especificación
La extensión TLS Certificate Status Request se especifica en la RFC 6066 , Sección 8.
El RFC 6961 define una extensión de Solicitud de Estado de Certificado Múltiple (OCSP), que permite a un servidor enviar múltiples respuestas OCSP en el protocolo de enlace TLS.
Una propuesta preliminar para un campo de extensión X509v3, que expiró en abril de 2013, especificaba que un servidor compatible que presentara un certificado con dicha extensión debía devolver un token OCSP válido en su respuesta si la extensión status_request se especificaba en el mensaje hello del cliente TLS. [ 8 ] La versión actual de la propuesta se ha ampliado para admitir extensiones TLS adicionales. [ 9 ] El desarrollador de TLS, Adam Langley, habló sobre la extensión en un artículo de abril de 2014 tras la corrección del error Heartbleed de OpenSSL. [ 10 ]
Despliegue
La técnica OCSP Stapling cuenta con un amplio soporte. El proyecto OpenSSL incluyó esta funcionalidad en su versión 0.9.8g gracias a una subvención de la Fundación Mozilla .
Apache HTTP Server admite OCSP stapling desde la versión 2.3.3, [ 11 ] el servidor web nginx desde la versión 1.3.7, [ 12 ] LiteSpeed Web Server desde la versión 4.2.4, [ 13 ] Microsoft IIS desde Windows Server 2008 , [ 14 ] HAProxy desde la versión 1.5.0, [ 15 ] F5 Networks BIG-IP desde la versión 11.6.0, [ 16 ] KEMP LoadMasters desde la versión 7.2.37.1 y lighttpd desde la versión 1.4.56. [ 17 ]
Aunque muchos servidores web anuncian compatibilidad con OCSP Stapling, las implementaciones no siempre son fiables. [ 18 ] Por ejemplo, cuando Apache consulta al servidor OCSP, en caso de un fallo temporal, descartará la respuesta correcta almacenada en caché de la solicitud anterior y comenzará a servir la respuesta incorrecta. [ 19 ] Nginx realiza una carga diferida de las respuestas OCSP, lo que significa que para las primeras solicitudes web no puede añadir la respuesta OCSP. [ 20 ]
En el lado del navegador, el OCSP stapling se implementó en Firefox 26, [ 4 ] [ 21 ] en Internet Explorer desde Windows Vista , [ 22 ] y Google Chrome en Linux, ChromeOS y Windows desde Vista. [ 23 ]
Para SMTP, el agente de transferencia de mensajes Exim admite el OCSP stapling tanto en modo cliente [ 24 ] como en modo servidor [ 25 ] .
Limitaciones
El OCSP stapling está diseñado para reducir el costo de una validación OCSP, tanto para el cliente como para el respondedor OCSP, especialmente para sitios grandes que atienden a muchos usuarios simultáneos. Sin embargo, el OCSP stapling solo admite una respuesta OCSP a la vez, lo cual es insuficiente para cadenas de certificados con certificados CA intermedios. [ 26 ] [ 27 ]
Esta limitación se abordó en 2013 mediante la extensión de solicitud de estado de certificado múltiple, [ 28 ] que agrega soporte para enviar múltiples respuestas OCSP.
En 2018, el OCSP Stapling pasó a formar parte de la especificación TLS 1.3, [ 29 ] pero de una manera ligeramente diferente a TLS 1.2 o versiones anteriores. TLSv1.3 elimina la limitación de una única respuesta, lo que hace que la compatibilidad de los navegadores con RFC 6961 sea irrelevante, ya que cada vez más servidores web dejan de ser compatibles con TLS 1.2. Con TLS 1.2, un servidor solo puede enviar una respuesta Stapling, la respuesta OCSP asociada al certificado final. Con TLS 1.3, un servidor puede enviar varias respuestas OCSP, normalmente una por cada certificado en la cadena de certificados. [ 30 ]
Referencias
- 1 2 Eastlake, D. (enero de 2011). "Extensiones de seguridad de la capa de transporte (TLS): definiciones de extensión: solicitud de estado del certificado" . Grupo de trabajo de ingeniería de Internet (IETF) . Recuperado el 2 de marzo de 2015 .
- 1 2 3 A., Jesin (12 de junio de 2014). "Cómo configurar OCSP Stapling en Apache y Nginx" . Tutoriales de la comunidad . Digital Ocean, Inc. Recuperado el 2 de marzo de 2015 .
- ↑ Nota: Con la CA de Microsoft y el servicio OCSP (por ejemplo, el tipo utilizado como parte de un dominio típico de Active Directory), el servicio OCSP no necesita consultar a la CA cada vez que desea verificar el estado de un certificado (lo que reduce la carga en la CA). El servicio OCSP (que generalmente se ejecuta en un servidor separado de la CA) hace referencia a la CRL (lista de revocación de certificados), que normalmente publica la CA una vez por semana (la frecuencia puede modificarse), y la utiliza como fuente de información para verificar el estado de los certificados.
- 1 2 3 Keeler, David (29 de julio de 2013). "OCSP Stapling en Firefox" . Blog de seguridad de Mozilla . Fundación Mozilla . Recuperado el 2 de marzo de 2015 .
- 1 2 Prince, Matthew (29 de octubre de 2012). "OCSP Stapling: Cómo CloudFlare acaba de hacer que SSL sea un 30 % más rápido" . CloudFlare, Inc. Recuperado el 2 de marzo de 2015 .
- 1 2 Gibson, Steve. "Concienciación sobre la revocación de certificados de seguridad: El caso de "OCSP Must-Staple"" . Gibson Research Corporation . Consultado el 2 de marzo de 2015 .
- ↑ "OCSP Stapling" . Soporte de GlobalSign . GMO GlobalSign Inc. 1 de agosto de 2014. Consultado el 2 de marzo de 2015 .
- ↑ P. Hallam-Baker, Extensión X.509v3: Se requiere grapado OCSP
- ↑ Borrador de la extensión de características TLS X.509v3 de P. Hallam-Baker : draft-hallambaker-tlsfeature-05
- ↑ A. Langley, No, no habilite la comprobación de revocación , 19 de abril de 2014.
- ↑ Documentación del servidor HTTP Apache mod_ssl - Directiva SSLUseStapling
- ↑ Lista de correo nginx-announce - nginx-1.3.7
- ↑ Registro de lanzamientos - Litespeed Tech . Consultado el 7 de febrero de 2014.
- ↑ Duncan, Robert. "Microsoft logra el dominio mundial (en OCSP Stapling)" . Netcraft Ltd. Recuperado el 28 de abril de 2014 .
- ↑ Sitio web de HAProxy
- ↑ Nota de la versión: BIG-IP LTM y TMOS 11.6.0
- ↑ "Información de lanzamiento de lighttpd 1.4.56" . redmine.lighttpd.net .
- ↑ El problema con el grapado OCSP
- ↑ Error de Apache OCSP
- ↑ Error de OCSP en Nginx
- ↑ Mejorar la revocación - MozillaWiki , consultado el 28/04/2014
- ↑ "Cómo funciona la revocación de certificados" . TechNet . Microsoft. 16 de marzo de 2012. Consultado el 28 de abril de 2014 .
- ↑ "Problema 361820: La casilla de verificación 'Comprobar la revocación del certificado del servidor' resulta confusa" . Google Code . 10 de abril de 2014.
- ↑ El transporte SMTP , consultado el 24/01/2015
- ↑ Configuración principal , consultada el 24/01/2015
- ↑ Error de Mozilla NSS 360420 , Comentario de Adam Langley
- ↑ Error 611836 de Mozilla NSS: Implementar extensión de grapado OCSP múltiple
- ↑ Y. Pettersen (junio de 2013). La extensión de solicitud de estado de certificado múltiple de Transport Layer Security (TLS) . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC6961 . ISSN 2070-1721 . RFC 6961 . Obsoleto. Obsoleto según RFC 8446 .
- ↑ E. Rescorla (agosto de 2018). El protocolo Transport Layer Security (TLS) versión 1.3 . Grupo de trabajo TLS de la Internet Engineering Task Force . doi : 10.17487/RFC8446 . RFC 8446 .Norma propuesta. Deja obsoletas las RFC 5077 , 5246 y 6961. Actualiza las RFC 5705 y 6066 .
- ↑ "OCSP stapling (GnuTLS 3.7.4)" .
- Revocación del certificado
- protocolos criptográficos
- Estándares de Internet
- Protocolos de Internet
- Seguridad de la capa de transporte