Chiavi dati di crittografia in un unico file nella stessa posizione

4

Ho una memoria esterna che sto cercando di memorizzare i file crittografati.

Strategia n. 1:

  • Ogni nome di file e cartella è crittografato con AES con la propria chiave dati
  • Tutte le chiavi dei dati vengono salvate in un singolo file datakeys.json nella stessa memoria posizione come tutti i file crittografati.
  • Il file datakeys.json è crittografato con AES utilizzando una chiave principale.
  • La chiave principale è crittografata utilizzando una chiave pubblica RSA degli utenti.

Strategia n. 2:

  • Ogni nome di file e cartella è crittografato con la propria chiave di dati AES

  • Ogni singola chiave dati viene crittografata utilizzando una chiave principale e archiviata accanto al file

  • la chiave principale viene crittografata utilizzando la chiave RSA pubblica degli utenti e archiviata al di fuori della posizione di archiviazione

Condivisione:

  • Quando voglio condividere i file con un altro utente, crittaggio il main chiave utilizzando la nuova chiave pubblica RSA degli utenti.

  • Gli utenti possono avere il loro accesso revocato rimuovendo la loro chiave principale crittografata RSA personale. Anche il loro token di accesso (oauth) viene revocato al percorso di archiviazione. Datakeys.json viene caricato in memoria solo quando l'applicazione viene eseguita per la prima volta e rimossa durante la chiusura.

  • L'utente ha accesso a tutti i file e le cartelle sul percorso di archiviazione, senza bisogno di condivisione a livello di file

  • Gli utenti sono in grado di decodificare i nuovi elementi aggiunti all'archivio esterno ottenendo una versione aggiornata del file datakeys.json.

Preoccupazioni per la sicurezza

  • La mia preoccupazione principale è il file datakeys.json contenente TUTTE le chiavi dati per TUTTI i file sul percorso di archiviazione.
  • L'attaccante ottiene l'accesso alla posizione di archiviazione (token di accesso oauth rubato) e può in qualche modo visualizzare i file
  • Datacenter può visualizzare i file

Link più debole:

Il collegamento più debole (che posso pensare) sarà il dispositivo dell'utente, che memorizzerà la propria chiave privata rsa. Se il dispositivo è compromesso, il percorso di archiviazione può essere decodificato. Questo è un rischio accettabile.

Ogni utente sarà solo un piccolo gruppo fidato, quindi se in qualche modo memorizzano la chiave principale dopo aver revocato il loro accesso dovrebbe essere ok (non saranno comunque in grado di accedere alla memoria esterna perché il proprio token di accesso oauth avrà anche revocata), o forse le chiavi dei dati dovrebbero essere ricodificate con una nuova chiave principale dopo aver revocato l'accesso ai nuovi utenti (questo potrebbe essere inutile dato che l'utente potrebbe aver memorizzato nella cache le chiavi dei dati).

Un altro punto debole (credo) è la memorizzazione di tutte le chiavi dei dati in un singolo file json crittografato (strategia # 1) nella memoria esterna. Se quel file viene compromesso, l'intera memoria esterna può essere decifrata. In alternativa, il file json delle chiavi dati può essere memorizzato su un server sicuro diverso e accessibile tramite un'API. Creare una separazione tra la memoria esterna e le chiavi dati json.

Qualche consiglio?

    
posta James 11.03.2018 - 06:32
fonte

0 risposte

Leggi altre domande sui tag