Un sale troppo lungo non ridurrà la sicurezza. Un sale troppo breve ridurrà la sicurezza.
Man mano che il sale aumenta la sicurezza migliorerà. Ad un certo punto attraverserai un confine, dove inizierai a ottenere rendimenti decrescenti all'aumentare della lunghezza del sale. E alla fine attraverserai un altro confine, dove un sale più lungo non aggiunge alcuna sicurezza.
Tuttavia, poiché un sale più lungo non ha costi significativi, vi sono pochi motivi per smettere di aumentare la lunghezza fino a raggiungere il secondo limite. Anche se dovessi aumentare la lunghezza del sale oltre a questo, l'unico inconveniente è il minor costo aggiuntivo in termini di tempo di archiviazione e di elaborazione.
Purtroppo i sali vengono generati più spesso con una lunghezza inferiore alla più bassa delle due soglie.
Quindi quali sono le due soglie?
La soglia inferiore è determinata dal numero di utenti e dallo scopo del sale, che deve essere diverso per ogni password scelta da qualsiasi utente. Se prendiamo alcune stime prudenti, il numero di utenti in tutto il mondo è inferiore a 10 ^ 10 e ogni utente ha password per meno di 10 ^ 2 sistemi e durante la loro vita cambia questa password meno di 10 ^ 3 volte. Ciò significa che in totale ci saranno meno di 10 ^ 15 password. Detto questo, si potrebbe erroneamente concludere che 50 bit di entropia nel sale sono sufficienti a garantire che non ci saranno mai due sali che si ripetono, ma a causa del paradosso del compleanno dobbiamo raddoppiare quel numero.
Quindi una volta che il sale cresce più a lungo di 100 bit, iniziamo a vedere rendimenti decrescenti in termini di maggiore sicurezza. La soglia dei 100 bit ha comportato molte supposizioni. La prossima soglia implica molto meno indovinare. Più di 100 bit di entropia nel sale migliorano ancora la sicurezza, ma non di molto.
Una volta che il sale cresce per essere più lungo dell'output della funzione hash sottostante, non vi è tuttavia alcuna sicurezza aggiuntiva nel renderlo più lungo. Ciò che la soglia dipende dalla funzione di hash, questi vanno da 128 a 512 bit per gli hash tipici.
Ricorda che i sali sono generalmente generati con 6 bit di entropia per carattere, quindi avrai bisogno di 86 caratteri di sale per raggiungere i 512 bit di entropia.