Como o Linux sabe que uma nova senha é semelhante à antiga?
Se você já recebeu uma mensagem dizendo que sua nova senha é muito parecida com a sua antiga, então você pode estar curioso sobre como o seu sistema Linux 'sabe' que eles são muito parecidos. O post de perguntas e respostas do SuperUser de hoje dá uma espiada por trás da 'cortina mágica' no que está acontecendo para um leitor curioso.
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..
Screenshot cortesia de Marc Falardeau (Flickr).
A questão
Leitor SuperUser LeNoob quer saber como um sistema Linux "sabe" que as senhas são muito semelhantes entre si:
Eu tentei alterar uma senha de usuário em várias máquinas Linux algumas vezes e quando a nova senha era muito parecida com a antiga, o sistema operacional disse que eles eram muito similares..
Eu sempre me perguntei: como o sistema operacional sabe disso? Eu pensei que as senhas foram salvas como um hash. Isso significa que, quando o sistema é capaz de comparar a nova senha por semelhança com a antiga, ela é realmente salva como texto simples??
Como um sistema Linux "sabe" que as senhas são muito semelhantes entre si??
A resposta
O contribuidor do SuperUser slhck tem a resposta para nós:
Como você precisa fornecer as senhas antigas e novas ao usar o passwd, elas podem ser facilmente comparadas em texto simples.
Sua senha é realmente hash quando é finalmente armazenada, mas até que isso aconteça, a ferramenta onde você está digitando sua senha pode acessá-lo diretamente.
Esta é uma característica do sistema PAM que é usado no fundo da ferramenta passwd. O PAM é usado pelas distribuições modernas do Linux. Mais especificamente, pam_cracklib é um módulo para o PAM que permite rejeitar senhas baseadas em semelhanças e fraquezas.
Não são apenas senhas que são muito semelhantes e que podem ser consideradas inseguras. O código-fonte tem vários exemplos do que pode ser verificado, como se uma senha é um palíndromo ou qual a distância de edição entre duas palavras. A ideia é tornar as senhas mais resistentes aos ataques de dicionário.
Veja a pam_cracklib manpage para mais informações.
Certifique-se de ler o resto da discussão animada no SuperUser através do tópico relacionado abaixo.
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.