La crittografia asimmetrica è sempre consigliata per l'archiviazione a lungo termine?

8

La crittografia asimmetrica è sempre consigliata per l'archiviazione a lungo termine dei dati, è consigliabile ad esempio memorizzare i dati in un database in modo tale che:

1) Un utente inserisce i dati su un sito Web, viene crittografato utilizzando una chiave pubblica e memorizzato. Né il server web né il server di database memorizzano la chiave privata.

2) I dati vengono scaricati da un lavoratore che era autorizzato ad accedervi.

3) L'operatore utilizza la chiave privata memorizzata sul suo computer locale per decrittografare i dati.

Supponendo che il computer del lavoratore sia privo di malware, il vantaggio apparente sarebbe che se il server di database dovesse essere compromesso i dati non sarebbero accessibili.

Quali sarebbero i problemi con questo?

    
posta broccoli_soup 23.08.2012 - 10:47
fonte

4 risposte

8

Sì, questo è un buon schema per la memorizzazione a medio termine, purché sia implementato correttamente.

Alcune cose da tenere a mente:

  • Gli algoritmi asimmetrici comuni usano come base il factoring semiprime. Pertanto, puoi crittografare i dati solo a condizione che la chiave, ad es. 4096 bit. Questo non è molto pratico, quindi normalmente si dovrebbe cifrare una chiave simmetrica con la propria chiave privata (o, in questo caso, pubblica) e crittografare i dati usando un algoritmo simmetrico. Quindi useresti AES per crittografare i dati e RSA per crittografare la chiave AES.
  • Le lunghezze delle chiavi asimmetriche hanno dovuto crescere ad un ritmo molto più veloce rispetto alle chiavi simmetriche. Generalmente si considera che RSA 1024-bit sia sicuro per ora , ma 2048-bit è più appropriato per tutto ciò di cui avrete bisogno per rimanere al sicuro per più di un paio d'anni. Se stai cercando di archiviare dati per più di 5 anni, avrai bisogno di chiavi a 4096 o 8192 bit. Questo non è esattamente favorevole alle prestazioni, ma è un requisito. Al contrario, con la crittografia simmetrica, si pensa che una chiave a 256 bit non possa mai essere incrinata con metodi convenzionali, anche con ogni grammo di energia sul pianeta, prima della morte termica dell'universo.
  • I computer quantistici, anche se molto lontani, potrebbero consentire che il semiprimo venga fattorizzato nei loro numeri primi costituenti in tempo polinomiale, il che interromperà tali schemi asimmetrici. Se hai intenzione di archiviare i dati per più di 20 anni, tieni questo in considerazione.

Un'alternativa sarebbe avere il client crittografare i dati con AES-256, quindi caricarlo. Possono mantenere la loro chiave simmetrica sulla loro macchina o ricavarla da una password usando PBKDF2 o bcrypt.

    
risposta data 23.08.2012 - 11:05
fonte
4

Hai sostanzialmente descritto come funzionano le email crittografate, con S / MIME o OpenPGP . Con le e-mail, i server di trasferimento dati e archiviazione non possono accedere ai contenuti della posta elettronica; nella tua descrizione, stai semplicemente usando i protocolli basati sul Web (cioè HTTP) per i particolari, invece dei protocolli di trasferimento della posta (SMTP, IMAP ...).

I dettagli della crittografia (quali algoritmi utilizzare, come incollarli insieme ...) sono noti per essere difficili da ottenere, quindi è necessario attenersi agli standard studiati per questo (cioè OpenPGP o CMS - CMS è il formato che è al centro di S / MIME).

Si noti che questo è chiamato "asimmetrico" per una ragione: la crittografia asimmetrica ha senso solo se le persone che codificano sono distinte da quelle che decodificano i dati. Se lo stesso utente invia i dati per l'archiviazione e successivamente recupera e decodifica, la crittografia simmetrica è sufficiente e più facile da gestire.

    
risposta data 23.08.2012 - 13:14
fonte
2

È uno schema molto valido in molti modi, soprattutto se un compromesso tra server non può esporre i dati. C'è un problema enorme che è inevitabile e che è la disponibilità. Non stai tenendo conto del fattore umano. Ti aspetti da anni, forse da decenni, che le persone saranno in grado di tenere le proprie chiavi private al sicuro e disponibili, e questo semplicemente non accadrà!

Lo scenario è questo: Bob crea una coppia di chiavi pubblica / privata che usa per crittografare i dati sul server. 5 anni dopo Bob si ubriaca massicciamente e lascia il suo laptop nella fogna in cui è svenuto. Bob si rende conto in seguito che non ha incluso la directory in cui la sua coppia di chiavi è stata memorizzata nella sua utility di backup automatico. Dati persi per sempre senza alcuna speranza di recupero.

Utilizzerei invece la crittografia simmetrica lato client, in questo modo un compromesso del server non può esporre i dati e spetta al cliente conservare la propria password in modo sicuro. Naturalmente potrebbero ancora perdere la password, ma è più facile mantenere una password a lungo termine rispetto a una chiave privata. Meglio ancora potresti offrire un servizio extra che memorizzerebbe le loro password per loro a lungo termine, fare un po 'di soldi extra.

    
risposta data 23.08.2012 - 11:54
fonte
0

Tom, Greg e Polynomial hanno coperto la maggior parte della risposta a questo - tuttavia nessuno ha menzionato Forward Security (spesso ottimisticamente indicato come" forward "forward security) che ha lo scopo di proteggere i dati anche se la chiave viene divulgata.

Un avvertimento è che anche gli algoritmi asimmetrici standard sono relativamente costosi in termini di elaborazione e memorizzazione - la gamma disponibile di algiri avanzati in avanti ancora di più.

    
risposta data 23.08.2012 - 17:03
fonte

Leggi altre domande sui tag