2012-02-13 9 views
34

Per farla breve, la nostra azienda ha avuto di recente un'intrusione in cui il nostro DB MySQL è stato scaricato e rubato. I dirigenti sono davvero nervosi ora e oltre a migliorare le altre misure di sicurezza, sono intenti a crittografare tutte le informazioni sui clienti (indirizzo e-mail, indirizzo di casa, nomi e simili) nel DB.Il modo migliore per crittografare le informazioni sui clienti nel DB MySQL della mia azienda?

Non sono sicuro di dove cominciare. Gestiamo un'app PHP. Ovviamente, questo creerà un ulteriore sovraccarico che vorremmo ridurre al minimo. Un'altra preoccupazione sarà la difficoltà nel cambiare il codice ovunque vengano utilizzati i nuovi campi crittografati.

Questo mi sembra una precauzione inutile, ma la gestione sembra essere solida.

Quale tipo di algoritmo/metodo di crittografia sarebbe il migliore per questo caso d'uso?

+8

Aumentare la sicurezza del server. Passa il tempo lì. Sembra davvero estremo crittografare tutti i dati. Spingi indietro, i semi non sanno tutto. –

+4

L'accesso al database deve essere isolato al punto in cui una modifica di basso livello nei modelli è tutto ciò che è necessario per crittografare i dati. Letteralmente, nulla al di fuori del livello dati/modelli/oggetti di business dovrebbe cambiare, o anche essere consapevoli che i dati sono crittografati. Se devi cambiare il modo in cui viene utilizzato il modello perché la sua memoria interna cambia, la tua app è scritta male. – meagar

+0

Potrebbe essere utile fornire maggiori informazioni su come i dati sono stati rubati in primo luogo. È un problema di codifica? È un problema di installazione del server? I dati sensibili sono meglio posizionati su un server separato a cui è possibile accedere solo tramite macchine con white list utilizzando la crittografia. Cerca sali e hashing. – earthmeLon

risposta

49

C'è una buona opinione su come farlo con MySQL qui: http://thinkdiff.net/mysql/encrypt-mysql-data-using-aes-techniques/.

Ti consigliamo di utilizzare AES con chiavi a 256 bit, poiché al momento è lo standard/pratica prevalente. Le chiavi AES a 256 bit sono considerate di dimensioni sufficienti per essere sicure contro la moderna potenza di calcolo.

È una buona idea, indipendentemente dal fatto che si pensi che sia eccessivo o meno, per crittografare il database. Anche se i dati non sono terribilmente sensibili, la perdita dei dati dei clienti può essere molto imbarazzante per la tua azienda, come minimo, e potrebbe influire negativamente sulla fiducia dei clienti e sulla disponibilità delle persone a consegnare i loro dati in futuro. Crittografare l'intero contenuto del tuo database potrebbe non essere standard del settore in questo momento, ma le tendenze si stanno muovendo in questo modo e non può farti male adottare un atteggiamento di sicurezza più forte. Se non altro, pensala come un'altra voce dell'implementazione in Difesa della Difesa.

Si consiglia inoltre di controllare questo articolo - http://www.symantec.com/connect/articles/secure-mysql-database-design - in quanto fornisce una buona, abbastanza semplice, introduzione alla progettazione del sistema di database sicuro che dovrebbe darvi alcuni suggerimenti su altre cose per verificare la vostra applicazione.

+5

Questo metodo non è molto sicuro, poiché la modalità di crittografia verrà rimandata alla ** modalità ECB non protetta ** con questo tipo di approccio. – ASBai

Problemi correlati