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 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 .
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 ?
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
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 restaurar o Firefox às suas configurações padrão e iniciar o Fresh
Qualquer navegador pode ficar lento e ficar sobrecarregado ao instalar plug-ins, criar histórico e alterar configurações. O Firefox pode “atualizar” o seu perfil para fornecer rapidamente um quadro limpo, mantendo os dados mais importantes. Isso permitiria que você experimentasse o Firefox Quantum com um novo perfil, apressasse o Firefox se ele se tornasse lento ou corrigisse outros problemas do navegador.
Por que você não deve usar garfos do Firefox como Waterfox, Pale Moon ou Basilisk
Se você não gosta do Firefox Quantum, use o Firefox ESR em vez RELACIONADO: O que há de novo no Firefox Quantum, o Firefox que você estava esperando Nós gostamos do Firefox Quantum, que é mais rápido e moderno que os lançamentos anteriores do Firefox. Se você quiser continuar usando seus complementos antigos que não funcionam mais no Firefox Quantum, recomendamos o ESR (Firefox Extended Support Release) da Mozilla.