A necessidade de esconder o sal para um hash

No trabalho, temos duas teorias concorrentes para os sais. Os produtos em que trabalho usam algo como um nome de usuário ou número de telefone para salgar o hash. Essencialmente, algo diferente para cada usuário, mas que esteja prontamente disponível para nós. O outro produto gera aleatoriamente um sal para cada usuário e muda sempre que o usuário altera a senha. O salt é então criptografado no banco de dados.

Minha pergunta é se a segunda abordagem é realmente necessária? Eu posso entender, de uma perspectiva puramente teórica, que é mais seguro que a primeira abordagem, mas e do ponto de vista da praticidade. Agora, para autenticar um usuário, o salt deve ser descriptografado e aplicado às informações de login.

Depois de pensar sobre isso, simplesmente não vejo um ganho real de segurança com essa abordagem. Alterar o salt de conta para conta ainda torna extremamente difícil para alguém tentar forçar o algoritmo de hash com força bruta, mesmo que o invasor tenha conhecimento de como determinar rapidamente o que era para cada conta. Isso está assumindo que as senhas são suficientemente fortes. (Obviamente, encontrar o hash correto para um conjunto de senhas em que todos os dois dígitos são significativamente mais fáceis do que encontrar o hash correto das senhas, com 8 dígitos). Estou incorreto na minha lógica ou há algo que estou perdendo?

EDITAR: Ok, então aqui está a razão pela qual eu acho que é realmente discutível criptografar o sal. (deixe-me saber se estou no caminho certo).

Para a explicação a seguir, assumiremos que as senhas sempre têm 8 caracteres e o salt é 5 e todas as senhas são compostas por letras minúsculas (apenas facilita a matemática).

Ter um sal diferente para cada entrada significa que não posso usar a mesma tabela arco-íris (na verdade, tecnicamente, seria possível se tivesse uma de tamanho suficiente, mas vamos ignorá-la no momento). Esta é a verdadeira chave para o sal, pelo que entendi, porque para quebrar todas as contas, preciso reinventar a roda, por assim dizer. Agora, se eu souber como aplicar o salt correto a uma senha para gerar o hash, eu o faria porque um salt realmente apenas estende o comprimento / complexidade da frase do hash. Então, eu cortaria o número de combinações possíveis que precisaria gerar para "saber". Eu tenho a senha + salt de 13 ^ 26 a 8 ^ 26 porque sei o que é o sal. Agora isso facilita, mas ainda é muito difícil.

Então, para criptografar o sal. Se eu souber que o salt está criptografado, não tentaria descriptografar (supondo que ele tenha um nível suficiente de criptografia) primeiro. Eu ignoraria isso. Em vez de tentar descobrir como descriptografá-lo, voltando ao exemplo anterior, eu apenas geraria uma tabela arco-íris maior contendo todas as chaves para o 13 ^ 26. Não saber que o sal definitivamente me atrasaria, mas acho que não acrescentaria a tarefa monumental de tentar quebrar a criptografia do sal primeiro. É por isso que acho que não vale a pena. Pensamentos?

Aqui está um link que descreve por quanto tempo as senhas permanecerão sob um ataque de força bruta:http://www.lockdown.co.uk/?pg=combi