Università degli Studi “Gabriele d’Annunzio”
Facoltà di Economia
Corso di Laurea in Economia Informatica Specialistica
Sicurezza e Privacy
Protocolli che sfruttano la
condivisione di chiavi
crittografiche
5 dicembre 2007
Marco Bottalico
Introduzione


La maggior parte dei protocolli per la
costituzione di chiavi ed entità di autenticazione,
si concentrano sul caso in cui ci sono 2 user che
vogliono comunicare o stabilire una chiave di
sessione: CASO DELLE 2 PARTI
Qui discuteremo la creazione della “chiave delle
2 parti” e i protocolli di autenticazione basati su
algoritmi simmetrici.
Classificare la creazione di
protocolli “chiave delle 2 parti”

Chiavi crittografiche disponibili a priori
I due soggetti condividono gia la chiave segreta
Ogni soggetto condivide una chiave con uno o più
server di fiducia

Metodo di generazione di una chiave di
sessione: problemi
Key transport
Key agreement
Hybrid
Tre classi di protocolli



Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di
chiavi senza l’appoggio di un server, con
protocolli di trasporto e di accordo sulle chiavi
Protocolli che puntano a fornire la creazione di
chiavi usando un server, con protocolli di
trasporto, di accordo e protocolli ibridi sulle
chiavi
Notazione
M K Denota che parte del messaggio è cifrato. M è il dato di input criptato
con algoritmo simmetrico che è stato parametrizzato per mezzo di una
chiave segreta K che prevede confidenzialità ed integrità
M KSarà ad indicare che la criptazione del messaggio M con la chiave K
fornisce solo la confidenzialità
M K Indicherà una trasformazione unidirezionale del messaggio M con
chiave K che fornisce solo l’integrità
 
INTEGRITA’ : protezione dei dati e delle informazioni nei confronti delle
modifiche del contenuto, accidentali oppure effettuate da una terza parte
CONFIDENZIALITA’: protezione dei dati e delle informazioni scambiate tra un
mittente e uno o più destinatari nei confronti di terze parti. Tale
protezione deve essere realizzata a prescindere dalla sicurezza del sistema
di comunicazione utilizzato
Prima classe di protocolli



Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di
chiavi senza l’appoggio di un server, con
protocolli di trasporto e di accordo sulle chiavi
Protocolli che puntano a fornire la creazione di
chiavi usando un server, con protocolli di
trasporto, di accordo e protocolli ibridi sulle
chiavi
Protocolli con autenticazione di
identità

