QNA > C > Come Vengono Memorizzate Le Password In Un Database?

Come vengono memorizzate le password in un database?

Dipende. Le password necessarie agli utenti del database per accedere al database non sono (si spera) mai memorizzate nel database. Piuttosto, vengono memorizzati hash salati. Il punto è che dovrebbe essere virtualmente impossibile per chiunque determinare la password dai dati memorizzati o trovare una password (magari diversa dall'originale) che produca gli stessi dati memorizzati usando la stessa funzione hash e lo stesso sale.

Poi ci sono password che un'applicazione che usa il database vuole usare per identificare i propri utenti (che non sono utenti del database). Applicazioni ben progettate dovrebbero usare la stessa tecnica di cui sopra per ottenere questo risultato. Purtroppo, ci sono molte che non lo fanno, memorizzando invece le password dei loro utenti o in chiaro o criptate con una chiave che è hardcoded nel sorgente dell'applicazione.

E poi ci sono casi in cui un'applicazione ha bisogno di memorizzare le password che usa per autenticarsi ad altri sistemi che chiama (ad esempio altri database, servizi web, ecc.). Queste potrebbero essere memorizzate criptate con una o più chiavi che devono essere fornite al momento dell'utilizzo, leggendole da un dispositivo sicuro (ad esempio un file appositamente protetto, una smart card, un portafoglio elettronico, ecc). Ci sono anche casi in cui la memorizzazione di tali password può essere evitata completamente facendo in modo che gli utenti finali (umani) si autentichino ad un sistema di autenticazione speciale che poi fornisce un token limitato nel tempo (chiamato anche ticket, cookie di sessione, ecc.) che tutti i sistemi esterni accettano al posto di una password per quell'utente (dopo aver convalidato il token con il sistema che lo ha emesso in primo luogo, naturalmente).

Di Bussey

Possiamo vedere Netflix su una TV non intelligente? :: Qual è il miglior gestore di password multipiattaforma?
Link utili