CRLite, el nuevo mecanismo de Mozilla para la validación de certificados TLS
Recientemente Mozilla anunció el lanzamiento de un nuevo mecanismo de detección de certificados de revocación llamado “CRLite” y el cual se encuentra en las versiones nightly de Firefox. Este nuevo mecanismo permite organizar una verificación efectiva de revocación de certificados contra una base de datos alojada en el sistema de un usuario.
La verificación del certificado utilizada hasta ahora con el uso de servicios externos basados en el protocolo OCSP (Protocolo de estado del certificado en línea) requiere un acceso garantizado a la red, lo cual conduce a un retraso notable en el procesamiento de la solicitud (en promedio 350 ms) y tiene problemas de confidencialidad (los servidores responden a las solicitudes OCSP obtiene información sobre certificados específicos, que pueden usarse para juzgar qué sitios abre un usuario).
También existe la posibilidad de verificación local contra 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 revocación de certificados ocupa unos 300 MB y su crecimiento continúa.
Firefox ha estado utilizando la lista negra centralizada OneCRL desde 2015 para bloquear los certificados comprometidos y revocados por las autoridades de certificación junto con el acceso al servicio de navegación segura de Google para determinar la posible actividad maliciosa.
OneCRL, como CRLSetsen Chrome, actúa como un enlace intermedio que agrega listas de CRL de las autoridades de certificación y proporciona un servicio OCSP centralizado único para verificar los certificados revocados, lo que hace posible no enviar solicitudes directamente a las autoridades de certificación.
Por defecto, si no es posible verificar a través de OCSP, el navegador considera que el certificado es válido. De esta forma si el servicio no está disponible debido a problemas de red y restricciones internas de la red o que puede ser bloqueado por atacantes durante un ataque MITM. Para evitar tales ataques, se implementa la técnica Must-Staple, que permite interpretar el error de acceso OCSP o la inaccesibilidad OCSP como un problema con el certificado, pero esta característica es opcional y requiere un registro especial del certificado.
Sobre CRLite
CRLite permite traer información completa sobre todos los certificados revocados en una estructura fácilmente renovable de solo 1 MB, lo que hace posible almacenar toda la base de datos CRL en el lado del cliente. El navegador podrá sincronizar diariamente su copia de los datos en los certificados revocados y esta base de datos estará disponible bajo cualquier condición.
CRLite combina información de Certificate Transparency, el 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 centros de certificación y se agrega información sobre todos los certificados conocidos).
Los datos se empaquetan utilizando filtros Bloom, una estructura probabilística que permite una determinación falsa del elemento faltante, pero excluye la omisión de un elemento existente (es decir, con cierta probabilidad, son posibles falsos positivos para un certificado válido, pero se garantiza que los certificados revocados se detectarán).
Para eliminar las falsas alarmas, CRLite introdujo niveles de filtro correctivo adicionales. Después de que se genera la estructura, se enumeran todos los registros de origen y se detectan falsas alarmas.
En función de los resultados de esta verificación, se crea una estructura adicional que se conecta en cascada sobre la primera y corrige las falsas alarmas que han surgido. La operación se repite hasta que se excluyen completamente los falsos positivos durante la verificación.
Por lo general, para cubrir completamente todos los datos, crear de 7 a 10 capas es suficiente. Dado que el estado de la base de datos debido a la sincronización periódica está 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 lleva a cabo utilizando el protocolo OCSP, incluido el uso de la técnica de grapado OCSP.
La implementación de CRLite de Mozilla se publica bajo la licencia gratuita MPL 2.0. El código para generar la base de datos y los componentes del servidor están escritos en Python y Go. Las partes del cliente agregadas a Firefox para leer datos de la base de datos se preparan en el lenguaje Rust.
Fuente: https://blog.mozilla.org/