Mozilla implementa CRLite para comprobar se hai certificados TLS problemáticos

Compañía Mozilla anunciou sobre o inicio das probas nas compilacións nocturnas de Firefox un novo mecanismo para detectar certificados revogados - CRLite. CRLite permítelle organizar a comprobación efectiva da revogación de certificados contra unha base de datos aloxada no sistema do usuario. Implementación CRLite de Mozilla publicado baixo a licenza gratuíta MPL 2.0. O código para xerar a base de datos e os compoñentes do servidor están escritos Pitão e Vaia. Engadíronse partes do cliente a Firefox para ler datos da base de datos preparado en lingua Rust.

Verificación de certificados mediante servizos externos en función do protocolo que aínda se utiliza OCSP (Protocolo de estado de certificado en liña) require acceso garantido á rede, leva a un atraso importante no procesamento de solicitudes (350 ms de media) e ten problemas para garantir a confidencialidade (os servidores OCSP que responden ás solicitudes reciben información sobre certificados específicos, que poden utilizarse para sitios que abre o usuario). Tamén existe a posibilidade de verificar as listas locais C.R.L. (Lista de revogación de certificados), pero a desvantaxe deste método é o tamaño moi grande dos datos descargados; actualmente a base de datos de certificados revogados ocupa uns 300 MB e o seu crecemento continúa.

Para bloquear certificados que foron comprometidos e revogados polas autoridades de certificación, Firefox utiliza unha lista negra centralizada desde 2015 OneCRL en combinación cunha chamada ao servizo Navegación segura de Google para identificar posibles actividades maliciosas. OneCRL, como CRLSsets en Chrome, actúa como unha ligazón intermedia que agrega listas de CRL das autoridades de certificación e ofrece un único servizo OCSP centralizado para comprobar os certificados revogados, polo que é posible non enviar solicitudes directamente ás autoridades de certificación. A pesar de moito traballo para mellorar a fiabilidade do servizo de verificación de certificados en liña, os datos de telemetría mostran que máis do 7% das solicitudes de OCSP caducan (hai uns anos esta cifra era do 15%).

Por defecto, se é imposible verificar mediante OCSP, o navegador considera válido o certificado. É posible que o servizo non estea dispoñible debido a problemas de rede e restricións nas redes internas, ou bloqueado por atacantes. Para evitar a verificación OCSP durante un ataque MITM, simplemente bloquee o acceso ao servizo de verificación. Para evitar parcialmente este tipo de ataques, implementouse unha técnica Imprescindible, que lle permite tratar un erro de acceso a OCSP ou a non dispoñibilidade de OCSP como un problema co certificado, pero esta función é opcional e require un rexistro especial do certificado.

CRLite permítelle consolidar información completa sobre todos os certificados revogados nunha estrutura facilmente actualizada, de só 1 MB de tamaño, o que permite almacenar unha base de datos CRL completa no lado do cliente.
O navegador poderá sincronizar diariamente a súa copia dos datos sobre certificados revogados, e esta base de datos estará dispoñible en calquera condición.

CRLite combina información de Transparencia do certificado, un rexistro público de todos os certificados emitidos e revogados e os resultados da dixitalización de certificados en Internet (recóllense varias listas CRL de autoridades de certificación e agrégase información sobre todos os certificados coñecidos). Os datos empaquetanse mediante cascada Filtros de floración, unha estrutura probabilística que permite a detección falsa dun elemento que falta, pero exclúe a omisión dun elemento existente (é dicir, con certa probabilidade, é posible un falso positivo para un certificado correcto, pero se garante a identificación dos certificados revogados).

Para eliminar os falsos positivos, CRLite introduciu niveis de filtro correctores adicionais. Despois de xerar a estrutura, búscanse todos os rexistros de orixe e identifícanse os falsos positivos. A partir dos resultados desta comprobación, créase unha estrutura adicional, que se fai cascada sobre a primeira e corrixe os falsos positivos resultantes. A operación repítese ata que se eliminen completamente os falsos positivos durante a comprobación de control. Normalmente, a creación de 7-10 capas é suficiente para cubrir completamente todos os datos. Dado que o estado da base de datos, debido á sincronización periódica, está lixeiramente por detrás do estado actual da CRL, a comprobación dos novos certificados emitidos despois da última actualización da base de datos CRLite realízase mediante o protocolo OCSP, incluíndo o uso do Grapado OCSP (Unha resposta OCSP certificada por unha autoridade de certificación é transmitida polo servidor que serve o sitio cando se negocia unha conexión TLS).

Mozilla implementa CRLite para comprobar se hai certificados TLS problemáticos

Usando os filtros de Bloom, a porción de información de decembro de WebPKI, que abarca 100 millóns de certificados activos e 750 mil certificados revogados, puido ser empaquetada nunha estrutura de 1.3 MB de tamaño. O proceso de xeración de estruturas require bastante recursos, pero realízase no servidor Mozilla e o usuario recibe unha actualización preparada. Por exemplo, en forma binaria, os datos de orixe utilizados durante a xeración requiren uns 16 GB de memoria cando se almacenan no DBMS Redis e, en forma hexadecimal, un volcado de todos os números de serie do certificado leva uns 6.7 GB. O proceso de agregación de todos os certificados revogados e activos leva uns 40 minutos, e o proceso de xeración dunha estrutura empaquetada baseada no filtro Bloom leva outros 20 minutos.

Actualmente Mozilla garante que a base de datos CRLite se actualice catro veces ao día (non todas as actualizacións se entregan aos clientes). A xeración de actualizacións delta aínda non se implementou: o uso de bsdiff4, usado para crear actualizacións delta para versións, non proporciona a eficiencia adecuada para CRLite e as actualizacións son razoablemente grandes. Para eliminar este inconveniente, está previsto reelaborar o formato da estrutura de almacenamento para eliminar a reconstrución e eliminación innecesarias de capas.

CRLite funciona actualmente en Firefox en modo pasivo e utilízase en paralelo con OCSP para acumular estatísticas sobre o correcto funcionamento. CRLite pódese cambiar ao modo de exploración principal; para facelo, cómpre establecer o parámetro security.pki.crlite_mode = 2 en about:config.

Mozilla implementa CRLite para comprobar se hai certificados TLS problemáticos

Fonte: opennet.ru

Engadir un comentario