際際滷

際際滷Share a Scribd company logo
UNIVERSITA DEGLI STUDI DI BOLOGNA
FACOLTA DI INGEGNERIA
Corso di Laurea in Ingegneria Informatica

La sicurezza in servizi
web basati su
infrastrutture Cloud
CANDIDATO
Davide Iacovino

RELATORE
Chiar.mo Prof. Antonio Corradi
CORRELATORE
Dott. Ing. Luca Foschini
Scenario
 Collaborazione con una azienda del bolognese. (Nethical)
 Vitaever 竪 un servizio per la gestione dellassistenza medica
domiciliare e territoriale (usato da ANT, ASL e altre aziende)
 Modello di servizio Cloud Software As a Service (SaaS) su
piattaforma di Cloud computing Amazon Web Services (AWS)
 Sicurezza dei dati a riposo
(at-rest) gestita mediante utilizzo
di meccanismi di crittografia
Accessibilit
 Diverse soluzioni per la gestione della crittografia dei dati
on-the-Cloud (ORACLE, MySQL )
Oracle
SELECT id,
nome,
cognome
FROM utenti
WHERE
nome=Zaphod

id

nome
$k箪k
E''<8--Z

Beeblebrox

貼A造~短

2

Zaphod

cognome

1

cognome

1

id

nome

'其YY*鱈

