tecniche di protezione dei dati di log

40
UNIVERSITÀ DEGLI STUDI DI MILANO Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea triennale in Sicurezza dei Sistemi e delle Reti Informatiche Tecniche di protezione dei dati di log RELATORE TESI DI LAUREA DI Prof. Stelvio Cimato Patrizia Martemucci Matr. 692059

Upload: universita-degli-studi-di-milano-sede-di-crema

Post on 24-Jun-2015

857 views

Category:

Documents


3 download

DESCRIPTION

TESI DI LAUREA DI Patrizia Martemucci RELATORE TESI DI Prof. Stelvio Cimato

TRANSCRIPT

Page 1: Tecniche di protezione dei dati di log

UNIVERSITÀ DEGLI STUDI DI MILANOFacoltà di Scienze Matematiche, Fisiche e Naturali

Corso di Laurea triennale in Sicurezza dei Sistemi e delle Reti Informatiche

Tecniche di protezione dei dati di log

RELATORE TESI DI LAUREA DIProf. Stelvio Cimato Patrizia Martemucci

Matr. 692059

Page 2: Tecniche di protezione dei dati di log

UNIVERSITÀ DEGLI STUDI DI MILANO Introduzione

Patrizia Martemucci

Log = registro delle operazioni effettuate all’interno di un sistema.

• log di sistema

• log di sicurezza

Log di sistemaContengono informazioni di troubleshooting e audit. Sono generati dal sistema operativo e dalle applicazioni.

Log di sicurezzaRegistrano eventi che possono essere direttamente correlati alla sicurezza.Fonte primaria di generazione: security software

Nei file di log sono registrati sia eventi andati a buon fine che eventi falliti

Page 3: Tecniche di protezione dei dati di log

Patrizia Martemucci

I log sono utilizzati per identificare violazioni o anomalie.

Nella log analysis

• Correlazione di eventi registrati su fonti differenti

• backtracing di un attacco

UNIVERSITÀ DEGLI STUDI DI MILANO Introduzione

Page 4: Tecniche di protezione dei dati di log

Patrizia Martemucci

In un sistema sicuro è di primaria importanza una attenta pianificazione

dell’architettura di log.

Caratteristiche

• Granularità

• Atomicità

• Politiche di accesso

• Affidabilità

• Privatezza

UNIVERSITÀ DEGLI STUDI DI MILANO Introduzione

Page 5: Tecniche di protezione dei dati di log

Patrizia Martemucci

Proprietà di un audit log sicuro

• Tamper-resistant

• Verificabilità

• Data access control

• Searchability

La Crittografia può essere utilizzata per garantire queste proprietà

UNIVERSITÀ DEGLI STUDI DI MILANO Introduzione

Page 6: Tecniche di protezione dei dati di log

Patrizia Martemucci

Schema simmetrico di Schneier-Kesley

Scenario

MemorizzaIl segreto A0condiviso con U

U T

V

Genera il segreto A0 e lo trasmette a T

Interroga T per verificare l’integrità di un logfile o per ricevere le chiavi per decifrare i record

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 7: Tecniche di protezione dei dati di log

Patrizia Martemucci

Formato record

Tutti i Record del logfile hanno lo stesso formato

WWWj Ekj(Dj) Yj ZjLj

Dj Dato da memorizzare

Wj Permission Mask

Aj Chiave di autenticazione del j-esimo record

Yj=H(Yj-1,EKj(Dj),Wj)

Kj =H(Wj,Aj) chiave utilizzata per cifrare Dj

Zj = MACAj(Yj )

Dopo la scrittura di Lj il valore di Aj evolve in Aj+1 = H ( Aj )

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 8: Tecniche di protezione dei dati di log

Patrizia Martemucci

Startup – Passo 1 e 2 del protocollo

A0

X0=p,d,Cu,A0 X1=p,IDlog,H(X0)

M0

M1

M0 = p, IDu, PKEPKT(K0), EK0(X0, SIGNSKu(X0))

M1 = p, IDT, PKE PKu(K1), EK1 (X1, SIGNSKT(X1))

U T

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 9: Tecniche di protezione dei dati di log

Patrizia Martemucci

WWW0 EK0(D0) Y0 Z0L0

