Che tipo di informazione utente è ok per essere archiviata come testo in chiaro nel database SQL?

3

Mi sto esercitando per creare applicazioni di e-commerce asp.net che consentono agli utenti di registrarsi al sito e le loro credenziali utente sono memorizzate in un database MySQL. Nel mio progetto di esempio la registrazione richiede all'utente nome utente, password, nome completo, numero di telefono, e-mail, indirizzo di casa (per la spedizione dei prodotti).

Conosco la sua buona pratica per memorizzare la password dell'utente come hash salato. Ma ci sono altre informazioni che dovrebbero essere archiviate allo stesso modo o no? Ad esempio, il nome utente può anche essere memorizzato come hash salato o addirittura crittografato?

Credo che mi stia chiedendo che tipo di informazioni è ok per essere memorizzate in testo semplice nel database MySQL per un'app web di asp.net? E quali articoli si consiglia di conservare in un hash salato? E quali elementi dovrebbero essere memorizzati utilizzando la crittografia?

    
posta CD VA Programmer 25.12.2014 - 16:29
fonte

3 risposte

9

Le password devono essere sempre archiviate come hash e assicurarsi che non vengano mai registrate, ad esempio dai logger delle query. L'hashing è importante rispetto alla crittografia, perché dovrebbe essere un processo unidirezionale e non reversibile.

Domande segrete per aiutare a recuperare le password sono buone da crittografare. Poiché questi sono segreti, e loro stessi possono rivelare qualcosa sull'utente, non sarebbe positivo se fossero trapelati. Oltre a rivelare qualcosa di personale sull'utente, potrebbero anche aiutare gli aggressori a fare ipotesi migliori.

Le risposte alle domande segrete dovrebbero essere sottoposte a hash, in quanto potrebbero essere segreti intimi. Può essere una buona idea eseguire l'hash di un modulo igienizzato, ad esempio in minuscolo e tagliato, per rendere più facile il rientro degli utenti in modo corretto.

Come per altri campi, è caso per caso, e dipende da molti fattori. Hai davvero bisogno di pensare a ciascuno di essi e di valutare in termini di sensibilità, e decidere quale metodo è prudente, o iperspollicare o paranoia.

Non dimenticare di proteggere anche il canale di comunicazione. Ad esempio, se il sistema è accessibile via web, assicurati che sia https, altrimenti l'hashing e la crittografia fanno poca differenza per la tua sicurezza generale, dato che tutto può essere intercettato in rotta tra i tuoi utenti e il tuo sito web.

Aggiorna

Poiché @MichaelT ha evidenziato un commento, il documento PCI DSS (Payment Data Industry Standard Security) standard sembra essere un documento completo e vale la pena leggerlo se sei serio nel proteggere i dati dei tuoi clienti. La libreria dei documenti del PCI potrebbe contenere anche altri elementi interessanti.

    
risposta data 26.12.2014 - 00:19
fonte
0

I guess I'm just wondering what kinds of information is it ok to be stored in plain text in MySQL database for an asp.net web app?

Quali informazioni tu vanno bene per essere prontamente disponibili per chiunque , anche per chi ha intenzioni malevole?

Il mio indirizzo email, per esempio, non va bene per essere visibile pubblicamente, anche se nessuno sa che sono io. Se gestisci qualcosa come un sito porno, probabilmente non voglio che le persone sappiano che il mio nome (o anche indirizzo) è memorizzato nel tuo database.

Se non stai visualizzando queste informazioni ad altri utenti del sito, supponi che si tratti di informazioni private e della tua responsabilità di proteggere.

    
risposta data 25.12.2014 - 17:27
fonte
0

Ogni sistema di e-commerce che ho visto memorizza i dati dell'utente di base - nome, indirizzo, ecc. - non criptato. Penso che sia la risposta che cerchi. Gli unici pezzi di dati che sono tipicamente crittografati sono la password (hash) e le informazioni sulla carta di credito (se questo è memorizzato sul sito). Probabilmente aggiungerei che le SSN e qualsiasi altra informazione finanziaria sensibile (il numero di conto bancario) dovrebbero essere crittografati.

La ragione di questo è piuttosto semplice: la ricerca. Non puoi eseguire query come "last_name LIKE 'SMIT%'" quando i dati sono crittografati.

È tuttavia possibile esaminare la crittografia del disco rigido se si è preoccupati della sicurezza fisica della macchina.

    
risposta data 26.12.2014 - 17:49
fonte

Leggi altre domande sui tag