• Non ci sono risultati.

SECURE PROGRAMMING

N/A
N/A
Protected

Academic year: 2021

Condividi "SECURE PROGRAMMING"

Copied!
35
0
0

Testo completo

(1)

SECURE

PROGRAMMING

Prof. Stefano Bistarelli

SEMINARIO

“Authentication and key Trasport Using Public

Key Cryptography”

Di

Roberta Tittaferrante

(2)

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

(3)

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.

(4)

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.

(5)

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

(6)

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

(7)

“CANADIAN ATTACK”

1) C

B

A: N

C

2) A C

B

: N

A

,N

C

, B, Sig

A

(N

A

, N

C

, B) 1’) C

A

B: N

A

2’) B C

A

: N

B

, N

A

, Sig

B

(N

B

, N

A

, A) 3) C

B

A: 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

A

B A: N

B

A B: N

A

, N

B

B, 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.

(8)

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

(9)

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 messaggio

Quando A riceve il messaggio controlla la N al fine di autenticare

B

(10)

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

B

A: 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.

(11)

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.

(12)

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

(13)

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

(14)

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

(15)

Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 3

1) A B: E

B

(B, K

AB

T

A

, Sig

A

(B, K

AB,

T

A

)) 2) A B: E

B

(K

AB

T

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

(16)

Key Trasport Protocols ISO/IEC 11770-3 Meccanismo 4

A B : N

A

B A : A, N

A

, N

B

, E

A

(B, K

AB

), Sig

B

(A, N

A

N

B

, E

A

(B, K

AB

))

Nonce N

A

per conseguire una chiave freschezza per l’autenticazione di B.

Meccanismo 5 A B : N

A

B A : N

B

N

A

A, E

A

(B, K

BA

), Sig

B

( N

B

N

A

A,E

A

(B, K

BA

)) A B : N

A

N

B

B, E

B

(A, K

AB

), Sig

A

(N

A

N

B

B, E

B

(A, K

AB

))

Due chiavi di sessione K

AB

K

BA

scelti da A e B.

(17)

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

B

ATTACCO Helsinky

(18)

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

A

B: 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

B

C

A

B: N

B

L’attaccante C, parla con B, fingendosi A

(19)

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

(20)

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.

(21)

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

(22)

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)

(23)

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

(24)

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

A

B A: N

B

A B: E

B

(PMK),Sig

A

(MESS-SEQ1), (MESS_SEQ2)K

AB

B A: (MESS_SEQ3)K

AB

(25)

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

Beller-Yacobi MRS+DH Protocol

TMN Protocol

Conclusion

(26)

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

(27)

MSR protocol

A B: A, K

A

B 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

(28)

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

A

B 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.

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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.

Le ultime ricerche si concentrano sull’utilizzo di key

agreement piuttosto che key trasport, argomento del

capitolo successivo.

Riferimenti

Documenti correlati

Non è quindi un caso che per costruire funzioni trabocchetto si sia ricorsi alla fattorizzazione del prodotto di numeri interi molto grandi.. B, che conosce la chiave pubblica di

• Con una linea ISDN é possibile comunicare liberamente con un qualsiasi abbonato della rete telefonica tradizionale fissa o mobile ed usufruire delle forme di comunicazione (quali

Cybercash, cifratura RSA 768 bit per transazioni finanziarie non deve essere facilmente non deve essere facilmente utilizzabile per cifrare. utilizzabile

application to send malicious code, generally in the form of a browser side script, to a different end user.. Flaws that allow these attacks to succeed

Per il resto, installare un tale sistema ` e relativamente semplice: come abbiamo visto, ci sono metodi efficienti per generare numeri primi (o pseudoprimi) di 100 cifre decimali

QeraH naMoJ XaHnr eVira nnoSH LiXoi OieiD iQQoJ iJeXX orino raKaB BiaMe XeSLa KJiaX oQera HnaMo JXaHn DeBBo ViJeK nonon eraHn JeKno ViJHS SoOaH nSeOD JiQeD eBBoV aQaXa SXaVi IHeJJ

At the same time, theoretical developments in information theory and computer science show promise of providing provably secure cryptosystems, changing this ancient art into a

Shamir, A polynomial-time algorithm for breaking the basic Merkle - Hellman cryptosystem, IEEE Transactions on. Information