Como o bcrypt pode ter sais embutidos?
rtigo de @Coda Hale "Como armazenar com segurança uma senha" afirma que
@bcrypt possui sais embutidos para evitar ataques à tabela do arco-íri
Ele citaeste pape, que diz que na implementação do @ OpenBSD dobcrypt
:
OpenBSD gera o sal de criptografia de 128 bits a partir de um fluxo de chaves arcfour (arc4random (3)), semeado com dados aleatórios que o kernel coleta a partir das temporizações do dispositiv
Eu não entendo como isso pode funcionar. Na minha concepção de sal:
Precisa ser diferente para cada senha armazenada, para que uma tabela arco-íris separada precise ser gerada para cadaEle precisa ser armazenado em algum lugar para que possa ser repetido: quando um usuário tenta fazer login, nós tentamos sua senha, repetimos o mesmo procedimento de sal e hash que fizemos quando armazenamos sua senha originalmente e comparamosQuando estou usando o Devise (um gerenciador de login do Rails) com o bcrypt, não há coluna de sal no banco de dados, então estou confuso. Se o sal for aleatório e não for armazenado em nenhum lugar, como podemos repetir com segurança o processo de has
Em resumo,como o bcrypt pode ter sais embutidos?