Algoritmo SHA-1 perigoso removido das bibliotecas SSH


A complexidade dos ataques ao SHA-1. O preço é baseado no cálculo do preço do aluguel de um GTX 1060 a US $ 35 / mês.

Muito mais tarde que todos os outros, mas os desenvolvedores das bibliotecas para SSH decidiram finalmente desativar a função criptográfica SHA-1 desatualizada por padrão. Hoje, a seleção da chave de autenticação do servidor SHA-1, ou seja, um conflito com o prefixo selecionado, em um cluster de GPU alugado custará US $ 45 mil , conforme indicado na tabela acima. Isso torna o ataque acessível não apenas para serviços de inteligência do estado, mas também para clientes comerciais.

A desativação do SHA-1 por padrão foi anunciada simultaneamente pelos desenvolvedores das bibliotecas OpenSSH openSSH ( notas de versão ) e libssh ( alteração de código ).

O Secure Hash Algorithm (SHA) foi desenvolvido pela NSA em colaboração com o NIST. A primeira versão do SHA-0 foi introduzida em 1993, mas a NSA logo se lembrou dessa versão, citando um erro que descobriram que nunca foi divulgado.

Uma versão fixa da NSA foi publicada em 1995, denominada SHA-1.

A função hash criptográfica SHA-1 (Secure Hash Algorithm 1) gera uma sequência de 160 bits chamada de resumo de hash. Teoricamente, os resumos devem ser exclusivos para cada arquivo, mensagem ou outra entrada na função. Como valor de entrada, o SHA-1 aceita uma mensagem no máximo2641bit, ou seja, aproximadamente 2 exabytes.

É claro que o intervalo de valores de resumo é menor que o intervalo de valores de entrada. Mas, na prática, as colisões de resumo não devem ser possíveis, dados os recursos de desempenho dos recursos de computação existentes. Infelizmente, o SHA-1 não atende mais a esse critério.

Em 2017, os funcionários do Google e do Centro de Matemática e Ciência da Computação de Amsterdã apresentaram a primeira maneira de gerar colisões para o SHA-1 .

Eles publicaram uma prova: dois documentos PDF com conteúdos diferentes, mas as mesmas assinaturas digitais SHA-1.


  $ls -l sha*.pdf 
  -rw-r--r--@ 1 amichal  staff  422435 Feb 23 10:01 shattered-1.pdf
  -rw-r--r--@ 1 amichal  staff  422435 Feb 23 10:14 shattered-2.pdf
  $shasum -a 1 sha*.pdf
  38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-1.pdf
  38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-2.pdf



No site shattered.it , você pode verificar se qualquer arquivo está incluído no espaço de possíveis colisões. Ou seja, é possível pegar outro conjunto de dados (arquivo) com o mesmo hash. O vetor de ataque é claro: um invasor pode substituir um arquivo "bom" por sua cópia por um marcador, uma macro maliciosa ou um downloader de Trojan. E esse arquivo "ruim" terá o mesmo hash ou assinatura digital.

Nos últimos anos, muitos programas e serviços pararam de usar o SHA-1 depois que os pesquisadores mostraram maneiras práticas de falsificar assinaturas digitais usando o SHA-1. A opinião unânime dos especialistas é que esse algoritmo agora não é seguro em quase todos os contextos de segurança.

O Google há muito tempo desconfia do SHA-1, principalmente ao usar esse recurso para assinar certificados TLS. Em 2014, a equipe de desenvolvimento do Chrome anunciou a eliminação progressiva do SHA-1.

Em 2017, os pesquisadores usaram a infraestrutura do Google para realizar cálculos e verificar cálculos teóricos de quanto a busca por colisão levaria. Os desenvolvedores dizem que esse foi um dos maiores computadores já feitos pelo Google. Foram realizados nove quintilhões de cálculos de SHA-1 (9.223.372.036.854.775.808), que exigiram 6.500 anos de processador na primeira fase e 110 anos de GPU na segunda fase do ataque.

Blocos de mensagens com o mesmo hash SHA-1


Em 2019, os pesquisadores Gaetan Laurent e Thomas Peyrin demonstraram um ataque ao encontrar colisões com o prefixo escolhido, o que faz sentido na seleção de chaves de criptografia PGP / GnuPG específicas. Finalmente, em janeiro de 2020, os autores conseguiram otimizar o ataque por uma ordem de magnitude e reduzir seu custo teórico a um preço comercialmente aceitável (consulte a tabela acima e pdf ). Para demonstrar, eles criaram um par de chaves PGP / GnuPG diferentes com os mesmos certificados SHA-1.

