Crittografia dei dati in un'applicazione con bilanciamento del carico - sto facendo bene?

0

Un'applicazione web che sto sviluppando ha bisogno di memorizzare alcuni dati sensibili in un database. Devo essere in grado di recuperare e utilizzare questi dati in seguito, quindi l'hashing non è sufficiente.

L'applicazione web potrebbe, ad un certo punto nel futuro, essere bilanciata dal carico, quindi sto cercando di fare le cose correttamente ora invece di combattere più tardi.

Ho creato un processo in due passaggi per questo utilizzando tecnologie standard:

  • I dati sensibili vengono crittografati utilizzando AES nel database SQL.
  • Per assicurarti che i valori chiave / IV AES siano il più sicuri possibile, vengono crittografati dall'applicazione Web IIS utilizzando DPAPI (ambito utente) e memorizzati in un file in App_Data .

Questo perché non penso di poter utilizzare il DPAPI da solo se il bilanciamento del carico sarà in uso - sono corretto?

Mi chiedo se non sto complicando le cose con il secondo passaggio, ma non mi piace l'idea di mantenere la chiave AES in testo normale in un file web.config nell'applicazione IIS.

Questo approccio è OK e relativamente sicuro?

    
posta Shaamaan 09.01.2014 - 11:43
fonte

1 risposta

2

L'ideale per una situazione come questa è l'utilizzo di un HSM, ma escludendo che, come opzione, l'utilizzo del software equivalente in DPAPI sia probabilmente la tua prossima migliore scommessa. Inoltre, non vedo un problema con l'archiviazione di ogni copia del server della chiave crittografata con la chiave DPAPI per quell'utente server / servizio.

Certamente non vuoi semplicemente archiviare la chiave, non protetta, nel file system. Quasi tutti i compromessi del tuo server potrebbero fuoriuscire senza ulteriore protezione.

Un possibile miglioramento, sebbene richieda un po 'di programmazione da recuperare, è di memorizzare la chiave stessa in DPAPI. È solo un piccolo livello di protezione extra, dal momento che la chiave è ancora archiviata (in forma crittografata) sul sistema, ma lo rende leggermente più difficile da trovare e potrebbe rendere leggermente più semplice l'accesso dal tuo programma. Senza approfondire la questione, penso che probabilmente è ciò che farei.

    
risposta data 09.01.2014 - 14:06
fonte

Leggi altre domande sui tag