CEVIU Logo
Voltar

Fatoração de chaves RSA contendo muitos zeros

Aprofundamento CEVIU

Aprofundamento

O projeto badkeys identificou, em junho de 2026, uma nova classe de chaves RSA fracas que contêm módulos com blocos regulares de zeros, padrões chamados de 'módulos inesperadamente esparsos'. Esses módulos não são aleatórios: apresentam sequências repetidas de bytes nulos intercaladas com dados aparentemente aleatórios. Foram encontrados em certificados ativos (e já expirados) de grandes organizações como Yahoo e Verizon, além de dispositivos NetApp, e também em servidores SSH usando CompleteFTP versões 10.0.0 a 12.0.0 (dez/2016, mar/2019) e DSA nas versões 10.0.0 a 23.0.4 (dez/2016, dez/2023). A vulnerabilidade não está no algoritmo RSA em si, mas na implementação defeituosa de geração de chaves em softwares específicos, o que permite fatoração eficiente sem precisar quebrar RSA-2048 ou RSA-4096 de forma genérica.

O NIST recomenda chaves RSA de pelo menos 2048 bits desde 2015, e 3072 bits para uso até 2030. Chaves com padrões esparsos violam o pressuposto fundamental da criptografia RSA: que o módulo N = p × q seja um inteiro aleatório grande. Quando N contém estruturas previsíveis, como múltiplos blocos de zeros, métodos especializados de fatoração, como variações do algoritmo de Coppersmith ou ataques baseados em aproximação racional, tornam-se viáveis. Isso não é teórico: o artigo original de Schneier confirma que essas chaves foram fatoradas com sucesso em ambiente real, com base nos dados coletados pelo badkeys.

Por que isso importa

Essa descoberta importa porque mostra que falhas de implementação podem anular décadas de segurança teórica. Não é necessário avanço em algoritmos de fatoração geral para comprometer RSA, basta um erro de engenharia em uma biblioteca ou firmware. Os padrões identificados (Padrão 1 e Padrão 2) não são raridades estatísticas: aparecem em certificados públicos reais, incluindo infraestrutura crítica. Além disso, o fato de duas implementações independentes (NetApp e CompleteFTP) terem gerado chaves com estruturas semelhantes sugere que o problema pode estar em bibliotecas de criptografia compartilhadas ou em práticas incorretas de inicialização de RNG (geradores de números aleatórios), como o uso de sementes fracas ou repetidas.

Ainda não há evidência pública de exploração em larga escala, mas o risco persiste em sistemas legados que ainda usam versões afetadas do CompleteFTP ou firmware antigo de equipamentos NetApp. Como os certificados do Padrão 1 já expiraram, o foco atual está na detecção proativa: ferramentas como badkeys, ssh-audit e scripts de verificação de módulo (ex.: openssl rsa -in key.pem -noout -modulus | tr -d ':' | xxd -r -p | hexdump -C) permitem identificar chaves com alta densidade de zeros antes que sejam usadas em produção.

Impacto para desenvolvedores

Para desenvolvedores e administradores de sistemas, isso significa rever imediatamente como chaves RSA são geradas em seus ambientes. Evite bibliotecas ou ferramentas com histórico de problemas em geração de chaves, como versões antigas do OpenSSL antes do 1.1.1, ou SDKs proprietários que não documentam claramente o RNG usado. Prefira chaves geradas com openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:4096, que usa o RNG do sistema com entropia suficiente. Em ambientes embarcados ou IoT, valide se o firmware usa /dev/random ou /dev/urandom corretamente, e nunca reutilize sementes.

Também é crítico auditar chaves existentes: o badkeys oferece uma API pública e um CLI para verificação em lote. Se sua organização usa CompleteFTP, atualize imediatamente para versão 24.0.0 ou superior (lançada em janeiro de 2024, conforme comunicado oficial da EnterpriseDT). Para certificados TLS, revogue e emita novos com chaves geradas após auditoria completa, mesmo que o certificado ainda esteja válido, pois o módulo fraco pode ser fatorado a qualquer momento por um adversário com recursos moderados.

Perguntas frequentes

O que é a fatoração de chaves RSA com muitos zeros?

É uma vulnerabilidade prática em que chaves RSA têm módulos (N) com padrões repetidos de blocos de zeros, tornando-os matematicamente mais fáceis de fatorar. Não é um ataque teórico: foi observado em certificados reais e servidores SSH, e já resultou em fatorações confirmadas. O problema está na geração defeituosa da chave, não no algoritmo RSA.

Quais softwares foram afetados pela fraqueza de chaves RSA com zeros?

Certificados com o Padrão 1 foram encontrados em infraestrutura de Yahoo, Verizon e dispositivos NetApp. O Padrão 2 afeta servidores SSH com CompleteFTP versões 10.0.0 a 12.0.0 (RSA) e 10.0.0 a 23.0.4 (DSA), conforme relatado no artigo original de Schneier e confirmado pelo projeto badkeys.

Como verificar se minha chave RSA tem muitos zeros no módulo?

Use OpenSSL para extrair o módulo em hexadecimal e analisar a densidade de bytes nulos: openssl rsa -in chave.pem -noout -modulus | tr -d ':' | xxd -r -p | hexdump -C. Ferramentas automatizadas como o CLI do badkeys (badkeys --check key.pem) fazem essa verificação com base nos padrões conhecidos e são recomendadas para auditoria em larga escala.

O NIST já atualizou suas recomendações por causa dessa falha?

Não. O NIST SP 800-56B Rev. 2 (2023) e SP 800-57 Part 1 Rev. 5 (2024) mantêm a recomendação mínima de 2048 bits para RSA, com ênfase em boas práticas de geração, como uso de RNGs aprovados e validação de primos. A falha dos 'zeros' é classificada como falha de implementação, não como falha no tamanho ou no algoritmo, então as diretrizes permanecem válidas, mas exigem atenção operacional redobrada.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Segurança da Informação
Publicado
01 de julho de 2026
Editoria
CEVIU Segurança da Informação

Quer receber mais sobre CEVIU Segurança da Informação?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser