Quando você visita um site e digita uma senha (ou preenche automaticamente uma do seu gerenciador de senhas ), você já se perguntou o que acontece nos bastidores?
Em outras palavras, como o site sabe se a senha que você digitou corresponde à senha armazenada?
A resposta tem a ver com como ele armazena sua senha e envolve uma técnica inteligente chamada hash .
O que há de errado com senhas de texto simples
Vamos pensar no banco de dados de usuários de um site como se fosse uma planilha. Cada linha representa um usuário e há duas colunas: nome de usuário e senha .
Para verificar se um usuário digitou a senha correta, você pode procurar o nome de usuário digitado e verificar se a coluna de senha dessa linha corresponde à senha digitada.
Parece bem simples, certo? Infelizmente, um banco de dados como esse – onde as senhas são armazenadas em texto simples – seria um desastre de segurança na vida real.
Isso porque um invasor teria apenas que obter acesso a esse banco de dados para obter acesso às senhas de todos os usuários. E não seriam apenas os dados deles neste site que seriam comprometidos. Eles poderiam tentar todos os combos de nome de usuário/senha em outros sites. As pessoas tendem a reutilizar as mesmas senhas, então provavelmente terão sucesso.
Por que o hash é mais seguro
Para proteger os usuários, a maioria dos sites modernos faz o hash de suas senhas antes de armazená-las.
O hash, como a criptografia, é um processo que converte qualquer sequência de dados em uma sequência de dados aparentemente aleatória e ilegível. Ao contrário da criptografia, no entanto, o hash não pode ser desfeito . Não existe uma “chave” que possa ser usada para “de-hash” uma senha com hash. É, em termos matemáticos, uma função de mão única .
Armazenar senhas em forma de hash é, portanto, mais seguro porque o hash não pode ser revertido para a senha original. Na prática, é um pouco mais complicado do que isso – mas a essência é que o hash permite que os sites permaneçam ignorantes sobre qual é sua senha real.
É por isso que os sites forçam você a criar uma nova senha quando você esquece a antiga. Eles não podem simplesmente dizer sua senha atual porque armazenaram apenas o hash. Na verdade, se um site for capaz de enviar sua senha atual depois que você a esqueceu, isso é uma indicação clara de que o site tem uma segurança muito ruim.
Como os sites verificam as senhas (com hash)
Se um site armazena apenas senhas com hash, como ele pode verificar se a senha que você digitou está correta?
Ao verificar o hash do que você digitou em relação ao hash de senha armazenado.
O hash tem a importante propriedade de que, se duas strings não corresponderem - mesmo que sejam diferentes em apenas um caractere - seus hashes parecerão completamente diferentes. Apenas duas strings que correspondam exatamente terão hashes correspondentes.* Portanto, se o hash do que um usuário inserir no campo de senha corresponder ao hash associado a esse usuário no banco de dados, o site saberá que a senha foi inserida corretamente.
Agora que você sabe como os sites armazenam (e verificam) suas senhas com hashes, não deixe que isso o impeça de tornar suas próprias senhas o mais fortes possível. Use nosso gerador de senhas aleatórias para criar senhas fortes de forma rápida e segura.
*Na verdade, isso não é estritamente verdade. Duas strings podem teoricamente ter o mesmo hash, o que é chamado de colisão de hash . Mas com a família SHA agora padrão de funções de hash, as colisões são tão raras e imprevisíveis que geralmente são ignoradas.