Come implementare un efficace ciclo di vita della chiave di crittografia

1

Se le chiavi di crittografia devono avere un ciclo di vita di generato, distribuito, memorizzato, sostituito, cancellato. Come decrittografare i dati crittografati con Key0 quando ora utilizzo Key1 o Key2?

Mi riferisco ai dati crittografati a riposo contenuti in un database mongoDB.

    
posta Hector 06.12.2016 - 13:10
fonte

1 risposta

2

Sebbene non esista una soluzione generalizzata, ci sono alcune idee su come farlo, in base a quale parte di fiducia sei disposto a fornire al sistema:

  • disaccoppia le chiavi di accesso dalle chiavi di archiviazione (memorizza con chiavi casuali, che poi vengono crittografate con le chiavi di accesso). fai in modo che il sistema avvolga le nuove chiavi di archiviazione nella chiave pubblica / chiave legata all'identità per l'accesso. ti fidi che il sistema sia onesto e fornisca nuove chiavi di archiviazione solo a te.
  • fidati del software di re-keying (una delle buone idee è avere un ciclo di compattazione nel tuo DB, che rimuove i record obsoleti e ridigita tutto, deframmentando lo storage e aggiornando ogni record in sequenza) per avere una chiave aggiuntiva da usare a re- keying / compaction cycle.
  • fidati del sistema per rigenerare nuove chiavi e fornirle su un canale fidato (ad esempio, il sistema firma ogni nuova chiave di archiviazione e te la invia).
  • deriva in modo sicuro una nuova chiave dalla precedente con l'utente che è presente con la sua chiave privata per il protocollo interattivo, in cui le parti (db e utente) ricavano nuovo segreto di archiviazione. richiede la presenza online e la possibilità di eseguire il protocollo di derivazione della chiave, che è solo computazionalmente più economico rispetto alla ricodifica di everythign da key0 a key1.
risposta data 06.12.2016 - 14:27
fonte

Leggi altre domande sui tag