Università degli Studi “Gabriele d’Annunzio”
Università degli Studi “Gabriele d’Annunzio”
Facoltà di Economia Facoltà di Economia
Corso di Laurea in Economia Informatica Specialistica Corso di Laurea in Economia Informatica Specialistica
Sicurezza e Privacy Sicurezza e Privacy
Protocolli che sfruttano la condivisione di chiavi
crittografiche
5 dicembre 2007 Marco
Bottalico
Introduzione Introduzione
La maggior parte dei protocolli per la La maggior parte dei protocolli per la
costituzione di chiavi ed entità di autenticazione, costituzione di chiavi ed entità di autenticazione, si concentrano sul caso in cui ci sono 2 user che si concentrano sul caso in cui ci sono 2 user che
vogliono comunicare o stabilire una chiave di vogliono comunicare o stabilire una chiave di
sessione: CASO DELLE 2 PARTI sessione: CASO DELLE 2 PARTI
Qui discuteremo la creazione della “chiave delle Qui discuteremo la creazione della “chiave delle 2 parti” e i protocolli di autenticazione basati su 2 parti” e i protocolli di autenticazione basati su
algoritmi simmetrici.
algoritmi simmetrici.
Classificare la creazione di Classificare la creazione di protocolli “chiave delle 2 parti”
protocolli “chiave delle 2 parti”
Chiavi crittografiche disponibili a priori Chiavi crittografiche disponibili a priori
I due soggetti condividono gia la chiave segreta I due soggetti condividono gia la chiave segreta
Ogni soggetto condivide una chiave con uno o più Ogni soggetto condivide una chiave con uno o più server di fiducia
server di fiducia
Metodo di generazione di una chiave di Metodo di generazione di una chiave di sessione: problemi
sessione: problemi
Key transport Key transport Key agreement Key agreement Hybrid
Hybrid
Tre classi di protocolli Tre classi di protocolli
Protocolli finalizzati a fornire entità di Protocolli finalizzati a fornire entità di autenticazione
autenticazione senza creazione di una chiave senza creazione di una chiave
Protocolli che mirano a fornire la creazione di Protocolli che mirano a fornire la creazione di chiavi
chiavi senza l’appoggio di un server senza l’appoggio di un server , con , con
protocolli di trasporto e di accordo sulle chiavi protocolli di trasporto e di accordo sulle chiavi
Protocolli che puntano a fornire la creazione di Protocolli che puntano a fornire la creazione di chiavi
chiavi usando un server usando un server , con protocolli di , con protocolli di
trasporto, di accordo e protocolli ibridi sulle trasporto, di accordo e protocolli ibridi sulle
chiavi
chiavi
Notazione Notazione
Denota che parte del messaggio è cifrato. Denota che parte del messaggio è cifrato. M M è il dato di input criptato è il dato di input criptato con algoritmo simmetrico che è stato parametrizzato per mezzo di una con algoritmo simmetrico che è stato parametrizzato per mezzo di una
chiave segreta
chiave segreta K K che prevede confidenzialità ed integrità che prevede confidenzialità ed integrità
Sarà ad indicare che la criptazione del messaggio Sarà ad indicare che la criptazione del messaggio M M con la chiave con la chiave K K fornisce solo la confidenzialità
fornisce solo la confidenzialità
Indicherà una trasformazione unidirezionale del messaggio Indicherà una trasformazione unidirezionale del messaggio M M con chiave con chiave K K che fornisce solo l’integrità che fornisce solo l’integrità
INTEGRITA’ :
INTEGRITA’ : protezione dei dati e delle informazioni nei confronti delle protezione dei dati e delle informazioni nei confronti delle modifiche del contenuto
modifiche del contenuto , accidentali oppure effettuate da una terza parte , accidentali oppure effettuate da una terza parte CONFIDENZIALITA’:
CONFIDENZIALITA’: protezione dei dati e delle informazioni scambiate tra un protezione dei dati e delle informazioni scambiate tra un mittente e uno o più destinatari
mittente e uno o più destinatari nei confronti di terze parti nei confronti di terze parti . Tale protezione . Tale protezione deve essere realizzata a prescindere dalla sicurezza del sistema di
deve essere realizzata a prescindere dalla sicurezza del sistema di comunicazione utilizzato
comunicazione utilizzato
M K
M K
M K
Prima classe di protocolli Prima classe di protocolli
Protocolli finalizzati a fornire entità di Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di Protocolli che mirano a fornire la creazione di chiavi senza l’appoggio di un server, con
chiavi senza l’appoggio di un server, con
protocolli di trasporto e di accordo sulle chiavi protocolli di trasporto e di accordo sulle chiavi
Protocolli che puntano a fornire la creazione di Protocolli che puntano a fornire la creazione di chiavi usando un server, con protocolli di
chiavi usando un server, con protocolli di
trasporto, di accordo e protocolli ibridi sulle trasporto, di accordo e protocolli ibridi sulle
chiavi
chiavi
Protocolli con autenticazione di Protocolli con autenticazione di
identità identità
Nel 1993 IBM fu la prima a dimostrare un’amplia classe di Nel 1993 IBM fu la prima a dimostrare un’amplia classe di protocolli di autenticazione. Il primo fu proposto da
protocolli di autenticazione. Il primo fu proposto da Bird Bird : :
A invia a B la sua “nonce” ( A invia a B la sua “nonce” ( N N A A ) )
u u e e v v sono 2 funzioni tali che sono 2 funzioni tali che K K AB AB è neces- è neces- sario per calcolarle e non viene rilevato sario per calcolarle e non viene rilevato
Se Se I I (intruder) vuole attaccare il protocollo, e le funzioni u e v sono uguali, (intruder) vuole attaccare il protocollo, e le funzioni u e v sono uguali, comincia un protocollo con B mascherandosi da A e fa la stessa cosa con comincia un protocollo con B mascherandosi da A e fa la stessa cosa con
A mascherandosi da B (sessioni parallele). In questo modo I potrà A mascherandosi da B (sessioni parallele). In questo modo I potrà
sembrare agli occhi di B di essere A.
sembrare agli occhi di B di essere A.
L’attacco ha dimostrato che le L’attacco ha dimostrato che le funzioni funzioni u e v devono essere diverse. u e v devono essere diverse.
B AB AB B A
A
N K
v B A
N K
u N
A B
N B
A
, :
, ,
: :
AB B
A
B AB
A B
B B
I AB B
A
I A
N K
u B I
N K
u N I
A
N A I
N K
u N I
B
N B I
, :
, ,
: :
, ,
: :
Bellare-Rogaway MAP1 Bellare-Rogaway MAP1 è un protocollo di è un protocollo di
autenticazione reciproco dove si fornisce una definizione autenticazione reciproco dove si fornisce una definizione
formale di combinazioni di conversazioni. (
formale di combinazioni di conversazioni. ( K K AB AB è la chiave è la chiave condivisa da entrambi a priori)
condivisa da entrambi a priori)
EVE 1 Protocol EVE 1 Protocol è sostanzialmente uguale a MAP1 solo è sostanzialmente uguale a MAP1 solo che le identità di
che le identità di A A e e B B sono scambiate nelle righe. sono scambiate nelle righe.
I I mascherato da mascherato da B comincia sia il protocollo MAP1 con B comincia sia il protocollo MAP1 con A A e, in parallelo, e, in parallelo, inizia anche EVE1 sempre con
inizia anche EVE1 sempre con A. Il questo modo riuscirà ad avere le chiavi di A . Il questo modo riuscirà ad avere le chiavi di A A . .
B B K AB A B K AB
A
N A B A
N N
A B N
A B
N B A
, :
, ,
, , :
:
Lo standard internazionale Lo standard internazionale ISO/IEC 9798 parte ISO/IEC 9798 parte 2 2 , specifica , specifica 6 protocolli 6 protocolli che usano algoritmi di che usano algoritmi di
criptazione simmetrica:
criptazione simmetrica:
4 forniscono solo entità di autorizzazione 4 forniscono solo entità di autorizzazione
2 realizzano scambio di chiavi che gia possiedono, 2 realizzano scambio di chiavi che gia possiedono,
oltre che fornire entità di autorizzazione oltre che fornire entità di autorizzazione
I due ricercatori I due ricercatori Woo e Lam Woo e Lam crearono un protocollo crearono un protocollo di autenticazione unilaterale che fa uso di un server.
di autenticazione unilaterale che fa uso di un server.
Esso è solo centro per la traduzione delle chiavi:
Esso è solo centro per la traduzione delle chiavi: B B sceglie il suo
sceglie il suo N N B B e sfida e sfida A A a criptarlo con a criptarlo con K K AS AS . Alla . Alla ricezione della codifica,
ricezione della codifica, B B chiede a chiede a S S di crittarlo con di crittarlo con
K K BS BS che lui può decrittare e controllare che lui può decrittare e controllare
Comparazione tra protocolli Comparazione tra protocolli
Protocol
Protocol Entità di Entità di
autenticazione
autenticazione Prova di Prova di sicurezza?
sicurezza? Attacchi Attacchi provati provati
Bird Bird A + B A + B No No Si Si MAP1 MAP1 A + B A + B Si Si Si Si
Unilaterale, 1 passo
Unilaterale, 1 passo B B No No No No
Unilaterale, 2 passi
Unilaterale, 2 passi B B No No No No
Bilaterale, 2 passi
Bilaterale, 2 passi A + B A + B No No No No
Bilaterale, 3 passi
Bilaterale, 3 passi A + B A + B No No No No
Woo-Lam
Woo-Lam B B No No Si Si
Seconda classe di protocolli Seconda classe di protocolli
Protocolli finalizzati a fornire entità di Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di Protocolli che mirano a fornire la creazione di chiavi
chiavi senza l’appoggio di un server senza l’appoggio di un server , con , con protocolli di trasporto e di accordo sulle protocolli di trasporto e di accordo sulle
chiavi chiavi
Protocolli che puntano a fornire la creazione di Protocolli che puntano a fornire la creazione di chiavi usando un server, con protocolli di
chiavi usando un server, con protocolli di
trasporto, di accordo e protocolli ibridi sulle trasporto, di accordo e protocolli ibridi sulle
chiavi
chiavi
Protocolli per la creazione di chiavi Protocolli per la creazione di chiavi
senza server senza server
È necessario che due utenti condividano una È necessario che due utenti condividano una
chiave segreta (
chiave segreta ( K K AB AB ). Possono inoltre ). Possono inoltre
entrambi richiedere che un utente generi entrambi richiedere che un utente generi
una nuova chiave di sessione (
una nuova chiave di sessione ( K’ K’ AB AB ) o ) o
entrambi forniscano quote per stabilirla.
entrambi forniscano quote per stabilirla.
RPC Protocol RPC Protocol dove dove A A e e B B compiono prima un compiono prima un
handshacking usando una chiave che gia condividono (
handshacking usando una chiave che gia condividono ( K K AB AB ) ) e poi
e poi B B manda ad manda ad A A una nuova chiave di sessione una nuova chiave di sessione K’ K’ AB AB . Il . Il nonce
nonce N N A A ed il nonce ed il nonce N N B B +1 +1 sono scelti da sono scelti da A A , mentre , mentre N’ N’ B B è è scelto da
scelto da B B (non casualmente). (non casualmente).
ATTACCO su B
ATTACCO su B : un intruso registra il messaggio 2 e lo : un intruso registra il messaggio 2 e lo sostituisce al 4 forzando
sostituisce al 4 forzando A A ad accettare una chiave di ad accettare una chiave di sessione che lui gia possiede. In questo modo,
sessione che lui gia possiede. In questo modo, N N A A +1 +1 diventa la chiave di sessione (che
diventa la chiave di sessione (che I I sà) per scambiarsi sà) per scambiarsi messaggi con
messaggi con B B . Questo è possibile se il nonce è . Questo è possibile se il nonce è prevedibile come un contatore (
prevedibile come un contatore ( N N A A +1 +1 ) mentre se esso è ) mentre se esso è random, l’attacco è più difficile.
random, l’attacco è più difficile.
AB AB
AB AB
B K AB
B K
B K A
A K
N K
A B
N B
A
N N
A B
N B
A
'
' ,
:
1 :
, 1 :
:
AB AB
AB AB
B K A
B
B K
B K A
A K
N N
A I
N B
A
N N
A B
N B
A
, 1 :
1 :
, 1 :
:
2PKDP Protocol di Janson-Tsudik 2PKDP Protocol di Janson-Tsudik usa 2 usa 2
algoritmi di crittografia separati: uno garantisce algoritmi di crittografia separati: uno garantisce
confidenzialità (basato sullo XOR) ed uno confidenzialità (basato sullo XOR) ed uno
autenticazione (che usa algoritmi MAC) autenticazione (che usa algoritmi MAC)
Boyd Protocol Boyd Protocol consente ad entrambi (A & B) di consente ad entrambi (A & B) di aggiungere delle parti alla chiave stabilita. I
aggiungere delle parti alla chiave stabilita. I
messaggi che si scambiano, fanno uso di numeri messaggi che si scambiano, fanno uso di numeri
casuali.
casuali.
AB
AB
K AB K A
AB AB A
AB A
AUTH MASK
B K
N AUTH
K A K
N B A
K MASK
AUTH A
B
N A B A
, ,
, ,
:
, :
, :
' '
'
Lo standard internazionale Lo standard internazionale ISO/IEC 11770-2 ISO/IEC 11770-2 specifica specifica 13 protocolli che usano algoritmi di criptazione
13 protocolli che usano algoritmi di criptazione simmetrici di cui
simmetrici di cui 6 6 sono senza l’appoggio di un server e sono senza l’appoggio di un server e altri 7 contano su un server di fiducia (trattati alla fine).
altri 7 contano su un server di fiducia (trattati alla fine).
2 2 forniscono solo una chiave di autenticazione implicita forniscono solo una chiave di autenticazione implicita
passandosi messaggi ed una funzione di derivazione per passandosi messaggi ed una funzione di derivazione per
risalire alla nuova chiave di sessione.
risalire alla nuova chiave di sessione.
T T A A è un contatore inizializzato da è un contatore inizializzato da A A
K’ K’ AB AB = f (K = f (K AB AB ,T ,T A A ) )
4 4 sono una derivazione della specifica ISO/IEC 9798-2 sono una derivazione della specifica ISO/IEC 9798-2 aggiungendo una chiave per ogni messaggio criptato.
aggiungendo una chiave per ogni messaggio criptato.
Comparazione tra protocolli Comparazione tra protocolli
Protocol
Protocol Numero Numero di passi di passi Chi possiede Chi possiede la chiave di la chiave di
controllo controllo
Freschezza Freschezza della chiave
della chiave Autentica - Autentica - zione della zione della
chiave chiave
Confi Confi denzia denzia
lità lità
At At tac tac
co co
RPC Andrew
RPC Andrew 4 4 B B No No Si Si No No Si Si
Janson-Tsudik
Janson-Tsudik 3 3 B B Si Si Si Si Si Si No No
Boyd Boyd 2 2 A/B A/B Si Si Si Si No No No No
11770-2,1
11770-2,1 1 1 A A Si Si Si Si B B No No
11770-2,2
11770-2,2 1 1 A A No No Si Si No No No No
11770-2,3
11770-2,3 1 1 A A Si Si Si Si B B No No
11770-2,4
11770-2,4 2 2 B B Si Si Si Si B B No No
11770-2,5
11770-2,5 2 2 A/B A/B Si Si Si Si A A No No
11770-2,6
11770-2,6 3 3 A/B A/B Si Si Si Si A A No No
1. 1. La chiave di conferma deve essere La chiave di conferma deve essere
ottenuta per mezzo di un responsabile ottenuta per mezzo di un responsabile
poiché, il destinatario sa chi ne è in poiché, il destinatario sa chi ne è in
possesso: se il destinatario è
possesso: se il destinatario è I I , lui sa chi , lui sa chi ha la chiave, deve solo riuscire ad averla.
ha la chiave, deve solo riuscire ad averla.
2. 2. Nessuno di questi protocolli fornisce la Nessuno di questi protocolli fornisce la conferma della chiave.
conferma della chiave.
Considerazioni
Considerazioni
Terza classe di protocolli Terza classe di protocolli
Protocolli finalizzati a fornire entità di Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di Protocolli che mirano a fornire la creazione di chiavi senza l’appoggio di un server, con
chiavi senza l’appoggio di un server, con
protocolli di trasporto e di accordo sulle chiavi protocolli di trasporto e di accordo sulle chiavi
Protocolli che puntano a fornire la creazione Protocolli che puntano a fornire la creazione di chiavi
di chiavi usando un server usando un server , con protocolli di , con protocolli di trasporto, di accordo e protocolli ibridi sulle trasporto, di accordo e protocolli ibridi sulle
chiavi
chiavi
Protocolli per la creazione di chiavi Protocolli per la creazione di chiavi
con l’ausilio di un server con l’ausilio di un server
Molti protocolli, assumono implicitamente che gli Molti protocolli, assumono implicitamente che gli
utenti non sono capaci di generare ottime chiavi utenti non sono capaci di generare ottime chiavi
di sessione e lasciano fare questo lavoro ai di sessione e lasciano fare questo lavoro ai
server.
server.
A A & & B B sono due utenti che desiderano istituire una sono due utenti che desiderano istituire una chiave di sessione
chiave di sessione S S è il server condiviso è il server condiviso
K K AS AS , , K K BS BS sono le chiavi gia condivise tra sono le chiavi gia condivise tra A A ed ed S S e tra e tra B B ed ed S S
K K AB AB è la chiave di sessione che dovrà essere istituita è la chiave di sessione che dovrà essere istituita
tra tra A A & & B B
Needham-Schroedler Protocol Needham-Schroedler Protocol , realizza buone proprietà , realizza buone proprietà di chiave nel rispetto di
di chiave nel rispetto di A A ma non in quello di ma non in quello di B B poiché, il poiché, il secondo messaggio, crittato con la chiave segreta di
secondo messaggio, crittato con la chiave segreta di A A , , include sia il nonce di
include sia il nonce di A A ma anche l’identità di ma anche l’identità di B B , assicurando , assicurando ad ad A A una chiave di sessione nuova una chiave di sessione nuova K K AB AB (prima non la (prima non la
possedeva) ed una chiave di autenticazione
possedeva) ed una chiave di autenticazione K K BS BS nuova. nuova.
B B decripta il messaggio proveniente da decripta il messaggio proveniente da A A usando usando K K BS BS e poi e poi manda ad
manda ad A A il suo nonce per essere sicuro che il messaggio il suo nonce per essere sicuro che il messaggio non è una replica.
non è una replica.
ATTACCO
ATTACCO : l’handshake può essere sabotato da un intruso : l’handshake può essere sabotato da un intruso
Per ovviare a questa situazione Per ovviare a questa situazione Demming & Sacco Demming & Sacco hanno hanno introdotto un contatore per permettere di verificare la
introdotto un contatore per permettere di verificare la freschezza della chiave mandata.
freschezza della chiave mandata.
AB AB
BS
BS AS
B K B K AB K
K K AB
AB A
A
N B A
N A B
A K
B A
A K
K B N A S
N B A S A
1 :
:
, :
, ,
, :
, , :
,
A,B,N A
K AB
A B
K AB , A N B
N B -1
Otway-Rees Protocol Otway-Rees Protocol fornice fornice
simmetriche assicurazioni di freschezza di simmetriche assicurazioni di freschezza di
chiave (sia per A che per B) per mezzo di chiave (sia per A che per B) per mezzo di
una seconda nonce generata da A.
una seconda nonce generata da A.
Il protocollo è stato successivamente Il protocollo è stato successivamente modificato sia da
modificato sia da Barrows Barrows che da che da Abadi & Abadi &
Needhman
Needhman . .
Kerberos Protocol Kerberos Protocol fu sviluppato dal MIT per fu sviluppato dal MIT per
proteggere i fornitori dei servizi di rete nell’ambito proteggere i fornitori dei servizi di rete nell’ambito
del progetto ATHENA, a partire dai protocolli di del progetto ATHENA, a partire dai protocolli di
Needham-Schroeder & Denning-Sacco.
Needham-Schroeder & Denning-Sacco.
Kerberos Versione 4
Kerberos Versione 4 la cui debolezza è che i metodi di la cui debolezza è che i metodi di criptazione utilizzati, non forniscono un’adeguata criptazione utilizzati, non forniscono un’adeguata
protezione d’integrità dei messaggi. Usa il “Plaintext Cipher protezione d’integrità dei messaggi. Usa il “Plaintext Cipher
Block Chaining encryption”.
Block Chaining encryption”.
Kerberos Versione
Kerberos Versione 5 usa CBC e fissa una checksum nel 5 usa CBC e fissa una checksum nel messaggio prima di criptarlo per fornire protezione messaggio prima di criptarlo per fornire protezione
d’integrità.
d’integrità.
Le 2 principali versioni sono:
Le 2 principali versioni sono:
Il Il protocollo Kerberos protocollo Kerberos coinvolge : coinvolge :
Un utente che desidera usufruire di certi servizi ( Un utente che desidera usufruire di certi servizi ( A A ) )
Un server che fornisce questi servizi ( Un server che fornisce questi servizi ( B B ) )
Un server di autenticazione ( Un server di autenticazione ( S S ) che viene contattato dall’utente prima di ) che viene contattato dall’utente prima di accedere al server
accedere al server B B . . L’utente
L’utente A A chiede al server chiede al server S S di poter contattare il server di poter contattare il server B B in sicurezza. in sicurezza.
S S gli rilascia tra le altre cose un “ticket” che non può aprire. gli rilascia tra le altre cose un “ticket” che non può aprire.
A A lo invia a lo invia a B B . .
le chiavi di sessione generate da le chiavi di sessione generate da S S per comunicare con per comunicare con B B l’identità dell’utente l’identità dell’utente A A
un timer dopo il quale le variabili di sessione non saranno più valide. un timer dopo il quale le variabili di sessione non saranno più valide.
L’autenticatore contiene: l’identità dell’utente L’autenticatore contiene: l’identità dell’utente
un marcatore orario che serve al server per capire severamente l’utente un marcatore orario che serve al server per capire severamente l’utente
è in possesso della chiave di sessione fresca, contenuta nel ticket è in possesso della chiave di sessione fresca, contenuta nel ticket
A
B S
A,B,N A
{K AB ,B,L,N A } K
AS, {K AB ,A,L} K
BS(ticket)
{A,T A } K
AB, {K AB ,A,L} K
BS(autenticatore) (ticket)
Esso contiene:
Esso contiene:
Lo standard internazionale Lo standard internazionale ISO/IEC 11770-2 ISO/IEC 11770-2 specifica
specifica 7 7 protocolli basati su server. protocolli basati su server.
4 4 si basano sul fatto che il server sceglie la chiave si basano sul fatto che il server sceglie la chiave di sessione ed è considerato solo un
di sessione ed è considerato solo un centro per centro per la distribuzione delle chiavi
la distribuzione delle chiavi . .
3 3 fanno in modo che la chiave di sessione è scelta fanno in modo che la chiave di sessione è scelta da da A A o da o da B B ed il server è considerato un ed il server è considerato un centro centro
per la traduzione delle chiavi
per la traduzione delle chiavi facendo si che esse facendo si che esse siano disponibili per tutti i richiedenti.
siano disponibili per tutti i richiedenti.
Wide-Mouthed-Frog Protocol Wide-Mouthed-Frog Protocol dovuto a Burrows, non si dovuto a Burrows, non si basa sulla solita convinzione che gli utenti si fidino solo di basa sulla solita convinzione che gli utenti si fidino solo di
un server per scegliere la chiave di sessione ma, al un server per scegliere la chiave di sessione ma, al
contrario, è inteso per un ambiente in cui gli utenti si fidino contrario, è inteso per un ambiente in cui gli utenti si fidino
gli uni degli altri gli uni degli altri
Yahalom Protocol Yahalom Protocol è usato come protocollo di riferimento è usato come protocollo di riferimento per fare ricerca sugli attacchi e testare nuove tecniche.
per fare ricerca sugli attacchi e testare nuove tecniche.
Questo perché, avendo una struttura particolare, è molto Questo perché, avendo una struttura particolare, è molto
soggetto ad attacchi subdoli.
soggetto ad attacchi subdoli.
Janson-Tsudik 3PKDP Protocol Janson-Tsudik 3PKDP Protocol usa 2 esecuzioni del usa 2 esecuzioni del protocollo di base 2PKDP: la prima tra
protocollo di base 2PKDP: la prima tra A A ed ed S S e la e la seconda tra
seconda tra B B ed ed S S . Il protocollo raggiunge sia per . Il protocollo raggiunge sia per A A che che per per B B , gli obiettivi di costituzione della chiave e quelli , gli obiettivi di costituzione della chiave e quelli
autenticazione dell’entità.
autenticazione dell’entità.
Bellare-Rogaway 3PKD Protocol Bellare-Rogaway 3PKD Protocol usa due usa due trasformazioni crittografiche diverse:
trasformazioni crittografiche diverse:
● ● un algoritmo di criptazione simmetrica un algoritmo di criptazione simmetrica
● ● un MAC algorithm un MAC algorithm
La funzione di criptazione è derivata da una funzione chiave pseudo- La funzione di criptazione è derivata da una funzione chiave pseudo-
random
random f f
K K. La criptazione di un messaggio . La criptazione di un messaggio m m usando usando f f sotto una chiave sotto una chiave condivisa
condivisa K K , è , è dove
dove r r è un numero random. è un numero random.
L’algoritmo fornisce sia ad
L’algoritmo fornisce sia ad A A che a che a B B l’autenticazione della l’autenticazione della chiave e la sua freschezza, ma non dà entità di
chiave e la sua freschezza, ma non dà entità di autenticazione è conferma della chiave.
autenticazione è conferma della chiave.
A B K
AB ABK B B
A AB
A A
AB B
B AB
A A
B A
A A
A N N B A
N B
N N K
MASK AUTH
A B
K MASK
AUTH K
MASK AUTH
B S
N N B A S B
N N A B A
, , :
, ,
, ,
, :
, ,
, :
, , , :
, , :
' '
' '
' '
r , m f K r
Woo-Lam Protocol Woo-Lam Protocol realizza una reciproca entità di realizza una reciproca entità di autenticazione e la costituzione delle chiavi:
autenticazione e la costituzione delle chiavi: A A e e B B si si
scambiano nonce prima di contattare il server. Questo permette scambiano nonce prima di contattare il server. Questo permette
ad entrambi di includerli nel messaggio criptato mandato ad ad entrambi di includerli nel messaggio criptato mandato ad S S . . ATTACCO
ATTACCO : : B B forza forza A A ad accettare due copie della stessa chiave ad accettare due copie della stessa chiave di sessione come una nuova.
di sessione come una nuova.
Gong Protocol Gong Protocol è basato sull’accordo delle chiavi. La chiave di è basato sull’accordo delle chiavi. La chiave di sessione è derivata dalle informazioni fornite da
sessione è derivata dalle informazioni fornite da A A e da e da B B e non e non dal server
dal server S S . La parte ciptata del messaggio, include marcatori . La parte ciptata del messaggio, include marcatori orari o delle nonce per garantire la freschezza della chiave.
orari o delle nonce per garantire la freschezza della chiave.
K K 1 1 e e K K 2 2 sono numeri random che servono per realizzare le chiavi sono numeri random che servono per realizzare le chiavi di sessione da parte di
di sessione da parte di A A e e B B . Essi la elaborano a partire da . Essi la elaborano a partire da f(K f(K 1 1 ,K ,K 2 2 ) ) dove dove f f è una funzione unidirezionale. è una funzione unidirezionale.
ABAB AS
BS AS
BS AS
AS
B K
B K K A
AB B
A
AB K B
K A AB B
A
B K K A
B A
B K A B
A
N B A
N N K
N N B A B
K N N A K
N N B B S
N N B A N
N B A S B
N N B A B A
N A B
N B A
:
, ,
, , , :
, , , , ,
, , :
, , , , ,
, , :
, , , : : :
AS BS BS
AS
S K B K S K
A K
T A K
B A S A
S
T A K
B S B S
B
T B K
A B S B
S
T B K
A S A B
A S
A
, , ,
, , :
, , ,
, , :
, , ,
, , :
, , ,
, , ,
, :
2 2 1
1
Boyd Protocol Boyd Protocol fornisce autenticazione, freschezza e conferma fornisce autenticazione, freschezza e conferma di chiave in soli 4 messaggi. Sia gli utenti che il server,
di chiave in soli 4 messaggi. Sia gli utenti che il server, contribuiscono al valore della chiave.
contribuiscono al valore della chiave.
● ● N N A A & & N N B B sono generati da sono generati da A A e e B B come input per la come input per la funzione MAC che determina le chiavi di sessione.
funzione MAC che determina le chiavi di sessione.
● ● S S genera un genera un K K S S che serve per la chiave MAC che serve per la chiave MAC
● ● A A & & B B calcolano la chiave di sessione come calcolano la chiave di sessione come K K AB AB =MAC =MAC K K
SS(N (N A A ,N ,N B B ) )
Gong Hybrid Protocol Gong Hybrid Protocol nel quale si hanno 2 funzioni nel quale si hanno 2 funzioni unidirezionali :
unidirezionali :
● ● g g è usata per l’autenticazione è usata per l’autenticazione
● ● f f è usata per la chiave di derivazione (divisa in 3 componenti) è usata per la chiave di derivazione (divisa in 3 componenti)
ATTACCO
ATTACCO : Se : Se A A ha cominciato il protocollo con B e registra la ha cominciato il protocollo con B e registra la risposta dal server a
risposta dal server a B B , entra in possesso del valore , entra in possesso del valore
AB AS ABBS AS