Onde você armazena suas cordas de sal?

Eu sempre usei uma string salgada adequada por entrada quando criamos senhas para o armazenamento do banco de dados. Para minhas necessidades, armazenar o sal no banco de dados ao lado da senha com hash sempre funcionou bem.

No entanto, algumas pessoas recomendam que o sal seja armazenado separadamente do banco de dados. O argumento deles é que, se o banco de dados for comprometido, um atacante ainda pode construir uma tabela de arco-íris levando em conta uma cadeia de salt em particular, a fim de quebrar uma conta de cada vez. Se essa conta tiver privilégios de administrador, talvez ele nem precise violar outras.

Do ponto de vista da segurança, vale a pena armazenar sais em um lugar diferente? Considere um aplicativo da Web com o código do servidor e o banco de dados na mesma máquina. Se os sais forem armazenados em um arquivo simples na máquina, é provável que, se o banco de dados estiver comprometido, o arquivo de sais também esteja.

Existe alguma solução recomendada para isso?

questionAnswers(5)

yourAnswerToTheQuestion