2012-07-23 7 views
5

Ho bisogno di crittografare i dati inseriti dall'utente nella mia applicazione web basata su java (usando jasypt) che è persistita in un database MySQL e voglio essere in grado di cambiare la chiave di crittografia/passphrase in un intervallo regolare (ad esempio 90 giorni). L'applicazione risiede su un server nel web.Quali sono le pratiche esistenti per la crittografia/decrittografia/rotazione delle chiavi per le applicazioni Web Java

I dati già crittografati dovrebbero essere reencrittati con la nuova chiave, ma per fare ciò avrebbe ovviamente bisogno della vecchia chiave.

  1. Quali sono le pratiche comuni per ruotare le chiavi?
  2. Quali sono modi comuni per rendere le chiavi di crittografia disponibile per il sistema (ad esempio, le proprietà di sistema trasmessi tramite riga di comando, proprietà file crittografati, il download da un altro server tramite HTTPS)

mi aspetto non c'è una risposta unica a questa ma vorrei ottenere alcuni suggerimenti, indicazioni e parole d'ordine per indagare nella giusta direzione.

+0

Dove si trova l'applicazione? Server Web/applicazioni? –

+0

Al momento è un'app web che esegue un pontile. – Christoph

risposta

5

Prima di tutto, è importante comprendere lo scopo della rotazione delle chiavi. Il tuo caso d'uso è quello di crittografare i dati a riposo. In questo caso, lo scopo della rotazione delle chiavi è quello di contenere la violazione dei dati nel caso in cui una chiave sia trapelata o il set di dati crittografato sia trapelato e soggetto a un attacco di decrittografia forza bruta. Procedure comuni per la rotazione delle chiavi:

  • Rotazione della chiave legata al tempo: in questa pratica, le chiavi vengono aggiornate periodicamente.
  • Chiave del livello di transazione: in questa pratica, ogni transazione viene crittografata con la propria chiave univoca, che porta a un livello superiore di mitigazione della violazione dei dati.

Rendere le chiavi disponibili al sistema: Generalmente questo viene eseguito utilizzando un server di gestione delle chiavi. Al suo interno, questo server distribuisce chiavi (solitamente simmetriche) ai richiedenti in base ai parametri. Il server potrebbe scegliere di archiviare in modo sicuro le chiavi generate per il successivo recupero, o assicurarsi che le chiavi siano generate in base a una funzione fissa garantita per generare la stessa chiave in base allo stesso insieme di parametri.

È possibile scegliere di scrivere il proprio server o acquistare/licenziare uno. Concedere in licenza questo componente potrebbe essere una scelta migliore se è necessario rispettare specifiche linee guida di conformità di sicurezza e richiedere la verifica degli elementi di conformità. Per soluzioni fuori dallo scaffale, vedi StrongAuth o Porticor come esempi.

+0

questo non risponde alla domanda ... la domanda era se fosse necessario ricodificare i dati quando cambiano le chiavi di crittografia (oltre a decodificare con la vecchia chiave e crittografare con una nuova chiave), e non vedo alcun suggerimento a riguardo. – sargeMonkey

Problemi correlati