Mozilla implementa CRLite para comprobar si hay certificados TLS problemáticos

Empresa Mozilla anunció el sobre el inicio de las pruebas en las versiones nocturnas de Firefox de un nuevo mecanismo para detectar certificados revocados - CRLite. CRLite le permite organizar una verificación eficaz de la revocación de certificados en una base de datos alojada en el sistema del usuario. Implementación CRLite de Mozilla publicado por bajo la licencia gratuita MPL 2.0. El código para generar la base de datos y los componentes del servidor está escrito en Python y ve. Partes del cliente agregadas a Firefox para leer datos de la base de datos preparado en lenguaje Rust.

Verificación de certificados mediante servicios externos basados ​​en el protocolo que aún se utiliza OCSP (Protocolo de estado de certificados en línea) requiere acceso a la red garantizado, provoca un retraso significativo en el procesamiento de solicitudes (350 ms en promedio) y tiene problemas para garantizar la confidencialidad (los servidores OCSP que responden a las solicitudes reciben información sobre certificados específicos, que se pueden utilizar para juzgar si lo sitios que abre el usuario). También existe la posibilidad de realizar comprobaciones locales con listas. CRL (Lista de revocación de certificados), pero la desventaja de este método es el gran tamaño de los datos descargados: actualmente la base de datos de certificados revocados ocupa alrededor de 300 MB y su crecimiento continúa.

Para bloquear los certificados que han sido comprometidos y revocados por las autoridades de certificación, Firefox utiliza una lista negra centralizada desde 2015. Una CRL en combinación con una llamada al servicio Navegación segura de Google para identificar posibles actividades maliciosas. OneCRL, como CRLConjuntos en Chrome, actúa como un enlace intermedio que agrega listas CRL de las autoridades de certificación y proporciona un único servicio OCSP centralizado para verificar los certificados revocados, lo que permite no enviar solicitudes directamente a las autoridades de certificación. A pesar de mucho trabajo para mejorar la confiabilidad del servicio de verificación de certificados en línea, los datos de telemetría muestran que más del 7% de las solicitudes OCSP expiran (hace unos años esta cifra era del 15%).

De forma predeterminada, si es imposible realizar la verificación mediante OCSP, el navegador considera válido el certificado. Es posible que el servicio no esté disponible debido a problemas de red y restricciones en las redes internas, o que esté bloqueado por atacantes; para omitir la verificación OCSP durante un ataque MITM, simplemente bloquee el acceso al servicio de verificación. En parte para prevenir este tipo de ataques, se ha implementado una técnica. Imprescindible, que le permite tratar un error de acceso a OCSP o una falta de disponibilidad de OCSP como un problema con el certificado, pero esta característica es opcional y requiere un registro especial del certificado.

CRLite le permite consolidar información completa sobre todos los certificados revocados en una estructura fácilmente actualizada, de solo 1 MB de tamaño, lo que hace posible almacenar una base de datos CRL completa en el lado del cliente.
El navegador podrá sincronizar diariamente su copia de los datos sobre los certificados revocados y esta base de datos estará disponible bajo cualquier condición.

CRLite combina información de Transparencia de certificado, un registro público de todos los certificados emitidos y revocados y los resultados del escaneo de certificados en Internet (se recopilan varias listas CRL de autoridades de certificación y se agrega información sobre todos los certificados conocidos). Los datos se empaquetan mediante cascada. filtros de floración, una estructura probabilística que permite una detección falsa de un elemento faltante, pero excluye la omisión de un elemento existente (es decir, con cierta probabilidad, es posible un falso positivo para un certificado correcto, pero se garantiza que los certificados revocados serán identificados).

Para eliminar los falsos positivos, CRLite ha introducido niveles de filtro correctivo adicionales. Después de generar la estructura, se buscan todos los registros fuente y se identifican los falsos positivos. Según los resultados de esta verificación, se crea una estructura adicional, que se conecta en cascada sobre la primera y corrige los falsos positivos resultantes. La operación se repite hasta eliminar por completo los falsos positivos durante el control. Normalmente, crear entre 7 y 10 capas es suficiente para cubrir completamente todos los datos. Dado que el estado de la base de datos, debido a la sincronización periódica, va ligeramente por detrás del estado actual de la CRL, la verificación de los nuevos certificados emitidos después de la última actualización de la base de datos CRLite se realiza utilizando el protocolo OCSP, incluido el uso de Grapado OCSP (El servidor que atiende al sitio transmite una respuesta OCSP certificada por una autoridad de certificación al negociar una conexión TLS).

Mozilla implementa CRLite para comprobar si hay certificados TLS problemáticos

Utilizando filtros Bloom, la porción de información de WebPKI de diciembre, que cubre 100 millones de certificados activos y 750 mil certificados revocados, se pudo empaquetar en una estructura de 1.3 MB de tamaño. El proceso de generación de estructura consume bastantes recursos, pero se realiza en el servidor Mozilla y el usuario recibe una actualización lista para usar. Por ejemplo, en formato binario, los datos de origen utilizados durante la generación requieren aproximadamente 16 GB de memoria cuando se almacenan en Redis DBMS, y en formato hexadecimal, un volcado de todos los números de serie de los certificados requiere aproximadamente 6.7 GB. El proceso de agregar todos los certificados revocados y activos tarda unos 40 minutos y el proceso de generar una estructura empaquetada basada en el filtro Bloom tarda otros 20 minutos.

Mozilla actualmente garantiza que la base de datos CRLite se actualice cuatro veces al día (no todas las actualizaciones se entregan a los clientes). La generación de actualizaciones delta aún no se ha implementado: el uso de bsdiff4, utilizado para crear actualizaciones delta para las versiones, no proporciona la eficiencia adecuada para CRLite y las actualizaciones son excesivamente grandes. Para eliminar este inconveniente, está previsto reelaborar el formato de la estructura de almacenamiento para eliminar la reconstrucción y eliminación de capas innecesarias.

CRLite actualmente funciona en Firefox en modo pasivo y se utiliza en paralelo con OCSP para acumular estadísticas sobre el correcto funcionamiento. CRLite se puede cambiar al modo de escaneo principal; para hacer esto, debe configurar el parámetro security.pki.crlite_mode = 2 en about:config.

Mozilla implementa CRLite para comprobar si hay certificados TLS problemáticos

Fuente: opennet.ru

Añadir un comentario