Attualmente stiamo creando un piccolo servizio, in cui utilizziamo alcuni dati sensibili degli utenti (non vale la pena di milioni, ma per me è come una password). L'idea è che l'applicazione stessa inserisca questi dati in db e crei alcuni lavori da eseguire in coda.
Il problema è come proteggere questi dati sensibili?
Attualmente l'unica buona soluzione che vedo è:
Encrypt e hash questi dati sul server delle applicazioni. Quindi in db abbiamo hash per verifica / confronto, chiave di crittografia crittografata e dati crittografati. Chiave di crittografia in crittografia con chiave pubblica.
Sul server di lavoro in coda abbiamo la chiave privata, che ci consente di decodificare ed elaborare i dati.
Perché vedo che funziona. 1. In caso di iniezione sql vengono compromessi solo i dati crittografati. 2. Nel caso in cui la macchina applicativa venga compromessa, non esiste ancora una chiave privata per decrittografare i dati. 3. Il server di lavoro in coda è abbastanza isolato e si trova sotto il firewall. Quindi la chiave privata è in qualche modo sicura.
Questo suona come un piano?