Questo approccio ai backup è sicuro?

1

Ho un servizio di backup (personale) esistente che sto riscrivendo da zero per essere sicuro.

Al momento, ho appena archiviato file (e diff) in AWS S3 senza crittografia. Funziona bene ma mi piacerebbe assicurarmi che i miei dati non possano essere trapelati.

Per il gusto di questa discussione, presumo che i dati S3 possano essere letti da qualcun altro. Voglio poter eseguire il backup senza dover fornire una chiave / password all'avvio.

Il mio piano attuale è il seguente:

Genera una coppia di chiavi pubblica / privata. Memorizza la chiave privata in un posto sicuro (senza scrivere sul disco locale). Archivia la chiave pubblica localmente.

In base al file (o parte di file):

  • Generare in modo sicuro una chiave simmetrica
  • Utilizza la chiave simmetrica per crittografare il file
  • Cripta la chiave simmetrica usando la chiave pubblica
  • Memorizza l'IV, la chiave simmetrica crittografata e i dati dei file crittografati in S3

Ho ragione nel ritenere che anche se tutti i dati dell'ultimo punto sopra possono potenzialmente essere letti da qualcun altro, il fatto che la chiave privata sia richiesta per recuperare la chiave simmetrica significa che questo è sicuro?

Mi manca qualcosa di ovvio?

    
posta Basic 13.04.2015 - 01:17
fonte

3 risposte

2

Il design di base che proponi è sicuro. Ovviamente, la sicurezza di qualsiasi sistema operativo dipende anche dall'implementazione.

Tuttavia, l'utilizzo della chiave crittografica a chiave pubblica per i backup ha un piccolo vantaggio rispetto alla crittografia simmetrica. La solita disposizione per i backup è avere una chiave simmetrica. Lo memorizzi in due punti: la tua macchina funzionante e in un backup offline sicuro, sicuro. Non c'è alcun rischio reale nell'avere la chiave della macchina da lavoro; è usato solo per crittografare i dati che sono già presenti su quella macchina.

I backup simmetricamente crittografati sono supportati da molti software, ad es. Duplicati . Questo può anche fare backup crittografati incrementali, che penso sarebbe impossibile con l'approccio a chiave pubblica che proponi.

    
risposta data 13.04.2015 - 12:56
fonte
1

@mikeazo ha un punto: ciò che stai descrivendo ha senso; è il modo standard per crittografare un file con una chiave pubblica. Se fossi in te, inizierei a guardare le applicazioni di backup crittografate per il tuo sistema operativo e a vedere se sono appropriate prima di reinventare la ruota.

Separatamente, ora hai un problema di archiviazione delle chiavi: i tuoi backup sono crittografati, ma le chiavi private per recuperarli devono essere archiviati da qualche parte ... e sottoposti a backup.

    
risposta data 13.04.2015 - 12:23
fonte
1

Am I correct in assuming that even though all the data from the last point above can potentially be read by someone else, the fact that the private key is required to recover the symmetric key means this is secure?

Dipende dalla tua definizione di sicurezza. Se vuoi garantire la riservatezza e l'integrità, e vai con CBC come suggerisci nei commenti, la risposta è no. Se ti interessa solo la riservatezza, allora il tuo approccio è abbastanza buono. Detto questo, se ti interessa solo la riservatezza, ti suggerisco ripensa a ciò che ti interessa .

Am I missing anything obvious?

Bene, la descrizione che fornisci è di altissimo livello e capisco perché hai iniziato con quello. Il diavolo è nei dettagli però. Ecco perché è importante utilizzare un progetto open source che soddisfi molte delle tue esigenze. Per lo meno, dovresti dare un'occhiata a GnuPG . Può crittografare i file esattamente nel modo in cui descrivi. Il suo design è in circolazione da molto tempo ed è stato studiato dai crittografi.

    
risposta data 13.04.2015 - 15:40
fonte

Leggi altre domande sui tag