SELECT id,
MySQL
(CONVERT(AES_DECRYPT(nome, chiave) USING UTF8),
(CONVERT(AES_DECRYPT(cognome, chiave) USING UTF8),
FROM utenti
WHERE
(CONVERT(AES_DECRYPT(nome, chiave) USING UTF8) =Zaphod
Sicurezza in Vitaever
 Amazon AWS utilizza MySQL come DBMS.
Per il SaaS Vitaever, in una precedente collaborazione, 竪 stata
sviluppata una infrastruttura per la sicurezza dei dati:
 Crittografia AES per i dati at-rest
 OpenLDAP per la gestione delle chiavi di decrittazione.

Key Manager

SaaS Vitaever
Front End
 Si presenta la necessit di ottenere i dati in chiaro
direttamente dai database.
 Il componente sviluppato 竪 una applicazione web, scritta
interamente in PHP:
 Permette di eseguire query SQL in chiaro su dati cifrati
interagendo con il Key Manager (LDAP) ed i database del SaaS
Vitaever.

Key Manager

Front End

SaaS Vitaever
Front End  Implementazione

SELECT *
FROM utenti
WHERE 1

[SELECT] => Array
Array (
(
[SELECT] => Array
[0] => Array
(
(
[0] => Array
[expr_type] => colref
(
[base_expr] => *
[expr_type] => colref
)
[base_expr] => *
)
)
)
[FROM] => Array
[SELECT] => Array
(
( [0] => Array
SELECT id, => Array
[0]
(
(CONVERT(AES_DECRYPT(nome, @5duji23)
([expr_type] => table
USING UTF8)
[expr_type] => colref
[table] => utenti
(CONVERT(AES_DECRYPT(cognome, @5duji2
) [base_expr] => id
3) USING UTF8)
)
)
FROM utenti=>Array
[1]=> Array
[WHERE]
WHERE 1(
(
[expr_type]
[0] => Array => colref
Array ( ([base_expr] => nome
[4] => [expr_type] Licenza */
Array ( /* => const
)
[0] [2] Array ( /* Corrispondenza */
=> => Array => 1
[base_expr]
[nome_tabella] => gen_cms_utenti
()
[expr_type] => colref
) [nome_colonna] => nome
[nome_chiave] => chiave1
[base_expr] => cognome
)
[chiave] => @5duji23
)
) []
) []
Front End - Ambiente di test
 Web Server: Locale (CPU Intel(R) Core(TM) i5
2500K@3.7GHz, 8GB di RAM, Windows 7 Professional 64 bit)
per esecuzione Front End (PHP 5.4.7, Apache 2.4.2).
Connessione: 8.191 Mbit/1021Mbit (down/up)
 Key Manager: directory di test fornita dal SaaS Vitaever sul Cloud

 Database: database di test fornito dal SaaS Vitaever sul Cloud
 Query di test:
 query1, query2 (molto semplici, risp. 1 e 8 campi da decrittare)
 query3, query4 (risp. 1 e 2 espansioni di asterischi)
 query5, query6 (molto complesse, casi tipici di interrogazione dei DB)
Front End  Risultati
1.80
1.60
1.40
1.20
1.00
0.80
0.60
0.40
0.20
0.00

Prestazioni Componenti
1.2
1
0.8
0.6
0.4
0.2
0

Tempo (sec)

Tempo (sec)

Confronto esecuzione

Ritardo medio
670ms

Creator
query1 query2 query3 query4 query5 query6

KeyResolver

query1

query2

query3

query4

query5

query6

0.00042

0.0025

0.005

0.007

0.023

0.034

0.72

0.72

1

0.98

0.69

0.61

Normale

0.40

0.46

0.52

0.49

0.67

0.68

Expander

2.00E-0

4.00E-0

0.13

0.58

4.00E-0

8.00E-0

Con decrittazione

0.86

0.87

1.4

1.7

1.19

1.19

Parser

0.0019

0.0158

0.001

0.007

0.27

0.28

Utilizzo di memoria componenti

0.7
0.6
0.5
0.4
0.3
0.2
0.1
0

Parser
Expander
KeyResolver
Creator

Byte

Tempo (sec)

Prestazioni componenti (a regime)

query1

query2

query3

query4

query5

query6

0.0019

0.0158

0.001

0.007

0.27

0.28

0.13

0.58

2.00E-05 4.00E-05

4.00E-05 8.00E-05

0

0

0

0

0

0

0.00042

0.0025

0.005

0.007

0.023

0.034

800000
700000
600000
500000
400000
300000
200000
100000
0

KeyResolver
176Kb
query1

query2

query3

query4

query5

query6

Parser

9488

43256

8384

21992

338080

563112

Expander

576

1784

27904

30696

6224

8248

175488

175496

175488

175488

175504

2808

3864

3512

8144

12536

KeyResolver 175504
Creator

1544
Conclusioni e sviluppi futuri
 Conclusioni
 Il componente sviluppato consente ad un amministratore dei
database del SaaS Vitaever di eseguire, in modo efficiente e
veloce, richieste in chiaro su dati crittati
 Il ritardo medio che si introduce con lutilizzo del Front
End, per lesecuzione di richieste SQL sui database di
Vitaever, rimane al di sotto di 1 secondo anche per query
molto complesse.

 Sviluppi futuri
 Riorganizzazione delle informazioni di decrittazione
(ridondanza)
 Ottimizzazione del componente
Grazie

More Related Content

Applicazione web per l'interrogazione trasparente di database MySQL criptati

  • 1. UNIVERSITA DEGLI STUDI DI BOLOGNA FACOLTA DI INGEGNERIA Corso di Laurea in Ingegneria Informatica La sicurezza in servizi web basati su infrastrutture Cloud CANDIDATO Davide Iacovino RELATORE Chiar.mo Prof. Antonio Corradi CORRELATORE Dott. Ing. Luca Foschini
  • 2. Scenario Collaborazione con una azienda del bolognese. (Nethical) Vitaever 竪 un servizio per la gestione dellassistenza medica domiciliare e territoriale (usato da ANT, ASL e altre aziende) Modello di servizio Cloud Software As a Service (SaaS) su piattaforma di Cloud computing Amazon Web Services (AWS) Sicurezza dei dati a riposo (at-rest) gestita mediante utilizzo di meccanismi di crittografia
  • 3. Accessibilit Diverse soluzioni per la gestione della crittografia dei dati on-the-Cloud (ORACLE, MySQL ) Oracle SELECT id, nome, cognome FROM utenti WHERE nome=Zaphod id nome $k箪k E''<8--Z Beeblebrox 貼A造~短 2 Zaphod cognome 1 cognome 1 id nome '其YY*鱈 SELECT id, MySQL (CONVERT(AES_DECRYPT(nome, chiave) USING UTF8), (CONVERT(AES_DECRYPT(cognome, chiave) USING UTF8), FROM utenti WHERE (CONVERT(AES_DECRYPT(nome, chiave) USING UTF8) =Zaphod
  • 4. Sicurezza in Vitaever Amazon AWS utilizza MySQL come DBMS. Per il SaaS Vitaever, in una precedente collaborazione, 竪 stata sviluppata una infrastruttura per la sicurezza dei dati: Crittografia AES per i dati at-rest OpenLDAP per la gestione delle chiavi di decrittazione. Key Manager SaaS Vitaever
  • 5. Front End Si presenta la necessit di ottenere i dati in chiaro direttamente dai database. Il componente sviluppato 竪 una applicazione web, scritta interamente in PHP: Permette di eseguire query SQL in chiaro su dati cifrati interagendo con il Key Manager (LDAP) ed i database del SaaS Vitaever. Key Manager Front End SaaS Vitaever
  • 6. Front End Implementazione SELECT * FROM utenti WHERE 1 [SELECT] => Array Array ( ( [SELECT] => Array [0] => Array ( ( [0] => Array [expr_type] => colref ( [base_expr] => * [expr_type] => colref ) [base_expr] => * ) ) ) [FROM] => Array [SELECT] => Array ( ( [0] => Array SELECT id, => Array [0] ( (CONVERT(AES_DECRYPT(nome, @5duji23) ([expr_type] => table USING UTF8) [expr_type] => colref [table] => utenti (CONVERT(AES_DECRYPT(cognome, @5duji2 ) [base_expr] => id 3) USING UTF8) ) ) FROM utenti=>Array [1]=> Array [WHERE] WHERE 1( ( [expr_type] [0] => Array => colref Array ( ([base_expr] => nome [4] => [expr_type] Licenza */ Array ( /* => const ) [0] [2] Array ( /* Corrispondenza */ => => Array => 1 [base_expr] [nome_tabella] => gen_cms_utenti () [expr_type] => colref ) [nome_colonna] => nome [nome_chiave] => chiave1 [base_expr] => cognome ) [chiave] => @5duji23 ) ) [] ) []
  • 7. Front End - Ambiente di test Web Server: Locale (CPU Intel(R) Core(TM) i5 2500K@3.7GHz, 8GB di RAM, Windows 7 Professional 64 bit) per esecuzione Front End (PHP 5.4.7, Apache 2.4.2). Connessione: 8.191 Mbit/1021Mbit (down/up) Key Manager: directory di test fornita dal SaaS Vitaever sul Cloud Database: database di test fornito dal SaaS Vitaever sul Cloud Query di test: query1, query2 (molto semplici, risp. 1 e 8 campi da decrittare) query3, query4 (risp. 1 e 2 espansioni di asterischi) query5, query6 (molto complesse, casi tipici di interrogazione dei DB)
  • 8. Front End Risultati 1.80 1.60 1.40 1.20 1.00 0.80 0.60 0.40 0.20 0.00 Prestazioni Componenti 1.2 1 0.8 0.6 0.4 0.2 0 Tempo (sec) Tempo (sec) Confronto esecuzione Ritardo medio 670ms Creator query1 query2 query3 query4 query5 query6 KeyResolver query1 query2 query3 query4 query5 query6 0.00042 0.0025 0.005 0.007 0.023 0.034 0.72 0.72 1 0.98 0.69 0.61 Normale 0.40 0.46 0.52 0.49 0.67 0.68 Expander 2.00E-0 4.00E-0 0.13 0.58 4.00E-0 8.00E-0 Con decrittazione 0.86 0.87 1.4 1.7 1.19 1.19 Parser 0.0019 0.0158 0.001 0.007 0.27 0.28 Utilizzo di memoria componenti 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 Parser Expander KeyResolver Creator Byte Tempo (sec) Prestazioni componenti (a regime) query1 query2 query3 query4 query5 query6 0.0019 0.0158 0.001 0.007 0.27 0.28 0.13 0.58 2.00E-05 4.00E-05 4.00E-05 8.00E-05 0 0 0 0 0 0 0.00042 0.0025 0.005 0.007 0.023 0.034 800000 700000 600000 500000 400000 300000 200000 100000 0 KeyResolver 176Kb query1 query2 query3 query4 query5 query6 Parser 9488 43256 8384 21992 338080 563112 Expander 576 1784 27904 30696 6224 8248 175488 175496 175488 175488 175504 2808 3864 3512 8144 12536 KeyResolver 175504 Creator 1544
  • 9. Conclusioni e sviluppi futuri Conclusioni Il componente sviluppato consente ad un amministratore dei database del SaaS Vitaever di eseguire, in modo efficiente e veloce, richieste in chiaro su dati crittati Il ritardo medio che si introduce con lutilizzo del Front End, per lesecuzione di richieste SQL sui database di Vitaever, rimane al di sotto di 1 secondo anche per query molto complesse. Sviluppi futuri Riorganizzazione delle informazioni di decrittazione (ridondanza) Ottimizzazione del componente