A Tutorial Introduction to Authentication and Key Establishment Corso di Sicurezza e Privacy Laurea Specialistica in Economia Informatica Università degli studi “G. D’Annunzio” Pescara A.A. 2007-2008 Prof. Stefano Bistarelli Studente Romualdo Trovato 1 Indice Building a Key Establishment Protocol Protocol Architectures Criptographic Propetries Freshness Types of Attack on Protocols Design Principles For Cryptographic Protocol (Abadi and Needham) 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 Building a Key Establishment Protocol Set di Utenti Session Key Server A B KAB S 4 Building a Key Establishment Protocol 1: A,B • 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 KAB e trasportarlo da A a B. A S 2:KAB 3: KAB, A B • Il valore di KAB dovrebbe essere conosciuto da entrambi A e B e non a terze parti 1: A → S : A, B • A e B dovrebbero sapere che KAB è appena generata. 3: A → B : KAB, A 2: S → A : KAB 5 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 A S 2:KAB 3: KAB, A B 6 Confidentiality 1: A,B Problema: La session Key KAB deve essere trasportata da A a B e non da altre entità A S 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 Server S inizialmente condivide una chiave segreta per ogni utente del sistema. KAS → A KBS → B 7 Confidentiality 1: A,B • A spedisce ad S le identità delle parti che condividono la session Key. S genera la session Key KAB che 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 S , {KAB}KBS 3: {KAB}KBS, A B 8 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 A 2:{KAB}KAS S , {KAB}KBS 3: {KAB}KBS, A 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. B 9 Authentication 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 Attacco 1 1: A,B A 2:{KAB}KAS S , {KAB}KBS 3: {KAB}KBS, A B C 3’: {KAB}KBS, D 10 Authentication Attacco 2: C altera il messaggio da A ad S così che genera KAC con la chiave di C KCS, 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. Attacco 2 S 1’: A,C 2:{KAC}KAS C 2’:{KAC}KAS Inoltre C raccoglie anche il 1: A,B 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. , {KAC}KCS , {KAC}KCS A C 3: {KAC}KCS, A 11 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 C 2’:{KAC}KAS 1: A,B Security Assumption 3: L’ avversario può essere un partecipante legittimo del protocollo (insiders), o una parte esterna (outsiders), o una combinazione di entrambi. , {KAC}KCS , {KAC}KCS A C 3: {KAC}KCS, A 12 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 A 2:{KAB,B}KAS, S {KAB,A}KBS 3: {KAB,A}KBS B Problema: La session Key KAB generata da S per ogni protocollo di esecuzione. • Session Key sono vulnerabili da attacchi • È possibile utilizzare vecchie Session Key da precedenti sessioni (replay) 13 Replay 1: A,B Secutity Assumption 4: Un avversario è in grado di ottenere il valore della session key KAB in qualsiasi precedente esecuzione del protocollo C intercetta il messaggio da A ad S. K’AB è una vecchia session Key utilizzata A C 2:{K’AB,B}KAS,{K’AB,A}KBS 3: {K’AB,A}KBS B da A e 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 14 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.1 Una nonce è un valore casuale generato da un componente del protocollo restituito a questi componenti per mostrare che un messaggio è appena generato. 1. A,B,NA S 2. {KAB,B,NA,{KAB,A}KBS} KAS A 15 Replay 1. A,B,NA S 2. {KAB,B,NA, {KAB,A}KBS } KAS 3. {KAB,A}KBS A 4. {NB}KAB B 5. {NB-1}KAB C 3. {K’AB,A}KBS 4. {NB}K’AB B 5. {NB-1}K’AB 16 Replay • 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) 2. A,B,NA,NB S 3. {KAB,B,NA}KAS,{KAB,A,NB}KBS A 1. B,NB 4. {KAB,A,NB}KBS B 17 Indice Building a Key Establishment Protocol Protocol Architectures Criptographic Propetries Freshness Types of Attack on Protocols Design Principles For Cryptographic Protocol (Abadi and Needham) 18 Protocol Architectures Exsting Cryptographic Keys Method of Session Key Generation Number of Users 19 Exsting Cryptographic Keys 3 possibilità: I. Le entità gia condividono una chiave segreta II. Viene utilizzato un Off-line Server. 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. III. Viene utilizzato un On-line Server. 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 Chain of online Server. 20 Method of Session Key Generation Definition 1.2 Una Key Transport Protocol è 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.3 Una Key Agreement Protocol è una Key Establishment Protocol in cui la Session Key è una funzione di Input da tutti gli utenti del protocollo. Definition 1.4 Un 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. 21 Number of Users Non esiste un numero preciso Maggiore è l’estenzione del protocollo maggiore sarà la difficoltà di comunicazione 22 Example (Hybrid Key Establishment) • On-line Server • Hybrid Key Generation • Condividono KAS e KBS • KAB = f (NB, NS) • 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 1. A → B : A, NA 2. B → S : {NB,A,B}KBS, NA 3. S → A : {KAB,A,B,NA}KAS,NS 4. A → B : NS, {A,B}KAB 5. B → A : {B,A}KAB 23 Example (Hybrid Key Establishment) S 3. {KAB,A,B,NA}KAS,NS 2. {NB,A,B}KBS, NA A 1. A, NA B 24 Indice Building a Key Establishment Protocol Protocol Architectures Criptographic Propetries Freshness Types of Attack on Protocols Design Principles For Cryptographic Protocol (Abadi and Needham) 25 Cryptographic Properties Confidentiality Data Integrity Data Origin Authentication Non-Repudiation 26 Cryptographic Properties EA(M) La chiave pubblica di criptazione del messaggio M con la chiave pubblica dell’entità A {M}K Criptazione 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 27 Confidentiality Definition 1.5 Uno schema di decriptazione consiste in 3 set: K , M , C 1. Un algoritmo di generazione delle chiavi, il cui outputs è una valida criptazione della chiave K є K e una valida decriptazione K-1єK 2. 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 3. 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 28 Confidentiality Symmetric Algorithm -1 K=K Asymmetric Algorithm -1 K≠K 29 Confidentiality Definition 1.6 Uno 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à 30 Confidentiality Definition 1.7 Uno schema di criptazione fornisce la nonmalleabilità 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 31 Data Origin Authentication and Data Integrity Definition 1.8 Una 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 32 Data Origin Authentication and Data Integrity Definition 1.9 Un 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: 1. È computazionalmente facile da calcolare MACk(m) dato K e m. 2. 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. 33 Non - Repudiation Definition 1.10 La firma digitale consiste di 3 sets: K , M , S 1. Un algoritmo di generazione delle chiavi, il cui outputs una valida firma con chiave K є K è una valida verificazione della chiave K-1 є K. 2. 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. 3. 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. 34 Secret Sharing Il Secret Sharing è 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) Threshold Scheme è un secret sharing 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 fresh keys e key authenthication. 35 Secret Sharing Threshold Scheme è 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 є genera un polinomio di grado t-1 : Zp nel threshold scheme (t,n) il dealer f(z) = a0 + a1z +…….+ at-1zt-1 Con coefficienti casualmente scelti in valori f(x) con 1 ≤ x ≤ n. Zp eccetto per a0 = s . Le parti sono 36 Indice Building a Key Establishment Protocol Protocol Architectures Criptographic Propetries Freshness Types of Attack on Protocols Design Principles For Cryptographic Protocol (Abadi and Needham) 37 Freshness La proprietà di verifica se una chiave può essere replicata o meno può essere estesa anche agli elementi del messaggio. 2 ways : 1. Key agreement protocol dove 2 utenti A e B entrambi scelgono un input rispettivamente NA e NB su una nuova sessione KAB. KAB sarà funzione di N A e N B. 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 KAB che è 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. 38 Freshness La proprietà di verifica se una chiave può essere replicata o meno può essere estesa anche agli elementi del messaggio. 2 ways : 1. KAB = f (NA , NB) 5=f(2,3) 5 = f (2 , NB) 2. F (KAB , N) • Data origin Authentication • Data Integrity 39 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 40 Indice Building a Key Establishment Protocol Protocol Architectures Criptographic Propetries Freshness Types of Attack on Protocols Design Principles For Cryptographic Protocol (Abadi and Needham) 41 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. 42 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. 43 Indice Building a Key Establishment Protocol Protocol Architectures Criptographic Propetries Freshness Types of Attack on Protocols Design Principles For Cryptographic Protocol (Adabi e Needham) 44 Design Principle for Cryptographic Protocol (Abadi and Needham) 1. 2. 3. 4. 5. 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 45 Design Principle for Cryptographic Protocol (Abadi and Needham’s) 6. 7. Essere chiari su quali proprietà si sta assumendo circa le nonces. 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 8. 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. 9. Una chiave potrebbe essere stato usato di recente, ad esempio per cifrare una nonce, e ancora essere vecchio e forse compromessa. 10. Dovrebbe essere possibile dedurre che il protocollo, e quale esecuzione di tale protocollo, il messaggio appartiene, e per conoscere il suo numero nel protocollo. 11. Le relazioni di fiducia in un protocollo deve essere esplicito e ci dovrebbero essere buone ragioni per la necessità di tali relazioni. 46 FINE 47