Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhore o hash de senha com um sal aleatório


Um invasor é "permitido" para conhecer o sal - sua segurança deve ser projetada de forma que, mesmo com o conhecimento do sal, ela ainda seja segura.

O que o sal faz?

O sal ajuda na defesa contra ataques de força bruta usando "tabelas arco-íris" pré-computadas.
O sal torna a força bruta muito mais cara (em termos de tempo/memória) para o atacante.
Calcular tal tabela é caro e geralmente feito apenas quando pode ser usado para mais de um ataque/senha.
SE você usar o mesmo sal para todas as senhas, um invasor pode pré-computar tal tabela e então forçar suas senhas em texto simples ...
Contanto que você gere um novo sal aleatório (melhor criptograficamente forte) para cada senha que você deseja armazenar o hash, não há problema.


SE você quiser fortalecer ainda mais a segurança
Você pode calcular o hash várias vezes (hash o hash etc.) - isso não custa muito, mas torna um ataque de força bruta / cálculo de "tabelas arco-íris" ainda mais caro... por favor, não não invente você mesmo - existem métodos padrão comprovados para fazer isso, veja por exemplo http://en. wikipedia.org/wiki/PBKDF2 e http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard

OBSERVAÇÃO:

Usar tal mecanismo é hoje em dia obrigatório uma vez que o "tempo de CPU" (utilizável para ataques como rainbow tables/brute force etc.) por uma quantidade comparativamente pequena)!