Senhas de usuários armazenadas de forma inadequada

De Safeval Wiki
Ir para: navegação, pesquisa

O armazenamento de senhas no banco de dados, se não for feito corretamente, permite que o administrador de banco de dados para recuperar senhas de usuários. Como palavra-passe, por definição, deve ser conhecido apenas pelo utilizador. Até mesmo os administradores do sistema não devem ser capaz de saber a senha para um determinado usuário. Isso impede que a prestação de contas de usuário para suas ações. Se um usuário é pego cometendo uma fraude, ele sempre pode dizer que não foi ele, mas um dos administradores que também conhece sua senha. Além da possibilidade de um ataque pelo administrador do sistema, usando senhas recuperadas na base de dados.

A senha deve ser armazenado em hash, ou criptografia one-way. O algoritmo de hash deve ser de boa qualidade (recomendou hoje são SHA-2 384 ou 512), o hash deve ser feito sobre a concatenação de login + password + sal, onde o sal é um número gerado aleatoriamente para cada registro da tabela, armazenada em uma coluna separada. Alguns sistemas implementa o sal como um número global para todos os registros de usuário, que não impede o ataque tabelas do arco-íris, que é a principal preocupação quando se utiliza o sal.

Como o hash é uma criptografia de um jeito, a validação da senha deve repetir os mesmos passos e comparar o hash gerado com os credenciais autenticação apresentadas pelo usuário com o hash armazenado no banco de dados. A tabela que contém as informações de autenticação dos usuários deve ser protegido, com o mínimo de acesso possível.

Estas recomendações são geralmente implementadas no armazenamento de senha LDAP, portanto, uma alternativa é armazenar as senhas do usuário em um repositório LDAP.