ROCA: Geração RSA vulnerável (CVE-2017-15361)

 

Uma vulnerabilidade recentemente descoberta na geração de chaves RSA usadas por uma biblioteca de software adotada em cartões inteligentes criptográficos, tokens de segurança e outros chips de hardware seguros fabricados pela Infineon Technologies AG permite um ataque prático de factorização, no qual o atacante calcula a parte privada de uma chave RSA. O ataque é viável para comprimentos de chaves comumente usados, incluindo 1024 e 2048 bits, e afeta os chips fabricados já em 2012, que agora são comuns. Avalie suas chaves agora com as ferramentas de detecção offline e on-line fornecidas e entre em contato com seu fornecedor se você for afetado. Os principais fornecedores, incluindo Microsoft, Google, HP, Lenovo, Fujitsu já lançaram as atualizações e diretrizes de software para uma mitigação. Os detalhes completos, incluindo o método de fatoração, serão lançados em 2 semanas na conferência ACM CCS como o documento de pesquisa “O Retorno do Ataque de Coppersmith: A Factorização Prática de RSA Moduli (ROCA).

 

Uma vulnerabilidade de segurança foi encontrada na implementação da geração de parênteses de chave RSA em uma biblioteca criptográfica usada em uma ampla gama de chips criptográficos produzidos pela Infineon Technologies AG. O produto também está integrado em autenticação, assinatura e tokens de criptografia de outros fornecedores e chips usados ​​para o Boot de Sistemas Operacionais Confiáveis. A vulnerabilidade está presente nos dispositivos certificados NIST FIPS 140-2 e CC EAL 5+ desde pelo menos o ano de 2012.

A vulnerabilidade algorítmica é caracterizada por uma estrutura específica dos primos RSA gerados, o que torna praticamente possível a factorização de comprimentos de chaves comumente utilizados, incluindo 1024 e 2048 bits. Somente o conhecimento de uma chave pública é necessário e não é necessário acesso físico ao dispositivo vulnerável. A vulnerabilidade NÃO depende de um gerador de números aleatórios fraco ou falso – todas as chaves RSA geradas por um chip vulnerável são afetadas. O ataque foi praticamente verificado para várias chaves RSA de 1024 bits selecionadas aleatoriamente e para várias chaves selecionadas de 2048 bits.

A estrutura específica dos primos em questão permite uma detecção rápida de chaves vulneráveis, mesmo em conjuntos de dados muito grandes. Esta propriedade é útil para mitigação (os usuários podem avaliar as próprias chaves para a vulnerabilidade), mas também para potenciais atacantes (as chaves vulneráveis ​​à factorização podem ser pré-selecionadas, sem passar por tentativas de factorização que consomem tempo). Os piores casos para a factorização de chaves de 1024 e 2048 bits são menores do que 3 meses de CPU e 100 anos de CPU, respectivamente, em um único núcleo de uma CPU recente comum, enquanto o tempo esperado é metade do pior caso . A factorização pode ser facilmente paralelizada em várias CPUs. Onde k CPUs estão disponíveis, o tempo de parede necessário para o ataque será reduzido em k-times – permitindo fatoração prática em ordem de horas ou dias. O preço do pior caso da factorização em uma instância de computação Amazon AWS c4 é de US $ 76 para a chave de 1024 bits e cerca de US $ 40.000 para a chave de 2048 bits.
A dificuldade do ataque de factorização não é a mesma para todos os comprimentos das chaves e NÃO está aumentando estritamente (algumas chaves mais longas podem demorar menos tempo para se facultar do que outras). As seguintes faixas de comprimento de chave são agora consideradas praticamente factorizáveis ​​(complexidade de tempo entre horas e 1000 anos de CPU no máximo): 512 a 704 bits, 992 a 1216 bits e 1984 a 2144 bits. Note-se que a chave RSA de 4096 bits não é praticamente factorizável agora, mas pode se tornar assim, se o ataque for melhorado.
A complexidade do tempo e o custo dos comprimentos de chave selecionados (Intel E5-2650 [email protected] Q2/2014):

  • 512 bit RSA keys – 2 CPU horas (custo de $0.06);
  • 1024 bit RSA keys – 97 CPU dias(custo de $40-$80);
  • 2048 bit RSA keys – 140.8 CPU anos, (custo de $20,000 – $40,000).

A vulnerabilidade foi encontrada por uma inspeção detalhada de um grande número de chaves RSA geradas e exportadas dos cartões inteligentes do fabricante por pesquisadores do laboratório CRoCS laboratory, Masaryk University, Enigma Bridge e Ca’ Foscari University. Os resultados completos serão apresentados em ACM Conference on Computer and Communications Security (ACM CCS ’17) a partir de 30 de outubro.

A vulnerabilidade foi divulgada para Infineon Technologies AG, seguindo o princípio da divulgação responsável, na primeira semana de fevereiro com acordo de um período de 8 meses antes de uma divulgação pública. Cooperamos com o fabricante e outras partes afetadas para ajudar a avaliar e mitigar essa vulnerabilidade durante esse período. Principais fornecedores, incluindo Microsoft, Google, HP, Lenovo, Fujitsu já divulgou as atualizações e diretrizes de software para uma mitigação. Agora estamos notificando o público em geral e lançando ferramentas para avaliar as chaves individuais.

Um invasor remoto pode calcular uma chave privada RSA a partir do valor de uma chave pública. A chave privada pode ser usada indevidamente para representação de um proprietário legítimo, decodificação de mensagens sensíveis, falsificação de assinaturas (como por versões de software) e outros ataques relacionados.

