lunedì 6 maggio 2013

Posso crittare i dati nel cloud ?

Questo è complicato da leggere ma ne vale la pena (per aggiornarsi).
IBM takes a big new step in cryptography: practical homomorphic encryption
In breve, i servizi di cloud storage (come Dropbox, Box, Google Drive, Microsoft Skydrive etc etc etc) memorizzano i dati degli utenti "in chiaro", cioè senza crittarli. Ciò è un problema enorme per molte categorie di utenti ed organizzazioni. Dati potenzialmente sensibili, o comunque rilevanti per l'organizzazione, diventano accessibili al provider del servizio e soprattutto possono diventare accessibili se un attaccante riesce a "bucare" il servizio. In altre parole, la difesa principale nei confronti del furto dei dati (crittare i dati) non può essere applicata nei servizi di cloud.

In linea di principio l'utente potrebbe crittare i propri file con una chiave nota solo a lui, e poi potrebbe memorizzare sul cloud i dati crittati. In questo modo però il servizio di cloud non potrebbe effettuare nessuna operazione. Neanche una semplice ricerca testuale---sul cloud ci sarebbero infatti dati crittati. Ogni operazione dovrebbe essere fatta sulla macchina dell'utente, sui dati decrittati.

Le limitazioni di questo approccio sarebbero enormi. Senza contare il fatto che, in pratica, crittare il contenuto dei file sarebbe addirittura troppo poco, in quanto un eventuale attaccante avrebbe visibile la struttura in directory, nome dei file etc---informazioni che in molti casi possono essere sufficienti per lo scopo dell'attacco. Sarebbe cioè necessario crittare completamente il filesystem, nascondendo all'attaccante anche la struttura in directory. In tal caso però il servizio di cloud non potrebbe neanche elencare il contenuto di una directory---non saprebbe neanche quali e quante directory o file esistono.

La cosiddetta "homomorphic encryption" è uno strumento che permette di rivoluzionare il tutto e risolvere proprio problemi di questo genere. Con questa tecnica crittografica, il servizio di cloud storage può fare ricerche sui dati crittati ed ottenere i risultati corretti (!)---sto ultrasemplificando e scrivendo cose inesatte, solo per descrivere l'idea. Io ho i dati, il servizio di cloud storage ha i dati crittati (che non sa come decrittare) ma può eseguirci sopra operazioni per me utili.

La cosa ovviamente è enormemente complicata---visto che il servizio di cloud storage può usare utilmente i dati crittati, come fare in modo che non possa farlo anche un attaccante ? quali utilizzi sono praticamente possibili ?

L'articolo citato descrive in modo sommario la faccenda e lo stato attuale dell'arte, così come implementato in un software open source rilasciato da IBM.
Posta un commento