A ElevenPaths cria um add-on para que o Firefox seja compatível com o recurso Certificate Transparency

ElevenPaths    4 abril, 2019
O recurso certificate transparency é obrigatório no Chrome para os novos certificados criados desde finais de 2017 e mostrará um alerta nas páginas protegidas por certificados que não estejam armazenados no Chrome e que possam ter sua data checada. Nenhum outro navegador suporta o recurso certificate transparency e o Firefox tenta utilizar o recurso há anos, mas não o conseguiu por problemas de desempenho que, até o momento, não foram solucionados.

Connection not private alert imagem
Criamos nosso próprio certificador através de uma extensão
Já que a Mozilla não tem ainda uma data definida para ativar essa funcionalidade, decidimos criar uma extensão própria para que o navegador possa testar o cumprimento do certificate transparency nos sites visitados pelo usuário, ou ao menos saber se estas páginas tem o SCT (Signed Certificate Timestamp) corretos.
Um certificado é considerado válido se conta com um SCT, definido pela entidade certificadora no momento em que faz o upload do mesmo nos logs dos navegadores, que então podem comparar o registro armazenado com aquele mostrado pelas páginas que se tenta abrir. É isso que o Chrome vem fazendo há um bom tempo.
O SCT pode ser oferecido ao usuário de três maneiras diferentes:
  • Gravado diretamente no certificado
  • Através de uma extensão TLS
  • Usando o protocolo OCSP (Online Certificate Status Protocol)
Para um plugin no Firefox não é simples chegar à camada TLS ou do OCSP para comprovar as informações de SCT e, por isso, nossa extensão só é capaz de comprovar o SCT gravado diretamente nos próprios certificados. Ainda que essa não seja a solução ideal, o cenário é utilizado pela grande maioria de certificados digital hoje em dia.
Através desse link você pode baixar a extensão diretamente do repositório oficial do Firefox, programada por nosso colega Tomás Coiro, de Buenos Aires.
Certificate Transparency imagem
Porque não utilizar a solução da própria Mozilla?
A Mozilla incluiu há algum temo uma API para extensões do seu navegador que permitia calcular o valor do certificate transparency, basicamente comprovante que o site havia cumprido os requisitos de certificação.
 
Certificate Transparency imagem
 
Nós não pudemos usa-la, no entanto. Isso porque ela simplesmente não funciona, foram encontrados problemas de desempenho e se decidiu há um par de anos desativar o recurso.
problemas de desempenho imagem
Ainda assim é possível, de maneira muito simples, ativa-la novamente na página de configurações do navegador:
API imagem
Mas não se anime, a API não servirá para muita coisa. Ela não produz nada além de um log no console do navegador, podemos ver na imagem abaixo que sem o recurso habilitado, um “not applicable” é mostrado, com ele, obtivemos “compliant” ou “not_enough_scts” de acordo com o caso.
Not enough scts imagem
Até pensamos em ativa a opção por padrão na extensão para avaliar seus resultados, no entanto não realizamos os testes porque o impacto no desempenho do navegador é tremendo, por razões que vamos detalhar mais à frente.
Analisando o, agora em pausa, certificate transparency no Firefox não temos claramente definida a quantidade de SCT suficientes para o navegador, porque as contas realizadas por ele são algo estranhas.
SCT Policy Enforcer imagem
De qualquer forma (para além do problema de rendimento reconhecido pela Mozilla), comprovamos que na maioria das vezes o número de SCTs não é suficiente para satisfazer a política. Enquanto o Chrome nos mostra um status válido de segurança, o Firefox continua mostrando “not_enough_sct”.
 
Not enough SCT imagem
Em resumo, a Mozilla está trabalhando em uma solução para o uso de certificate transparency no seu navegador, mas parece que existem outras prioridades no roadmap do produto, o que atrasou o desenvolvimento de uma solução. Enquanto não haja uma solução definitiva, você pode utilizar nossa extensão de Certificate Transparency como paliativo.
Laboratório de Inovação ElevenPaths

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *