Crittografia / decodifica dei dati dell'utente in un database (PHP)

3

Mi chiedevo quale sia il modo migliore per crittografare e decrittografare i dati degli utenti in un database, per renderlo molto più sicuro come è possibile?

Leggevo di AES, ma mi piacerebbe sapere se è davvero il modo migliore.

Stavo pensando di usare AES e una chiave di secrete per cifrare / decriptare, c'è un modo migliore?

    
posta itsme 01.10.2012 - 10:58
fonte

3 risposte

2

AES è una buona scelta per la crittografia dei dati, se la si implementa correttamente. Se si stanno crittografando i dati in un database, si verificherà il problema del DRM, ovvero non è possibile mantenere la riservatezza dei dati tramite la crittografia se si inseriscono i dati crittografati e la chiave nella stessa posizione. Un utente malintenzionato con accesso alla macchina può semplicemente rubare la chiave contemporaneamente ai dati.

La soluzione migliore per proteggere i dati sensibili dagli attacchi live è HSM , progettata esattamente per questo scenario.

Se sei preoccupato solo per gli attacchi offline, ad es. qualcuno ruba il disco rigido del tuo server, quindi dovresti crittografare il tuo database su un volume TrueCrypt o utilizzare la crittografia del disco intero (sistema).

    
risposta data 01.10.2012 - 11:55
fonte
3

Sicuro, sì, ma contro chi o cosa?

Indipendentemente da come crittografate i dati, il vostro server deve essere ancora in grado di decodificarlo. Pertanto, qualsiasi attacco che sovverte il server (ad es. Buffer overflow o SQL injection) produrrà l'accesso completo ai dati da parte dell'utente malintenzionato, indipendentemente dalla crittografia.

La crittografia ti farà bene solo contro gli aggressori che ottengono l'accesso backdoor allo spazio di archiviazione, ad es. che ruba un nastro di backup o recupera un vecchio disco rigido da un dumpster. Quindi, questo indica il tipo di crittografia che ti serve: Transparent Data Encryption (equivalentemente, una crittografia a disco intero, come suggerito at by @Polynomial). TDE non elimina le esigenze di riservatezza, ma le concentra : tu "solo" devi preoccuparti della chiave di crittografia, che è piccola e non cambia nel tempo, invece di gigabyte di dati in continua mutazione.

(Ovviamente, se vuoi spargere la crittografia su tutto il server solo per alleviare i problemi di qualche gerarchia amministrativa da qualche parte, dimentica tutto questo e vai per un algoritmo con l'acronimo più impressionante, preferibilmente con un tasto molto lungo. "RSA-8192 e AES-256 / CBC con HMAC / SHA-512" affonderanno in modo affidabile il burocrate medio in una trance estatica.)

    
risposta data 01.10.2012 - 13:32
fonte
1

Forse qualcuno potrebbe rispondere alla tua domanda in modo definitivo ma ho l'impressione che la tua domanda sia in qualche modo simile a "Chi è il miglior medico per curare la malattia X?" Ad ogni modo, AES è uno standard ISO ed è stato a lungo esaminato dagli esperti in pubblico senza ancora seri difetti riscontrati ed è considerato sicuro anche quando i computer quantistici sono disponibili. D'altra parte, un algoritmo sicuro, naturalmente, non fornisce ancora alcuna sicurezza.

    
risposta data 01.10.2012 - 11:50
fonte

Leggi altre domande sui tag