Corso di Sicurezza e Privacy Corso di Sicurezza e Privacy
Laurea Specialistica in Economia Informatica Laurea Specialistica in Economia Informatica
Università degli studi Università degli studi
“G. D’Annunzio“G. D’Annunzio”” Pescara
Pescara
A.A. 2007-2008 A.A. 2007-2008
A Tutorial Introduction to Authentication and Key
Establishment
2
Indice Indice
Building a Key Establishment Protocol Building a Key Establishment Protocol
Protocol Architectures Protocol Architectures
Criptographic Propetries Criptographic Propetries
Freshness Freshness
Types of Attack on Protocols Types of Attack on Protocols
Design Principles For Cryptographic Design Principles For Cryptographic
Protocol (
Protocol ( Abadi and Needham Abadi and Needham ) )
Indice Indice
Building a Key Establishment Protocol Building a Key Establishment Protocol
Protocol Architectures Protocol Architectures
Criptographic Propetries Criptographic Propetries
Freshness Freshness
Types of Attack on Protocols Types of Attack on Protocols
Design Principles For Cryptographic Design Principles For Cryptographic
Protocol (
Protocol ( Abadi and Needham Abadi and Needham ) )
4
Building a Key Building a Key
Establishment Protocol Establishment Protocol
Set di Utenti Set di Utenti Session Key Session Key
Server Server
A B
S
KAB
Building a Key Building a Key
Establishment Protocol Establishment Protocol
A
B S
2:KAB
1: A,B
3: KAB, A
• 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.
• 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.
1: A → S : A, B 2: S → A : KAB
3: A → B : KAB, A
6
Building a Key Building a Key
Establishment Protocol Establishment Protocol
A
B S
2:KAB
1: A,B
3: KAB, A
È 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
Confidentiality Confidentiality
A
B S
2:KAB
1: A,B
3: KAB, A
Problema:
La session Key KAB deve essere trasportata da A a B e non da altre entità
Security Assumption 1: L’avversario è in grado di spiare tutti i messaggi in un cryptographic protocol
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
8
Confidentiality Confidentiality
A
B S
2:{KAB}KAS , {KAB}KBS
1: A,B
3: {KAB}KBS, A
• 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.
Authentication Authentication
A
B S
2:{KAB}KAS , {KAB}KBS
1: A,B
3: {KAB}KBS, A
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.
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
Authentication Attacco 1 Attacco 1
A
B S
2:{KAB}KAS , {KAB}KBS
1: A,B
3: {KAB}KBS, A
C 3’: {KAB}KBS, D
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
Authentication
Authentication Attacco 2 Attacco 2
A C
S
2:{KAC}KAS , {KAC}KCS
1: A,B
3: {KAC}KCS, A
C
1’: A,C
2’:{KAC}KAS , {KAC}KCS
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. 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.
12
Authentication
Authentication Attacco 2 Attacco 2
A C
S
2:{KAC}KAS , {KAC}KCS
1: A,B
3: {KAC}KCS, A
C
1’: A,C
2’:{KAC}KAS , {KAC}KCS
Bisogna notare che questo tipo di attacco può avere successo solo se C è un utente legittimato e conosciuto da S (insiders)
Security Assumption 3:
L’ avversario può essere un partecipante legittimo del protocollo (insiders), o una parte esterna (outsiders), o una combinazione di entrambi.
Authentication Authentication
A
B S
2:{KAB,B}KAS, {KAB,A}KBS
1: A,B
3: {KAB,A}KBS
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.
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)
14
Replay Replay
A
B C
2:{K’AB,B}KAS,{K’AB,A}KBS
1: A,B
3: {K’AB,A}KBS
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 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
Replay 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.
A
1. A,B,NA S
2. {KAB,B,NA,{KAB,A}KBS} KAS
16
Replay Replay
A
S 1. A,B,NA
2. {KAB,B,NA, {KAB,A}KBS } KAS
B 3. {KAB,A}KBS
4. {NB}KAB
5. {NB-1}KAB
C B
3. {K’AB,A}KBS
4. {NB}K’AB
5. {NB-1}K’AB
Replay Replay
A
S
B 1. B,NB
2. A,B,NA,NB
3. {KAB,B,NA}KAS,{KAB,A,NB}KBS
4. {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)
18
Indice Indice
Building a Key Establishment Protocol Building a Key Establishment Protocol
Protocol Architectures Protocol Architectures
Criptographic Propetries Criptographic Propetries
Freshness Freshness
Types of Attack on Protocols Types of Attack on Protocols
Design Principles For Cryptographic Design Principles For Cryptographic
Protocol (
Protocol ( Abadi and Needham Abadi and Needham ) )
Protocol Architectures Protocol Architectures
Exsting Cryptographic Keys Exsting Cryptographic Keys
Method of Session Key Generation Method of Session Key Generation
Number of Users
Number of Users
20
Exsting Cryptographic Keys Exsting Cryptographic Keys
3 possibilità:
3 possibilità:
I.I. Le entità gia condividono una chiave segretaLe entità gia condividono una chiave segreta
II.II. Viene utilizzato un OViene utilizzato un Off-lineff-line ServerServer.. Questo significa Questo significa che le entità già posseggono una chiave pubblica che le entità già posseggono una chiave pubblica certificata. Al fine di verificare la autenticità di una certificata. Al fine di verificare la autenticità di una chiave pubblica potrebbe essere necessario chiave pubblica potrebbe essere necessario verificare una
verificare una Chain of CertificateChain of Certificate..
III.III. Viene utilizzato un Viene utilizzato un On-lineOn-line ServerServer.. Questo significa Questo significa che ogni entità condivide una chiave segreta con il che ogni entità condivide una chiave segreta con il Server
Server. Al fine di passare le informazioni tra le parti è . Al fine di passare le informazioni tra le parti è necessario che esso passi tramite una
necessario che esso passi tramite una ChainChain of on-of on- line Server
line Server..
Method of Session Key Method of Session Key
Generation Generation
Definition 1.2
Definition 1.2 Una Una KeyKey TransportTransport ProtocolProtocol è una Key è una Key Establishment Protocol in cui uno dei mandanti genera la Establishment Protocol in cui uno dei mandanti genera la chiave e questa chiave è poi trasferita a tutti gli utenti del chiave e questa chiave è poi trasferita a tutti gli utenti del protocollo.
protocollo.
Definition 1.3
Definition 1.3 Una Una Key Agreement ProtocolKey Agreement Protocol è una Key è una Key Establishment Protocol in cui la Session Key è una Establishment Protocol in cui la Session Key è una funzione di Input da tutti gli utenti del protocollo.
funzione di Input da tutti gli utenti del protocollo.
Definition 1.4
Definition 1.4 Un Un Hybrid ProtocolHybrid Protocol è una Key è una Key Establishment Protocol in cui la Session Key è una Establishment Protocol in cui la Session Key è una funzione di Inputs da più di un mandante, ma non da tutti funzione di Inputs da più di un mandante, ma non da tutti gli utenti. Questo significa che il protocollo è un
gli utenti. Questo significa che il protocollo è un Key Key Agreement Protocol
Agreement Protocol dal punto di vista di qualche utente, dal punto di vista di qualche utente, e un
e un Key Transport ProtocolKey Transport Protocol dal punto di vista di altri. dal punto di vista di altri.
22
Number of Users Number of Users
Non esiste un numero preciso Non esiste un numero preciso
Maggiore è l’estenzione del protocollo Maggiore è l’estenzione del protocollo
maggiore sarà la difficoltà di maggiore sarà la difficoltà di
comunicazione
comunicazione
Example
Example (Hybrid Key (Hybrid Key Establishment)
Establishment)
• On-line Server
• Hybrid Key Generation
• 2 Utenti
• Condividono KAS e KBS
• KAB = f (NB, NS)
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
• 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
24
Example
Example
(Hybrid Key (Hybrid Key Establishment)Establishment)
A
S
B 1. A, NA
2. {NB,A,B}KBS, NA
3. {KAB,A,B,NA}KAS,NS
4. NS, {A,B}KAB
5. {B,A}KAB
Indice Indice
Building a Key Establishment Protocol Building a Key Establishment Protocol
Protocol Architectures Protocol Architectures
Criptographic Propetries Criptographic Propetries
Freshness Freshness
Types of Attack on Protocols Types of Attack on Protocols
Design Principles For Cryptographic Design Principles For Cryptographic
Protocol (
Protocol ( Abadi and Needham Abadi and Needham ) )
26
Cryptographic Properties Cryptographic Properties
Confidentiality Confidentiality
Data Integrity Data Integrity
Data Origin Authentication Data Origin Authentication
Non-Repudiation
Non-Repudiation
Cryptographic Properties Cryptographic Properties
E E A A (M) (M) La chiave pubblica di criptazione del La chiave pubblica di criptazione del messaggio
messaggio M M con la chiave pubblica con la chiave pubblica dell’entità
dell’entità A A
{M} {M}
KKCriptazione Simmetrica del messaggio Criptazione Simmetrica del messaggio M M con una chiave condivisa con una chiave condivisa K K
MAC MAC k k (M) (M) Codice di autenticazione di Codice di autenticazione di M M usando una chiave condivisa
usando una chiave condivisa K K
Sig Sig
AA(M) (M) Firma digitale del messaggio Firma digitale del messaggio M M generato dalla entità
generato dalla entità A A
28
Confidentiality Confidentiality
Definition 1.5 Uno schema di decriptazione consiste in 3 Uno schema di decriptazione consiste in 3 set:
set: K , K , MM , , CC
1.1. Un algoritmo di generazione delle chiaviUn algoritmo di generazione delle chiavi, , il cui outputs il cui outputs è una valida criptazione della chiave K
è una valida criptazione della chiave K єє K e una valida K e una valida decriptazione K
decriptazione K-1-1єєKK
2.2. Un algoritmo di criptazioneUn algoritmo di criptazione, , che prende un elemento m che prende un elemento m єє MM e una criptazione della chiave K e una criptazione della chiave K єє K e un outputs K e un outputs un elemento c
un elemento c єє CC definito come c= definito come c=
E E
kk{m}. L’algoritmo {m}. L’algoritmo di criptazione può essere randomizzadi criptazione può essere randomizzato così che un to così che un differente c risulterà dato dallo stesso risultato m
differente c risulterà dato dallo stesso risultato m
3.3. Un funzione di decriptazioneUn funzione di decriptazione, , prende un elemento c prende un elemento c є є CC e una chiave di decriptazione K e una chiave di decriptazione K-1-1 єє K K e output un e output un elemento m
elemento m єє MM definito come m= definito come m=
D D
kk-1-1{c}. Si richiede {c}. Si richiede che cheD D
kk-1-1{Ek{m}}=m{Ek{m}}=mConfidentiality Confidentiality
Symmetric Algorithm Symmetric Algorithm
K = K K = K
Asymmetric Algorithm Asymmetric Algorithm
K K ≠ ≠ K K
-1
-1
30
Confidentiality Confidentiality
Definition 1.6
Definition 1.6 Uno schema di criptazione fornisce un Uno schema di criptazione fornisce un semantic security
semantic security se se niente niente che che può può essere essere efficientemente calcolato dato il ciphertext, può anche efficientemente calcolato dato il ciphertext, può anche
essere efficientemente calcolato senza ciphertext.
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à
Confidentiality Confidentiality
Definition 1.7
Definition 1.7 Uno schema di criptazione fornisce la Uno schema di criptazione fornisce la non-non- malleabilità
malleabilità se esso è infattibile a prendere un esistente se esso è infattibile a prendere un esistente ciphertext e lo trasforma in un correlato ciphertext senza la ciphertext e lo trasforma in un correlato ciphertext senza la
conoscenza dell’input plaintext conoscenza dell’input plaintext
NON - MALLEABILITÁ
La non-Malleabilità è più forte della semantic security
32
Data Origin Authentication and Data Data Origin Authentication and Data
Integrity Integrity
Definition 1.8
Definition 1.8 Una funzione f : X Una funzione f : X → Y è → Y è one – way one – way se è se è computazionalmente facile da calcolare y = f(x) dato x
computazionalmente facile da calcolare y = f(x) dato x єє X, X, ma è computazionalmente difficile trovare qualsiasi x con ma è computazionalmente difficile trovare qualsiasi x con
f(x) = y per quasi tutti i valori di y
f(x) = y per quasi tutti i valori di y єє 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
Definition 1.9
Definition 1.9 Un codice di autenticazioneUn codice di autenticazione (MAC) è una famiglia di (MAC) è una famiglia di funzioni parametrizzati da una chiave K tale che
funzioni parametrizzati da una chiave K tale che MACMACk(m) prende k(m) prende un messaggio m di arbitraria lunghezza e l’output un valore di un messaggio m di arbitraria lunghezza e l’output un valore di lunghezza fissata che:
lunghezza fissata che:
1.1. È computazionalmente facile da calcolare È computazionalmente facile da calcolare MACMACk(m) dato K e m.k(m) dato K e m.
2.2. Dato un qualsiasi valore del Dato un qualsiasi valore del MACMAC per un dato K, è per un dato K, è computazionalmente difficile trovare qualsiasi valore
computazionalmente difficile trovare qualsiasi valore MACMAC per per qualsiasi nuovo messaggio.
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 è
Data Origin Authentication and Data Data Origin Authentication and Data
Integrity
Integrity
34
Non - Repudiation 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.
Secret Sharing 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
36
Secret Sharing 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 є Zp nel threshold scheme (t,n) il dealer genera un polinomio di grado t-1 :
f(z)
=a
0 +a
1z +…….+a
t-1zt-1Con coefficienti casualmente scelti in Zp eccetto per
a
0 = s . Le parti sono valori f(x) con 1 ≤ x ≤ n.Indice Indice
Building a Key Establishment Protocol Building a Key Establishment Protocol
Protocol Architectures Protocol Architectures
Criptographic Propetries Criptographic Propetries
Freshness Freshness
Types of Attack on Protocols Types of Attack on Protocols
Design Principles For Cryptographic Design Principles For Cryptographic
Protocol (
Protocol ( Abadi and Needham Abadi and Needham ) )
38
Freshness 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
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 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.
Freshness Freshness
La proprietà di verifica se una chiave può essere replicata o meno può essere estesa anche agli elementi del messaggio. 2 ways :
1. K
AB= f ( N
A, N
B)
5 = f ( 2 , 3 ) 5 = f (2 , N
B) 2. F ( K
AB, N)
• Data origin Authentication
• Data Integrity
40
Freshness Freshness
Timestamps
Timestamps : : timestamps sia dentro un timestamps sia dentro un intervallo di tempo accettato
intervallo di tempo accettato . . Nonce (Random Challenges) Nonce (Random Challenges)
1. A 1. A → B : → B : N N A A
2. B → A : f( 2. B → A : f( N N A A ,…) ,…) Counters
Counters : : sincronizzazione di un contatore sincronizzazione di un contatore
Indice Indice
Building a Key Establishment Protocol Building a Key Establishment Protocol
Protocol Architectures Protocol Architectures
Criptographic Propetries Criptographic Propetries
Freshness Freshness
Types of Attack on Protocols Types of Attack on Protocols
Design Principles For Cryptographic Design Principles For Cryptographic
Protocol (
Protocol ( Abadi and Needham Abadi and Needham ) )
42
Types of Attack on Types of Attack on
Protocols Protocols
Eavesdropping
Eavesdropping : : cattura le informazioni spedite cattura le informazioni spedite nel protocollo.
nel protocollo.
Modification
Modification : : alterare le informazioni spedite alterare le informazioni spedite nel protocollo.
nel protocollo.
Replay
Replay : : ripetere la session Key. ripetere la session Key.
Preplay
Preplay : : estenzione del replay, l’avversario si estenzione del replay, l’avversario si impegna in una esecuzione del protocollo prima impegna in una esecuzione del protocollo prima
dell’esecuzione di un utente legittimato . dell’esecuzione di un utente legittimato .
Reflection
Reflection : : l’avversario spedisce messaggi del l’avversario spedisce messaggi del protocollo che ritornano all’utente che li ha
protocollo che ritornano all’utente che li ha spediti.
spediti.
Types of Attack on Types of Attack on
Protocols Protocols
Denial of service
Denial of service : :
l’avversario sostituisce ed l’avversario sostituisce ed ostacola gli utenti dal completare il protocollo.
ostacola gli utenti dal completare il protocollo.
Typing Attacks
Typing Attacks : :
l’avversario sostituisce un campo l’avversario sostituisce un campo del messaggio di un tipo con un’altro campo di un del messaggio di un tipo con un’altro campo di un
altro tipo.
altro tipo.
Cryptanalysis
Cryptanalysis : :
l’avversario guadagna qualche utile l’avversario guadagna qualche utile leva dal protocollo per aiutare la cryptanalysis.
leva dal protocollo per aiutare la cryptanalysis.
Certificate Manipulation
Certificate Manipulation : :
l’avversario sceglie o l’avversario sceglie o modifica le informazioni dei certificati per attaccare modifica le informazioni dei certificati per attaccare
uno o più esecuzioni del protocollo.
uno o più esecuzioni del protocollo.
Protocol Interaction
Protocol Interaction : :
l’avversario sceglie un nuovo l’avversario sceglie un nuovo
protocollo per interagire con un protocollo conosciuto.
44
Indice Indice
Building a Key Establishment Protocol Building a Key Establishment Protocol
Protocol Architectures Protocol Architectures
Criptographic Propetries Criptographic Propetries
Freshness Freshness
Types of Attack on Protocols Types of Attack on Protocols
Design Principles For Cryptographic Design Principles For Cryptographic
Protocol (
Protocol ( Adabi e Needham Adabi e Needham ) )
Design Principle for Cryptographic Design Principle for Cryptographic
Protocol
Protocol ( ( Abadi and Abadi and
Needham Needham ) )
1.1. Ogni Ogni messaggio messaggio deve deve dire dire cosa cosa significa: significa:
l'interpretazione del messaggio deve dipendere solo sul l'interpretazione del messaggio deve dipendere solo sul
suo contenuto suo contenuto
2.2. Processo di esecuzione del messaggio, devono essere Processo di esecuzione del messaggio, devono essere chiaramente indicati in modo che qualcuno nel chiaramente indicati in modo che qualcuno nel ricontrollare la progettazione può vedere se sono ricontrollare la progettazione può vedere se sono
accettabili o meno accettabili o meno
3.3. Se l'identità di uno degli utenti è essenziale per il Se l'identità di uno degli utenti è essenziale per il significato di un messaggio, è prudente citare il nome significato di un messaggio, è prudente citare il nome
degli utenti esplicitamente nel messaggio degli utenti esplicitamente nel messaggio
4.4. Essere chiaro sul perché la crittografia è stata fattaEssere chiaro sul perché la crittografia è stata fatta
5.5. Quando uno degli utenti firma un messaggio che è già Quando uno degli utenti firma un messaggio che è già stato cifrato, non dovrebbe essere dedotto che l’utente stato cifrato, non dovrebbe essere dedotto che l’utente
conosce il contenuto del messaggio conosce il contenuto del messaggio
46
Design Principle for Cryptographic Design Principle for Cryptographic
Protocol
Protocol ( ( Abadi and Abadi and Needham’s
Needham’s) )
6. Essere chiari su quali proprietà si sta assumendo circa le
6. Essere chiari su quali proprietà si sta assumendo circa le noncesnonces.. 7. Se una quantità è prevedibile per essere effettiva, dovrebbe 7. Se una quantità è prevedibile per essere effettiva, dovrebbe essere protetto in modo tale che un intruso non può simulare un essere protetto in modo tale che un intruso non può simulare un cambiamento e poi ripetere una risposta
cambiamento e poi ripetere una risposta
8.8. Se sono utilizzati i timestamps come garanzie di freshness, allora Se sono utilizzati i timestamps come garanzie di freshness, allora la differenza tra gli orologi locali e delle varie macchine devono la differenza tra gli orologi locali e delle varie macchine devono essere molto inferiore a quello consentito dall’età di un essere molto inferiore a quello consentito dall’età di un messaggio.
messaggio.
9.9. Una chiave potrebbe essere stato usato di recente, ad esempio Una chiave potrebbe essere stato usato di recente, ad esempio per cifrare una
per cifrare una nonce, e ancora essere vecchio e forse nonce, e ancora essere vecchio e forse compromessa.
compromessa.
10.10. Dovrebbe essere possibile dedurre che il protocollo, e quale Dovrebbe essere possibile dedurre che il protocollo, e quale esecuzione di tale protocollo, il messaggio appartiene, e per esecuzione di tale protocollo, il messaggio appartiene, e per conoscere il suo numero nel protocollo.
conoscere il suo numero nel protocollo.
11.11. Le relazioni di fiducia in un protocollo deve essere esplicito e ci Le relazioni di fiducia in un protocollo deve essere esplicito e ci dovrebbero essere buone ragioni per la necessità di tali relazioni.
dovrebbero essere buone ragioni per la necessità di tali relazioni.