Semelhança de senha

9

Eu queria mudar minha senha em uma máquina unix. Eu fiz uma "senha" normal e digitei minha antiga e minha nova senha.

Então a máquina voltou para mim com a seguinte mensagem:

BAD PASSWORD: is too similar to the old one

Isso me fez pensar ... Isso significa que a máquina tem minha senha em texto não criptografado em algum lugar? Caso contrário, ele não poderá comparar a senha antiga e a nova, certo? Ou existe uma função hash, que permite isso?

dertoni
fonte

Respostas:

6

OK, então eu segui a sugestão de Michael Hampton e fui e olhei o código de pam_cracklib.c, e parece que pam_cracklib obtém a senha antiga (aka atual) do PAM por meio de uma chamada de função (que considero totalmente aceitável, como Acabei de inserir a senha atual para autenticação) e, em seguida, realiza uma análise de similaridade (função de distância) entre a senha antiga e a nova que acabei de inserir.

Mas não faz essa análise para todas as senhas antigas de sua história. Isso não seria possível, porque eles são armazenados apenas como hashes. Para eles, só pode haver uma verificação se forem iguais. Então, tudo parece estar em ordem, como eu esperava, mas agora eu entendo por que está ... obrigado a todos.

dertoni
fonte
3

Suas senhas antigas não são armazenadas em texto sem formatação.

Em vez disso, seus antigos hashes de senha são armazenados /etc/security/opasswdpelo PAM. Em seguida, ele faz a comparação quando você altera sua senha, com base no que foi especificado na configuração do PAM.

Um exemplo de configuração do PAM:

password required pam_unix.so sha512 remember=12 use_authtok

Aqui, rememberfaz com que ele lembre 12 senhas anteriores.

Para mais detalhes, consulte Linux Password Security com pam_cracklib .

Michael Hampton
fonte
Mhm ... bem, definitivamente não é uma senha que eu já usei antes ... Portanto, é preciso verificar se há alterações de caracteres em uma senha antiga. Mas se tudo o que é salvo é um hash dessa senha, como ela realiza a comparação? Não é uma das principais funções dos hashes criptograficamente seguros para não permitir uma comparação entre diferentes textos claros?
dertoni
Você me pegou lá. Eu acho que você teria que ler o código fonte para responder a esse com certeza.
Michael Hampton
Eu esperaria que ele faça variações na nova senha e, se algum dos hashes dessas variações corresponder ao hash de uma senha antiga, é muito semelhante. Dessa forma, apenas os hashes são armazenados. Claro, eu não tenho verificado isso no código fonte ou ...
Ladadadada
ok, leia o código ... adicionou uma resposta sobre minhas descobertas. +1 por me ajudar a encontrar a resposta ;-) thx.
dertoni
0

Alguns sistemas podem armazenar / calcular entropia (complexidade da senha) e compará-los, não sei se é o caso do PAM.

vn.
fonte