Ciência e Tecnologia

Hashing vs criptografia: qual é a diferença?

Para ser eficaz, a segurança cibernética deve ser fácil de entender e seguir. Mas o hashing sempre levantou muitas questões. É um tipo de criptografia? Quais algoritmos são seguros de usar? E por que temos que usar o algoritmo salt? Hoje, vamos mergulhar no mundo do hash vs criptografia e explicar tudo o que você precisa saber.

 

O que é criptografia?

 

A criptografia é o processo de proteger os dados. Independentemente dos algoritmos usados, você usa uma chave para converter uma mensagem de texto simples em um texto cifrado. Quando necessário, a ação pode ser executada de forma inversa, ou seja, você pode converter o texto cifrado de volta na mensagem de texto simples original. Se você quiser saber mais sobre criptografia, confira os tipos mais comuns de criptografia.

Outra parte muito importante da criptografia – especificamente, criptografia de chave pública – é que as partes que compartilham os dados criptografados podem ser autenticadas. Por fim, criptografar o mesmo arquivo várias vezes pode fornecer uma saída diferente, o que não é o caso quando você usa o hash de algo.

 

O que é hash?

 

Hashing é um processo de criptografia que, assim como a criptografia, embaralha os dados. Mas os algoritmos de hash digerem os dados originais em um hash de comprimento fixo ou um valor de hash. Independentemente do tamanho da mensagem original, o mesmo algoritmo de hash produzirá o mesmo número de caracteres. Em outras palavras, se você está fazendo hash de uma senha ou de um conjunto da Enciclopédia Britânica, o hash pode transformar ambos em um hash de 20 caracteres.

 

Um bom algoritmo de hash deve ter certas qualidades, como:

 

Velocidade. Às vezes, você precisa fazer hash de arquivos grandes, como gravações de vídeo HD.

 

Irreversível. Ao contrário da criptografia, você nunca quer poder transformar um hash em sua forma original. Abordaremos isso mais tarde quando falarmos sobre hash de senha.

 

Seguro. Proteger hashes significa que seu valor deve mudar substancialmente se a mensagem for alterada. Os melhores algoritmos de hash mudarão completamente, mesmo que um único caractere seja alterado.

 

Exclusivo. Hashes de dois arquivos diferentes não devem sair iguais. Quando isso ocorre (e às vezes acontece), é chamado de colisão de hash.

 

Além disso, uma boa prática é acoplar hashes com salt. Salt é um processo de adicionar caracteres aleatórios à senha original. Salt é adicionado à sua senha antes que um hash seja derivado. Salt torna sua senha, ou melhor, seu hash, única e, portanto, muito mais difícil de decifrar.

 

Por que uma colisão de hash é ruim?

 

Uma das principais características de um algoritmo de hash é sua singularidade. Você não quer que dois arquivos tenham o mesmo hash porque isso anula o propósito de todo o processo.

Embora abordaremos os usos de hash com mais detalhes posteriormente, em resumo, ele é usado principalmente para confirmar a autenticidade das senhas sem revelar as próprias senhas.

Digamos que sua senha “un!cornsf0rever” tenha sido hash para um valor de “qwe123”. Se alguém puder criar uma senha que também tenha um valor de hash de “qwe123”, poderá entrar em sua conta. Lembre-se, aplicativos e serviços não usam senhas – eles apenas comparam hashes.

Infelizmente, colisões de hash podem acontecer por acaso ou podem ser criadas deliberadamente. Para evitar esse problema, diferentes resoluções de colisão de hash, como hash aberto e fechado ou hash duplo, podem ser executadas.

 

A diferença entre hash e criptografia

 

Até agora, não deve haver muita confusão quando se trata de dados hash vs criptografados. Mas, por precaução, vamos juntar tudo antes de passarmos para os algoritmos de hash.

 

Hashing não é um tipo de criptografia — é uma forma de segurança criptográfica.

A criptografia funciona nos dois sentidos, enquanto o hash é uma função unidirecional.

O hash reduz o original a um conjunto fixo de caracteres. Este não é o caso de mensagens criptografadas.

A criptografia protege os dados, enquanto o hash protege sua integridade.

 

Hashing é comumente usado para proteger senhas. Se você tivesse que armazenar os dados dos usuários, você geraria hashes de senha e os armazenaria em um banco de dados em vez das senhas reais. Durante a autenticação, o hash da senha do usuário é comparado ao hash no banco de dados. Se eles corresponderem, o usuário terá acesso à sua conta.

 

Por que o hash é necessário?

 