Passo 1 del protocollo: U invia a T il messaggio M0

L’entità U scrive la prima entry nel log

W0 = “LogFileInitializationType”

Y-1 = inizializzato con 20 byte a zero

D0 = d, d+, IDlog, M0

K0 = H(W0,A0)

Z0 = MACA0(Y0 )

Calcola A1 = H ( A0 )

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 10: Tecniche di protezione dei dati di log

Patrizia Martemucci

WWW1 EK1(D1) Y1 Z1L1

Passo 2 del protocollo: U riceve da T il messaggio M1

L’entità U scrive la seconda entry nel log

W1 = “ResponseMessageType”

D1 = M1

Il logfile è pronto per ricevere le entry generate dall’applicazione .Ognuna avrà una Permission Mask Wj.

Se U non riceve M1 entro il timeout d+ , oppure se M1 non è valido, U forma una log entry L1 con

W1 = “AbnormalCloseType”

D1 = il timestamp corrente e il motivo della chiusura.

e chiude il logfile.

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 11: Tecniche di protezione dei dati di log

Patrizia Martemucci

Chiusura del logfile.

Alla chiusura del file viene scritto l'ultimo record Lf composto da

Wf = NormalCloseMessage

Df = timestamp della chiusura

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 12: Tecniche di protezione dei dati di log

Patrizia Martemucci

ImplementazioneFase di startup: passo 1 del protocollo

ClientLog: classe che identifica l’entità U

MasterSecret: classe che identifica l’entità T

MessMasterSecret.txt

M0

A0

ClientLog UU.startUp1()inviaMess(M0)attendiRisposta()sccriviEntryLog(W0,D0)

LogFile.txt

R0

MasterSecret TT.startUp1()

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 13: Tecniche di protezione dei dati di log

Patrizia Martemucci

ImplementazioneFase di startup: passo 2 del protocollo

MessClient.txt

M1

Lato U

scriviEntryLog(W1,M1)

U.scriviRecord(Wi,Di)

U.chiudiTutto()

Lato T

startUp2()

inviaMess(M1)

salvaInfoLogFile()

LogFile.txt

R0R1

Ri

Rf

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 14: Tecniche di protezione dei dati di log

Patrizia Martemucci

LogMerkle.txt (audit log in chiaro)

11000000:/IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3 PORTA_CLIENT:49421 NUM_SEGRETI_SCAMBIATI:0 NUM_MESSAGGI_SCAMBIATI:0 DATA:5/3/2009 ORA:15:56:59 DURATA_SESSIONE:5

11000000:/IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3 PORTA_CLIENT:49422 NUM_SEGRETI_SCAMBIATI:1 NUM_MESSAGGI_SCAMBIATI:1 DATA:5/3/2009 ORA:15:56:59 DURATA_SESSIONE:6

11000000:/IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3 PORTA_CLIENT:49423 NUM_SEGRETI_SCAMBIATI:2 NUM_MESSAGGI_SCAMBIATI:2 DATA:5/3/2009 ORA:15:56:59 DURATA_SESSIONE:7

LogFile in chiaroEntries generate da una applicazione client-server

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 15: Tecniche di protezione dei dati di log

Patrizia Martemucci

LogMerkleCifrato.txt (audit log cifraro)

LogfileInitializationTypebks4LXFbMQzo9kkhxPN0Wi3QNc38nkJ5n31nEqnp5BnF68Fdov10h18iLJxjZyM5eVpjCPHt2F15bYn5HI9nCh2QjmwfEjymSi/eXO93eUOBvz7IzX7O/dKgl79htS9UOghMFiN8f2UEMDXXZCg16vO3Mu5KjYO2OP1639cbQ7xK5uDbkmcLGy/IgUlULQVIH6uMN0Iv/7W38lRvTfsbjpR+W8dx/adPZEJ0+A5rV1AuFHTyPv6FYdL0GnGbcHbk53l0P1J/GFAK15InAB3YOX81hSBF7DrhpeFz6c5H+NIx9Iz2T5wTrnR8PWPUCfIpekzELpiG4/MHNdnFyTt09X/4YrF1A1gi0la7dkC78IOexBsplzX+oHLHLCZxYdOLKqchwbx2P8hrANdiq/EhXhw79DUqQwvGERN40k9zeQRtWXy/EBef56CopSJgeePPZ1YLIqd6EKWohWgzcDN+apVrfN383FjaO9psC4VHIRGQQe/sb4hdkoVwkjtdgGVA Fr1nMjwYXIzFpz920NU+7ckZntI= B89ZuXKQdbu6bkQd1bovTHp/BGU=

ResponseMessageTypejbQPiDHhw1yuSKCRlWvpaxS9mE39JQWZWKZYR7uQKy4wyF04C44+w5yxEomtpMzuC/EUsxlA9PHjocvqzji6kd34slLXEaUTtC2za834m95RlDYQRvGU+KaitmFtoBNL5dXgVSh0JjpDZdj92MIfsx9WV8Md6UO4k0Yx5RfKvUc= y6VeMTgpySC0MvsX2uHwnGzx1E0= b2xUT5nmkDD7oMridgX+5/v/c0s=

11000000HWUwDEOoQyNdueiLU/At0qlgVhd4m4rBM/FC/1ffBN6zoYA1BDUuebVoCRsdQOj38dxIqTrz2Q0f7fp+Fg8V0Ntk8pZDhtP2h0ZEy6WgTAymrVwgUI5RS3kiW+JSOWMwg9yriCTFcIDJAmKCN8AwNC8lqsGzVPpaHZVPNfEA94wHZsKzMooAWDbJzx5oXQzr3ssM2IuI0VWco5Exk1wcRhKo4SyYmKKtkkcRLRp3GTU= oaQcUkB3Bc6pPUNTeKenUH63Rag=5UQbOYs58StmeJoSH7we0I/ijBw=

.

(record di chiusura)

NormalCloseMessage J8d63sZcHMbWGdGAWbIbqGGsIubrk9NCX3c6CtfP5S0= iuwK8x8Guvxc3TgiJI1bmuMJZw0= oKI7j2Gr0rx8e50G34fobQ1gE14=

LogFile cifrato

W1

W0

Z1

W2

Z0

Y1

EK2(D2)

EK0(D0)

EK1(D1)

Y0

Y2

Wf

EKf(Df) Yf

Zf

Z2

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 16: Tecniche di protezione dei dati di log

Patrizia Martemucci

Verifica del logfile

L’auditor riceve una copia dei record del logfile L0, L1,….., Lf

Attraverso la hash chain composta dagli Yi può verificare se ogni entry è corretta.

Interrogazione

L’auditor riceve una copia dei record che vuole indagare, compreso il record Lf.

• Stabilisce con l’entità fidata T una connessione sicura.

• Invia a T una lista Q composta dagli indici j e i valori Wj dei record che vuole leggere.

• Riceve da T le chiavi per decifrare i record.

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 17: Tecniche di protezione dei dati di log

Patrizia Martemucci

Interrogazione

V TM2 = p,IDlog,f,Yf,Zf,Q[0..n]

M3 = p, R[0..n]

La lista R contiene le chiavi per decifrare i record. T, conoscendo A0, può calcolare tutte le chiavi utilizzate per cifrare i record.

Le chiavi Ki sono derivate da Ai e WiKi = H(Wi,Ai)

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 18: Tecniche di protezione dei dati di log

Patrizia Martemucci

Interrogazione – Implementazione

MmM

Investigatore (entità V) MasterSecret (entità T)

ProvaRichestaInfo.java

MasterSecret ms

ms.richestaInfo(..)

Attendi la risposta

Decifra i record

MasterSecret.java

Il metodo richestaInfo(..) legge la richiesta, calcola le chiavi, le scrive sul file risposta.txt

Record decifrati

Ms.richestaInfo(…)

Richiesta.txt

IDuIDlogfZfQ(1..n)

Risposta.txt

K1K2..Kn

M3

M4

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 19: Tecniche di protezione dei dati di log

Patrizia Martemucci

File richiesta.txt

IDCu_patrizia.martemucci@studenti.unimi.it135227oKI7j2Gr0rx8e50G34fobQ1gE14=3:000011114:110000005:110000006:110000018:111000009:1110000012:1111000016:1111000017:1111000018:11100000

File risposta.txt

ddHqzFQPY7uTlNaR2AVljVKW9aRgFNKwiM9iqb1HJE02U=gmAaWFCy46Is0IJht4jhHNbeF+I0wr4S4TWLtpGdF/c=wsTse5ZrAS7AGxVuhYt7p0mqqYBCCOi6q3d8LO66Y+I=DmDtrSeLrTS8wwx0wpNF6tX/ou9Xu9GuL2AVTy4Okao=1YPaxQkXaCGrobGXFleNkg6Jwg5XQEY9f8JiBK0xKTI=TJTxkEhTXTvH/dP+F4o50Do6gbk8v1eeIMR2trj5FM8=YF5Nx1b4RR7McmloQfrpclkDFal9ZBSIkvvQG68WkAA=JGGsm+oRYCEic2H+w/bJDCzEVyOY/xooDfvlcXzDpZ4=UaCHNXYg2jPs2cS6QnNqzj1pfgGEf7UOuJfh6CoXr3M=XkYlE8o4blI53WbXjrUU2U1FewlJQRkDIa1fArhkPAU=

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 20: Tecniche di protezione dei dati di log

Patrizia Martemucci

Record 3 non decifrato./IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3

PORTA_CLIENT:49423 NUM_SEGRETI_SCAMBIATI:2NUM_MESSAGGI_SCAMBIATI:2 DATA:5/3/2009 ORA:15:56:59DURATA_SESSIONE:7

/IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3PORTA_CLIENT:49424 NUM_SEGRETI_SCAMBIATI:3NUM_MESSAGGI_SCAMBIATI:2 DATA:5/3/2009 ORA:15:56:59DURATA_SESSIONE:5

Record 6 non decifrato.Record 8 non decifrato./IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3

PORTA_CLIENT:49424 NUM_SEGRETI_SCAMBIATI:5NUM_MESSAGGI_SCAMBIATI:5 DATA:5/3/2009 ORA:15:56:59DURATA_SESSIONE:5

Record 12 non decifrato.Record 16 non decifrato.Record 17 non decifrato.Record 18 non decifrato.

RecordLogDecifrati.txt

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 21: Tecniche di protezione dei dati di log

Patrizia Martemucci

Valutazioni

• L’entità untrusted non memorizza il segreto A0.

• Dopo la chiusura del logfile un attaccante non potrà manomettere il logfile senza che questo non venga scoperto al momento della verifica: una cancellazione o modifica di record comprometterà la catena di hash.

• E’ garantita la privatezza

• Le permission mask permettono un controllo dell’accesso

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Schneier

Page 22: Tecniche di protezione dei dati di log

Patrizia Martemucci

Schema simmetrico di Waters-Balzanf-Durfee-Smetters

Scenario

Genera il segreto S condiviso con U

U T

V

Riceve il segreto S da T. Cifra le entries

Chiede a T una search Capability dw per una determinata keyword.Usa la dw per decifare le entries che contengono la keyword

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 23: Tecniche di protezione dei dati di log

Patrizia Martemucci

Setup

Nella fase di setup il MasterSecret genera un segreto S e lo invia a U

Cifratura

Per ogni entry mj del logfile U:1. Genera una chiave simmetrica K2. Cifra la m utilizzando la chiave K3. Computa H(Rj-1)4. Sceglie un numero r random di lunghezza fissa5. Per ogni keyword wi, con i=1..n, calcola

• ai = Hs(Wi)• bi = Hai (r)• ci = bi XOR (flag | K)

6. Calcola il valore di verfica Vj come hash di tutti i campi precedenti7. Scrive nel log il record Rj

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 24: Tecniche di protezione dei dati di log

Patrizia Martemucci

I record R0,R1,....Rn che non hanno un formato omogeneo.

Formato record

EKj ( mj) H(Rj-1) r c1 c2 .......... cn Vj

Verifica dell’integrità

Ripercorrendo la catena di hash è possibile verificare se il log è stato manomesso. Per rendere il log verificabile pubblicamente periodicamente si dovrebbe pubblicare, tramite una terza parte fidata, l’ultimo valore di verifica calcolato.

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 25: Tecniche di protezione dei dati di log

Patrizia Martemucci

Ricerca per keyword

dW = Hs(Keyword)

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 26: Tecniche di protezione dei dati di log

Patrizia Martemucci

Interrogazione

L’investigatore ottenuta la dw, interroga il logfile. Per ogni record calcola

1. p = Hdw ( r )

2. Per ogni ci, con i=1..n calcola• qi=p XOR ci

• Se c’è match tra i bit di flag e i primi f (f = length(flag) ) bit di qi estrae la chiave K dai restanti bit di qi e decifra la emtry m

Probabilità falso positivo = 2-f

In caso di falso positivo, il tentativo di decifarre la entry fallirà.

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 27: Tecniche di protezione dei dati di log

Patrizia Martemucci

Implementazione entità T (MasterSecret)

La classe MasterSecret è composta da tre metodi:

• setup()

• loadKey()

• getHashKeyWord(String w)

La classe ServerLogSicuroSimmetrico contiene il metodo pushTupla(String tupla), chericevuta la tupla ne estrae le keyword, calcola i valori ci, compone il record e lo salva nellogfile

La classe Ricerca esegue le interrogazioni tramite il metodo cercaEntryms=new MasterSecret();byte hashSw[]=ms.getHashKeyWord(w);//ricerca nel logfile le entries che contengono la keyword w

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 28: Tecniche di protezione dei dati di log

Patrizia Martemucci

L’applicazione che genera le entries (e che utilizza la classe ServerLogSicuroSimmetrico) deve marcare le keyword con la label “K:” e i campi di non interesse per la ricerca con la label “X:”

Record di LogMerkle.txt (audit log in chiaro)K:/IPSERVER:192.168.0.2 K:PORTA_SERVER:1234 K:IPCLIENT:/192.168.0.3 K:PORTA_CLIENT:49421

K:NUM_SEGRETI_SCAMBIATI:0 K:NUM_MESSAGGI_SCAMBIATI:0 K:DATA:5/3/2009X:ORA:15:56:59 X:DURATA_SESSIONE:5

Record di LogMerkleCifrato.txt (audit log cifrato)EIZv88C1jarawt6vA8xy5I1wqKKN02cOySBxCKsk7gZs4tCe3bvXQlGqceILI1CkPZiIzon/rQlH384Pjd1GIsNoor7SZXVfAP3xkSQb+4R+wwKWNY3Fdy2dN9zs3v2jsSl5FXhjZ81bLhX8Qa3aCoA4l6eAwvSyCsnS/DkyDDkBySjaA3LCIbQ0vus0JBNVZBUTrWSI3/RBfqMK+3R4tYUxRfbqD2FSrVbfpnUd8rs=

dp5vW8juhKOVRwYCEpnf+xQaPABXqiLjqNyGsSvyAqk=C0sdXmu3PUn/BysZM0GP0dPPACwbMR5IJPpBJd4hU9Y=j+eq2oUZnFIKIxBmJbx0ygj1O1OtfKh9qlaj3wOhOKEM3iF6MUGPRONRdio=jx5Ip+TB1ZVwh+4DQwcepKLwNtf+fFG1F+4d7mr6IXeqRaDP1tYyEH274Tg=yfFQqIY5FHrlmwLdQATYj0LboYlcT3tO+yYXL25xX6RasM7vO+VCEW1XG18=upss5dwhiAeO+m6mL9B4l77PlhEPK1pBiQmanQMzPY+1f32D90AUeIQvypY=dkib5/QN5B9DMK/VwhbqigmZJxpkjbzrhH9HLm2xx5o5w6ov5AN9oT5C0go=iCC3gt8w1gaYBv7zbLGRlbCGwXKWDKIuNGRR5fokdoFJiIUFGBPoYlxGRYY=K0hWjOHdrJ3L4YbGbZeefBxUMiQw2wqPuobP2OANhXjeMc0QwfBPDc2C+FA=mZ6cFbjqkJxUnSXD8BMkAeMEDCEWbD0eQ/4DG5NalK4=

ci

EKj ( mj) H(Rj-1) r c1 c2 .......... cn Vj

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 29: Tecniche di protezione dei dati di log

Patrizia Martemucci

