Sicurezza: memorizzare solo gli HASH delle password nel DB

Nella quasi totalità dei siti che vedo in giro la password degli utenti viene memorizzata in chiaro nel database. Credo che questo sia una pratica assolutamente da evitare se il server è in hosting e cmq non raccomandabile se l'utente tratta dati personali e sensibili anche in ottica intranet.

Le possibili violazioni vanno dall'eseguire operazioni con credenziali di un diverso utente, alla sottrazione di password associate ad utenti (molti usano password simili, per non dimenticarle, su servizi diversi)

La soluzione è semplice: inventatevi un meccanismo di HASH, puo' essere comoda la funzione FormsAuthentication.HashPasswordForStoringInConfigFile, ma vanno meglio techiche custom, e utilizzatela per memorizzare l'Hash nel db. Per validare l'accesso confronterete l'Hash della password digitata con l'hash della pw memorizzata nel db.

Ora è chiaro che chi ha accesso al db puo' sostituire l'hash con un suo hash ed entrare con particolari privilegi, ma deve conoscere la tecnica di hashing da voi utilizzata e per questo raccomando un meccanismo custom e non prefabbricato.

Per il reset della password io utilizzo un meccanismo che manda un link (con un guid) alla mail dell'utente ad una pagina che permette di resettare e reimpostare la password.

Print | posted on mercoledì 22 settembre 2004 09:33

Comments have been closed on this topic.