Detalles de los programas de navegador actuales para verificar el estado de revocación de SSL /TLS certificados, incluida una prueba en varios navegadores.
Introducción
Comprobación del estado de revocación de SSL /TLS certificados presentados por HTTPS Los sitios web son un problema continuo en la seguridad web. A menos que un servidor esté configurado para usar Grapado OCSP, la verificación de revocación en línea por parte de los navegadores web es lenta y compromete la privacidad. Debido a que las consultas OCSP en línea fallan con tanta frecuencia y son imposibles en algunas situaciones (como con los portales cautivos), los navegadores generalmente implementan la verificación OCSP en modo de "falla suave", lo que la hace ineficaz para disuadir a un atacante determinado. (Para obtener un historial más completo de este problema, lea el artículo de SSL.com, Optimización de carga de página: grapado OCSP).
Por estas razones, los navegadores web han implementado una gama de soluciones para reducir o eliminar la necesidad de verificar la revocación en línea. Los detalles exactos varían entre los proveedores, pero estas soluciones generalmente implican la recolección de listas de certificados revocados de las autoridades de certificación (CA) y los envían a los navegadores.
Este artículo proporciona resúmenes de alto nivel de las estrategias de verificación de validación empleadas por los principales navegadores de escritorio (Chrome, Firefox, Safariy Southern Implants), y compara las respuestas de estos navegadores a alguna muestra certificados revocados alojado por SSL.com.
Google Chrome
Chrome depende de CRLConjuntos para la comprobación de revocación. Un CRLSet es simplemente una lista de certificados revocados que se envía al navegador como una actualización de software. De acuerdo con la Sitio web de Chromium Projects, los procesos por los cuales Google genera CRLSets son propietarios, pero también
Los CRLSets ... son principalmente un medio por el cual Chrome puede bloquear rápidamente certificados en situaciones de emergencia. Como función secundaria, también pueden contener una serie de revocaciones que no sean de emergencia. Estas últimas revocaciones se obtienen rastreando las CRL publicadas por las CA.
La declaración anterior indica que al menos some los certificados de entidad final revocados de baja prioridad podrían terminar en CRLSets, pero son una consideración secundaria.
Puede verificar la versión de CRLSet instalada actualmente en una instancia de Chrome navegando a chrome://components/
:
opera://components
. Como se ha señalado below, la versión actual del navegador Edge de Microsoft también se basa en Chromium y usa CRLSets.Actualmente no es posible configurar Chrome directamente para realizar consultas de validez de certificados en línea. Sin embargo, dependiendo del sistema operativo, estas comprobaciones pueden ser realizadas por la biblioteca de certificados subyacente utilizada por el sistema operativo. (Como puede verse below en los resultados de las pruebas limitadas del navegador, encontramos que las instalaciones de Chrome con el mismo número de versión y CRLSet en realidad respondieron a dos certificados revocados de manera diferente en Windows que en macOS).
Mozilla Firefox
Al igual que Google, Mozilla mantiene una lista centralizada de certificados revocados, llamada Una CRL. OneCRL es una lista de certificados intermedios que han sido revocados por las CA en el programa raíz de Mozilla y se envía a los usuarios de Firefox en las actualizaciones de la aplicación. Con respecto a los certificados de entidad final, Mozilla plan de revocación señala que "En el futuro, una vez que la implementación inicial esté funcionando, podemos considerar la posibilidad de cubrir los certificados EE con OneCRL, posiblemente centrándonos inicialmente en clases específicas (por ejemplo, certificados EV)".
OneCRL se puede descargar como un objeto JSON aquío visto como una página web en crt.sh.
A diferencia de Chrome, la configuración predeterminada de Firefox también consulta a los respondedores OCSP para confirmar la validez de SSL /TLS certificados (Puede cambiar esta configuración en las preferencias de seguridad de Firefox).
Sin embargo, debido a que las fallas en las consultas OCSP son tan comunes, Firefox (como otros navegadores) implementa una política de "fallas suaves". Si lo desea, puede solicitar un control estricto de OCSP navegando a about:config
y alternar security.OCSP.require
a true
.
Apple Safari
El enfoque actual de Apple para la revocación está cubierto por Bailey Basile en su charla de la WWDC de 2017, Sus aplicaciones y estándares de seguridad de red en evolución. Apple recopila información de revocación de certificados de las CA que son confiables en sus dispositivos y lo agrega todo en un solo paquete que es recuperado periódicamente por el software cliente de Apple (¿todavía suena como un plan familiar?).
Cuando una aplicación cliente encuentra un certificado que se muestra en la lista de Apple, realiza una verificación OCSP para confirmar que el certificado está, de hecho, revocado (a menos que el servidor proporcione una respuesta OCSP grapada). Tenga en cuenta que las comprobaciones OCSP en línea solo se realizan en el caso de certificados que Apple ya cree que están revocados; los certificados que no figuran en el paquete recuperado de Apple no se verifican.
Un enlace a la lista de revocación de Apple y el código para analizarlo está disponible aquí.
Microsoft Edge
Windows mantiene una lista de certificados revocados o incluidos en listas negras en un archivo llamado disallowedcert.stl
. Esto Entrada de blog proporciona información sobre cómo volcar el contenido del archivo con PowerShell. crt.sh también proporciona información sobre si un certificado en particular está incluido en disallowedcert.stl
.
Al igual que Firefox, Windows está configurado para verificar la revocación de certificados de forma predeterminada. Esta configuración se puede ver y cambiar en el Propiedades de Internet panel de control:
Sin embargo, la versión actual (basada en Chromium) de Edge, como Chrome, se basa en CRLSets para la verificación de revocación y aparece en nuestras pruebas below para ser independiente de la configuración de verificación de revocación en Propiedades de Internet. (Nota: En una versión anterior de estas pruebas, realizada en septiembre de 2019, Internet Explorer y una versión anterior a Chromium de Edge did siga estas configuraciones en Propiedades de Internet).
Variación entre navegadores
Dado que SSL.com mantiene un grupo de servidores web que alojan certificados revocados de muestra, decidimos probarlos con una variedad de navegadores de escritorio. Esta pequeña prueba no terriblemente científica se llevó a cabo el 23 de febrero de 2020. Los navegadores utilizados fueron:
- Chrome 88.0.4324.182, CRLSet versión 6444 (macOS 10.15.7)
- Chrome 88.0.4324.182, CRLSet versión 6444 (Windows 10 Pro)
- Edge 88.0.705.74, CRLSet versión 6444 (Windows 10 Enterprise)
- Firefox 86.0: consultas OCSP en (macOS 10.15.7)
- Firefox 86.0: consultas OCSP desactivadas (macOS 10.15.7)
- Safari 14.0.3 (macOS 10.15.1)
Además, probamos Chrome y Edge en Windows con la verificación de revocación en línea deshabilitada en el panel de control de Propiedades de Internet, y (para Chrome, Firefox y Edge) verificamos si el certificado relevante figuraba como revocado con un programa de navegador en particular en crt.sh.
cromo (macOS) | cromo (ventanas) | Borde (Windows) | Firefox (Mac) (OCSP activado) | Firefox (Mac) (OCSP desactivado) | Safari (Mac) | |
---|---|---|---|---|---|---|
revooked-rsa-dv.ssl.com | Revocado | No revocado | No revocado | Revocado | No revocado | Revocado |
revooked-rsa-ev.ssl.com | Revocado | Revocado | Revocado | Revocado | No revocado | Revocado |
revocado-ecc-dv.ssl.com | Revocado | No revocado | No revocado | Revocado | No revocado | Revocado |
revocado-ecc-ev.ssl.com | Revocado | Revocado | Revocado | Revocado | No revocado | Revocado |
Discusión de los resultados
cromo: En Windows, Chrome mostró incorrectamente dos de los certificados revocados (revooked-rsa-dv.ssl.com y revocado-ecc-dv.ssl.com) como válido y los demás como revocados. Deshabilitar la verificación de validación en el sistema operativo no alteró esta respuesta. Curiosamente, ninguno de los cuatro certificados se mostró como revocado en CRL crt.sh en el momento de la prueba, lo que sugiere más preguntas sobre los procesos de verificación de revocación de Chrome. En macOS, Chrome mostró correctamente los cuatro certificados como revocados, lo que ilustra las diferencias basadas en la plataforma en el comportamiento de Chrome.
Edge: La versión actual (basada en Chromium) de Edge reflejó Chrome al mostrar revooked-rsa-dv.ssl.com y revocado-ecc-dv.ssl.com como válido. Al igual que Chrome, Edge mostró los mismos resultados independientemente de que la verificación de validación estuviera habilitada en el sistema operativo. Ninguno de los cuatro certificados se mostró como se indica en disallowedcert.stl
on crt.sh.
Firefox: Como podría esperarse del enfoque declarado de OneCRL en los certificados intermedios, Firefox solo reconoció los cuatro certificados como revocados con las consultas OCSP habilitadas en las preferencias del navegador, pero aceptó los cuatro como válidos si las consultas OCSP estaban deshabilitadas. (Nota: Los cuatro certificados de entidad final revocados fueron emitidos por intermediarios válidos y no revocados.) Al igual que con Chrome, crt.sh no muestra ninguno de los certificados revocados en OneCRL.
Safari: Safari en macOS reconoció correctamente los cuatro certificados como revocados. crt.sh no muestra información de revocación de Apple, y no verificamos si estos certificados en particular están listados como revocados por Apple.
Conclusión
Los resultados parecen indicar que la revocación sigue siendo un tema problemático para los navegadores web de escritorio (los dispositivos móviles representan un mundo completamente diferente, pero ese es un tema para otro artículo). Habilitar la verificación OCSP en línea (lenta, insegura) era necesaria para reconocer los certificados revocados en Firefox, mientras que Chrome y Edge no reconocieron dos certificados revocados en Windows, independientemente de que la verificación de revocación estuviera habilitada en el sistema operativo.
Para los propietarios de sitios web, parece prudente suponer que los diversos programas del navegador se centran en incidentes de alta prioridad / emergencia, como los certificados de CA revocados e intermedios revocados, y que las revocaciones de certificados de entidad final de variedades de jardín pasarán desapercibidas por un periodo indefinido. Por esta razón, implementando Grapado OCSP y grapado obligatorio parece ser la forma más privada, segura y efectiva de garantizar que los usuarios finales reciban información precisa sobre la revocación de los certificados de entidad final.
SSL.com proporciona una amplia variedad de SSL /TLS certificados de servidor para sitios web HTTPS.