Se as senhas forem armazenadas com hash, como um computador saberia que sua senha é semelhante à última se você tentar redefinir sua senha? As duas senhas não seriam totalmente diferentes desde que uma seja hash e não pudessem ser revertidas?
11
Respostas:
Uma maneira de implementar isso é se você redefinir a senha, geralmente será solicitado que você insira sua senha antiga também. Você pode simplesmente usar a comparação de similaridade de string regular nessa situação, porque você tem as duas senhas no formato de texto sem formatação naquele momento.
Outra maneira de implementar isso é normalizar a senha, por exemplo, caracteres acentuados são normalizados para os alfabetos ingleses mais próximos, tentar transcrever o texto foneticamente, remover números etc., e pré-calcular várias versões dos hashes gerados a partir da senha que foram normalizados de maneiras diferentes. Observe que isso enfraquece o mecanismo de hash por quantidade não especificada. Eu não consideraria essas práticas recomendadas de segurança.
fonte
A resposta simples é que um sistema seguro não sabe se são semelhantes.
Mas alguns sistemas intencionalmente reduzem a segurança de uma senha específica de alguma maneira para impedir que novas senhas sejam senhas antigas ou semelhantes a elas. A relação custo-benefício é que uma nova senha será criada antes que alguém quebre malevolentemente a senha atual, mesmo com as informações de similaridade.
Em geral, cada uma dessas técnicas reduz a segurança das senhas.
Manter senhas antigas reduz a segurança dessas senhas. Se alguma dessas senhas for quebrada, há uma grande chance de a senha atual ser semelhante a elas, a maioria das pessoas altera apenas um número.
Pregar polegar e estatísticas podem eliminar suposições incorretas de senhas mais rapidamente do que tentar adivinhar e comparar. Isso ocorre porque os hashes, particularmente os seguros, são complicados de calcular e exigir esforço, mesmo que o hardware seja acelerado. Embora um cálculo mais simples que diga 'definitivamente não' ou 'talvez' possa eliminar a maioria dessas suposições, depois de todas as verificações de similaridade, você deve impedir o uso de senhas semelhantes, não o uso de uma senha completamente nova que não se parece em nada com a antiga.
Em resumo, tenha cuidado com qualquer site que indique uma medida de similaridade com sua senha atual / antiga. A menos que eles estejam dizendo que a nova senha é a senha antiga.
fonte
Você gera várias senhas semelhantes àquelas que o usuário digitou e verifica se algum de seus hashes corresponde ao da senha antiga.
fonte
Outro padrão é o seu sistema hashes alguns subconjuntos característicos da sua senha e armazena esses hashes para verificar se os subconjuntos da nova senha correspondem aos antigos, ou seja: senha: "Admin2018" e subconjunto: "Admin" = não é possível inserir "Admin2019" como novo.
fonte
Uma maneira seria armazenar as cinco últimas senhas com hash em uma tabela como 'Histórico da senha' e, quando o usuário estiver tentando definir uma nova senha, faça a hash e compare-a com as senhas da tabela.
fonte