pt.phhsnews.com


pt.phhsnews.com / O que é SHAttered? Ataques de colisão SHA-1, explicados

O que é SHAttered? Ataques de colisão SHA-1, explicados


No primeiro dia de 2016, a Mozilla encerrou o suporte a uma tecnologia de segurança enfraquecida chamada SHA-1 no navegador da web Firefox. Quase imediatamente, eles reverteram sua decisão, já que isso cortaria o acesso a alguns sites mais antigos. Mas em fevereiro de 2017, seus medos finalmente se tornaram realidade: os pesquisadores quebraram o SHA-1 criando o primeiro ataque de colisão do mundo real. Aqui está o que tudo isso significa.

O que é SHA-1?

O SHA em SHA-1 significa Algoritmo de Hash Seguro , e, simplesmente, você pode pensar nisso como uma espécie de problema matemático ou método que embaralha os dados que são colocados nele . Desenvolvido pela NSA dos Estados Unidos, é um componente essencial de muitas tecnologias usadas para criptografar transmissões importantes na Internet. Métodos de criptografia comuns SSL e TLS, dos quais você pode ter ouvido falar, podem usar uma função hash como SHA-1 para criar os certificados assinados que você vê na barra de ferramentas do navegador.

Não aprofundaremos a matemática e a ciência da computação de qualquer uma das funções SHA, mas aqui está a idéia básica. Um "hash" é um código único baseado na entrada de qualquer dado. Até mesmo uma pequena seqüência aleatória de letras inseridas em uma função hash como SHA-1 retornará um número longo e definido de caracteres, tornando (potencialmente) impossível reverter a seqüência de caracteres de volta aos dados originais. É assim que o armazenamento de senhas geralmente funciona. Quando você cria uma senha, sua entrada de senha é criptografada e armazenada pelo servidor. Após o seu retorno, quando você digita sua senha, ela é criptografada novamente. Se corresponder ao hash original, a entrada pode ser assumida como a mesma e você terá acesso aos seus dados.

As funções de hash são úteis principalmente porque facilitam saber se a entrada, por exemplo, um arquivo ou uma senha, mudou. Quando os dados de entrada são secretos, como uma senha, o hash é quase impossível de reverter e recuperar os dados originais (também conhecidos como “chave”). Isso é um pouco diferente de “criptografia”, cujo propósito é embaralhar dados com o propósito de descodificá-los mais tarde, usando cifras e chaves secretas. Os hashs destinam-se simplesmente a garantir a integridade dos dados - para garantir que tudo seja igual. O Git, o software de controle e distribuição de versão para código aberto, usa hashes SHA-1 por essa razão.

Isso é muita informação técnica, mas para simplificar: um hash não é a mesma coisa que criptografia, é usado para identificar se um arquivo foi alterado .

Como essa tecnologia me afeta?

Digamos que você precisa visitar um site em particular. Seu banco, seu email, até mesmo sua conta do Facebook - todos usam criptografia para manter os dados que você envia para eles privados. Um site profissional fornecerá criptografia obtendo um certificado de uma autoridade confiável - um terceiro, confiável para garantir que a criptografia esteja no nível, privada entre o site e o usuário e não seja espionada por nenhuma outra parte. Esse relacionamento com o terceiro, chamado Autoridades de certificado ou CA , é crucial, pois qualquer usuário pode criar um certificado "auto-assinado" - você mesmo pode fazer isso sozinho em um máquina rodando Linux com Open SSL. A Symantec e a Digicert são duas empresas de CA amplamente conhecidas, por exemplo.

Vamos analisar um cenário teórico: o How-To Geek quer manter as sessões dos usuários logadas privadas com criptografia, então solicita uma CA como a Symantec com um Solicitação de Assinatura de Certificado ou CSR . Eles criam uma chave pública e chave privada para criptografar e descriptografar dados enviados pela Internet. A solicitação de CSR envia a chave pública à Symantec junto com informações sobre o site. A Symantec verifica a chave em relação ao seu registro para verificar se os dados estão inalterados por todas as partes, porque qualquer pequena alteração nos dados torna o hash radicalmente diferente.

Essas chaves públicas e certificados digitais são assinados por funções hash, porque a saída de essas funções são fáceis de ver. Uma chave pública e certificado com um hash verificado da Symantec (em nosso exemplo), uma autoridade, garante ao usuário do How-To Geek que a chave não foi alterada e não foi enviada por alguém mal-intencionado.

Como o hash é fácil de monitorar e impossível (alguns diriam “difícil”) de reverter, a assinatura hash verificada e correta significa que o certificado e a conexão podem ser confiáveis, e os dados podem ser enviados criptografados de ponta a ponta . Mas e se o hash não fosse realmente único ?

O que é um ataque de colisão e é possível no mundo real?

Você pode ter ouvido falar do “problema do aniversário” em matemática , embora você possa não saber o que foi chamado. A idéia básica é que, se você reunir um grupo suficientemente grande de pessoas, é bem provável que duas ou mais pessoas tenham o mesmo aniversário. Mais alto do que você esperaria, na verdade - o suficiente para que pareça uma estranha coincidência. Em um grupo tão pequeno quanto 23 pessoas, há 50% de chance de que dois compartilhem um aniversário

