Sto lavorando a un progetto web e voglio (per quanto possibile) gestire i dati degli utenti in modo da ridurre i danni alla privacy degli utenti in caso di compromissione dei nostri server / database.
Ovviamente abbiamo solo i dati dell'utente necessari per il sito Web per fare il suo lavoro, ma a causa della natura del progetto abbiamo un bel po 'di informazioni sui nostri utenti (parte della funzionalità è applicarsi ai lavori e inviando il tuo cv con esso)
Abbiamo pensato di crittografare / decifrare i dati sensibili con una coppia di chiavi privata / pubblica di cui la chiave privata è crittografata con la password degli utenti, ma ha riscontrato alcuni problemi di sicurezza e implementazione con questo: P
la domanda è: in che modo implementa la privacy degli utenti e una protezione contro il furto di dati su server Web centralizzato con protocolli compatibili con browser mentre per funzionalità è necessario che gli utenti possano scambiare dati sensibili?
Per dare ulteriori informazioni: questo progetto non è ancora in fase di produzione, quindi c'è ancora tempo per sistemare le cose.
stiamo già facendo alcune cose di base come
- che serve https
- applicare https per i siti che potrebbero gestire dati sensibili
- hashing salted password
- un po 'di tempra del nostro server e dei nostri servizi
- hard disk crittografati per impedire a qualcuno di leggere tutte le informazioni sul client dopo aver rubato i nostri server / hard disk
ma questo è tutto, c'è oltre alla password hash nessun meccanismo che fermerebbe / almeno renderà più difficile per qualcuno che è riuscito a entrare (parte del) server per ottenere tutti i dati su tutti i nostri utenti. Né vediamo un modo per crittografare i dati degli utenti per disabilitarci dalla loro lettura in quanto abbiamo bisogno dei dati (altrimenti non li avremmo raccolti) per una parte del sito web / la funzionalità che vogliamo che fornisca. Anche se per esempio abbiamo gestito (forse con qualche javascript) che tutti i dati sarebbero arrivati a noi crittografati (dal browser del cliente) e serviamo al client la sua privatekey crittografata con qualche passphrase (come ad esempio la sua password di accesso) non potremmo esaminare i file caricati dall'utente di scansione per virus e simili. D'altra parte una crittografia lato client almeno con il concetto browser / webserver lascia alcuni problemi di sicurezza almeno come la immaginiamo (sei il benvenuto a dimostrarmi che non sbaglio) e sembra piuttosto come reinventare la ruota, e forse come questo progetto non riguarda principalmente la privacy, ma piuttosto la privacy è una proprietà prefissabile per la quale potremmo non voler reinventare la ruota. Credo fermamente che non sono il primo webdeveloper a pensarci, vero? Quindi cosa hanno fatto altri progetti? Che cosa hai fatto per cercare di proteggere i dati degli utenti?
se rilevante utilizziamo django e postrgreSQL per la maggior parte delle cose e javascript per alcune interfacce utente
ps: questo articolo descrive altri motivi per cui siamo titubanti sulla crittografia lato client