WEB: Calcolo HASH con SALT
copia linkDescrizione
E' ora possibile calcolare un HASH di un testo (es: una password) tramite la funzione statica HashWithSalt contenuta nella libreria SimpleCrypter.
Tale funzione permette di proteggere il testo mediante un algoritmo più sicuro di una normale funzione di cifratura.
Le funzioni di cifratura, infatti, hanno un difetto intrinseco che è quello di essere invertibili.
Questo vuol dire che se un malintenzionato ottiene un testo cifrato e riesce ad ottenere la chiave utilizzata per la cifratura è in grado di ricostruire il testo originale. Questo, in alcuni casi, potrebbe essere un problema. Si pensi, per esempio, alle password degli utenti memorizzate su database e utilizzate per autenticare gli utenti nei propri applicativi. Se si utilizza un algoritmo di cifratura standard un malintenzionato che entri nel server ove risiede il database e riesca ad ottenere il testo della chiave usata per la cifratura (per esempio ispezionando il codice utilizzato dall'applicazione che salva i dati su database), potrebbe, applicando l'algoritmo inverso, rigenerare tutte le password.
Gli algoritmi di HASH, invece, non sono invertibili. A parità di testo di input forniscono sempre lo stesso output ma non permettono, in un tempo ragionevole, di poter risalire al testo originale. Pertanto se un malintenzionato avesse accesso al database dovrebbe provare a calcolare l'HASH di tutte le possibili stringhe fino a quando trova quella il cui HASH è uguale a quello memorizzato su database. Tale operazione, per password di media complessità, richiede moltissimo tempo.
Per rendere la procedura ancora più sicura si utilizza quello che viene chiamato SALT. Questo viene utilizzato per aumentare la casualità del risultato della funzione aggiungendo un ulteriore livello di protezione. La funzione di HASH, infatti, è standard e se un malintenzionato avesse già calcolato l'HASH per tutte le possibili stringhe avrebbe modo di "invertire" l'operazione. Per esempio se il malintenzionato sapesse che il testo "PIPPO" con la funzione SHA-256 genera l'HASH 08514F3231B2649C331E2E7D23CB0291D9B79AB05FB91C34EB862B8CC1BD2007 se trovasse quell'HASH su database potrebbe risalire alla password PIPPO. Ma se si utilizza il SALT il sistema prima tratta la password con il SALT e poi, una volta trattata, ne applica l'HASH. Questo ulteriore passaggio rende vana la costruzione di un database di PASSWORD->HASH dato che ce ne vorrebbe uno diverso per ogni possibile SALT.
Funzionalità interessate
La cifratura di dati sensibili in applicazioni web.
Ultima modifica: 29/03/2019 / Validità: da 19.0.7400