Hashing vs. Encryption: Qual é a diferença?

Hashing vs. Encryption

Como um site ou um aplicativo sabe que você está digitando a senha correta? Bem, é fácil supor que o sistema analisa o que você escreveu e compara-o ao que está registrado. É mais ou menos assim que funciona a autenticação moderna online. No entanto, existe um passo adicional e, como é frequentemente o caso, ele pode fazer a diferença entre ficar seguro e ficar exposto.

Os sites nos quais nos inscrevemos são encarregados de fazer todo o possível para manter os criminosos fora das nossas contas. E, como todos sabemos, a única maneira pela qual os bandidos podem entrar é através das nossas senhas. As senhas precisam ser armazenadas de alguma forma, o que pode ser um problema, porque se elas forem deixadas de uma forma simples e os hackers chegarem até elas, uma cópia-colagem será o suficiente para comprometer algumas contas. Você se depara com um problema praticamente idêntico se for diligente o bastante para saber que não consegue se lembrar de todas as senhas exclusivas que precisa usar e decidiu armazená-las digitalmente. Você nunca pode saber quando um malware vai roubar todas as minhas senhas.xlsx.

A criptografia vem para ajudar
A criptografia e o hashing são processos criptográficos. Eles transformam "mysecretpassword" (uma terrível senha a ser usada, por sinal) em uma cadeia de caracteres inelegíveis que é armazenada em um banco de dados. Da próxima vez que você fizer o login, "mysecretpassword" passa pelo mesmo processo, e a string resultante é comparada com o que está no banco de dados. A parte crucial é que, se os hackers obtiverem a string armazenada e colarem-na no campo Password, ela não funcionará.

Qual é, então, a diferença entre o hashing e a criptografia de senhas?

É simples: com o hash, você não tem como reverter o valor do hash (a string que você obtém após o hashing) de volta para o texto simples, enquanto que, com a criptografia, você tem uma chave que pode reverter o processo. Vamos nos aprofundar em alguns detalhes.

Hashing: a solução para uma Web que alcança o mundo inteiro

Aqui está algo que você provavelmente deveria ter em mente. Os provedores de serviços on-line que você usa e os seus funcionários não podem ver a sua senha. Se eles enviarem-na para você via email  ou se solicitarem-na por telefone ou chat ao vivo, isso significa que a sua senha não está com hash e, portanto, não está armazenada com segurança.

O hashing é,verdadeiramente, o único caminho a percorrer se você está construindo um serviço online. Como já mencionamos, é um processo unidirecional, o que significa que, se for implementado corretamente, os hackers não terão absolutamente nenhuma maneira de obter as senhas de texto simples dos usuários, mesmo que acessarem o banco de dados.

Pessoas diferentes criam senhas diferentes. Muitos usam padrões e palavras de teclado simples e fáceis de adivinhar, enquanto outros usam senhas longas e aparentemente aleatórias. Uma das características geniais do hashing é que, depois que estiverem com hash, os valores hash de "abc123" e "correcthorsebatterystaple" serão exatamente do mesmo tamanho, o que significa que os hackers não têm absolutamente nenhuma maneira de saber o que estão enfrentando. No entanto, existem armadilhas.

O mundo está evoluindo e as coisas que funcionavam há alguns anos não funcionam mais. Da mesma forma, os algoritmos de hashing que já foram considerados seguros há muito estão condenados à categoria "má ideia". Não há uma resposta conclusiva para a questão de qual o algoritmo que você deve usar, mas a maioria dos especialistas concordam que bcrypt e scrypt são os que você deve escolher. Mesmo os algoritmos de hash mais fortes podem não ser suficientes para proteger os usuários.

Os hackers desenvolveram uma variação de um ataque de força bruta que usa o que é conhecido como uma tabela arco-íris. As tabelas arco-íris são frequentemente preferidas às tentativas tradicionais de força bruta porque, embora uma tabela típica pese várias dúzias de gigabytes, ela tenta hashes pré-computados em vez de senhas de texto simples, o que torna o processo de quebra muito mais rápido.

