technology

O ataque criptográfico do ROBÔ à RSA está de volta com o nome de Marvin • Strong The One

.

Um engenheiro identificou falhas não detectadas de longa data em um método de 25 anos para criptografar dados usando criptografia de chave pública RSA.

Em um papel intitulado “Everlasting ROBOT: the Marvin Attack”, Hubert Kario, engenheiro de qualidade sênior da equipe QE BaseOS Security da Red Hat, mostra que muitas implementações de software do PKCS#1 v1.5 O esquema de preenchimento para troca de chaves RSA que anteriormente eram considerados imunes ao ataque amplamente conhecido de Daniel Bleichenbacher são, de fato, vulneráveis.

Em 1998, Bleichenbacher, um criptógrafo suíço que atualmente trabalha para o Google, mostrou [PDF] que um cliente de um servidor SSL/TLS poderia usar um oráculo – neste caso, informações coletadas das respostas de erro do servidor – para aprender o suficiente sobre o preenchimento – dados adicionados a uma sequência de bytes garantem o comprimento adequado – para descriptografar a mensagem protegida.

Esta vulnerabilidade apareceu repetidamente, mais recentemente em 2017 quando pesquisadores de segurança identificaram que pelo menos oito fornecedores de TI e projetos de código aberto eram vulneráveis ​​a uma variação do ataque original de Bleichenbacher. Os pesquisadores apelidaram seu ataque ROBÔque significa Return Of Bleichenbacher’s Oracle Threat.

Kario chama sua técnica de Marvin, em referência a Marvin“o Android Paranóico” do Guia do Mochileiro das Galáxias, de Douglas Adams, e como uma homenagem ao apelido de ROBÔ.

“Neste artigo, mostramos que ataques do tipo Bleichenbacher à descriptografia RSA não apenas ainda são possíveis, mas também que implementações vulneráveis ​​são comuns”, explica o artigo. “Atacámos com sucesso múltiplas implementações usando apenas o tempo de operação de desencriptação e mostrámos que muitas outras são vulneráveis”.

Essencialmente, ao enviar textos cifrados RSA especificamente criados para um servidor que usa PKCS#1 v1.5 e medir a quantidade de tempo necessária para processar as mensagens, é possível eventualmente ler um texto simples direcionado – para descriptografar a mensagem. O invasor também pode usar essas informações para falsificar assinaturas digitais.

“Para um servidor TLS cujo padrão é a troca de chaves de criptografia RSA, isso significa que o invasor pode gravar uma sessão e descriptografá-la mais tarde”, diz o site Marvin. explica. “Para hosts TLS que usam pacotes de criptografia seguros, o invasor teria que realizar um ataque massivamente paralelo para forjar uma assinatura do servidor antes que o tempo limite do cliente expirasse durante a tentativa de conexão. Isso torna o ataque difícil, mas não impossível.”

O artigo de Kario descreve um ataque prático à biblioteca M2Crypto usando chaves RSA de 1024 bits em um Lenovo T480s, Intel i7-8650U que foi capaz de descriptografar o texto cifrado RSA em 163.000 chamadas Oracle que testaram a conformidade de preenchimento. O ataque levou cerca de nove horas para ser concluído. Segundo o jornal, o problema foi reportado em outubro de 2020, atribuído CVE-2020-25657 (ver tabela abaixo), e uma correção parcial foi implementado. Mas acredita-se que a biblioteca ainda esteja vulnerável.

Estimar os tempos de ataque em servidores TLS é complicado, diz o jornal, acrescentando que depende do hardware e software envolvidos, bem como de quanto acesso o invasor tem. “Para um invasor que pode obter acesso a um host conectado ao mesmo switch de rede que a vítima, o pior cenário (para a vítima) exigiria alguns dias para realizar o ataque contra uma versão vulnerável do OpenSSL e algumas horas para atacar o NSS”, diz o jornal.

A recomendação de Kario é parar de usar a criptografia RSA PKCS#1 v1.5, uma vez que apenas os servidores que implementam a criptografia RSA são afetados. A maioria dos clientes modernos, diz ele, depende do Elliptic Curve Diffie Hellman, portanto, desabilitar conjuntos de criptografia que usam RSA deve ser possível fora de ambientes que tenham sistemas legados para suportar.

Kario identificou pelo menos sete implementações afetadas, algumas das quais com correções confirmadas, mas diz que a maioria das implementações criptográficas do RSA PKCS#1 v1.5 são provavelmente vulneráveis.

APIs em Go (criptografia/rsa DecryptPKCS1v15SessionKey) e GNU MP (mpz_powm_sec) também apresentaram erros que os tornaram suscetíveis a ataques de temporização.

Os interessados ​​em testar seus sistemas podem usar o Kario’s roteiro para testar servidores TLS e os associados instruções.

Kario conclui: “Finalmente, não acreditamos que isso esteja limitado ao próprio RSA. Qualquer implementação que use implementação inteira de propósito geral (como o modo padrão do BIGNUM do OpenSSL, MPI do NSS, BigInteger do Java, int do Python, apint do Rust, Gnu MP’s mpz_t, matemática/big Int de Go, etc.) sofrerão dos mesmos problemas.” ®

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo