3 pontos por GN⁺ 2025-01-09 | 1 comentários | Compartilhar no WhatsApp
  • A pesquisa identificou mais de 1.700 chaves DKIM públicas com menos de 1.024 bits. Chaves RSA menores que 1.024 bits são inseguras e, desde o RFC 8301 de 2018, seu uso foi descontinuado.
  • Objetivo do experimento: extrair a chave privada de uma chave pública RSA de 512 bits divulgada e verificar se a validação DKIM passa em serviços de e-mail importantes (Gmail, Outlook, Yahoo Mail etc.)
    • Foi testado se era possível assinar e-mails como se fosse o remetente original

Decodificação da chave pública RSA e geração da chave

  • A chave pública é uma chave RSA de 512 bits do domínio Redfin.com; ela é codificada no formato ASN.1 DER e também codificada em Base64.
  • Processo de decodificação da chave
    • Decodificar em Python a chave pública codificada em Base64 incluída na tag p
    • Extrair n (módulo) e e (expoente público)
  • Fatoração do módulo RSA
    • Uso do CADO-NFS: baseado no algoritmo Number Field Sieve
    • Especificação do servidor em nuvem: 8 vCPU, 32 GB de RAM (utilizando a Hetzner)
    • Configurar espaço de swap adicional de 32 GB e executar o CADO-NFS
    • Resultado: após aproximadamente 86 horas, foi bem-sucedida a fatoração de n em dois fatores p e q
  • Geração da chave privada RSA
    • Gerar a chave privada RSA a partir de p e q
    • Usar Python e a biblioteca PyCryptodome para exportar a chave privada em formato PEM

Teste de assinatura DKIM

  • Envio de e-mail após integrar a chave privada ao OpenDKIM
  • Verificação dos resultados de validação DKIM em vários serviços de hospedagem de e-mail
  • Resultados do teste:
    • DKIM aprovado: Yahoo Mail, Mailfence, Tuta
    • DKIM falhou: Gmail, Outlook, Zoho, Fastmail, entre outros
  • Yahoo, Mailfence e Tuta aprovaram sem perceber a fragilidade da chave de 512 bits

Conclusão

  • Vulnerabilidade da chave RSA de 512 bits
    • O que era possível com supercomputadores há 30 anos agora pode ser feito em poucos horas em um servidor na nuvem por menos de US$ 8
    • Não use chaves menores que 1.024 bits em assinaturas DKIM
  • Recomendações
    • Provedores de e-mail devem rejeitar automaticamente assinaturas DKIM que utilizam chaves RSA com menos de 1.024 bits
    • Proprietários de domínio devem revisar seus registros DKIM e atualizá-los para 1.024 bits ou mais
    • É possível validar a chave DKIM pelo comprimento da string Base64: uma chave de 1.024 bits tem pelo menos 216 caracteres

1 comentários

 
GN⁺ 2025-01-09
Opinião do Hacker News
  • Há 14 anos, escrevi um texto sobre uma tarefa que também era possível com chaves de 512 bits. Ao procurar por primos ou bitcoins, fiquei curioso para saber se existe alguma biblioteca de “atalho” para reduzir o espaço de busca. Também questionei se esse tipo de biblioteca teria impacto no design de serviços de criptografia.

  • Houve uma sugestão de experimento divertido para configurar uma chave DKIM de 4096 bits. A maioria dos validadores DKIM/SPF online não encontra problemas ao consultar o DNS, mas o envio de e-mails de teste é exibido como falha. Aprendi que é permitido usar chaves com 2048 bits ou mais, mas não há necessidade de processá-las.

  • Há uma pergunta sobre por que não aumentamos drasticamente o tamanho das chaves em criptografia em geral. Mesmo com o aumento rápido da performance computacional e com o debate contínuo sobre computação quântica, por que não usamos chaves maiores do ponto de vista defensivo?

  • Com o CADO-NFS, uma chave DKIM RSA de 512 bits foi quebrada em 28 horas em um desktop. Dizem que uma chave de 1024 bits ainda é difícil em nível de hobby, mas deve ser viável no meio acadêmico.

  • O título foi alterado um pouco. O título original era "How We Cracked a 512-Bit DKIM Key for Less Than $8 in the Cloud".

  • Alguns provedores de DNS limitam para permitir apenas chaves de 1024 bits; por exemplo, o wordpress.com faz essa limitação.

  • Como a Hover não suporta registros TXT com mais de 255 caracteres, foi necessário interromper o gerenciamento de DNS. O problema foi resolvido com a Digital Ocean. Espero que a criptografia de curva elíptica se torne padrão.

  • A maioria dos provedores reconhece chaves de 512 bits como inseguras e rejeita a assinatura DKIM, mas Yahoo Mail, Mailfence e Tuta relataram dkim=pass. Fica a dúvida se o Google falhou por causa da assinatura DKIM ou por falha no SPF.

  • Houve elogios pela abordagem prática. Não está claro o quão antiga essa publicação é; com base em envios anteriores do autor, presume-se que tenha sido escrita hoje.