O impacto real da vulnerabilidade depende do cenário de uso, da disponibilidade das chaves públicas e dos comprimentos das chaves usadas. Encontramos e analisamos chaves vulneráveis ​​em vários domínios, incluindo documentos de cidadãos eletrônicos, tokens de autenticação, dispositivos de inicialização confiáveis, assinatura de pacote de software, TLS/HTTPS keys e PGP. O número atualmente confirmado de chaves vulneráveis ​​encontradas é de cerca de 760.000, mas possivelmente até duas a três magnitudes mais são vulneráveis. Os detalhes serão apresentados em duas semanas na conferência ACM CCS.

Os chips vulneráveis ​​são globais e não são necessariamente vendidos diretamente pela Infineon Technologies AG, pois os chips podem ser incorporados dentro de dispositivos de outros fabricantes.

O primeiro passo é detectar se você usa um chip com a biblioteca vulnerável. Como a vulnerabilidade está presente no biblioteca de software on-chip e não limitada apenas a um determinado lote de hardware, A única maneira confiável é gerar um par de chaves RSA no dispositivo e testar a chave pública pelas ferramentas fornecidas (veja abaixo). Recomenda-se testar também as chaves já em uso. Acreditamos que as ferramentas são muito precisas – é altamente improvável que uma chave segura seja marcada, e que uma chave vulnerável seja perdida.

Nós fornecemos as seguintes ferramentas:

Se uma chave vulnerável for encontrada, você deve entrar em contato com o fornecedor do dispositivo para obter mais dicas.

Os seguintes conselhos gerais podem ser aplicados:

  • Aplique a atualização do software, se disponível.
  • Substitua o dispositivo por um sem a biblioteca vulnerável.
  • Gere um par de chaves RSA seguro fora do dispositivo (por exemplo, através da biblioteca OpenSSL) e importe-o para o dispositivo. Não temos conhecimento de nenhuma vulnerabilidade em relação ao uso real da chave, apenas a fase de geração tem uma vulnerabilidade confirmada.
  • Use outro algoritmo criptográfico (por exemplo, ECC) em vez de RSA em dispositivos afetados.
  • Aplique gerenciamento de risco adicional dentro do seu ambiente, se a chave RSA em uso for detectada como vulnerável.
  • Use os comprimentos das chaves que não são afetados atualmente (por exemplo, 3936 bits) pelo nosso método de fatoração. Esteja ciente: use essa mitigação específica apenas como último recurso, pois o ataque pode ser melhorado.

P: O algoritmo RSA é inseguro em geral após a divulgação desta vulnerabilidade?
R: Não. Se os primos RSA são gerados como números verdadeiramente aleatórios, nosso método não pode ser aplicado. Por exemplo, as chaves geradas pela biblioteca OpenSSL NÃO são afetadas.

P: Como posso ter certeza de que minhas chaves não são afetadas?
R: Execute uma das ferramentas de detecção fornecidas. Acreditamos que a ferramenta praticamente não tem falsos positivos (se uma chave é marcada como vulnerável, é vulnerável) e sem falsos negativos (se uma chave não for detectada como vulnerável, é segura contra o nosso ataque).

P: Como posso mitigar a vulnerabilidade?
R: Entre em contato com seu fornecedor e peça ajuda, aplique o patch, se disponível.

P: Houve um aviso de segurança recente (10 de outubro) sobre Trusted Platform Modules (TPM) pela Microsoft, Google e outros fornecedores. Isso está conectado à vulnerabilidade anunciada nesta divulgação?
R: Sim, este é o resultado direto da vulnerabilidade encontrada, pois os dispositivos afetados estão usando TPMs com a biblioteca vulnerável.

P: As chaves ECC geradas nos chips afetados são vulneráveis?
R: Não encontramos nenhuma vulnerabilidade na geração de chaves ECC da biblioteca vulnerável.

P: O ataque do Coppershmith já foi usado para factorizar as chaves dos cartões inteligentes criptográficos. Esta é uma instância da mesma vulnerabilidade?
R: Não, este é diferente. Daniel J. Bernstein, Yun-An Chang, Chen-Mou Cheng, Li-Ping Chou, Nadia Heninger, Tanja Lange e Nicko van Someren em 2013 concebeu um método para explorar o gerador de números aleatórios falso em cartões de cidadãos taiwaneses, presentes devido a um defeito de fabricação em alguns dos
cartões https://smartfacts.cr.yp.to/smartfacts-20130916.pdf. Esta nova vulnerabilidade aplica-se a todos os chips equipados com a biblioteca vulnerável.

P: Como foi encontrada a vulnerabilidade?
R: Analisamos as propriedades estatísticas de um grande número de chaves RSA geradas e extraídas de vários cartões inteligentes durante o trabalho de pesquisa anterior publicado na conferência USENIX Security 2016
(https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/svenda). Não foi realizada nenhuma engenharia reversa do chip ou da biblioteca.

P: Os tokens de autenticação FIDO U2F são afetados?
R: Não. As especificações U2F permitem apenas a autenticação baseada em ECC.

 

Este artigo é uma tradução adaptada de https://crocs.fi.muni.cz/public/papers/rsa_ccs17

 

 

Precisa de ajuda?

+55 54 99645-0777

Petter Anderson Lopes. Todos os direitos reservados. 2017

Política de Privacidade | Termos e Condições | Segurança