Como defesa contra um ataque ao encontrar colisões SHA-1, é recomendável alternar para melhores funções de hash criptográfico SHA-256 e SHA-3.

Os desenvolvedores do OpenSSH, que escreveram nas notas para a versão mais recente, citam este estudo a partir de janeiro de 2020: “Agora você pode executar ataques com o prefixo selecionado usando o algoritmo SHA-1 por menos de 50 mil dólares. Por esse motivo, em um futuro próximo, desativaremos o algoritmo padrão de assinatura de chave pública ssh-rsa. Infelizmente, esse algoritmo ainda é amplamente utilizado. Apesar da existência de alternativas melhores, por muito tempo ele permaneceu o único algoritmo de assinatura de chave pública especificado pelo SSH RFC original. ”

Entre as melhores alternativas, os desenvolvedores do OpenSSH chamam os algoritmos RFC8332 RSA SHA-2 (suportados pelo OpenSSH 7.2 e já usados ​​por padrão se o servidor e o cliente suportam), ssh-ed25519 (suportado na 6.5) e RFC5656 ECDSA (da versão 5.7) .

Para verificar se o servidor usa o algoritmo SHA-1 fraco ao gerar a chave pública para autenticação, tente conectar-se a ele após remover o algoritmo ssh-rsa da lista de permitidos no ssh (1) :

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

Se a verificação falhar e outros tipos de chaves não estiverem disponíveis, o software do servidor deverá ser atualizado.

Nas versões futuras do OpenSSH, a opção UpdateHostKeys será ativada por padrão, na qual o cliente alternará automaticamente para os melhores algoritmos. Pode ser ativado manualmente.

Aparentemente, o desligamento completo do SHA-1 levará muito tempo. Gaetan Laurent, do Instituto Nacional de Pesquisa em Ciência da Computação e Automação (França), um dos co-autores do estudo de janeiro, não espera que os desenvolvedores do OpenSSH façam isso rapidamente: “Quando eles desabilitarem completamente o SHA-1, será impossível conectar-se da nova versão do OpenSSH ao dispositivo com o antigo Servidor SSH, - escreveele. - Provavelmente, antes disso, eles executarão uma série de etapas graduais (com avisos altos). Por outro lado, em sistemas embarcados com SSH que não são atualizados há muitos anos, provavelmente existem muitos problemas de segurança; portanto, pode não ser tão ruim interromper o trabalho deles ... De qualquer forma, estou bastante satisfeito com essa mudança. exatamente o que queríamos alcançar :-) ”.

Depois que o OpenSSH e o libssh anunciaram planos para desativar o SHA-1, a lista de usuários do SHA-1 ficou menor, mas não desapareceu. O recurso ainda é suportado nas versões mais recentes da biblioteca OpenSSL, que muitos sites e serviços de Internet usam para implementar HTTPS e outros protocolos de criptografia. A versão mais recente do compilador GNU Collection, lançada no início deste mês, é assinada digitalmente com o hash SHA-1.

Linus Torvaldsdisseque nos repositórios Git as colisões de hash não representam um risco à segurança. Ele explicou que há uma grande diferença entre usar um hash criptográfico para assinaturas digitais em sistemas de criptografia e gerar "identificação de conteúdo" em um sistema como o Git. Quando todos os dados estão em domínio público, um ataque real é quase impossível. Os autores do trabalho científico dão um exemplo de ataque a documentos com o mesmo prefixo. Esse ataque foi bem-sucedido porque o próprio prefixo está "fechado" dentro do documento, como um blob. Se tivermos código aberto no repositório, isso é uma questão completamente diferente. Dificilmente é possível criar esse prefixo a partir do código fonte (somente do blob). Em outras palavras, para criar um prefixo idêntico e, em seguida, gerar ramificações de código com os mesmos hashes SHA-1, você precisará injetar alguns dados aleatórios no código, o que será notado imediatamente. Linus dizque existem lugares onde você pode ocultar os dados, masgit fsckjá pega esses truques. No entanto, a Linus tem um plano de evitar o uso do SHA-1 para que ninguém precise converter seus repositórios.

All Articles