Outro problema em confiar apenas no hashing é o fato de que muitos deles usam senhas idênticas. Senhas idênticas sob algoritmos de hashing idênticos produzem valores de hash idênticos.

Para derrotar os ataques da tabela arco-íris e contornar os hábitos de criação de senhas que não são ideais para os usuários, os criptógrafos usam o salting.O salting significa adicionar uma única seqüência de caracteres à senha antes de você fazer o hash. Como resultado, o sistema nunca armazenará dois valores de hash idênticos para duas senhas idênticas e, como os hackers não podem adivinhar qual será o salt, eles não podem usar as tabelas arco-íris para recuperar senhas comuns em texto simples.

É claro que o salt não ajuda se ele não for razoavelmente longo e, crucialmente, único. Evitar que os criminosos ponham as mãos nele também é muito importante. Tudo somado, armazenar as senhas de outras pessoas não é uma tarefa fácil. Mas e quanto a armazenar os seus próprios dados de login?

Criptografia: a maneira de manter os seus dados pessoais seguros

Obviamente, proteger os dados de outras pessoas é uma grande responsabilidade, mas isso não significa que você deva negligenciar as suas próprias credenciais de login. Como você provavelmente já deve saber, as suas senhas devem ser longas, complexas e crucialmente, únicas. Lembrar tantas senhas simplesmente não é possível, o que significa que você deve pensar em uma solução de armazenamento.

Colá-las em um arquivo de texto não é uma boa ideia, mas hashing essas senhas também não. Você precisa de um processo de mão dupla que as mantenha ofuscadas durante a maior parte do tempo, permitindo que você as acesse quando a necessidade se apresentar. É aqui que entra a criptografia.

Se você colocar um valor de hash ao lado de uma versão criptografada de uma senha, poderá ficar confuso sobre qual é qual. Ambas se parecem com caracteres aleatórios empacotados juntos, e ambas não têm nenhuma semelhança com a senha real. A diferença está em como a senha foi transformada na string de aparência aleatória. Essa diferença também permite que os dados criptografados sejam revertidos para o seu formato original.

A criptografia usa uma chave para embaralhar as informações e, como todos sabemos, as chaves bloqueiam e desbloqueiam as coisas. Com o hash, não há chave e, portanto, não há como recuperar a senha original.

Mais uma vez, se a criptografia for segura, ela precisa ser feita corretamente. Escolher o algoritmo certo é fundamental e, portanto, é a foram de garantir que a chave que descriptografa os dados esteja adequadamente protegida.

Quando você tem um servidor que precisa manter os dados de login de milhares e milhares de usuários, garantindo que tudo corra bem, isso não é fácil de conseguir. É por isso que os especialistas em segurança dizem que o provedor de serviços online deve se ater ao hash. Felizmente, se seus dados pessoais estiverem envolvidos, você tem as ferramentas que podem ajudá-lo a criptografar a sua senha com segurança.

O Gerenciador de Senhas do Cyclonis, por exemplo, usa o AES-256 para embaralhar os seus nomes de usuário, senhas e o resto das suas informações pessoais. Usando uma senha mestra da sua escolha, ela cria uma chave de criptografia que nunca é transmitida para os nossos servidores.

Além de criptografar os seus dados confidenciais, o Gerenciador de Senhas do Cyclonis vem com vários recursos que podem tornar a sua vida muito mais conveniente. A Carteira do Gerenciador de Senhas do Cyclonis, por exemplo, permite que você salve muito mais do que os seus dados de login. Detalhes de pagamento, informações de perfil e notas privadas podem ser organizadas no seu cofre e, graças a essa extensão de navegador, tudo isso estará ao alcance do seu braço sempre que você precisar.

Clique aqui para saber mais sobre o Gerenciador de Senhas do Cyclonis.

October 15, 2018

Deixe uma Resposta

IMPORTANTE! Para poder prosseguir, você precisa resolver a seguinte conta.
Please leave these two fields as is:
O que é 4 + 10 ?