Comprendo l'idea di base dei Sali password.
- Si genera una stringa di dati "casuale"
- antepone questi dati a una password utente
- salva la password e sale (sale forse anche nel formato 'chiaro')
Come nel seguente scenario: Hai un'applicazione client lato client e un'applicazione server con un database. L'utente si registra con un nome utente e una password utilizzando l'app mobile. La password riceve un valore aggiunto e viene archiviata con hash sul lato server. Anche il sale deve essere memorizzato sul lato server, perché non ci si può fidare del client mobile. E il sale dovrebbe in qualche modo essere collegato all'account utente giusto. Quindi supponiamo che sia memorizzato nella stessa tabella utente proprio accanto alla password.
Come si può usare un sale in questo caso per prevenire qualsiasi attacco (ad esempio attacco al dizionario)? Se l'utente malintenzionato ha già accesso al server del database, sarebbe facile ottenere il sale. Se l'attaccante utilizza l'interfaccia dell'applicazione server in modo corretto, il sale verrà applicato anche ai suoi "tentativi di attacco per l'accesso". Forse mi manca qualche punto importante su come questo tipo di attacco venga portato a termine in modo usuale. O questo sistema sarebbe sicuro solo se la salatura e l'hashing fossero eseguiti direttamente sul client?