Proteggere i dati sensibili in un DB, sta usando H2 ne vale la pena?

3

Sto progettando un'applicazione web al momento, e uno dei requisiti è quello di proteggere le credenziali dell'utente e i loro ruoli.

Ovviamente, oltre al solito hashing delle password + salt + .... stavo pensando di inserire quelle tabelle specifiche in un database H2 crittografato e il resto dei dati in un db MySQL. I vantaggi di H2 nel mio caso sono:

  • archiviazione in memoria (quindi significa accesso più veloce)
  • db crittografato (quindi un ulteriore livello di sicurezza nel caso in cui il server venga compromesso)

questa è una pratica comune quando è richiesto un ulteriore livello di sicurezza? significato è una buona idea separare le informazioni di accesso (nel mio caso, sono i dati sensibili) dagli altri dati?

    
posta Elio 12.09.2011 - 11:52
fonte

1 risposta

4

La crittografia del database impedisce l'accesso basato su file di basso livello al database che elude il sistema di autorizzazione del database. Ciò è particolarmente utile, se è probabile che un utente malintenzionato ottenga l'accesso fisico al computer (pensa a taccuini rubati).

Sui server ha il problema su cosa fare con la chiave / password. Se lo memorizzi al di fuori della crittografia, ti sarà facile per l'attaccante accedervi. Ma non la memorizzazione richiede l'interazione manuale su un riavvio del server che spesso non è desiderabile per motivi di disponibilità.

La crittografia del database non aiuta contro un utente malintenzionato che può sfruttare un'applicazione web che dispone dell'autorizzazione per accedere al database tramite SQL-injection.

Avere un secondo database, in particolare un secondo software di database aumenta la superficie di attacco: sei vulnerabile al insieme di bug di MySQL e H2. E hai bisogno di persone che comprendano entrambi i sistemi per gestirlo in sicurezza.

C'è un vantaggio attraverso: c'è solo un codice molto piccolo che accede alle informazioni di autenticazione. Le vulnerabilità di SQL injection nella stragrande maggioranza del codice non saranno in grado di accedere alle informazioni di autenticazione isolate.

Sul mio posto di lavoro l'abbiamo fatto invece per la nostra applicazione web: utilizziamo diverse connessioni al database a seconda del ruolo dell'utente che esegue le richieste. Ad esempio, un utente anonimo ottiene una connessione al database che ha pochissime autorizzazioni per il database.

    
risposta data 12.09.2011 - 12:10
fonte

Leggi altre domande sui tag