Essa é a fraqueza inerente em todos os hashes, incluindo o SHA-1. Teoricamente, a função SHA deve criar um hash exclusivo para todos os dados inseridos, mas à medida que o número de hashes aumenta, torna-se mais provável que diferentes pares de dados possam criar o mesmo hash. Assim, pode-se criar um certificado não confiável com um hash idêntico a um certificado confiável. Se eles conseguissem que você instalasse esse certificado não confiável, ele poderia se mascarar como confiável e distribuir dados mal-intencionados.

Encontrar hashes correspondentes em dois arquivos é chamado ataque de colisão . Sabe-se que pelo menos um ataque de colisão em larga escala já aconteceu para hashes MD5. Mas em 27 de fevereiro de 2017, o Google anunciou o SHAttered, a primeira colisão trabalhada para o SHA-1. O Google conseguiu criar um arquivo PDF que tinha o mesmo hash SHA-1 de outro arquivo PDF, apesar de ter um conteúdo diferente.

O SHAttered era executado em um arquivo PDF. Os PDFs são um formato de arquivo relativamente solto; muitas pequenas alterações no nível de bits podem ser feitas sem impedir que os leitores o abram ou causem diferenças visíveis. Os PDFs também costumam ser usados ​​para entregar malware. Embora o SHAttered possa funcionar em outros tipos de arquivos, como ISOs, os certificados são rigidamente especificados, tornando improvável tal ataque.

Então, como esse ataque é fácil de executar? O SHAttered foi baseado em um método descoberto por Marc Stevens em 2012, que exigiu mais de 2 ^ 60,3 (9,223 quintilhões) de operações SHA-1 - um número impressionante. No entanto, esse método ainda é 100.000 vezes menos operações do que seria necessário para obter o mesmo resultado com força bruta. O Google descobriu que, com 110 placas gráficas high-end trabalhando em paralelo, levaria aproximadamente um ano para produzir uma colisão. Alugar esse tempo de computação do Amazon AWS custaria cerca de US $ 110.000. Tenha em mente que à medida que os preços caem para peças de computador e você pode obter mais energia por menos, ataques como o SHAttered tornam-se mais fáceis de serem executados.

US $ 110.000 podem parecer muito, mas está no âmbito da acessibilidade para algumas organizações - significa que os ciber-vi- lianos da vida real poderiam forjar assinaturas de documentos digitais, interferir nos sistemas de backup e controle de versão como Git e SVN ou fazer com que uma ISO maliciosa do Linux parecesse legítima.

Felizmente, existem fatores atenuantes que impedem tais ataques. O SHA-1 é raramente usado para assinaturas digitais. As autoridades de certificação não fornecem mais certificados assinados com o SHA-1, e tanto o Chrome quanto o Firefox perderam o suporte para eles. Normalmente, as distribuições Linux são lançadas com mais freqüência do que uma vez por ano, tornando impraticável para um invasor criar uma versão mal-intencionada e gerar uma com o mesmo hash SHA-1.

Por outro lado, alguns ataques baseados no SHAttered são já está acontecendo no mundo real. O sistema de controle de versão do SVN usa o SHA-1 para diferenciar arquivos. O upload dos dois PDFs com hashes SHA-1 idênticos para um repositório SVN fará com que ele seja corrompido

Como posso me proteger dos ataques SHA-1?

Não há muito que o usuário comum possa fazer. Se você estiver usando somas de verificação para comparar arquivos, deverá usar SHA-2 (SHA-256) ou SHA-3 em vez de SHA-1 ou MD5. Da mesma forma, se você for um desenvolvedor, use algoritmos de hash mais modernos, como SHA-2, SHA-3 ou bcrypt. Se você está preocupado que o SHAttered tenha sido usado para dar a dois arquivos distintos o mesmo hash, o Google lançou uma ferramenta no site do SHAttered que pode verificar você.

Créditos de Imagem: Lego Firefox, Muito Hash, Por Favor, Não Machuque o Autor da Web desconhecido, Google.


Como usar o teclado para controlar o cursor do mouse no Windows

Como usar o teclado para controlar o cursor do mouse no Windows

Se você ficar sem um mouse temporariamente, não se preocupe - você ainda pode usar o seu PC. Você ficará feliz em saber que é possível mover o cursor no Windows usando apenas o teclado. Há um recurso no Windows chamado Mouse Keys que permite usar o teclado numérico para mover o mouse, clicar e dobrar.

(how-top)

As melhores maneiras gratuitas de compartilhar fotos com amigos e familiares (além do Facebook)

As melhores maneiras gratuitas de compartilhar fotos com amigos e familiares (além do Facebook)

O Facebook pode ser a plataforma padrão para compartilhar fotos, mas isso não significa que seja o único gratuito e fácil para usar a opção lá fora. Aqui estão algumas outras opções de compartilhamento de fotos sólidas para facilitar o compartilhamento de fotos com amigos e familiares da maneira que você quiser.

(how-top)