Mozilla implementa CRLite para verificar certificados TLS problemáticos

Mozilla Company anunciou o sobre o início dos testes nas compilações noturnas do Firefox um novo mecanismo para detectar certificados revogados - CRLite. CRLite permite organizar uma verificação eficaz de revogação de certificado em um banco de dados hospedado no sistema do usuário. Implementação CRLite da Mozilla publicado sob a licença gratuita MPL 2.0. O código para gerar o banco de dados e os componentes do servidor são escritos em Python e ir. Partes do cliente adicionadas ao Firefox para leitura de dados do banco de dados preparado na linguagem Rust.

Verificação de certificado usando serviços externos baseados no protocolo que ainda é usado OCSP (Online Certificate Status Protocol) requer acesso garantido à rede, leva a um atraso significativo no processamento de solicitações (350 ms em média) e tem problemas para garantir a confidencialidade (os servidores OCSP que respondem às solicitações recebem informações sobre certificados específicos, que podem ser usadas para julgar se o que sites que o usuário abre). Existe também a possibilidade de verificação local em listas CRL (Lista de revogação de certificados), mas a desvantagem deste método é o tamanho muito grande dos dados baixados - atualmente o banco de dados de certificados revogados ocupa cerca de 300 MB e seu crescimento continua.

Para bloquear certificados que foram comprometidos e revogados pelas autoridades de certificação, o Firefox usa uma lista negra centralizada desde 2015 OneCRL em combinação com uma chamada para serviço Navegação segura do Google para identificar possíveis atividades maliciosas. OneCRL, como Conjuntos de CRL no Chrome, atua como um link intermediário que agrega listas de CRL das autoridades certificadoras e fornece um único serviço OCSP centralizado para verificação de certificados revogados, possibilitando não enviar solicitações diretamente às autoridades certificadoras. Apesar de muito trabalho para melhorar a confiabilidade do serviço de verificação de certificados online, os dados de telemetria mostram que mais de 7% das solicitações OCSP expiram (há alguns anos esse número era de 15%).

Por padrão, caso não seja possível verificar via OCSP, o navegador considera o certificado válido. O serviço pode estar indisponível devido a problemas de rede e restrições nas redes internas, ou bloqueado por invasores - para contornar a verificação OCSP durante um ataque MITM, basta bloquear o acesso ao serviço de verificação. Parcialmente para prevenir tais ataques, uma técnica foi implementada Obrigatório, que permite tratar um erro de acesso OCSP ou indisponibilidade de OCSP como um problema com o certificado, mas esse recurso é opcional e requer registro especial do certificado.

O CRLite permite consolidar informações completas sobre todos os certificados revogados em uma estrutura de fácil atualização, de apenas 1 MB, o que possibilita armazenar um banco de dados CRL completo no lado do cliente.
O navegador poderá sincronizar diariamente sua cópia dos dados sobre certificados revogados, e esse banco de dados estará disponível sob quaisquer condições.

CRLite combina informações de Transparência do certificado, um registro público de todos os certificados emitidos e revogados e os resultados da digitalização de certificados na Internet (várias listas CRL de autoridades de certificação são coletadas e informações sobre todos os certificados conhecidos são agregadas). Os dados são empacotados usando cascata Filtros de flores, uma estrutura probabilística que permite uma falsa detecção de um elemento ausente, mas exclui a omissão de um elemento existente (ou seja, com uma certa probabilidade, é possível um falso positivo para um certificado correto, mas os certificados revogados têm a garantia de serem identificados).

Para eliminar falsos positivos, o CRLite introduziu níveis de filtro corretivos adicionais. Após a geração da estrutura, todos os registros de origem são pesquisados ​​e eventuais falsos positivos são identificados. Com base nos resultados desta verificação, é criada uma estrutura adicional, que é cascata sobre a primeira e corrige os falsos positivos resultantes. A operação é repetida até que os falsos positivos durante a verificação do controle sejam completamente eliminados. Normalmente, a criação de 7 a 10 camadas é suficiente para cobrir completamente todos os dados. Como o estado do banco de dados, devido à sincronização periódica, fica um pouco atrás do estado atual da CRL, a verificação dos novos certificados emitidos após a última atualização do banco de dados CRLite é realizada utilizando o protocolo OCSP, inclusive utilizando o Grampeamento OCSP (uma resposta OCSP certificada por uma autoridade de certificação é transmitida pelo servidor que atende o site ao negociar uma conexão TLS).

Mozilla implementa CRLite para verificar certificados TLS problemáticos

Usando filtros Bloom, a fatia de informações de dezembro do WebPKI, cobrindo 100 milhões de certificados ativos e 750 mil certificados revogados, pôde ser compactada em uma estrutura de 1.3 MB. O processo de geração da estrutura consome bastante recursos, mas é realizado no servidor Mozilla e o usuário recebe uma atualização pronta. Por exemplo, no formato binário, os dados de origem usados ​​durante a geração requerem cerca de 16 GB de memória quando armazenados no DBMS Redis e, no formato hexadecimal, um despejo de todos os números de série do certificado leva cerca de 6.7 GB. O processo de agregação de todos os certificados revogados e ativos leva cerca de 40 minutos, e o processo de geração de uma estrutura de pacote baseada no filtro Bloom leva mais 20 minutos.

Atualmente, a Mozilla garante que o banco de dados CRLite seja atualizado quatro vezes ao dia (nem todas as atualizações são entregues aos clientes). A geração de atualizações delta ainda não foi implementada - o uso do bsdiff4, usado para criar atualizações delta para lançamentos, não fornece eficiência adequada para CRLite e as atualizações são excessivamente grandes. Para eliminar esta desvantagem, está planejado retrabalhar o formato da estrutura de armazenamento para eliminar reconstruções desnecessárias e exclusão de camadas.

O CRLite atualmente funciona no Firefox em modo passivo e é usado em paralelo com o OCSP para acumular estatísticas sobre o correto funcionamento. O CRLite pode ser alternado para o modo de varredura principal; para fazer isso, você precisa definir o parâmetro security.pki.crlite_mode = 2 em about:config.

Mozilla implementa CRLite para verificar certificados TLS problemáticos

Fonte: opennet.ru

Adicionar um comentário