Acabamos de falar sobre o uso de hash para senhas. Mas como não é um processo impecável (mais sobre isso depois), talvez devêssemos riscar completamente o hash e usar criptografia? Sabemos que a criptografia forte pode manter os dados seguros por centenas de anos. No entanto, embora o hash não ofereça segurança de dados superior, é importante de várias outras maneiras.

 

Como o hash é usado

 

Hashing é usado para assinaturas digitais. Da mesma forma que as senhas, dois hashes são comparados para verificar a identidade de alguém.

Protegendo a integridade do arquivo. Você pode comparar os hashes de um documento importante para determinar se ele foi alterado sem seu conhecimento.

O hash pode ajudar a comparar grandes conjuntos de dados. A verificação de dois bancos de dados de 10.000 usuários pode levar muito tempo, ao contrário de comparar seus hashes.

Detecção de plágio. Alguns algoritmos de hash podem procurar padrões que possam indicar plágio.

As linguagens de programação usam tabelas de hash para diferenciar entre funções de programação como “se” e palavras reais.

Estas são apenas algumas aplicações de algoritmos de hash. Agora, vamos dar uma olhada nos próprios algoritmos.

 

Algoritmos de hash comuns

 

Os algoritmos de hash definem as regras de como o hash é criado. Se o algoritmo não for seguro, os hackers podem fazer engenharia reversa para revelar a mensagem original. Aqui estão alguns dos algoritmos de hash mais conhecidos da atualidade.

 

MD5

 

O MD5 é um dos algoritmos de hash mais usados ​​no mundo. Mas há uma ressalva. O MD5 está quebrado. Está quebrado há muito tempo. Mais notavelmente, o MD5 é propenso a colisões de hash, uma maneira maliciosa ou acidental de criar dois documentos com o mesmo hash.

 

SHA

 

Secure Hash Algorithm, ou SHA, tomou o bastão do MD5 para se tornar o algoritmo de hash mais popular do mundo. Desenvolvido pela NSA, o algoritmo está agora em sua terceira iteração, SHA-2. Ao contrário de suas versões anteriores, SHA-0 e SHA-1, que funcionavam de maneira semelhante ao MD5, o SHA-2 é muito mais adequado para lidar com a segurança cibernética dos dias modernos por causa de suas seis variações possíveis: SHA-224, SHA-256, SHA -384, SHA-512, SHA-512/224 e SHA-512/256.

Já existe um algoritmo SHA-3 pronto para assumir quando solicitado. É mais rápido e foi projetado para resistir aos ataques aos quais o SHA-2 pode ser vulnerável.

 

Argon2

 

Argon2 é uma função de derivação de chave altamente recomendada para senhas. Possui três versões: Argon2d, Argon2i e Argon2id. Se você já tiver uma conta em um serviço que utiliza essa tecnologia, terá uma senha mestra. Argon2id para gerar uma chave de sua senha mestra com salt que é usado para criptografar e descriptografar sua chave secreta.

 

Tiger

 

Tiger é uma função hash de meados da década de 1990. É conhecido por sua velocidade e, apesar de sua idade, ainda é considerado seguro. Tiger pode produzir hashes de 128, 160 e 198 bits. Agora, há uma nova geração do algoritmo, Tiger2.

 

Protegendo hashes de senha com salt

 

O que acontece quando os hashes de senha não possui o salt? Como hashes idênticos significam entradas idênticas, sua senha pode estar em perigo se outra pessoa já tiver usado essa senha antes. Na verdade, as ferramentas online podem comparar seu hash de senha com mais de 800 bilhões de hashes quebrados para derivar a senha original.

Há outra maneira de explorar hashes de senha. Um hacker pode calcular valores para cada combinação (a, ab, abc, etc.) e então comparar seu hash de senha com o banco de dados que eles acabaram de criar. Pode ser tedioso e demorado, mas também é totalmente factível. É por isso que deixar hashes sem salt é realmente inseguro.

 

Conclusão

 

Embora o hash seja uma parte necessária da segurança cibernética, também é útil em muitos outros campos. No entanto, o hash tem alguns grandes problemas quando se trata de armazenar senhas. Por exemplo, algumas empresas ainda usam algoritmos de hash desatualizados, como o MD5, e muitas armazenam suas senhas de usuário sem salt.

É por isso que você deve sempre ter a autenticação multifator habilitada. Se alguém descobrir sua senha ou um banco de dados com hashes sem salt vazar online, sua conta ainda estará segura. Além disso, quando você deseja compartilhar arquivos com segurança, use aplicativos de criptografia de ponta a ponta,

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