Corso di Sicurezza Informatica Sicurezza Web Protocollo Handshake – fase 3 • Fase 3....

41
Ing. Gianluca Caminiti Corso di Sicurezza Informatica Sicurezza Web

Transcript of Corso di Sicurezza Informatica Sicurezza Web Protocollo Handshake – fase 3 • Fase 3....

Ing. Gianluca Caminiti

Corso di Sicurezza Informatica

Sicurezza Web

SSL

3

Sommario• Considerazioni sulla Sicurezza del Web • Secure Socket Layer (SSL)

4

Brevi Considerazioni sulla Sicurezza del Web

• Web come– mercato ad alta visibilità per

informazioni aziendali e – piattaforma per transazioni finanziarie.

• Complessità del software web -> possibili vulnerabilità nascoste.

• Gli utenti non sono consapevoli dei rischi che corrono (es. injection...).

5

Strumenti di Sicurezza nello stack TCP/IP

6

SSL & TLS

• SSL (v3 Netscape,1996) • TLS (IETF,1999)• La prima versione di TLS si può

vedere come un SSL v3.1• TLS v1.2 (08/2008)

7

Architettura di SSL

8

Sessione e Connessione

• Sessione:– è un’associazione fra client e server.– creata dal protocollo Handshake.– definisce parametri di crittografia che possono

essere mantenuti per molteplici connessioni.• Connessione:

– relazione (transitoria) che consente un certo servizio.

– E’ associata ad una sessione.

9

SSL Record Protocol

• Questo protocollo fornisce– autenticazione (tramite MAC)– riservatezza (tramite crittografia

simmetica)

10

SSL Record Protocol: Funzionamento a Regime

11

SSL Record Protocol: Funzionamento a Regime

• Dimensione frammento: 16384 bytes• MAC = MD5 o SHA-1• Crittografia simmetrica

– a blocchi: AES, IDEA, RC2-40, DES-40, DES, 3DES, Fortezza

– a flusso: RC4-40, RC4-128

12

Formato SSL Record (cenni)

13

SSL Record Protocol Payload

14

Protocolli di alto livello

• Protocollo Handshake– (descritto in seguito)

• Protocollo Change Cipher Spec– E’ usato al termine del protocollo di

Handshake per eseguire il “commit” sulla scelta della suite di cifratura da usare.

• Protocollo Alert (prossima slide)

15

Protocolli di alto livello

• Protocollo Alert– warning

• close_notify, warning sui certificati…– fatal

• (termina la connessione corrente, le altre possono continuare): unexpected_message, bad_record_mac, handshake_failure, etc.

16

Protocollo Handshake

• Parte più complessa di SSL.• Permette a server e client la

reciproca autenticazione. • Serve per negoziare i parametri di

cifratura, del MAC e le chiavi crittografiche.

• E’ usata prima di trasmettere i dati dell’applicazione.

17

Protocollo Handshake

18

Protocollo Handshake

• Fase 1. Stabilire le capacità di sicurezza di client e server.

• Fase 2. Autenticazione Server e scambio delle chiavi.

• Fase 3. Autenticazione Client e scambio della chiavi.

• Fase 4. Conclusione.

19

Protocollo Handshake – fase 1

• Fase 1. Stabilire le capacità di sicurezza.• Il client invia al server un messaggio

client_hello contenente i parametri:– versione SSL supportata dal client– valore random (usato per lo scambio delle chiavi,

per evitare attacchi replay)– suite di cifratura – metodo di compressione

20

Protocollo Handshake – fase 1• Suite di cifratura, contiene:

– metodo per lo scambio delle chiavi• RSA (la chiave segreta è cifrata con la chiave pubblica RSA del

ricevente) – scambio di certificati• Fixed Diffie-Hellman (il server invia un certificato firmato dalla CA

con i parametri pubblici D-H, il client risponde con i suoi parametri, eventualmente contenuti in un certificato se è richiesta l’autenticazione del client) – scambio di certificati

• Ephemeral D-H (ogni parte invia i parametri pubblici D-H e li firma con la propria chiave privata RSA o DSS) - scambio di certificati per autenticare le chiavi pubbliche. I parametri possono essere ”one-time”.

• Anonymous D-H (D-H senza autenticazione, vulnerabile a man-in-the-middle)

• Fortezza (poco usato)– Cipher spec

21

Diffie Hellman

22

Protocollo Handshake – fase 1

• Suite di cifratura, contiene:– metodo per lo scambio delle chiavi– Cipher spec

