Ao permitir que um usuário altere senhas, devo gerar um novo sal?

8

No meu banco de dados, eu tenho uma coluna para a senha com hash e o salt. Meu aplicativo permite que os usuários alterem suas senhas. Devo usar o mesmo sal para a senha ou devo gerar uma nova? Isso importa para a segurança do aplicativo?

Ivan
fonte

Respostas:

14

Sim. Sempre gere um novo sal quando a senha for alterada .

Considere os dois cenários a seguir:

Sal conhecido que não muda

Eu sei que você não está mudando o sal das suas senhas. Vejo que adminhá um sal que é 'xyz' e agora moo a mesa do arco-íris para esse sal. Não importa para o que você altera sua senha de administrador, eu sei disso.

Senhas repetidas

Eu sei que o usuário tinha uma senha com hash 'xyz: abcdef' ( xyzé o salt, abcdefé a senha com hash). Mais tarde, vejo que as informações do hash são 'xyz: 012345' - ok, eles mudaram sua senha. Mais tarde, vejo a senha com hash como 'xyz: abcdef' e sei que a alterou novamente na primeira senha.

Esses dois cenários em que informações desnecessárias são fornecidas ao invasor são trivialmente evitados, gerando novo sal toda vez que uma senha é gerada.


Você notará que o itálico está em "quando a senha for alterada" acima. Isso foi adicionado após um comentário de darkhogg perguntando se a troca de sal com mais frequência é "melhor, pior ou apenas inútil?"

No Security.SE, a pergunta sobre com que frequência devo redefinir meu sal? responde isso. Alterar o salt com mais frequência do que as alterações de senha fornece a um possível invasor mais informações sobre a senha do que apenas um hash.

Alterar o salt com mais frequência do que a senha não significa que um invasor será mais prejudicado pelas novas informações, porque a mesma senha correta ainda funcionará, não importa qual seja o salt.

Comunidade
fonte
Isso pode ser suficiente para outra pergunta, mas ... Mudar o sal de tempos em tempos (digamos, 10 a 30 dias) após um login bem-sucedido seria melhor, pior ou apenas inútil?
Darkhogg 30/03
@Darkhogg, que é realmente uma pergunta interessante e provavelmente seria algo a se perguntar ao Security.SE .
3
Acho que encontrei a minha resposta, eu vou ligá-lo para a integralidade security.stackexchange.com/questions/39821/...
Darkhogg