Criptografar uma senha com seu próprio hash

Sep 25 2020

Acabei de descobrir que uma plataforma de comércio eletrônico (semelhante ao Shopify) que eu estava planejando usar me permite ver minha senha. Sei que não posso presumir nada e deveria (provavelmente) simplesmente fugir disso, mas fiquei curioso: há uma maneira de fazer isso com segurança?

Quero dizer, e se eles usarem o hash da senha como uma chave de criptografia para criptografar a própria senha? Se feito corretamente, algo como isso poderia ser uma solução razoável?

Além disso, alguém tem alguma ideia de por que diabos uma plataforma de comércio eletrônico escolheria fazer isso?

E não, não pretendo implementar nada assim.

Respostas

3 mti2935 Sep 25 2020 at 04:07

Se bem entendi, parece que você fez login, navegou até a página de alteração de senha, o site preencheu a caixa de entrada de senha desabilitada com sua senha existente e você conseguiu recuperar sua senha existente a partir desta entrada de senha desabilitada caixa. Se for esse o caso, o site está armazenando sua senha em texto simples - a partir do momento em que você se conectou ou permanentemente em seu banco de dados de usuário. De qualquer maneira, é ruim.

Com relação ao uso de um hash da senha como a chave para criptografar a senha - consulte https://crypto.stackexchange.com/questions/51820/is-it-safe-to-use-the-hash-of-the-data-as-the-key-to-encrypt-thempara algumas idéias interessantes sobre esse método. No entanto, não acho que seja isso o que está em jogo aqui, porque se torna apenas um problema cíclico - o site não seria capaz de preencher a caixa de entrada de senha desabilitada com a senha criptografada dessa maneira, sem saber a senha.

EsaJokinen Sep 25 2020 at 01:41

É este recurso solicitado (e adicionado) aqui?

Adicione a caixa de seleção "Mostrar senha" ao campo de senha

Isso é para permitir que os usuários vejam a senha que acabaram de digitar para garantir que não haja erros de digitação. Essa é apenas uma alternativa de fazê-los digitar duas vezes. Depois de confirmado, ele é hash (ou pelo menos deveria ser, mas eu realmente não conheço a plataforma).