1. La privatezza su Cloud Storage
Un approccio basato su duplicazione
Relatore: Chiar.mo Prof Giuseppe Persiano
Candidato: Andrea Bruno (05210/000495)
Facoltà di Scienze Matematiche Fisiche e Naturali
Università degli Studi di Salerno
Laurea Specialistica in Informatica
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 1 / 35
2. Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 2 / 35
3. Introduzione
Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 4 / 35
4. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
5. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
• Fault tolerance
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
6. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
• Fault tolerance
• Molti servizi
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
7. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
• Fault tolerance
• Molti servizi
• Dropbox
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
8. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
• Fault tolerance
• Molti servizi
• Dropbox
• Ubuntu One
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
9. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
• Fault tolerance
• Molti servizi
• Dropbox
• Ubuntu One
• SugarSync
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
10. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
• Fault tolerance
• Molti servizi
• Dropbox
• Ubuntu One
• SugarSync
• Sincplicity
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
11. Introduzione
Perchè il Cloud Storage?
• File sempre disponibili
• Fault tolerance
• Molti servizi
• Dropbox
• Ubuntu One
• SugarSync
• Sincplicity
• ...
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 5 / 35
12. Introduzione
Sicurezza del Cloud Storage I
• Solo garanzia di uso https per trasferimento file
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 6 / 35
13. Introduzione
Sicurezza del Cloud Storage I
• Solo garanzia di uso https per trasferimento file
• Non sempre dichiarata
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 6 / 35
14. Introduzione
Sicurezza del Cloud Storage I
• Solo garanzia di uso https per trasferimento file
• Non sempre dichiarata
• Anche se usata cifratura le chiavi sono in mano al servizio
Dropbox AES256 con chiavi gestite da loro
Ubuntu One Nessuna cifratura per faciltare sharing
SugarSync File protetti (come?)
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 6 / 35
15. Introduzione
Sicurezza del Cloud Storage II
• Controllo delle chiavi necessario per le forze dell’ordine
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 7 / 35
16. Introduzione
Sicurezza del Cloud Storage II
• Controllo delle chiavi necessario per le forze dell’ordine
• Chiunque accede (legalmente o illegalmente) ai server accede ai
file
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 7 / 35
17. Introduzione
Sicurezza del Cloud Storage II
• Controllo delle chiavi necessario per le forze dell’ordine
• Chiunque accede (legalmente o illegalmente) ai server accede ai
file
• Forze dell’ordine
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 7 / 35
18. Introduzione
Sicurezza del Cloud Storage II
• Controllo delle chiavi necessario per le forze dell’ordine
• Chiunque accede (legalmente o illegalmente) ai server accede ai
file
• Forze dell’ordine
• > Hacker
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 7 / 35
19. Introduzione
Sicurezza del Cloud Storage II
• Controllo delle chiavi necessario per le forze dell’ordine
• Chiunque accede (legalmente o illegalmente) ai server accede ai
file
• Forze dell’ordine
• > Hacker
• Impiegati sleali
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 7 / 35
20. Il Cloud Storage questo sconosciuto
Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 8 / 35
21. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
22. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
• Grid Computing
(SETI@home)
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
23. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
• Grid Computing
(SETI@home)
• Cloud Computing -
Applicazioni e dati nella
nuvola:
Figura: Diagramma logico di una rete
Cloud Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
24. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
• Grid Computing
(SETI@home)
• Cloud Computing -
Applicazioni e dati nella
nuvola:
• Calendario
Figura: Diagramma logico di una rete
Cloud Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
25. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
• Grid Computing
(SETI@home)
• Cloud Computing -
Applicazioni e dati nella
nuvola:
• Calendario
• Contatti
Figura: Diagramma logico di una rete
Cloud Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
26. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
• Grid Computing
(SETI@home)
• Cloud Computing -
Applicazioni e dati nella
nuvola:
• Calendario
• Contatti
• Word processing
Figura: Diagramma logico di una rete
Cloud Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
27. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
• Grid Computing
(SETI@home)
• Cloud Computing -
Applicazioni e dati nella
nuvola:
• Calendario
• Contatti
• Word processing
• Comunicazioni
Figura: Diagramma logico di una rete
Cloud Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
28. Il Cloud Storage questo sconosciuto Cloud Computing
Storia del Cloud Computing
• Elaborazione distribuita
(Cluster)
• Grid Computing
(SETI@home)
• Cloud Computing -
Applicazioni e dati nella
nuvola:
• Calendario
• Contatti
• Word processing
• Comunicazioni
• Cloud Storage Figura: Diagramma logico di una rete
Cloud Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 9 / 35
29. Il Cloud Storage questo sconosciuto Cloud Computing
Cloud Computing
Fondamentalmente 3 sono le tipologie di Cloud Computing:
Client
Application
Platform
Infrastructure
Server
Figura: Livelli di una rete Cloud
Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 10 / 35
30. Il Cloud Storage questo sconosciuto Cloud Computing
Cloud Computing
Fondamentalmente 3 sono le tipologie di Cloud Computing:
Client
Application
Platform
SaaS Software as a Service Infrastructure
Server
Figura: Livelli di una rete Cloud
Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 10 / 35
31. Il Cloud Storage questo sconosciuto Cloud Computing
Cloud Computing
Fondamentalmente 3 sono le tipologie di Cloud Computing:
Client
Application
Platform
SaaS Software as a Service Infrastructure
PaaS Platform as a Service
Server
Figura: Livelli di una rete Cloud
Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 10 / 35
32. Il Cloud Storage questo sconosciuto Cloud Computing
Cloud Computing
Fondamentalmente 3 sono le tipologie di Cloud Computing:
Client
Application
Platform
SaaS Software as a Service Infrastructure
PaaS Platform as a Service
IaaS Infrastructure as a
Server
Service Figura: Livelli di una rete Cloud
Computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 10 / 35
33. Il Cloud Storage questo sconosciuto Cloud Computing
Architettura
Figura: Architettura del cloud computing
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 11 / 35
34. Il Cloud Storage questo sconosciuto Cloud Computing
Problematiche
• Sicurezza informatica e privacy degli utenti
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 12 / 35
35. Il Cloud Storage questo sconosciuto Cloud Computing
Problematiche
• Sicurezza informatica e privacy degli utenti
• Problematiche internazionali di tipo economico e politico
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 12 / 35
36. Il Cloud Storage questo sconosciuto Cloud Computing
Problematiche
• Sicurezza informatica e privacy degli utenti
• Problematiche internazionali di tipo economico e politico
• Difficoltà di migrazione dei dati nel caso di un eventuale cambio
del gestore dei servizi cloud
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 12 / 35
37. Il Cloud Storage questo sconosciuto Analisi dei principali servizi di Cloud Storage
Principali servizi di Cloud Storage I
Servizio Spazio disco Dimensione API Link
gratuito massima
singolo file
Dropbox 2 GB 150 MB se Java, http://www.
caricati tramite Ojective-C, dropbox.com
API nessuno se Python, Ruby,
caricati tramite Perl, PHP, C#
applicazione .Net, iOS Sdk,
proprietaria Android sdk,
REST
Box.Net 2 GB 25 MB SOAP, REST, http://www.
XML box.net/
Wuala 1 GB ND REST http://www.
wuala.com
SpiderOak 2 GB ND Python,REST https:
//spideroak.
com/
Syncplicity 2 GB ND NO http://www.
syncplicity.
com/
Tabella: Riassunto dei principali sistemi di storage online
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 13 / 35
38. Il Cloud Storage questo sconosciuto Analisi dei principali servizi di Cloud Storage
Principali servizi di Cloud Storage II
Servizio Spazio disco Dimensione API Link
gratuito massima
singolo file
SugarSync 5 GB ND REST https://www.
sugarsync.
com/
DMailer backup 2 GB ND NO http://www.
dmailer.com/
dmailer-backup.
html
Ubuntu ONE 5 GB ND REST https://one.
ubuntu.com/
Google Documents 1 GB ND Java, Python, docs.google.
REST com
Tabella: Riassunto dei principali sistemi di storage online
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 14 / 35
39. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
40. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
41. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
• Tutte le risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e risorse, questo consiste in:
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
42. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
• Tutte le risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e risorse, questo consiste in:
• un insieme vincolato di operazioni ben definite
• un insieme vincolato di contenuti, opzionalmente supportato da
codice on demand
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
43. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
• Tutte le risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e risorse, questo consiste in:
• un insieme vincolato di operazioni ben definite
• un insieme vincolato di contenuti, opzionalmente supportato da
codice on demand
• un protocollo che è:
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
44. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
• Tutte le risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e risorse, questo consiste in:
• un insieme vincolato di operazioni ben definite
• un insieme vincolato di contenuti, opzionalmente supportato da
codice on demand
• un protocollo che è:
• Client-Server
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
45. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
• Tutte le risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e risorse, questo consiste in:
• un insieme vincolato di operazioni ben definite
• un insieme vincolato di contenuti, opzionalmente supportato da
codice on demand
• un protocollo che è:
• Client-Server
• Stateless
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
46. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
• Tutte le risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e risorse, questo consiste in:
• un insieme vincolato di operazioni ben definite
• un insieme vincolato di contenuti, opzionalmente supportato da
codice on demand
• un protocollo che è:
• Client-Server
• Stateless
• Cachable
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
47. Il Cloud Storage questo sconosciuto REST
L’architettura rest
• Lo stato dell’applicazione e le funzionalità sono divisi in Risorse
WEB
• Ogni risorsa è unica e indirizzabile usando sintassi universale
per uso nei link ipertestuali
• Tutte le risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e risorse, questo consiste in:
• un insieme vincolato di operazioni ben definite
• un insieme vincolato di contenuti, opzionalmente supportato da
codice on demand
• un protocollo che è:
• Client-Server
• Stateless
• Cachable
• A livelli
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 15 / 35
48. Il Cloud Storage questo sconosciuto OAuth
OAuth
Cos’è OAuth
Un protocollo aperto per consentire
autorizzazioni sicure alle API con un metodo
semplice e standard dalle applicazioni desktop e web
• Protected resource
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 16 / 35
49. Il Cloud Storage questo sconosciuto OAuth
OAuth
Cos’è OAuth
Un protocollo aperto per consentire
autorizzazioni sicure alle API con un metodo
semplice e standard dalle applicazioni desktop e web
• Protected resource
• User (o resource owner)
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 16 / 35
50. Il Cloud Storage questo sconosciuto OAuth
OAuth
Cos’è OAuth
Un protocollo aperto per consentire
autorizzazioni sicure alle API con un metodo
semplice e standard dalle applicazioni desktop e web
• Protected resource
• User (o resource owner)
• Consumer (o client)
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 16 / 35
51. Il Cloud Storage questo sconosciuto OAuth
OAuth
Cos’è OAuth
Un protocollo aperto per consentire
autorizzazioni sicure alle API con un metodo
semplice e standard dalle applicazioni desktop e web
• Protected resource
• User (o resource owner)
• Consumer (o client)
• Service Provider (o server)
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 16 / 35
52. Il Cloud Storage questo sconosciuto OAuth
OAuth
Cos’è OAuth
Un protocollo aperto per consentire
autorizzazioni sicure alle API con un metodo
semplice e standard dalle applicazioni desktop e web
• Protected resource
• User (o resource owner)
• Consumer (o client)
• Service Provider (o server)
• Credenziali
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 16 / 35
53. Il Cloud Storage questo sconosciuto OAuth
OAuth
Cos’è OAuth
Un protocollo aperto per consentire
autorizzazioni sicure alle API con un metodo
semplice e standard dalle applicazioni desktop e web
• Protected resource
• User (o resource owner)
• Consumer (o client)
• Service Provider (o server)
• Credenziali
• Token
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 16 / 35
54. La nostra soluzione
Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 17 / 35
55. La nostra soluzione Desiderata
I nostri obiettivi
• Sicurezza e privacy
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 18 / 35
56. La nostra soluzione Desiderata
I nostri obiettivi
• Sicurezza e privacy
• Portabilità
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 18 / 35
57. La nostra soluzione Desiderata
I nostri obiettivi
• Sicurezza e privacy
• Portabilità
• Semplicità d’uso
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 18 / 35
58. La nostra soluzione Desiderata
I nostri obiettivi
• Sicurezza e privacy
• Portabilità
• Semplicità d’uso
• Possibilità di condividere i file con altri utenti
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 18 / 35
59. La nostra soluzione Soluzione
Soluzioni scartate
Idee
1 Cifrare tutti i file con una password
Motivazioni per scartarla
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 19 / 35
60. La nostra soluzione Soluzione
Soluzioni scartate
Idee
1 Cifrare tutti i file con una password
Motivazioni per scartarla
1 La password si può indovinare e anche perdere
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 19 / 35
61. La nostra soluzione Soluzione
Soluzioni scartate
Idee
1 Cifrare tutti i file con una password
2 Cifrare ogni file con una password diversa
Motivazioni per scartarla
1 La password si può indovinare e anche perdere
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 19 / 35
62. La nostra soluzione Soluzione
Soluzioni scartate
Idee
1 Cifrare tutti i file con una password
2 Cifrare ogni file con una password diversa
Motivazioni per scartarla
1 La password si può indovinare e anche perdere
2 Dove conservare le password? Le devo portare sempre con me?
E se ho molti file?
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 19 / 35
63. La nostra soluzione Soluzione
Soluzioni scartate
Idee
1 Cifrare tutti i file con una password
2 Cifrare ogni file con una password diversa
3 Cifrare con uno schema di cifratura asimmetrico
Motivazioni per scartarla
1 La password si può indovinare e anche perdere
2 Dove conservare le password? Le devo portare sempre con me?
E se ho molti file?
3 Bisogna portare con se la chiave
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 19 / 35
64. La nostra soluzione Soluzione
Soluzione
Prendiamo il meglio delle idee precedenti
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 20 / 35
65. La nostra soluzione Soluzione
Soluzione
Prendiamo il meglio delle idee precedenti
Se cifriamo ogni file con una password diversa il problema è dove
conservare le password per non perderle?
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 20 / 35
66. La nostra soluzione Soluzione
Soluzione
Prendiamo il meglio delle idee precedenti
Se cifriamo ogni file con una password diversa il problema è dove
conservare le password per non perderle?
Ma la soluzione è insita nel problema stesso:
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 20 / 35
67. La nostra soluzione Soluzione
Soluzione
Prendiamo il meglio delle idee precedenti
Se cifriamo ogni file con una password diversa il problema è dove
conservare le password per non perderle?
Ma la soluzione è insita nel problema stesso:
• suddividiamo le informazioni
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 20 / 35
68. La nostra soluzione Soluzione
Soluzione
Prendiamo il meglio delle idee precedenti
Se cifriamo ogni file con una password diversa il problema è dove
conservare le password per non perderle?
Ma la soluzione è insita nel problema stesso:
• suddividiamo le informazioni
• salviamo le chiavi su un account presso un servizio di Cloud
Storage (es. DropboxTM )
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 20 / 35
69. La nostra soluzione Soluzione
Soluzione
Prendiamo il meglio delle idee precedenti
Se cifriamo ogni file con una password diversa il problema è dove
conservare le password per non perderle?
Ma la soluzione è insita nel problema stesso:
• suddividiamo le informazioni
• salviamo le chiavi su un account presso un servizio di Cloud
Storage (es. DropboxTM )
• salviamo i file cifrati su un’account su un servizio diverso (es.
Ubuntu One)
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 20 / 35
70. Implementazione
Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 21 / 35
72. Implementazione
Implementazione I
Azioni che vogliamo implementare
storeFile: Cifrare i file con una chiave generata appositamente e
salvare il file su un servizio e la chiave su un’altro.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 22 / 35
73. Implementazione
Implementazione I
Azioni che vogliamo implementare
storeFile: Cifrare i file con una chiave generata appositamente e
salvare il file su un servizio e la chiave su un’altro.
getFile: Recuperare il file e la relativa chiave e restituire il file
decifrato
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 22 / 35
74. Implementazione
Implementazione I
Azioni che vogliamo implementare
storeFile: Cifrare i file con una chiave generata appositamente e
salvare il file su un servizio e la chiave su un’altro.
getFile: Recuperare il file e la relativa chiave e restituire il file
decifrato
getFileList: Ottenere la lista dei file cifrati remoti
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 22 / 35
75. Implementazione
Implementazione I
Azioni che vogliamo implementare
storeFile: Cifrare i file con una chiave generata appositamente e
salvare il file su un servizio e la chiave su un’altro.
getFile: Recuperare il file e la relativa chiave e restituire il file
decifrato
getFileList: Ottenere la lista dei file cifrati remoti
deleteFile: Cancellare il file cifrato e la relativa chiave
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 22 / 35
76. Implementazione
Implementazione I
Azioni che vogliamo implementare
storeFile: Cifrare i file con una chiave generata appositamente e
salvare il file su un servizio e la chiave su un’altro.
getFile: Recuperare il file e la relativa chiave e restituire il file
decifrato
getFileList: Ottenere la lista dei file cifrati remoti
deleteFile: Cancellare il file cifrato e la relativa chiave
moveFile: Spostare il file cifrato e la relativa chiave
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 22 / 35
78. Implementazione
Implementazione II
Le nostre API
Le nostre API sono composte da:
• Un insieme di interfacce e classi astratte per definire uno schema
di cifratura.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 23 / 35
79. Implementazione
Implementazione II
Le nostre API
Le nostre API sono composte da:
• Un insieme di interfacce e classi astratte per definire uno schema
di cifratura.
• One-Time Pad come implementazione di riferimento
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 23 / 35
80. Implementazione
Implementazione II
Le nostre API
Le nostre API sono composte da:
• Un insieme di interfacce e classi astratte per definire uno schema
di cifratura.
• One-Time Pad come implementazione di riferimento
• Un insieme di interfacce e classi astratte per definire il Key e il File
Store.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 23 / 35
81. Implementazione
Implementazione II
Le nostre API
Le nostre API sono composte da:
• Un insieme di interfacce e classi astratte per definire uno schema
di cifratura.
• One-Time Pad come implementazione di riferimento
• Un insieme di interfacce e classi astratte per definire il Key e il File
Store.
• DropboxTM e Ubuntu One come implementazione di riferimento
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 23 / 35
82. Implementazione
Implementazione II
Le nostre API
Le nostre API sono composte da:
• Un insieme di interfacce e classi astratte per definire uno schema
di cifratura.
• One-Time Pad come implementazione di riferimento
• Un insieme di interfacce e classi astratte per definire il Key e il File
Store.
• DropboxTM e Ubuntu One come implementazione di riferimento
• Ulteriore implementazione con salvataggio dei file su Filesystem
locale
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 23 / 35
83. Implementazione
Implementazione II
Le nostre API
Le nostre API sono composte da:
• Un insieme di interfacce e classi astratte per definire uno schema
di cifratura.
• One-Time Pad come implementazione di riferimento
• Un insieme di interfacce e classi astratte per definire il Key e il File
Store.
• DropboxTM e Ubuntu One come implementazione di riferimento
• Ulteriore implementazione con salvataggio dei file su Filesystem
locale
• Una classe per eseguire tutte le operazioni sui file in modo
trasparente
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 23 / 35
84. Implementazione Schema di cifratura
Implementazione di riferimento schema di cifratura
One-Time Pad
Lo schema di cifratura one-time pad è definito nel modo seguente:
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 24 / 35
85. Implementazione Schema di cifratura
Implementazione di riferimento schema di cifratura
One-Time Pad
Lo schema di cifratura one-time pad è definito nel modo seguente:
1 L’algoritmo di generazione della chiave Gen lavora scegliendo una
stringa da K = {0, 1} secondo la distribuzione uniforme (ognuna
delle 2 stringhe nello spazio delle chiavi è scelta come chiave con
probabilità esattamente pari a 2− ).
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 24 / 35
86. Implementazione Schema di cifratura
Implementazione di riferimento schema di cifratura
One-Time Pad
Lo schema di cifratura one-time pad è definito nel modo seguente:
1 L’algoritmo di generazione della chiave Gen lavora scegliendo una
stringa da K = {0, 1} secondo la distribuzione uniforme (ognuna
delle 2 stringhe nello spazio delle chiavi è scelta come chiave con
probabilità esattamente pari a 2− ).
2 La cifratura Enc lavora come segue: data una chiave k ∈ {0, 1} e
un messaggio m ∈ {0, 1} , restituisce in output c := k ⊕ m.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 24 / 35
87. Implementazione Schema di cifratura
Implementazione di riferimento schema di cifratura
One-Time Pad
Lo schema di cifratura one-time pad è definito nel modo seguente:
1 L’algoritmo di generazione della chiave Gen lavora scegliendo una
stringa da K = {0, 1} secondo la distribuzione uniforme (ognuna
delle 2 stringhe nello spazio delle chiavi è scelta come chiave con
probabilità esattamente pari a 2− ).
2 La cifratura Enc lavora come segue: data una chiave k ∈ {0, 1} e
un messaggio m ∈ {0, 1} , restituisce in output c := k ⊕ m.
3 La decifratura Dec lavora come segue: data una chiave
k ∈ {0, 1} e un testo cifrato c ∈ {0, 1} , restituisce in output
m := k ⊕ c.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 24 / 35
88. Implementazione File Storage e Key Storage
Implementazioni di riferimento per Key e File Store
Implementazioni
Tre implementazioni per provare il funzionamento della nostra idea:
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 25 / 35
89. Implementazione File Storage e Key Storage
Implementazioni di riferimento per Key e File Store
Implementazioni
Tre implementazioni per provare il funzionamento della nostra idea:
1 Utilizzando le API Java fornite da DropboxTM .
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 25 / 35
90. Implementazione File Storage e Key Storage
Implementazioni di riferimento per Key e File Store
Implementazioni
Tre implementazioni per provare il funzionamento della nostra idea:
1 Utilizzando le API Java fornite da DropboxTM .
2 Realizzando un wrapper Java delle API Rest di Ubuntu One.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 25 / 35
91. Implementazione File Storage e Key Storage
Implementazioni di riferimento per Key e File Store
Implementazioni
Tre implementazioni per provare il funzionamento della nostra idea:
1 Utilizzando le API Java fornite da DropboxTM .
2 Realizzando un wrapper Java delle API Rest di Ubuntu One.
3 Utilizzando il Filesystem sfruttando la funzionalità delle cartelle
sincronizzate fornite da molti servizio di Cloud Storage.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 25 / 35
92. Implementazione SecureStorage API
API per lo Storage Sicuro dei File
SecureStorage API
Permette di unire insieme lo schema di cifratura con i sistemi di
storage e di utilizzarli per implementare le azioni specificate in
precedenza in modo trasparente. Due implementazioni principali:
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 26 / 35
93. Implementazione SecureStorage API
API per lo Storage Sicuro dei File
SecureStorage API
Permette di unire insieme lo schema di cifratura con i sistemi di
storage e di utilizzarli per implementare le azioni specificate in
precedenza in modo trasparente. Due implementazioni principali:
1 Una versione single threding.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 26 / 35
94. Implementazione SecureStorage API
API per lo Storage Sicuro dei File
SecureStorage API
Permette di unire insieme lo schema di cifratura con i sistemi di
storage e di utilizzarli per implementare le azioni specificate in
precedenza in modo trasparente. Due implementazioni principali:
1 Una versione single threding.
2 una versione multi threding.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 26 / 35
95. Test
Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 27 / 35
96. Test OTP
tempo di cifratura
500
java.util.Random
SHA1PRNG
400
Tempo in ms
300
200
100
0
Ge Cif Me Te
de ner rat m
lla az ura dellmoriz di cifpo t
ac z
ch ion de a ra ota
iav e l fil hiav zion tura le
e e e e
Fase della cifratura
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 28 / 35
97. Test OTP
Tempo di decifratura
250
java.util.Random
SHA1PRNG
200
Tempo in ms
150
100
50
0
Ca De Te
de rica de cifr di mpo
lla m l fil atu de to
ch ent e ra cifr ta
iav o atu le
e ra
Fase della decifratura
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 29 / 35
98. Test SecureStorageAPI
Tempi medi di upload e download
50
DropBox API
Ubuntu One API
40 SecureStorage con Foo Encryption
SecureStorage con OTP Encryption
SecureStorage con Foo Encryption e MultiThreading
SecureStorage con OTP e MultiThreading
Tempo in s
30 SecureStorage con OTP
senza Secure Random Generator
e MultiThreading
20
10
0
Upload Download
Fase
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 30 / 35
99. Test SecureStorageAPI
Velocita’ medie upload e download
600
DropBox API
Ubuntu One API
500 SecureStorage con Foo Encryption
SecureStorage con OTP Encryption
SecureStorage con Foo Encryption e MultiThreading
Velocita’ in kB/s
400 SecureStorage con OTP e MultiThreading
SecureStorage con OTP
senza Secure Random Generator
300 e MultiThreading
200
100
0
Upload Download
Fase
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 31 / 35
100. Conclusioni
Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 32 / 35
101. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
102. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
Si perchè
Utilizzando One-Time Pad è
dimostrato che l’unico modo in cui
un malintenzionato può decifrare i
nostri file è che abbia la chiave di
cifratura, ma, se i servizi di Cloud
Storage non sono collegati è
improbabile che
un’malintenzionato, per quanto
esperto li violi entrambe.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
103. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
• Portabilità
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
104. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
Si perchè
• Portabilità
Le librerie sono tutte sviluppate in
Java, che garantisce la portabilità
sulla maggior parte dei sistemi e
delle piattaforme.
L’applicazione è stata testata su
WindowsTM , Linux e Mac OS X
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
105. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
• Portabilità
• Semplicità d’uso
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
106. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
Si perchè
• Portabilità
Abbiamo realizzato una
• Semplicità d’uso
applicazione di semplice uso per
l’utente medio.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
107. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
• Portabilità
• Semplicità d’uso
• Possibilità di condividere i
propri file con altri utenti
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
108. Conclusioni
È quello che volevamo?
Obiettivi La nostra soluzione
• Sicurezza e privacy
Si perchè
• Portabilità
Abbiamo realizzato una semplice
• Semplicità d’uso
applicazione che permette di
• Possibilità di condividere i condividere solo i due link del file
propri file con altri utenti cifrato e della chiave.
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 33 / 35
109. Sviluppi futuri
Outline
1 Introduzione
2 Il Cloud Storage questo sconosciuto
Cloud Computing
Analisi dei principali servizi di Cloud Storage
REST
OAuth
3 Divide et impera: la nostra soluzione
Desiderata
Soluzione
4 Implementazione
Schema di cifratura
File Storage e Key Storage
SecureStorage API
5 Test
OTP
SecureStorageAPI
6 Conclusioni
7 Sviluppi futuri
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 34 / 35
110. Sviluppi futuri
Sviluppi futuri
• Interfaccia web per il servizio
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 35 / 35
111. Sviluppi futuri
Sviluppi futuri
• Interfaccia web per il servizio
• Client AndroidTM
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 35 / 35
112. Sviluppi futuri
Sviluppi futuri
• Interfaccia web per il servizio
• Client AndroidTM
• Client iOSTM
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 35 / 35
113. Sviluppi futuri
Sviluppi futuri
• Interfaccia web per il servizio
• Client AndroidTM
• Client iOSTM
• Distribuire file e chiavi su servizi multipli
Andrea Bruno (05210/000495) Privacy on Cloud Storage A.A. 2010/2011 35 / 35