salt
termocriptografiasegurança
Dados aleatórios adicionados a uma senha antes do hash, únicos por usuário.
Salgar significa que duas pessoas com a mesma senha obtêm hashes diferentes, o que derrota tabelas arco-íris e torna a pré-computação inútil. Não precisa ser secreto, apenas único; um valor secreto complementar é chamado de pepper.
Um sal é o que impede um atacante de quebrar mil senhas pelo preço de uma. Sem ele, senhas idênticas geram hashes idênticos, então uma única tabela pré-computada mapeia hashes de volta para senhas em todas as contas e em todas as bases vazadas ao mesmo tempo.
Acrescentar um valor aleatório único a cada senha antes do hash destrói essa economia. As rainbow tables ficam inúteis, porque seria preciso construir uma tabela por sal, e o atacante é empurrado de volta para atacar cada conta individualmente. Também esconde o fato de dois usuários terem escolhido a mesma senha, o que já é um vazamento que vale fechar.
O essencial a entender é que um sal não é segredo. Ele é armazenado ao lado do hash, à vista, e o projeto pressupõe que o atacante o tenha. Seu valor está inteiramente em ser único por registro, e é por isso que gerar um sal aleatório novo por senha importa muito mais do que protegê-lo. Uma pimenta, em contraste, é um segredo mantido fora do banco de dados, e as duas coisas são complementares, não alternativas.
Também conhecido como: password salt, salting