Quindi ho una chiave di crittografia che userò per crittografare i dati o firmare i dati con essa. Ma al fine di garantire l'integrità dei dati, devo mantenere la chiave segreta. Così ho pensato di dividere la chiave in molti pezzi e metterli in posizioni diverse, ma potrei pensare solo a pochi.
1. Memorizzalo nello stesso server dell'applicazione
Memorizzerò la chiave nel file di configurazione delle applicazioni, che verrà memorizzata al di fuori del file pubblico dell'applicazione e verrà importata nell'applicazione.
2. Memorizzalo nel database
avere un pezzo della chiave all'interno del database e sarà recuperato dall'applicazione quando necessario.
3. Memorizza su un server di file diverso.
il server delle applicazioni farà una chiamata a un altro server per recuperare un pezzo della chiave. La comunicazione tra questi server sarà crittografata con RSA.
4. Memorizzarlo nella RAM
sembra una buona idea, ma richiede un sacco di manutenzione, deve essere aggiunto alla RAM manualmente ad ogni avvio.
5. utilizzare AWS KMS?
questo qualcosa che ho appena scoperto di recente, guardandoci sopra ma sembra promettente come gestiscono le chiavi e i loro modi per garantire l'integrità, mi piacerebbe sentire alcuni pensieri di persone che hanno utilizzato AWS
Ma tutto questo è debole, se il server delle applicazioni è compromesso, allora la chiave può essere raccolta, e ho cercato sul web altre idee, ma per essere oneste sembrano tutte misure deboli e disperate.