SECURE
PROGRAMMING
Prof. Stefano Bistarelli
SEMINARIO
“Authentication and key Trasport Using Public
Key Cryptography”
Di
Roberta Tittaferrante
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
Beller-Yacobi MRS+DH Protocol
TMN Protocol
Conclusion
Introduction
Utilizzo chiave pubblica
Vantaggi: 1) per rendere sicure applicazioni commerciali.
2) protocolli per la gestione delle chiavi.
Svantaggi: 1) alto costo computazionale.
2) gestione di chiavi pubbliche.
Soluzione certificati e liste certificati recovati.
Principles for public key protocols
Anderson and Needham hanno proposto una serie di principi sui protocolli basati su chiave pubblica.
1) Se è apposta una firma ai dati, allora si presuppone che il firmatario ha conoscenza dei dati.
2) Evitare di utilizzare la stessa chiave per scopi diversi (firma e decriptazione).
3) Prestare attenzione al momento della firma e della decodifica.
4) Fare un account per tutti i bit.
5) Non inviare dati segreti se non alle Authority.
6) Non accettare messaggi in particolari forme.
7) Esplicitare i parametri crittrografati.
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
Beller-Yacobi MRS+DH Protocol
TMN Protocol
Conclusion
Entity Authentication protocols:
Protocols in ISO/IEC 9798-3
ISO/IEC 9798-3 autenticazione unilaterale (un passo).
A B: TA, B, SigA( TA, B)
ISO/IEC 9798-3 autenticazione unilaterale (due passi).
B A: NB
A B: NA, NB B, SigA(NA, NB,, B)
ISO/IEC 9798-3 mutua autenticazione (due passi).
A B: TA, B, SigA(TA, B) B A: TB, A, SigB(TB, A)
ISO/IEC 9798-3 mutua autenticazione (tre passi).
B A: NB
A B: NA, NB B, SigA(NA, NB, B)
CANADIAN ATTACK
B A: N ’, N , A, Sig (N ’N ,A)
timestamp
Unione del primo protocollo
diversi dalle Nb usate nei primi 2 passi
“CANADIAN ATTACK”
1) C
BA: N
C2) A C
B: N
A,N
C, B, Sig
A(N
A, N
C, B) 1’) C
AB: N
A2’) B C
A: N
B, N
A, Sig
B(N
B, N
A, A) 3) C
BA: N
B, N
A, Sig
B(N
B, N
A, A)
La modifica al protocollo consiste nell’autenticazione parallela dei messaggi 1 e 1‘.
A B: N
AB A: N
BA B: N
A, N
BB, Sig
A(N
A, N
B,B) B A: N
B, N
A, A, Sig
B(N
B,N
A,
,A)
L’attacco l'avversario C si finge per A e B con B e A.
La prima risposta da A è usato da C per completare la
prima esecuzione con B.
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
Beller-Yacobi MRS+DH Protocol
TMN Protocol
Conclusion
Entity Authentication protocols:
Protocols SPLICE/AS
Ideato nel ‘90 da Yamaguchi, per fornire mutua autenticazione tra un client e un server attraverso chiavi pubbliche certificate.
A B: A, B, T
A, L, E
B(N
A), Sig
A(A, T
A, L, E
B, (N
A))
B A : B, A, E
A, (B, N
A+1)
Tempo di vita del messaggioQuando A riceve il messaggio controlla la N al fine di autenticare
B
Attack of Clarck-Jacobe on SPLICE/AS protocol
Un attaccante C può modificare la chiave pubblica del client o del server.
1) A C
B:B, T
A, L, E
B(N
A), Sig
A(A, T
A, L, E
B, (N
A)) 1’) C B: C, B, T
A, L, E
B(N
A), Sig
C(C, T
A, L, E
B, (N
A))
2’) B C: B, C, E
C, (B, N
A+1) 2) C
BA: B, A, E
A, (B, N
A+1)
L’attaccante C è in grado di intercettare il messaggio di A e sostituire la firma di A la propria firma.
Nessuna delle due parti è certa dell’altra identità e, le
conversazioni non possono essere garantite.
Variante SPLICE/AS protocol of Clarck-Jacobe.
A B: A,B,T
A,L,E
B(A, N
A),Sig
A(A,T
A,L,E
B(A,N
A)) B A : B, A, E
A(B, N
A+1)
Fornire mutua entità d’ autenticazione.
Differenza dal protocollo SPLICE/AS (base) consiste che, l'identità di A è incluso nel primo
messaggio in un campo cifrato ke non può essere modificata da C.
Protocollo corretto solo se l'algoritmo di crittografia a
chiave pubblica utilizzata non è non malleabile.
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
Beller-Yacobi MRS+DH Protocol
TMN Protocol
Conclusion
Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 1
Protocolli dove si sceglie una chiave di sessione.
A B: E B (A, K AB ,T A )
Identità di A, il Ta (o in alternativa il contatore) e la chiave di sessione (scelta da A e B), sono inviati e cifrati con la chiave pubblica di B.
La crittografia a chiave pubblica deve utilizzare parametri non malleabili, altrimenti un attaccante può modificare il valore
dei campi "A" e "TA”.
Chiave si sessione Identità di A
timestamp
Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 2
A B: B, T
A, E
B(A, K
AB),Sig
A(B, T
A,E
B(A, K
AB))
Estende il meccanismo 1 con l'aggiunta di una firma del messaggio di A.
Viola il primo principio di Anderson Needham: la firma non da garanzia che il firmatario conosce il testo del messaggio cifrato.
Un attaccante C potrebbe rimuovere la firma di A e sostituirla con la propria.
Algoritmi di cifratura che consentono ad un
ATTACCO Anderson e Needham
Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 3
1) A B: E
B(B, K
ABT
A, Sig
A(B, K
AB,T
A)) 2) A B: E
B(K
ABT
A, Sig
A(K
AB, T
A))
Un attaccante C può sostituirsi nel protocollo gestito da A come iniziatore.
Intercetta il messaggio 1 cifrato.
C ottiene la chiave per condividere i messaggi con A.
Abadi e Needham suggeriscono di inserire l'identità di
entrambi (A e B) nella firma del messaggio 1 per impedire questo attacco.
ATTACCO Abadi e Needham
Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 4
A B : N
AB A : A, N
A, N
B, E
A(B, K
AB), Sig
B(A, N
AN
B, E
A(B, K
AB))
Nonce N
Aper conseguire una chiave freschezza per l’autenticazione di B.
Meccanismo 5 A B : N
AB A : N
BN
AA, E
A(B, K
BA), Sig
B( N
BN
AA,E
A(B, K
BA)) A B : N
AN
BB, E
B(A, K
AB), Sig
A(N
AN
BB, E
B(A, K
AB))
Due chiavi di sessione K
ABK
BAscelti da A e B.
Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 6
La prima differenza consiste nell’ utilizzo della crittografia e non solo le firme.
L'algoritmo di cifratura richiede non malleabilità, altrimenti i campi utilizzati per l'autenticazione possono essere alterati dall’ attaccante.
Lo standard stabilisce che KAB KBA sono combinati per formare una singola chiave di sessione.
A B: E
B(A, K
AB, N
A)
B A: E
A(B, K
BA, N
A, N
B) A B: N
BATTACCO Helsinky
Attacco Helsinky
A pensa di condivide la chiave con C, mentre B pensa di condividerla con A.
L‘ obiettivo implicito della chiave di autenticazione non è violato, perché C non conosce KBA e, non può calcolarlo.
Mitchell e Yeun propongono di aggiungengere l'identità di messaggio 2. (soluzione adottata nello standard finale ISO / IEC 11770)
A C: E
C(A, K
AB, N
A) C
AB: E
B(A, K
AB’, N
A) B C
A:E
A(K
AB, N
A, N
B) C A: E
A(K
AB, N
A, N
B) A C: N
BC
AB: N
BL’attaccante C, parla con B, fingendosi A
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
Beller-Yacobi MRS+DH Protocol
TMN Protocol
Conclusion
Protocolli in the X.509 Standard
Usa crittografia chiave pubblica e firma digitale.
Serie di protocolli per l'autenticazione classificati:
Simple e Strong.
Simple utilizza l'autenticazione delle password inviate sia in chiaro o come input.
Ci sono tre protocolli specificati, con una, due e tre, flussi di messaggio.
Ogni protocollo estende il precedente con
l'aggiunta di un ulteriore messaggio.
Protocolli in the X.509 Standard: one-pass
authentication.
A B: T
A, N
A,B, E
B(K
AB),Sig
A(T
A, N
A, B, E
B(K
AB))
Manca dai dati crittografati l’identità di A
Un avversario può rimuovere la firma sul messaggio e sostituirla con una nuova firma sullo stesso messaggio.
Per risolvere questo problema si può utilizzare il Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 2
ATTACCO
Protocolli in the X.509 Standard: two-pass
authentication.
A B: T
A,N
A,B,E
B(K
AB),Sig
A(T
A, N
A,B,E
B(K
AB)) B A: T
B,N
B,A,E
A(K
BA),Sig
B(T
B,N
B, A,E
A(K
BA))
Mutua Autenticazione.
Protocolli in the X.509 Standard: three-pass authentication.
A B: T
A, N
A, B, E
B(K
AB), Sig
A( T
A, N
A, B, E
B(K
AB))
B A: T
B, N
B, A, E
A(K
BA), Sig
B( T
B, N
B, A, E
A(K
BA))
A B: N
B, Sig
A(N
B, B)
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocols Blake
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
Beller-Yacobi MRS+DH Protocol
TMN Protocol
Conclusion
TLS Protocol
TLS è il protocollo successivo del Secure Socket Layer (SSL), sviluppato da Netscape Communications e implementato dai più diffusi browser web.
Trasporta i 'premaster segreto', PMK, dal client al server.
Il TLS standard specifica uso di crittografia a chiave pubblica RSA.
La chiave di sessione è calcolata come K
AB= MACPMK(N
A, N
B).
Il messaggio di sequenza Mess_Seq1, Mess_Seq2 e Mess_SeQ3, consistono di un hash della sequenza di tutti i precedenti messaggi scambiati.
A B: N
AB A: N
BA B: E
B(PMK),Sig
A(MESS-SEQ1), (MESS_SEQ2)K
ABB A: (MESS_SEQ3)K
ABIndice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocols Blake
Needham-Schoeder Public Key Protocol
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
Beller-Yacobi MRS+DH Protocol
TMN Protocol
Conclusion
Beller-Chang-Yacobi Protocols
Questi protocolli sono stati progettati per
soddisfare le esigenze di comunicazioni per dispositivi mobili.
Sono stati esaminati da Carlsen che ha individuato alcune possibili attacchi e ha suggerito modifiche al protocollo di evitarli.
MSR protocollo
MSR protocol
A B: A, K
AB A: E
A(K
AB),(B, SC
B)K
AB
La chiave pubblica di K
A, è utilizzata dal telefono cellulare per cifrare la chiave di sessione K
AB, e invia il messaggio cifrato ad A.
Carlsen ha individuato due debolezze:
1) La chiave pubblica di A NON è certificata, consentendo in tal modo a chiunque di mascherarsi come A.
2) Non è possibile distinguere tra una nuova comunicazione ed una vecchia.
secret certificate della stazione mobile, B, rilasciato da un’autorità
centrale
Miglioramento MRS (IMRS Protocol)
La risposta di B è composta da una chiave di sessione, più una Nounce che consente la validità del messaggio, ed elimina la possibilità dell’ anonimato.
A B: A, N
AB A: E
A(K
AB),(N
A, B, SC
B)K
AB
Un avversario può ottenere SC e mascherarsi come B.
La soluzione a questo problema consiste in un
STESSO VALORE
A lo decifra utilizzando la chiave di sessione KAB.
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocols Blake
Needham-Schoeder Public Key Protocol
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
TMN Protocol
Conclusion
Beller-Yacobi Protocol
Protocollo per la telefonia mobile. La chiave privata del cellulare è utilizzata per la firma digitale usando l’ algoritmo EIGamal.
Il vantaggio consiste nella generazione della firma prima di scegliere il messaggio, così si può eseguire la maggior parte del lavoro off-line, durante il tempo di inattività tra le chiamate.
La differenza principale è negli ultimi due messaggi, che attuano una challenge-response basato su firme digitali.
A B: A, KAB
B A: EA (KAB)
A B: (NA)KAB A invia NA criptato con la chiave di sessione B A: (B,KB,Cert(B), SigB (NA))KAB
A decifra il messaggio e verifica la firma sulla NA
NA firmato con la sua chiave privata identità
certificato Chiave
pubblica
Attacco
L’attaccante C inizia una sessione parallela con B, per ottenere la NA
A accetta una chiave di sessione con B, mentre in realtà la condivide con C.
1) A CB : A, KA
2) CB A: EA (KAB) 3) A CB: (NA)KAB
1’) C B: C, KC
2’) B C: EC (KAB’) 3’) C B: (NA)KAB ’
4’) B C: (B,KB,Cert(B), SigB (NA))KAB’ 4) CB A: (B,KB,Cert(B), SigB (NA))KAB
MODIFICA PROTOCOLLO
B firmare la nuova chiave di sessione KAB, nel messaggio 2, insieme con la NA, che garantisce la freschezza e, le due entità, attraverso una funzione hash.
A B: A, NA
B A: EA (KAB), (B,KB,CERT(B))KAB,SigB(H(A,B,NA,KAB)) A B: (NA)KAB
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocols Blake
Needham-Schoeder Public Key Protocol
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
TMN Protocol
Conclusion
TMN Protocol
Due stazioni mobili A e B si scambiano una
chiave di sessione chiave per fornire sicurezza.
KDP1 non contiene informazioni di
autenticazione ed è vulnerabile ad alcuni
attacchi, migliorato successivamente KDP2
Indice argomenti
Introduction
Principles for public key protocols
Entity Authentication protocols
ISO/IEC 9798-3
SPLICE/AS
Key trasport protocols
ISO/IEC 11770-3
Protocols Blake
Needham-Schoeder Public Key Protocol
Protocolli in the X.509 Standard
TLS Protocol
Beller-Chang-Yacobi Protocols
MSR protocollo
Beller-Yacobi Protocol
TMN Protocol
Conclusion
Conclusion: comparision of key Trasport Protocols
L'ISO / IEC 11770-3 standard specifica una serie di protocolli per il trasporto di chiavi utilizzando la crittografia asimmetrica.
Il TLS protocol fornisce un'alternativa allo standard ISO/IEC protocolli.
Lo studio di questi protocolli, tuttavia, può essere utile per comprendere tipici errori nella disegnazione dei protocolli.