Conjava EseguiRicerca LogMerkleCifrato.txt Risultato.txt PORTA_CLIENT:49424

si ottiene il file Risultato.txt che contiene tutti i record in cui compare la keyword “PORTA_CLIENT:49424”

File Risultato.txt/IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3 PORTA_CLIENT:49424

NUM_SEGRETI_SCAMBIATI:0 NUM_MESSAGGI_SCAMBIATI:0DATA:5/3/2009 ORA:15:56:59 DURATA_SESSIONE:5

/IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3 PORTA_CLIENT:49424NUM_SEGRETI_SCAMBIATI:2 NUM_MESSAGGI_SCAMBIATI:5DATA:5/3/2009 ORA:16:17:51 DURATA_SESSIONE:28

/IPSERVER:192.168.0.2 PORTA_SERVER:1234 IPCLIENT:/192.168.0.3 PORTA_CLIENT:49424NUM_SEGRETI_SCAMBIATI:4 NUM_MESSAGGI_SCAMBIATI:10DATA:5/3/2009 ORA:16:20:59 DURATA_SESSIONE:53

Risultato ricerca per keyword

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 30: Tecniche di protezione dei dati di log

Patrizia Martemucci

Valutazioni

• L’entità untrusted memorizza il segreto S. Se un attaccante compromette l’entità U può scrivere nel logfile entries valide. Non può modificare o cancellare record registrati prima dell’intrusione. Questo problema può essere mitigato prevedendo un protocollo di aggiornamento periodico del segreto S.

• E’ garantita la privatezza

• E’ garantito il controllo dell’accesso, delegato al MasterSecret: l’auditor deve autenticarsi per ottenere la search capability.

• A differenza dello schema precedente è possibile la ricerca per keyword

•La verificabilità è garantita dalla catena di hash e dalla pubblicazione periodica dell’ultimo valore di verifica

UNIVERSITÀ DEGLI STUDI DI MILANO Schema simmetrico - Waters

Page 31: Tecniche di protezione dei dati di log

Patrizia Martemucci

Schema a chiave Asimmetrica

Obiettivo: garantire integrità dei dati

Per ogni entry generata viene creata una coppia di chiavi, una pubblica e una privata. La entry m viene cifrata con la chiave pubblica usando un algoritmo di cifratura a chiave asimmetrica.La chiave privata viene memorizzata nel record per poter decifrare la entry.

Formato del record

R j PKEKpub( mj) Kpriv H(Rj-1) Vj

Verifica dell’integrità:ripercorrendo la catena di hash

Verificabilità pubblica:pubblicando periodicamente l’ultimo valore di verifica

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 32: Tecniche di protezione dei dati di log

Patrizia Martemucci

Problema

Costo computazionale alto dovuto alla generazione della coppia di chiavi.

Nella implementazione di questo schema in Java sono stati utilizzati gli algoritmi di cifratura RSA e ECIES disponibili da tre diversi provider: JCESun, Bouncy Castel e Flexi e messe a confronto le prestazioni.

Bouncy Castle provider for the Java Cryptography Extension and the Java Cryptography Architecture Crypto APIs.

Flexitoolkit for the Java Cryptography Architecture (JCA/JCE)Departement of Computer Science at Technische Universität Darmstadt

Sono entrambi open source.

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 33: Tecniche di protezione dei dati di log

Patrizia Martemucci

ECIES (Elliptic Curve Integrateted Encryption System)

Combina un sistema a chiave pubblica con un sistema a chiave simmetrica

Con uno schema Diffie-Hellman vengono generare due chiavi k1 e k2

k1 utilizzata per cifrare il messaggio utilizzando un algoritmo di cifratura simmetrica. k2 utilizzata per calcolare il MAC del messaggio cifrato.

parametri di dominio D=(q,FR,S,a,b,P,n,h)

chiave pubblica PA=dP (d chiave privata)

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 34: Tecniche di protezione dei dati di log

Patrizia Martemucci

Cifratura ECIES1. seleziona a caso un k nell’intervallo [1,n-1]2. calcola R=kP e Z=hkPA. Se Z=O torna al passo 13. genera la coppia di chiavi ( k1,k2 ) dalla funzione KDF(xz,R). Le chiavi dipendono

