Ho un'applicazione web in cui (tra le altre cose) i clienti possono caricare file e gli amministratori possono quindi scaricare quei file. I file caricati sono memorizzati su ServerA
e l'applicazione web utilizzata per caricare / scaricare quei file viene eseguita su ServerB
.
Mi piacerebbe farlo in modo che mentre i file sono memorizzati su ServerA
siano crittografati e che solo l'applicazione web possa crittografare / decodificare, ma la mia preoccupazione è che potrebbe non esserci un modo efficace per archiviare una crittografia chiave, che renderebbe la crittografia dei file principalmente per show.
Mi sono imbattuto in questa domanda / risposta che ha suggerito alcuni buoni modi per archiviare in modo sicuro una chiave, ma penso che quelli più sicuri non si applichino poiché ho bisogno di persone diverse per poter decifrare il file.
Ad esempio, non posso creare una chiave in base alle credenziali dell'utente, perché i clienti devono essere in grado di crittografare tutti gli utenti amministratori devono essere in grado di decifrare (giusto?).
Da quello che posso dire, la mia migliore opzione è quella di memorizzare i file crittografati su un server e memorizzare la chiave di crittografia nel codice sul mio server web, ma questo non sembra particolarmente sicuro. Sembra probabile che se un utente malintenzionato ottiene l'accesso a un server, probabilmente avrà accesso ad entrambi.
La mia domanda - vale la pena di implementare "file crittografati su ServerA" e "chiave di crittografia su ServerB", o mi prenderei in giro per pensare che sia più sicuro? Esiste un modo efficace per crittografare i file in base alle condizioni che ho esposto sopra?