Vulnerabilidade no PuTTY permite restaurar a chave privada do usuário

No PuTTY, cliente para o protocolo SSH amplamente utilizado na plataforma Windows, foi identificada uma vulnerabilidade crítica (CVE-2024-31497) que permite a recriação da chave privada do usuário gerada usando o algoritmo ECDSA com a curva elíptica NIST P-521 (ecdsa-sha2-nistp521). Para quebrar a chave privada, é suficiente analisar aproximadamente 60 assinaturas digitais geradas pela chave problemática.

A vulnerabilidade se manifesta a partir da versão PuTTY 0.68 e também afeta produtos que incluem versões vulneráveis do PuTTY, como FileZilla (3.24.1 — 3.66.5), WinSCP (5.9.5 — 6.3.2), TortoiseGit (2.4.0.2 — 2.15.0) e TortoiseSVN (1.10.0 — 1.14.6). O problema foi corrigido nas atualizações PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 e TortoiseGit 2.15.0.1. Após a instalação da atualização, recomenda-se que os usuários gerem novas chaves e removam as antigas chaves públicas dos arquivos authorized_keys.

A vulnerabilidade é causada pela negligência dos desenvolvedores, que para gerar uma chave de 521 bits utilizaram um vetor de inicialização (nonce) baseado em uma sequência aleatória de 512 bits, provavelmente achando que a entropia de 512 bits seria suficiente e que os 9 bits restantes não teriam relevância. Como resultado, em todas as chaves privadas geradas no PuTTY utilizando o algoritmo ecdsa-sha2-nistp521, os primeiros 9 bits do vetor de inicialização sempre assumiam valores zero.

Para ECDSA e DSA, a qualidade do gerador de números pseudoaleatórios e a cobertura completa dos dados aleatórios do parâmetro usado no cálculo do módulo são cruciais, pois a definição de até mesmo alguns bits de informação sobre o vetor de inicialização é suficiente para realizar um ataque de recuperação sequencial de toda a chave privada. Para a recuperação bem-sucedida da chave, é suficiente ter a chave pública e analisar algumas dezenas de assinaturas digitais geradas com a chave problemática para dados conhecidos pelo atacante. O ataque se resume à resolução do problema HNP (Hidden Number Problem).

As assinaturas digitais necessárias podem ser obtidas, por exemplo, conectando o usuário a um servidor SSH do atacante ou a um servidor Git que utiliza SSH como transporte. As assinaturas necessárias para o ataque também podem ser conhecidas se a chave foi usada para assinar dados arbitrários, como commits do git, ao usar o agente SSH Pageant para redirecionar o tráfego ao host do desenvolvedor. A obtenção dos dados necessários para a recuperação da chave durante um ataque MITM é excluída, já que as assinaturas em SSH não são transmitidas em texto claro.

Observa-se que um uso semelhante de vetores de inicialização incompletos foi aplicado no PuTTY e em outros tipos de curvas elípticas, mas para algoritmos diferentes de ECDSA P-521, as vazamentos de informação não foram suficientes para implementar um ataque funcional de recuperação de chave. Chaves ECDSA de outros tamanhos e chaves Ed25519 não estão sujeitas a ataques.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster