Como “sua nova senha deve diferir pelo menos n caracteres do trabalho anterior” quando somente códigos hash são armazenados?

3

Eu estou querendo saber como a política de senha "sua nova senha deve diferir pelo menos n caracteres da sua senha antiga" funciona.

Meu entendimento é que o sistema operacional nunca realmente armazena as antigas senhas , mas seus códigos hash . E não há como saber em quantos caracteres as duas strings diferem se você tiver somente seus códigos hash .

Estou certo de que só funcionará se o programa passwd perguntar explicitamente ao mesmo tempo também para sua senha antiga ?

E a consequência é que, se um usuário root alterar a senha de outra pessoa, a política "número de caracteres diferentes" simplesmente não pode ser aplicada aqui?

    
por Honza Zidek 20.10.2017 / 11:38

3 respostas

3

Você está certo. Se as senhas forem armazenadas como hash, não há como os sistemas operacionais saberem como a nova senha difere da antiga.

A verificação da política é feita a partir da ferramenta e funciona, pois a ferramenta também solicita a senha antiga e verifica as diferenças em relação a um conjunto de regras de política.

    
por 20.10.2017 / 11:44
2

Tais políticas geralmente são implementadas aplicando-as ao solicitar a senha antiga.

Outra opção seria a força bruta do antigo. Quando você insere o seu novo, um computador moderno não tem problemas para forçar todas as senhas a diferirem em 2 caracteres do novo. Até onde eu sei, isso não é usado na autenticação normal nas distribuições típicas do Linux, mas é possível que alguns módulos PAM implementem isso.

A abordagem usual para senhas que mudam de raiz é assumir que o superusuário sabe o que está fazendo. O programa passwd não solicita a senha antiga e permite substituir regras como um comprimento mínimo por sua conta e risco.

    
por 20.10.2017 / 15:54
1

And is the consequence that if a root user changes someone else's password, the "number of different characters" policy simply cannot be applied here?

O usuário administrativo geralmente pode manipular o banco de dados de senhas diretamente, de forma que todas as políticas de senha possam ser ignoradas por esse usuário.
Por exemplo, o root pode fornecer uma senha com hash (com usermod -p ) que será definida textualmente, ou editar /etc/shadow e definir a senha com hash lá.

Esse é mais um motivo pelo qual os usuários administrativos devem ser mantidos em um padrão mais elevado e treinarem-se para usar um gerador de senhas ao atribuir senhas aos usuários.

    
por 20.10.2017 / 15:47