Come proteggere i dati a riposo in un'applicazione php? [chiuso]

-1

Mi chiedevo quale sia il modo migliore per proteggere i dati a riposo (criptare / decodificare) in un'applicazione php (eq: archiviata in un database) usando AES?

Qual è il modo migliore per memorizzare le chiavi?

    
posta GearLab 20.05.2015 - 22:47
fonte

3 risposte

1

Dipende tutto dal tipo di informazioni che vuoi proteggere e dal tipo di database che stai utilizzando.

Se stai chiedendo questo per un'azienda che gestisce le carte di credito, i registri sanitari o informazioni confidenziali della gente, mi piacerebbe raccomandarti di non eseguire la tua implementazione. Molte cose possono andare storte e sarebbe davvero difficile raggiungere il livello di conformità. Anche altri fattori pratici giocano un ruolo (prestazioni, gestione delle chiavi, auditing, ecc.). Difficile riuscire a farcela da solo. Ci sono alcuni prodotti commerciali a prezzi accessibili che affrontano proprio questa situazione. Alcuni forniscono crittografia a livello di colonna per i DB Open Source e la società si rivolge alle PMI, il che significa un prezzo relativamente conveniente.

    
risposta data 20.03.2017 - 07:56
fonte
1

Come accenni alla tua domanda, il problema è tutto relativo alla gestione dei segreti (token e chiavi di accesso).

L'utilizzo di soluzioni di crittografia complesse e / o remote avrà un enorme impatto sulle prestazioni e la scalabilità. Volete che le vostre chiavi siano immediatamente disponibili per il vostro codice, ma limitate l'esposizione altrove (altri processi, backup). Memoria condivisa, la cache APC (ma non il più recente opcache) sono candidati ovvi. L'utilizzo di PHP-FPM (eseguito come un diverso uid) piuttosto che mod_php offre un isolamento migliore se non si dispone di una cache Web separata davanti al proprio server web.

Il modo in cui crittografate i vostri dati dipende in gran parte dalla struttura dei dati e dal modo in cui sarà acceduto. Vedi altre domande qui sulla gestione delle password del database e sulla crittografia dei dati all'interno del database.

    
risposta data 29.03.2017 - 12:40
fonte
0

Dipende dalla struttura di rete e dalla topologia del tuo sistema, in alcuni casi come il sistema distribuito puoi usare uno schema di condivisione segreta, come shamir, rabin IDA o Krawcyk. Inoltre puoi usare PKI per questo.

Solitamente nella pratica vengono memorizzati solo hash di password. Ma per chiave, lo schema di condivisione segreta di shamir è potente per archiviare la chiave in modo sicuro. Solo un numero accettabile di partecipanti può recuperare la chiave come soglia. Inoltre, in alcuni casi, tra alcuni database in un server viene utilizzato l'IDA shamir o rabin che è stato protetto separatamente, tuttavia non è consigliabile.

Anche il metodo krawcyk (condivisione segreta resa breve) fornisce un ibrido di shamir per la protezione delle chiavi e IDA rabino per la protezione dei dati e utilizza AES per la crittografia.

Ulteriori informazioni sullo schema di condivisione segreta qui .

Inoltre puoi usare HSM per memorizzare le chiavi in modo sicuro.

    
risposta data 20.05.2015 - 23:37
fonte

Leggi altre domande sui tag