Upload
buiphuc
View
212
Download
0
Embed Size (px)
Citation preview
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...).
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)
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)
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
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.
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
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
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
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 -