Nel 1993 IBM fu la prima a dimostrare un’amplia classe di
protocolli di autenticazione. Il primo fu proposto da Bird:
A invia a B la sua “nonce” (NA)
u e v sono 2 funzioni tali che KAB è necessario per calcolarle e non viene rilevato
A  B : NA
B  A : N B , u K AB , N A 
A  B : vK AB , N B 
Se I (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
A mascherandosi da B (sessioni parallele). In questo modo I potrà
sembrare agli occhi di B di essere A.
I A  B : NI
L’attacco ha dimostrato che le funzioni
B  I A : N B , u K AB , N I 
u e v devono essere diverse.
IB  A : NB
A  I B : N A , u K AB , N B 
I A  B : u K AB , N B 

Bellare-Rogaway MAP1 è un protocollo di
autenticazione reciproco dove si fornisce una definizione
formale di combinazioni di conversazioni. (KAB è la chiave
condivisa da entrambi a priori)
A  B : NA
B  A : N B , B, A, N A , N B K AB
A  B : A, N B K AB

EVE 1 Protocol è sostanzialmente uguale a MAP1 solo
che le identità di A e B sono scambiate nelle righe.
I mascherato da B comincia sia il protocollo MAP1 con A e, in parallelo,
inizia anche EVE1 sempre con A. Il questo modo riuscirà ad avere le chiavi di
A.
Lo standard internazionale ISO/IEC 9798 parte
2, specifica 6 protocolli che usano algoritmi di
criptazione simmetrica:
4 forniscono solo entità di autorizzazione
2 realizzano scambio di chiavi che gia possiedono,
oltre che fornire entità di autorizzazione
 I due ricercatori Woo e Lam crearono un
protocollo di autenticazione unilaterale che fa uso
di un server. Esso è solo centro per la traduzione
delle chiavi: B sceglie il suo NB e sfida A a criptarlo
con KAS. Alla ricezione della codifica, B chiede a S di
crittarlo con KBS che lui può decrittare e controllare

Comparazione tra protocolli
Protocol
Entità di
autenticazione
Prova di
sicurezza?
Attacchi
provati
Bird
MAP1
A+B
A+B
B
B
A+B
A+B
B
No
Si
No
No
No
No
No
Si
Si
No
No
No
No
Si
Unilaterale, 1 passo
Unilaterale, 2 passi
Bilaterale, 2 passi
Bilaterale, 3 passi
Woo-Lam
Seconda classe di protocolli



Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di
chiavi senza l’appoggio di un server, con
protocolli di trasporto e di accordo sulle
chiavi
Protocolli che puntano a fornire la creazione di
chiavi usando un server, con protocolli di
trasporto, di accordo e protocolli ibridi sulle
chiavi
Protocolli per la creazione di chiavi
senza server
È necessario che due utenti condividano una
chiave segreta (K ). Possono inoltre
entrambi richiedere che un utente generi
una nuova chiave di sessione (K’ ) o
entrambi forniscano quote per stabilirla.
AB
AB
A  B : N A K AB
B  A : N A  1, N B K AB
A  B : N B  1K AB


A  B : N A K AB
B  A : N A  1, N B K AB
A  B : N B  1K AB
B  A : K ' AB , N ' B K AB
I B  A : N A  1, N B K AB
 RPC Protocol dove A e B compiono prima un
handshacking usando una chiave che gia condividono (KAB)
e poi B manda ad A una nuova chiave di sessione K’AB . Il
nonce NA ed il nonce NB+1 sono scelti da A, mentre N’B è
scelto da B (non casualmente).
ATTACCO su B: un intruso registra il messaggio 2 e lo
sostituisce al 4 forzando A ad accettare una chiave di
sessione che lui gia possiede. In questo modo, NA+1
diventa la chiave di sessione (che I sà) per scambiarsi
messaggi con B. Questo è possibile se il nonce è
prevedibile come un contatore (NA+1 ) mentre se esso è
random, l’attacco è più difficile.
A  B : A, N A
B  A : AUTH , MASK  K ' AB


A  B : N A , K ' AB , A K AB


AUTH  N A , K ' AB , B K AB
MASK  AUTH


K AB
2PKDP Protocol di Janson-Tsudik usa 2
algoritmi di crittografia separati: uno garantisce
confidenzialità (basato sullo XOR) ed uno
autenticazione (che usa algoritmi MAC)
Boyd Protocol consente ad entrambi (A & B) di
aggiungere delle parti alla chiave stabilita. I
messaggi che si scambiano, fanno uso di numeri
casuali.
Lo standard internazionale ISO/IEC 11770-2 specifica
13 protocolli che usano algoritmi di criptazione
simmetrici di cui 6 sono senza l’appoggio di un server e
altri 7 contano su un server di fiducia (trattati alla fine).
2 forniscono solo una chiave di autenticazione implicita
passandosi messaggi ed una funzione di derivazione per
risalire alla nuova chiave di sessione.
TA è un contatore inizializzato da A

K’AB= f (KAB,TA)
4 sono una derivazione della specifica ISO/IEC 9798-2
aggiungendo una chiave per ogni messaggio criptato.
Comparazione tra protocolli
Protocol
Numero
di passi
Chi possiede
la chiave di
controllo
RPC Andrew
4
3
2
1
1
1
2
2
3
B
B
A/B
A
A
A
B
A/B
A/B
Janson-Tsudik
Boyd
11770-2,1
11770-2,2
11770-2,3
11770-2,4
11770-2,5
11770-2,6
Freschezza Autentica della chiave zione della
chiave
No
Si
Si
Si
No
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
Si
Confi
denzia
lità
At
tac
co
No
Si
No
B
No
B
B
A
A
Si
No
No
No
No
No
No
No
No
Considerazioni
1.
2.
La chiave di conferma deve essere
ottenuta per mezzo di un responsabile
poiché, il destinatario sa chi ne è in
possesso: se il destinatario è I, lui sa chi
ha la chiave, deve solo riuscire ad averla.
Nessuno di questi protocolli fornisce la
conferma della chiave.
Terza classe di protocolli



Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di
chiavi senza l’appoggio di un server, con
protocolli di trasporto e di accordo sulle chiavi
Protocolli che puntano a fornire la creazione
di chiavi usando un server, con protocolli di
trasporto, di accordo e protocolli ibridi sulle
chiavi
Protocolli per la creazione di chiavi
con l’ausilio di un server
Molti protocolli, assumono implicitamente che gli
utenti non sono capaci di generare ottime chiavi
di sessione e lasciano fare questo lavoro ai
server.
A & B sono due utenti che desiderano istituire una
chiave di sessione
S è il server condiviso
K ,K sono le chiavi gia condivise tra A ed S e tra B
ed S
KAB è la chiave di sessione che dovrà essere istituita
tra A & B
AS
BS
A  S : A, B, N A

S  A : N A , B, K AB, K AB , AK BS
A  B : K AB , AK BS
B  A : N B K AB
A  B : N B  1K AB

A,B,NA
K AS
KAB
A
KAB, A
NB
NB-1
B
Needham-Schroedler Protocol, realizza buone proprietà
di chiave nel rispetto di A ma non in quello di B poiché, il
secondo messaggio, crittato con la chiave segreta di A,
include sia il nonce di A ma anche l’identità di B, assicurando
ad A una chiave di sessione nuova KAB (prima non la
possedeva) ed una chiave di autenticazione KBS nuova.
B decripta il messaggio proveniente da A usando KBS e poi
manda ad A il suo nonce per essere sicuro che il messaggio
non è una replica.
ATTACCO: l’handshake può essere sabotato da un intruso
 Per ovviare a questa situazione Demming & Sacco hanno
introdotto un contatore per permettere di verificare la
freschezza della chiave mandata.



Otway-Rees Protocol fornice
simmetriche assicurazioni di freschezza di
chiave (sia per A che per B) per mezzo di
una seconda nonce generata da A.
Il protocollo è stato successivamente
modificato sia da Barrows che da Abadi &
Needhman.

Kerberos Protocol fu sviluppato dal MIT per
proteggere i fornitori dei servizi di rete nell’ambito
del progetto ATHENA, a partire dai protocolli di
Needham-Schroeder & Denning-Sacco.
Le 2 principali versioni sono:
Kerberos Versione 4 la cui debolezza è che i metodi di
criptazione utilizzati, non forniscono un’adeguata protezione
d’integrità dei messaggi. Usa il “Plaintext Cipher Block
Chaining encryption”.
Kerberos Versione 5 usa CBC e fissa una checksum nel
messaggio prima di criptarlo per fornire protezione
d’integrità.
A,B,NA
{KAB,B,L,NA}KAS, {KAB,A,L}KBS
S
(ticket)
A
{A,TA}KAB ,
(autenticatore)
Il protocollo Kerberos coinvolge :



{KAB,A,L}KBS
(ticket)
B
Un utente che desidera usufruire di certi servizi (A )
Un server che fornisce questi servizi (B )
Un server di autenticazione (S ) che viene contattato dall’utente prima di
accedere al server B.
L’utente A chiede al server S di poter contattare il server B in sicurezza.
S gli rilascia tra le altre cose un “ticket” che non può aprire.
A lo invia a B .
Esso contiene:
le chiavi di sessione generate da S per comunicare con B
l’identità dell’utente A
un timer dopo il quale le variabili di sessione non saranno più valide.
L’autenticatore contiene: l’identità dell’utente
un marcatore orario che serve al server per capire severamente l’utente
è in possesso della chiave di sessione fresca, contenuta nel ticket
Lo standard internazionale ISO/IEC 11770-2
specifica 7 protocolli basati su server.
4 si basano sul fatto che il server sceglie la chiave
di sessione ed è considerato solo un centro per
la distribuzione delle chiavi.
3 fanno in modo che la chiave di sessione è scelta
da A o da B ed il server è considerato un centro
per la traduzione delle chiavi facendo si che esse
siano disponibili per tutti i richiedenti.




Wide-Mouthed-Frog Protocol dovuto a Burrows, non si
basa sulla solita convinzione che gli utenti si fidino solo di
un server per scegliere la chiave di sessione ma, al
contrario, è inteso per un ambiente in cui gli utenti si
fidino gli uni degli altri 
Yahalom Protocol è usato come protocollo di
riferimento per fare ricerca sugli attacchi e testare nuove
tecniche. Questo perché, avendo una struttura particolare,
è molto soggetto ad attacchi subdoli.
Janson-Tsudik 3PKDP Protocol usa 2 esecuzioni del
protocollo di base 2PKDP: la prima tra A ed S e la
seconda tra B ed S . Il protocollo raggiunge sia per A che
per B , gli obiettivi di costituzione della chiave e quelli
autenticazione dell’entità.
A  B : A, N A , N A'
B  S : A, B, N A , N B
S  B : AUTH A , MASK A  K AB , AUTH B , MASK B  K AB


B  A : AUTH A , MASK A  K AB , N A' , N B' , B K AB , N B'


A  B : N A' , N B' , A K AB

Bellare-Rogaway 3PKD Protocol usa due
trasformazioni crittografiche diverse:
● un algoritmo di criptazione simmetrica
● un MAC algorithm
La funzione di criptazione è derivata da una funzione chiave pseudorandom fK . La criptazione di un messaggio m usando f sotto una chiave
condivisa K , è
r, m  f K r 
dove r è un numero random.
L’algoritmo fornisce sia ad A che a B l’autenticazione della
chiave e la sua freschezza, ma non dà entità di
autenticazione è conferma della chiave.
A  B : NA
AB 
: BA, B, A, S , A, K1 , B, TA K AS
 AS: N
A  B : A, B, N A , N B K AS
S  B : S , B, A, K1 , B, TS K BS
B  S : A, B, N A , N B K AS , A, B, N A , N B K BS
BS 
BA,,SN,B ,BK,ABKK2 ,, AA,,TNBA ,NKBBS, K AB K
 BS: :B
,N
AS
 A : B, N A , N B , K AB K , N A , N B K
SB
A : S , A, B, K 2 , A, TS K AS
A  B : N B K AB
AS
BS
AB
Woo-Lam Protocol realizza una reciproca entità di
autenticazione e la costituzione delle chiavi: A e B si scambiano
nonce prima di contattare il server. Questo permette ad
entrambi di includerli nel messaggio criptato mandato ad S .
ATTACCO: B forza A ad accettare due copie della stessa chiave di
sessione come una nuova.
 Gong Protocol è basato sull’accordo delle chiavi. La chiave di
sessione è derivata dalle informazioni fornite da A e da B e non
dal server S . La parte ciptata del messaggio, include marcatori
orari o delle nonce per garantire la freschezza della chiave.
K1 e K2 sono numeri random che servono per realizzare le chiavi
di sessione da parte di A e B . Essi la elaborano a partire da
f(K1 ,K2) dove f è una funzione unidirezionale.

AA
BS :: AA,,BB,,NNAA
BS 
, B, B
, N, K
KBAS , A, B, K S K BS , N A
 SB::AA
A ,SN
SB
f , N
S ,, B
BA::NA
KS ,N B ,, AN, KBS  
, NK AB , H A , H B , g K AB , H A , H B , K BS 
B  A : NS , H B
A  B : N B K AB
A  B: HA

A K AB
B
Output di
f (NS,NA,B,KBS) =g (K’AB,H’A,H’B,KBS)
Boyd Protocol fornisce autenticazione, freschezza e conferma
di chiave in soli 4 messaggi. Sia gli utenti che il server,
contribuiscono al valore della chiave.
● NA & NB sono generati da A e B come input per la
funzione MAC che determina le chiavi di sessione.
● S genera un KS che serve per la chiave MAC
● A & B calcolano la chiave di sessione come
KAB=MACK (NA,NB)
Gong Hybrid Protocol nel quale si hanno 2 funzioni
unidirezionali :
● g è usata per l’autenticazione
● f è usata per la chiave di derivazione (divisa in 3 componenti)
ATTACCO: Se A ha cominciato il protocollo con B e registra la
risposta dal server a B, entra in possesso del valore
e completa l’attacco forzano B ad accettare una vecchia chiave.
S

S K AS
Terza classe di protocolli



Protocolli finalizzati a fornire entità di
autenticazione senza creazione di una chiave
Protocolli che mirano a fornire la creazione di
chiavi senza l’appoggio di un server, con
protocolli di trasporto e di accordo sulle chiavi
Protocolli che puntano a fornire la creazione
di chiavi usando più di un server, con
protocolli di trasporto, di accordo e protocolli
ibridi sulle chiavi.
Protocolli per la creazione di chiavi
con l’ausilio di più server
Ci sono essenzialmente due benefici
nell’utilizzo di più server per
l’autenticazione di utenti:
1. Se uno o più server non sono disponibili,
può comunque essere possibile per
l’utente stabilire una chiave di sessione.
2. Se uno o più server sono inaffidabili, gli
utenti possono comunque istituire una
buona chiave di sessione con gli altri
rimasti.
A
X=(x1,x2,x3,x4,x5)

B
Y=(y1,y2,y3,y4,y5)
Gong propose molti protocolli basati su multi server
ma tutti con le stesse caratteristiche:
A & B scelgono come comporre le loro chiavi (K ) & (K ) e le
A,i
B,i
condividono con i loro rispettivi server.
Gli n server (S1,S2,…,Sn) sono un centro di trasferimento chiavi per
consentire che esse siano disponibili tra i vari utenti.
Il concetto fondamentale è che la chiave può essere recuperata se
qualche server risulta non disponibile.
Questo è possibile perché A & B scelgono x e y rispettivamente
private, le dividono in quote e le distribuiscono ai vari server.
Alla ricezione da parte di tutti i server, A è capace di ritrovare la Y
segreta di B e viceversa. Per prevenire che un server maligno venga
in possesso delle chiavi, A & B realizzano una checksum incrociata
per tutte le condivisioni e la comparano con quella ricevuta dal
server incriminato. Se il risultato è uguale, allora danno al server un
credito e alla fine trattiene soli i server con i più alti crediti. In
sostituzione si possono usare anche le nonce.
Il numero di messaggi mandati in totale è 2n+3.
Richiesta chiavi

Chen-Gollmann-Mitchell Protocol:
● La scelta delle chiavi viene effettuata dai server (in Gong erano gli
utenti a scegliere come comporle)
● I server scelgono anche un valore segreto indipendente (in Gong lo
condividevano.
● Gli utenti impiegano una checksum incrociata per avere garanzie
sull’operato dei server.
● Si usa un metodo di crediti per la valutazione dei server onesti.
Il numero di messaggi mandati in totale è 2n+4.
Protocollo a cascata: la richiesta non viene trasferita dal server 1 al
prossimo tramite l’utente ma direttamente tramite server (tipo gNutella).
Anche le risposte seguono questo percorso.
Alla fine, l’ultimo server manda le risposte totali degli altri direttamente
all’utente iniziale.
Il numero di messaggi mandati in totale è n+5.

SVANTAGGIO: basta che un solo server non collabori per far fallire tutto il protocollo.
Scarica

CAP.3 Marco Bottalico1 - Dipartimento di Matematica e Informatica