sia da Z che da R.4. calcola C= Enck1(m) e t=MACk2(C). 5. il messaggio cifrato è composto dalla terna (R,C,t)

Z, detto Diffie-Hellman shared secret, è un punto condiviso in modo segreto tra mittente e destinatario. R è una chiave pubblica one-time.

Decifratura ECIES1. Validazione chiave R. Se fallisce il messaggio non può essere decifrato2. Calcola Z=hdR. Se Z= O il messaggio non può essere decifrato.3. Genera la coppia di chiavi (k1,k2) dalla funzione KDF(xz,R)4. calcola t' = MACk2( C ). Se t<>t’ il messaggio non può essere decifrato5. Calcola m=Deck1( C )

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 35: Tecniche di protezione dei dati di log

Patrizia Martemucci

Validazione della chiave pubblica PA

1. verifica che PA <> O

2. verifica che xA e yA siano elementi del campo finito Fq

3. verifica che PA soddisfa l'equazione della curva Eq(a,b)

4. verifica che nPA = O

5. se almeno un controllo fallisce, la verifica della chiave pubblica fallisce

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 36: Tecniche di protezione dei dati di log

Patrizia Martemucci

I test sono stati effettuati su un computer con Processore Intel(R) Core(TM)2 CPU 6300 1,87 GhzRAM di 2 GB Sistema operativo Windows Vista.

E' stato utilizzato un log di 1000 record generato da una applicazione client-server. Ogni record del log contiene dati relativi ad una sessione.

Risultati performance

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 37: Tecniche di protezione dei dati di log

Patrizia Martemucci

Provider Cifratura (tempo in s)

Decifratura(tempo in s)

JCESun 192  11

Bouncy Castel 208 10

Flexi 229 9

Per l'implementazione che utilizza RSA,con dimensione delle chiavi pari a 1024 bit, non ci sono grandi differenze tra i tre provider, come si può notare dai dati riportati nella seguente tabella:

Implementazione con RSA

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 38: Tecniche di protezione dei dati di log

Patrizia Martemucci

Implementazione con ECIES

Nell’implementazione con ECIES sono state utilizzate curve predefiniteProvider Curva Standard Tempo per cifrare Tempo per decifrare

JCE prime192v1 ANSI X9.62 28 s 9 s

JCE P‐224 NIST 39 s 13 s

JCE prime256v1 ANSI X9.62 53 s 18 s

JCE P‐384 NIST 139 s 46 s

JCE P‐521 NIST 299 s 99 s

Bouncy Castel prime192v1 ANSI X9.62 28 s 9 s

Bouncy Castel P‐224 NIST 40 s 13 s

Bouncy Castel prime256v1 ANSI X9.62 54 s 17 s

Bouncy Castel P‐384 NIST 139 s 45 s

Bouncy Castel P‐521 NIST 298 s 99 s

Flexi Prime192v1 ANSI X9.62 15 s 6 s

Flexi Secp224r1 SEC 21 s 12 s

Flexi Prime256v1 ANSI X9.62 27 s 10 s

Flexi Secp384r1 SEC 67 s 23 s

Flexi Secp521r1 SEC 151 s 51 s

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 39: Tecniche di protezione dei dati di log

Patrizia Martemucci

Si può notare come tra Bouncy Castel e JCE non ci sia nessuna differenza, mentre con Flexi sono stati riportati dei tempi di cifratura/decifratura decisamente più brevi, a parità di lunghezza delle chiavi.

Per Flexi sono state utilizzate curve diverse perché alcune curve che sono state utilizzate con Bouncy Castel e JCE in Flexi non sono supportate.

Le dimensioni delle chiavi pubbliche/private generate sono riportate nella tabella seguente

Curva Chiave pubblica(in byte)

Chiave privata(in byte)

P‐192 75 59

P‐224 80 60

P‐256 91 67

P‐384 120 80

P‐521 158 98

UNIVERSITÀ DEGLI STUDI DI MILANO Schema asimmetrico

Page 40: Tecniche di protezione dei dati di log

UNIVERSITÀ DEGLI STUDI DI MILANO

Patrizia Martemucci

…Grazie