• CipherAlgorithm: RC4,RC2, DES, ...• MACAlgorithm: MD5 o SHA-1• CipherType: a blocchi o a flusso• .....

23

Protocollo Handshake – fase 2

• Fase 2. Autenticazione del server e scambio delle chiavi.

• il server, in tutti i casi tranne Anonymous D-H:– invia msg certificate, contiene il

certificato che autentica la chiave pubblica del server. Nel caso di Fixed D-H contiene i par. pubblici

24

Protocollo Handshake – fase 2

• Fase 2. Autenticazione del server e scambio delle chiavi.

• il server, in tutti i casi tranne che per Fixed D-H:– invia msg server_key_exchange, in

dettaglio:• Anonymous D-H: i par. pubblici D-H• Ephemeral D-H: i par. pubblici D-H e la firma

degli stessi.

25

Protocollo Handshake – fase 2

• Fase 2. Autenticazione del server e scambio delle chiavi.

• il server, a meno che non usi Anonymous D-H o RSA senza autenticazione del client:– invia un msg certificate_request per richiedere

un certificato al client• msg server_hello_done conclude fase 2

26

Protocollo Handshake – fase 3

• Fase 3. Autenticazione del client e scambio delle chiavi.

• il client, se il server lo ha richiesto, invia un certificato con msg certificate .

• poi invia un msg client_key_exchange:– in caso di scambio RSA, il client genera un valore segreto

pre-master che cifra con la chiave pubblica del server (contenuta nel certificato o nel msg server_key_exchange, tmporanea)

– Ephemeral o Anonymous D-H: invia i parametri pubblici (nel primo caso firmati con la propria chiave privata RSA)

– Fixed D-H: invia un messaggio nullo

27

Protocollo Handshake – fase 3

• Fase 3. Autenticazione del client e scambio delle chiavi.

• msg certificate_verify (opz.) conclude fase 3

• Il client firma un messaggio per fornire prova che possiede la chiave privata associata a quella pubblica presente nel certificato scambiato col server.

28

Protocollo Handshake – fase 4

• Fase 4. Conclusione.• il client invia un msg change_cipher_spec (che fa

parte dell’altro protocollo) per attivare le scelte fatte in relazione alla suite di crittografia e poi

• un msg finished che usa tali algoritmi, chiavi e valori segreti.

• Il server fa la stessa cosa.• A questo punto client e server possono scambiarsi

dati a livello di applicazione in modo sicuro.• I valori effettivi usati per MAC e crittografia

sono calcolati da client e server sulla base dei parametri scambiati nelle fasi 2 e 3.

29

Transport Layer Security• Formato di record identico a quello di SSL.• RFC 2246.• simile a SSLv3.• Differenze:

– version number– message authentication code– pseudorandom function– alert codes– cipher suites – client certificate types– certificate_verify and finished message– cryptographic computations– padding

Ing. Gianluca Caminiti

Corso di Sicurezza Informatica

Sicurezza dellaPosta Elettronica

PGP

32

Sommario

• Pretty good privacy

33

Pretty Good Privacy

• autore: Philip R. Zimmerman • PGP offre

– riservatezza– autenticazione

• sia per la posta elettronica che per applicazioni di memorizzazione di file.

34

PGP è molto popolare

• Disponibile gratuitamente per una molteplicità di piattaforme.

• Basato su algoritmi ben noti.• Ampia gamma di applicazioni.• Non controllato o sviluppato da

organizzazioni governative o da standard internazionali.

35

Descrizione Operativa

• Offre 5 servizi:– Auteticazione– Riservatezza– Compressione– Compatiilità con l’E-mail– Segmentazione

36

37

Compatibilità con l’E-Mail• Formato radix-64: ogni gruppo di 3 byte è

mappato su 4 caratteri ASCII• La dimensione del messaggio aumenta del

33%

38

Segmentazione

• Ci può essere la limitazione dellalunghezza del messaggio: es. 50,000 bytes.

• PGP automaticamente effettua la suddivisione.

• Dal lato del ricevente PGP assembla I vari segmenti tenendo contodell’ordine corretto ed eliminando gliheader.

39

Sommario dei servizi PGP Funzione Algoritmo Firma digitale DSS/SHA oppure

RSA/SHA Cifratura CAST o IDEA o 3DES

con Diffie-Hellman o RSA per scambio chiave di sessione

Compressione ZIP Compatibilità E-mail

Radix-64

Segmentazione -

40

41

Riferimenti

• Stallings