Novo ataque Marvin revive falha de descriptografia de 25 anos no RSA
2 de Outubro de 2023

Um defeito relacionado ao preenchimento PKCS # 1 v1.5 em servidores SSL, descoberto em 1998 e acreditado ter sido resolvido, ainda afeta diversos projetos amplamente utilizados hoje.

Após testes extensivos que medem operações de ponta a ponta, pesquisadores da Red Hat descobriram várias variações do ataque de tempo original, coletivamente chamado de 'Ataque Marvin', que pode efetivamente contornar correções e mitigações.

O problema permite que atacantes potencialmente decifrem cifras RSA, forjem assinaturas e até mesmo decifrem sessões gravadas em um servidor TLS vulnerável.

Usando hardware padrão, os pesquisadores demonstraram que a execução do Ataque Marvin em apenas algumas horas é possível, provando sua praticidade.

A Red Hat adverte que a vulnerabilidade não se limita à RSA, mas se estende à maioria dos algoritmos criptográficos assimétricos, tornando-os suscetíveis a ataques de canal lateral.

Com base nos testes realizados, as seguintes implementações são vulneráveis ao Ataque Marvin:

OpenSSL (nível TLS): Timing Oracle na decifração RSA – CVE-2022-4304

OpenSSL (nível API): Tornar a API de decifração RSA segura para uso com preenchimento PKCS # 1 v1.5 – Sem CVE

GnuTLS (nível TLS): Tempos de resposta a cifras RSA malformadas em ClientKeyExchange diferem dos tempos de resposta de cifras com preenchimento correto PKCS # 1 v1.5.

- CVE-2023-0361
NSS (nível TLS): Melhorar a constante de tempo nas operações RSA.

- CVE-2023-4421
pyca/cryptography: Tentativa de mitigar ataques de Bleichenbacher na decifração RSA; ineficaz; requer uma solução no nível OpenSSL.

- CVE-2020-25659
M2Crypto: Mitigar os ataques de tempo de Bleichenbacher na API de decifração RSA; ineficaz; requer uma solução no nível OpenSSL.

- CVE-2020-25657
OpenSSL-ibmca: Soluções de tempo constante para RSA PKCS # 1 v1.5 e preenchimento OAEP na versão 2.4.0 – Sem CVE

Go: crypto/rsa DecryptPKCS1v15SessionKey tem vazamento limitado – Sem CVE
GNU MP: mpz_powm_sec vaza zero bits de ordem alta no resultado – Sem CVE

O Ataque Marvin não tem um CVE correspondente, apesar de destacar uma falha fundamental na decifração RSA, principalmente como os erros de preenchimento são gerenciados, devido à variedade e complexidade das implementações individuais.

Então, enquanto o Ataque Marvin é uma falha conceitual, não há uma correção ou patch singular que possa ser aplicado universalmente, e o problema se manifesta de maneira diferente em cada projeto devido às suas bases de código únicas e implementação de decifração RSA.

Os pesquisadores aconselham contra o uso da criptografia RSA PKCS # 1 v1.5 e instam os usuários impactados a procurar ou solicitar que os fornecedores forneçam vias alternativas de compatibilidade com versões anteriores.

Desabilitar simplesmente RSA não significa que você está seguro, adverte a seção de perguntas e respostas da página do Ataque Marvin.

O risco é o mesmo se a chave RSA ou o certificado for usado em outro lugar em um servidor que o suporte (servidores de e-mail SMTP, IMAP, POP e servidores HTTPS secundários).

Por fim, a Red Hat adverte que a certificação FIPS não garante proteção contra o Ataque Marvin, exceto para a certificação Nível 4, que garante boa resistência a ataques de canal lateral.

Embora não tenham havido sinais aparentes do Ataque Marvin sendo usado por hackers na selvagem, divulgar os detalhes e partes dos testes e códigos de fuzzing aumenta o risco de isso acontecer em breve.

Para aqueles interessados em mergulhar nos detalhes técnicos do Ataque Marvin, um artigo publicado alguns meses atrás aprofunda o problema e os testes realizados para apreciar seu impacto.

Publicidade

Pentest do Zero ao Profissional

O mais completo curso de Pentest e Hacking existente no Brasil, ministrado por instrutores de referência no mercado. Oferece embasamento sólido em computação, redes, Linux e programação. Passe por todas as fases de um Pentest utilizando ambientes realísticos. Se prepare para o mercado através da certificação SYCP. Saiba mais...