1 / 47

Corso di Sicurezza e Privacy

A Tutorial Introduction to Authentication and Key Establishment. Laurea Specialistica in Economia Informatica. Corso di Sicurezza e Privacy. Università degli studi “ G. D’Annunzio ” Pescara A.A. 2007-2008. Prof. Stefano Bistarelli. Studente Romualdo Trovato. Indice.

alisa
Download Presentation

Corso di Sicurezza e Privacy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Tutorial Introduction to Authentication and Key Establishment Laurea Specialistica in Economia Informatica Corso di Sicurezza e Privacy Università degli studi “G. D’Annunzio” Pescara A.A. 2007-2008 Prof. Stefano Bistarelli Studente Romualdo Trovato

  2. Indice • Building a Key Establishment Protocol • Protocol Architectures • Criptographic Propetries • Freshness • Types of Attack on Protocols • Design Principles For Cryptographic Protocol (Abadi and Needham)

  3. Indice • Building a Key Establishment Protocol • Protocol Architectures • Criptographic Propetries • Freshness • Types of Attack on Protocols • Design Principles For Cryptographic Protocol (Abadi and Needham)

  4. Building a Key Establishment Protocol • Set di Utenti • Session Key • Server A B KAB S

  5. Building a Key Establishment Protocol 1: A,B S • L’obiettivo del protocollo è di stabilire una nuova chiave segreta KAB che possono usare per comunicare in modo sicuro. • Il ruolo di S è di generare KABe trasportarlo da A a B. • Il valore di KAB dovrebbe essere conosciuto da entrambi A e B e non a terze parti • A e B dovrebbero sapere che KAB è appena generata. A 2:KAB 3: KAB, A B 1: A → S : A, B 2: S → A : KAB 3: A → B : KAB, A

  6. Building a Key Establishment Protocol 1: A,B • È incompleto: • Sono specificati solo i passi di esecuzioni di successo. • Non sono specificati le azioni interne dei mandanti. • È implicito assumere che A e B “conoscono” che i messaggi ricevuti fanno parte del protocollo S A 2:KAB 3: KAB, A B

  7. Confidentiality 1: A,B Problema: La session Key KAB deve essere trasportata da A a B e non da altre entità S A 2:KAB 3: KAB, A Security Assumption 1:L’avversario è in grado di spiare tutti i messaggi in un cryptographic protocol B Al fine di fornire la riservatezza è necessario usare un algoritmo di crittografia e chiavi associate. Per ora sarà sufficientemente effettuare il presupposto che il ServerS inizialmente condivide una chiave segreta per ogni utente del sistema. KAS→ A KBS → B

  8. Confidentiality 1: A,B S • A spedisce ad S le identità delle parti che condividono la session Key. S genera la session KeyKABche lo cripta con le chiavi KAS e KBS e lo spedisce ad A. • A spedisce la chiave di criptazione a B con la sua identità così che B conosce chi altro ha questa chiave. A 2:{KAB}KAS , {KAB}KBS 3: {KAB}KBS, A B

  9. Authentication Problema: Il problema non è che si dà via la chiave segreta KAB. La difficoltà è che le informazioni non sono protetti da terze parti che hanno la chiave. Gli avversari sono in grado non solo a origliare sui messaggi spediti ma anche di catturare i messaggi e di alterarli. 1: A,B S A 2:{KAB}KAS , {KAB}KBS 3: {KAB}KBS, A B Security Assumption 2 : Gli avversari possono alterare tutti i messaggi spediti in un cryptographic protocol usando qualsiasi informazione disponibile. In aggiunta l’avversario può cambiare rotta di qualsiasi messaggio verso altri utenti. Questo include l’abilità di generare e inserire completamente nuovi messaggi.

  10. Authentication Attacco 1 1: A,B Attacco1: L’avversario C intercetta semplicemente il messaggio da A a B e lo sostituisce con l’identità di D al posto di A. La conseguenza è che B crede che sta condividendo la chiave con D invece che con A. Sebbene C ottiene KAB possiamo vedere il protocollo come spezzato dal momento che non soddisfa le nostre richieste. Quindi gli utenti devono sapere chi altro conosce la session Key S A 2:{KAB}KAS , {KAB}KBS 3: {KAB}KBS, A B C 3’: {KAB}KBS, D

  11. Authentication Attacco 2 S Attacco 2: C altera il messaggio da A ad S così che genera KAC con la chiave di CKCS, invece che con la chiave di B. Poiché A non può distinguere tra i messaggi crittografati, A non rileverà nessuna alterazione e quindi accetta KAC. Inoltre C raccoglie anche il messaggio destinato a B così che B non noterà nessuna anomalia. Il risultato di questo attacco è che A crede che il protocollo sia stato completato con successo con B non che conosce tutte le informazioni che A spedisce a B. 1’: A,C 2:{KAC}KAS , {KAC}KCS C 1: A,B 2’:{KAC}KAS , {KAC}KCS A C 3: {KAC}KCS, A

  12. Authentication Attacco 2 S 1’: A,C Bisogna notare che questo tipo di attacco può avere successo solo se C è un utente legittimato e conosciuto da S (insiders) 2:{KAC}KAS , {KAC}KCS C 1: A,B 2’:{KAC}KAS , {KAC}KCS Security Assumption 3: L’ avversario può essere un partecipante legittimo del protocollo (insiders), o una parte esterna (outsiders), o una combinazione di entrambi. A C 3: {KAC}KCS, A

  13. Authentication Per superare l’attacco, il nome degli utenti che condividono KAB hanno la necessità di essere vincolati crittograficamente al valore di KAB, utilizzando algoritmi di crittografia di S in modo da non alterare i messaggi. 1: A,B S A 2:{KAB,B}KAS, {KAB,A}KBS 3: {KAB,A}KBS B • Problema: La session KeyKAB generata da S per ogni protocollo di esecuzione. • SessionKey sono vulnerabili da attacchi • È possibile utilizzare vecchie SessionKey da precedenti sessioni (replay)

  14. Replay Secutity Assumption 4: Un avversario è in grado di ottenere il valore della session key KAB in qualsiasi precedente esecuzione del protocollo 1: A,B C A 2:{K’AB,B}KAS,{K’AB,A}KBS C intercetta il messaggio da A ad S. K’AB è una vecchia session Key utilizzata da A e B. 3: {K’AB,A}KBS B Dal SA.1 C può conoscere il messaggio crittografato tramite la chiave K’AB che era stata trasportata da A a B. Dalla SA.4 C può conoscere il valore di K’AB. Quindi A completa il protocollo con B, C è in grado di decriptare le seguenti informazioni crittografati con K’AB o inserire o alterare messaggi la cui integrità è protetta da K’AB. C ripete (replay) i messaggi protetti da K’AB che sono stati inviati in un precedente sessione

  15. Replay Il metodo più utilizzato per superare un attacco Replay è il Challenge-Response. In questo metodo A genererà un nuovo valore casuale NA, comunemente definita nonce, che può essere utilizzato una volta sola. Definition 1.1Una nonce è un valore casuale generato da un componente del protocollo restituito a questi componenti per mostrare che un messaggio è appena generato. S 1. A,B,NA 2. {KAB,B,NA,{KAB,A}KBS} KAS A

  16. Replay S 1. A,B,NA 2. {KAB,B,NA, {KAB,A}KBS } KAS 3. {KAB,A}KBS A B 4. {NB}KAB 5. {NB-1}KAB 3. {K’AB,A}KBS C B 4. {NB}K’AB 5. {NB-1}K’AB

  17. Replay S 2. A,B,NA,NB 3. {KAB,B,NA}KAS,{KAB,A,NB}KBS • Il protocollo è iniziato da B che manda la sua nonce prima ad A. • A aggiunge la sua nonce e la spedisce ad S che è in grado di generare KAB e spedirlo in due messaggi separati ad A e a B che a loro volta controllano che KAB non sia riutilizzato (fresh) A 1. B,NB B 4. {KAB,A,NB}KBS

  18. Indice • Building a Key Establishment Protocol • Protocol Architectures • Criptographic Propetries • Freshness • Types of Attack on Protocols • Design Principles For Cryptographic Protocol (Abadi and Needham)

  19. Protocol Architectures • Exsting Cryptographic Keys • Method of Session Key Generation • Number of Users

  20. Exsting Cryptographic Keys 3 possibilità: • Le entità gia condividono una chiave segreta • Viene utilizzato un Off-lineServer. Questo significa che le entità già posseggono una chiave pubblica certificata. Al fine di verificare la autenticità di una chiave pubblica potrebbe essere necessario verificare una Chain of Certificate. • Viene utilizzato un On-lineServer. Questo significa che ogni entità condivide una chiave segreta con il Server. Al fine di passare le informazioni tra le parti è necessario che esso passi tramite una Chainof on-line Server.

  21. Method of Session Key Generation • Definition 1.2Una KeyTransportProtocol è una Key Establishment Protocol in cui uno dei mandanti genera la chiave e questa chiave è poi trasferita a tutti gli utenti del protocollo. • Definition 1.3Una Key Agreement Protocol è una Key Establishment Protocol in cui la Session Key è una funzione di Input da tutti gli utenti del protocollo. • Definition 1.4Un Hybrid Protocol è una Key Establishment Protocol in cui la Session Key è una funzione di Inputs da più di un mandante, ma non da tutti gli utenti. Questo significa che il protocollo è un Key Agreement Protocol dal punto di vista di qualche utente, e un Key Transport Protocol dal punto di vista di altri.

  22. Number of Users • Non esiste un numero preciso • Maggiore è l’estenzione del protocollo maggiore sarà la difficoltà di comunicazione

  23. Example (Hybrid Key Establishment) • Condividono KASe KBS • KAB = f (NB, NS) • On-line Server • Hybrid Key Generation • 2 Utenti • S deve controllare che il valore dalla decriptazione del campo B è la stessa identità del mandante la quale chiave è usata per decriptare il messaggio. • Se la stessa identità è ricevuta con l’identità di A, allora S può dedurre che A e B stanno condividendo una Session Key • A → B : A, NA • B → S : {NB,A,B}KBS, NA • S → A : {KAB,A,B,NA}KAS,NS • A → B : NS, {A,B}KAB • B → A : {B,A}KAB

  24. Example (Hybrid Key Establishment) S 3. {KAB,A,B,NA}KAS,NS 2. {NB,A,B}KBS, NA A 5. {B,A}KAB 4. NS, {A,B}KAB B 1. A, NA

  25. Indice • Building a Key Establishment Protocol • Protocol Architectures • Criptographic Propetries • Freshness • Types of Attack on Protocols • Design Principles For Cryptographic Protocol (Abadi and Needham)

  26. Cryptographic Properties • Confidentiality • Data Integrity • Data Origin Authentication • Non-Repudiation

  27. Cryptographic Properties • EA(M)La chiave pubblica di criptazione del messaggio M con la chiave pubblica dell’entità A • {M}KCriptazione Simmetrica del messaggio M con una chiave condivisa K • MACk(M)Codice di autenticazione di M usando una chiave condivisa K • SigA(M)Firma digitale del messaggio M generato dalla entità A

  28. Confidentiality Definition 1.5 Uno schema di decriptazione consiste in 3 set: K , M , C • Un algoritmo di generazione delle chiavi, il cui outputs è una valida criptazione della chiave K єK e una valida decriptazione K-1єK • Un algoritmo di criptazione, che prende un elemento m єM e una criptazione della chiave K єK e un outputs un elemento c єC definito come c=Ek{m}. L’algoritmo di criptazione può essere randomizzato così che un differente c risulterà dato dallo stesso risultato m • Un funzione di decriptazione, prende un elemento c єC e una chiave di decriptazione K-1єK e output un elemento m єM definito come m=Dk-1{c}. Si richiede che Dk-1{Ek{m}}=m

  29. Confidentiality • Symmetric Algorithm K = K • Asymmetric Algorithm K ≠ K -1 -1

  30. Confidentiality Definition 1.6Uno schema di criptazione fornisce un semantic security se niente che può essere efficientemente calcolato dato il ciphertext, può anche essere efficientemente calcolato senza ciphertext. INDISTINGUISHABILITY Questo significa che il ciphertext corrispondente a uno dei due messaggi conosciuti, l’avversario può indovinare il plaintext con il 50% di possibilità

  31. Confidentiality Definition 1.7Uno schema di criptazione fornisce la non-malleabilità se esso è infattibile a prendere un esistente ciphertext e lo trasforma in un correlato ciphertext senza la conoscenza dell’input plaintext NON - MALLEABILITÁ La non-Malleabilità è più forte della semantic security

  32. Data Origin Authentication and Data Integrity Definition 1.8Una funzione f : X → Y è one – way se è computazionalmente facile da calcolare y = f(x) dato x є X, ma è computazionalmente difficile trovare qualsiasi x con f(x) = y per quasi tutti i valori di y є Y Una funzione one – way che è allegato al messaggio prima della criptazione è conosciuto come un manipulation detection code (MDC). L’idea è che senza la conoscenza del messaggio o del MDC l’avversario non è in grado di alterare il messaggio senza distruggere la correttezza del MDC. Cioè, L’avversario non può creare alcun messaggio criptato che, quando decriptato, avrebbe un corretto MDC

  33. Data Origin Authentication and Data Integrity • Definition 1.9Un codice di autenticazione (MAC) è una famiglia di funzioni parametrizzati da una chiave K tale che MACk(m) prende un messaggio m di arbitraria lunghezza e l’output un valore di lunghezza fissata che: • È computazionalmente facile da calcolare MACk(m) dato K e m. • Dato un qualsiasi valore del MAC per un dato K, è computazionalmente difficile trovare qualsiasi valore MAC per qualsiasi nuovo messaggio. Questa seconda definizione per fornire Data Origin Authentication e Data Integrity bisogna aggiungere un MAC al messaggi che potrebbe essere sia in plaintext o criptata. Al ricevimento del MAC, il destinatario che ha una corretta chiave è in grado di ricalcolare il MAC dal messaggio e verificare che esso è lo stesso che ha ricevuto.

  34. Non - Repudiation • Definition 1.10 La firma digitale consiste di 3 sets: K , M , S • Un algoritmo di generazione delle chiavi, il cui outputs una valida firma con chiave K єK è una valida verificazione della chiave K-1єK. • Un algoritmo di generazione delle firme, che prende una valida firma con chiave K єK e come outputs un elemento s єS. Potremmo scrivere s=SigA{m} dove K è la firma generata con la chiave dell’entità di A. L’algoritmo di generazione delle firme potrebbe essere randomizzato così che un differente output risulterà dato lo stesso messaggio m. • Una funzione di verifica, che prende una firma s єS, un messaggio m єM, e una chiave di verifica K-1єK e come output un elemento v є{0,1}. Se v=1 allora diciamo che la firma è valida o Se v=0 diciamo che la firma non è valida. L’algoritmo di firma digitale è considerato come sicuro se è computazionalmente difficile per gli avversari trovare una valida firma di qualsiasi messaggio che non è stata precedentemente firmato, anche dato alcuni messaggi precedentemente firmati.

  35. Secret Sharing Il SecretSharing è un meccanismo che consente al proprietario di un segreto di distribuire le parti del messaggio all’interno di un gruppo. Il proprietario di un segreto è spesso chiamato dealer. Un (t,n) ThresholdScheme è un secretsharing per cui n parti sono distribuite, tale che qualsiasi set di t (o più) parti sono sufficienti per ottenere il segreto, mentre qualsiasi set di t-1 (o meno) parti non sono di aiuto per recuperare il segreto. Problema : Il secret sharing non fornisce freshkeys e keyauthenthication.

  36. Secret Sharing ThresholdScheme è basato sull’uso di interpolazioni polinomiali. Consente a qualsiasi polinomio di grado d ad essere completamente recuperati una volta ogni d+1 punti sono conosciuti su di esso. Le interpolazioni polinomiali lavorano su tutti i campi, ma nelle applicazioni criptografiche il campo è tipicamente Zp per qualche p primo Al fine di condividere un segreto s єZp nel threshold scheme (t,n) il dealer genera un polinomio di grado t-1 : f(z) = a0 + a1z +…….+ at-1zt-1 Con coefficienti casualmente scelti in Zp eccetto pera0 = s . Le parti sono valori f(x) con 1 ≤ x ≤ n.

  37. Indice • Building a Key Establishment Protocol • Protocol Architectures • Criptographic Propetries • Freshness • Types of Attack on Protocols • Design Principles For Cryptographic Protocol (Abadi and Needham)

  38. Freshness • La proprietà di verifica se una chiave può essere replicata o meno può essere estesa anche agli elementi del messaggio. 2 ways : • Key agreement protocol dove 2 utenti A e B entrambi scelgono un input rispettivamente NA e NBsu una nuova sessione KAB. KAB sarà funzione di NA e NB. • KAB = f (NA , NB) • Una proprietà desiderabile della funzione f non dovrebbe essere possibile per A o B a riutilizzare un altro valore di KAB anche se l’input dell’altro è conosciuto. Noto A non è possibile trovare NB tale che f (NA , NB) sia un valore già usato. • 2. Il freshness dipende su qualcosa ricevuto con il messaggio. Supponiamo che a intende verificare il freshness di una session key KABche è stata generata da qualche server S, ed inoltre che il messaggio ricevuto non sia un vecchio messaggio. Assumiamo che A riceve F( KAB , N ).F per essere freshness deve disporre delle proprietà di Data Origin Authentication and Data Integrity così che il destinatario può dedurre che sia KAB che N sono fresh.

  39. Freshness • La proprietà di verifica se una chiave può essere replicata o meno può essere estesa anche agli elementi del messaggio. 2 ways : • KAB = f (NA , NB) • 5 = f ( 2 , 3 ) 5 = f (2 , NB) • F (KAB , N) • Data origin Authentication • Data Integrity

  40. Freshness • Timestamps : timestamps sia dentro un intervallo di tempo accettato. • Nonce (Random Challenges) 1. A → B : NA 2. B → A : f(NA,…) • Counters : sincronizzazione di un contatore

  41. Indice • Building a Key Establishment Protocol • Protocol Architectures • Criptographic Propetries • Freshness • Types of Attack on Protocols • Design Principles For Cryptographic Protocol (Abadi and Needham)

  42. Types of Attack on Protocols • Eavesdropping : cattura le informazioni spedite nel protocollo. • Modification : alterare le informazioni spedite nel protocollo. • Replay : ripetere la session Key. • Preplay : estenzione del replay, l’avversario si impegna in una esecuzione del protocollo prima dell’esecuzione di un utente legittimato . • Reflection : l’avversario spedisce messaggi del protocollo che ritornano all’utente che li ha spediti.

  43. Types of Attack on Protocols • Denial of service : l’avversario sostituisce ed ostacola gli utenti dal completare il protocollo. • Typing Attacks : l’avversario sostituisce un campo del messaggio di un tipo con un’altro campo di un altro tipo. • Cryptanalysis : l’avversario guadagna qualche utile leva dal protocollo per aiutare la cryptanalysis. • Certificate Manipulation : l’avversario sceglie o modifica le informazioni dei certificati per attaccare uno o più esecuzioni del protocollo. • Protocol Interaction : l’avversario sceglie un nuovo protocollo per interagire con un protocollo conosciuto.

  44. Indice • Building a Key Establishment Protocol • Protocol Architectures • Criptographic Propetries • Freshness • Types of Attack on Protocols • Design Principles For Cryptographic Protocol (Adabi e Needham)

  45. Design Principle for Cryptographic Protocol(Abadi and Needham) • Ogni messaggio deve dire cosa significa: l'interpretazione del messaggio deve dipendere solo sul suo contenuto • Processo di esecuzione del messaggio, devono essere chiaramente indicati in modo che qualcuno nel ricontrollare la progettazione può vedere se sono accettabili o meno • Se l'identità di uno degli utenti è essenziale per il significato di un messaggio, è prudente citare il nome degli utenti esplicitamente nel messaggio • Essere chiaro sul perché la crittografia è stata fatta • Quando uno degli utenti firma un messaggio che è già stato cifrato, non dovrebbe essere dedotto che l’utente conosce il contenuto del messaggio

  46. Design Principle for Cryptographic Protocol (Abadi and Needham’s) 6. Essere chiari su quali proprietà si sta assumendo circa le nonces. 7. Se una quantità è prevedibile per essere effettiva, dovrebbe essere protetto in modo tale che un intruso non può simulare un cambiamento e poi ripetere una risposta • Se sono utilizzati i timestamps come garanzie di freshness, allora la differenza tra gli orologi locali e delle varie macchine devono essere molto inferiore a quello consentito dall’età di un messaggio. • Una chiave potrebbe essere stato usato di recente, ad esempio per cifrare una nonce, e ancora essere vecchio e forse compromessa. • Dovrebbe essere possibile dedurre che il protocollo, e quale esecuzione di tale protocollo, il messaggio appartiene, e per conoscere il suo numero nel protocollo. • Le relazioni di fiducia in un protocollo deve essere esplicito e ci dovrebbero essere buone ragioni per la necessità di tali relazioni.

  47. FINE

More Related