Elementi di Sicurezza e Privatezza Lezione 13 Web Security - SSL/TLS



Documenti analoghi
Elementi di Sicurezza e Privatezza Lezione 12 Web Security. Chiara Braghin. SSL e TLS

Elementi di Sicurezza e Privatezza Lezione 12 Web Security (4) SSL/TLS e IPSec

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

Approfondimento di Marco Mulas

Corso di Sicurezza Informatica. Sicurezza Web. Ing. Gianluca Caminiti

Elementi di Sicurezza informatica

La sicurezza nelle reti di calcolatori

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione

Programmazione in Rete

SECURE SOCKET LAYER FEDERICO REALI

SETEFI. Marco Cantarini, Daniele Maccauro, Domenico Marzolla. 19 Aprile 2012

La suite di protocolli SSL

Sicurezza dei sistemi e delle reti 1. Lezione VI: IPsec. IPsec. La suite TCP/IP. Mattia Monga. a.a. 2014/15

Sommario. Introduzione alla Sicurezza Web

Sicurezza interna alle applicazioni. Sicurezza esterna alle applicazioni. SSL: introduzione. Sicurezza nei Sistemi Informativi

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

La sicurezza del Web SSL

Introduzione alle applicazioni di rete

La sicurezza nel Web

Esercitazione 02. Sommario. Un po di background (1) Un certificato digitale in breve. Andrea Nuzzolese

Sicurezza nelle applicazioni multimediali: lezione 7, sicurezza dei protocolli. Sicurezza dei protocolli (https, pop3s, imaps, esmtp )

Dal protocollo IP ai livelli superiori

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it

Cenni sulla Sicurezza in Ambienti Distribuiti

Esercitazione 2 Certificati

Sicurezza nelle applicazioni multimediali: lezione 8, sicurezza ai livelli di rete e data-link. Sicurezza ai livelli di rete e data link

Dettaglio attività e pianificazione. snamretegas.it. San Donato Milanese Aprile 2014

OpenVPN: un po di teoria e di configurazione

Creare connessioni cifrate con stunnel

Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec

VPN: connessioni sicure di LAN geograficamente distanti. IZ3MEZ Francesco Canova

Vallarino Simone. Corso di sicurezza A.A. 2003/2004 HTTPS

Sicurezza a livello IP: IPsec e le reti private virtuali

Secure socket layer (SSL) Transport layer security (TLS)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Informatica per la comunicazione" - lezione 13 -

Protezione della posta elettronica mediante crittografia

Crittografia e sicurezza delle reti. WEP: Wired Equivalent Privacy

Transmission Control Protocol

Reti di Telecomunicazione Lezione 8

IL SECURE SOCKETS LAYER (SSL) E LA SICUREZZA NEL PROTOCOLLO TCP/IP

Servizio Sistemi Informativi SPERIMENTAZIONE DI RETI PRIVATE VIRTUALI CON L'UTILIZZO DI SOFTWARE OPEN SOURCE

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Elements of Security Protocols Secure Socket Layer (SSL)

SICUREZZA. Sistemi Operativi. Sicurezza

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1

MANUALE DI INSTALLAZIONE CERTIFICATO DIGITALE PER LA SICUREZZA CERTIFICATION AUTHORITY DEL SISTEMA PIEMONTE

Appendice C. C. Protocolli per comunicazioni sicure

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Protezione delle informazioni in SMart esolutions

Una Introduzione a TLSv1.0

Sicurezza in rete SSL

Sicurezza delle applicazioni di rete

DEFINIZIONE MODALITÀ DI COMUNICAZIONE

Reti private virtuali (VPN) con tecnologia IPsec

StarShell. IPSec. StarShell

Reti di Telecomunicazione Lezione 6

OpenVPN: un po di teoria e di configurazione

Problemi legati alla sicurezza e soluzioni

Stunnel & port forwarding

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

La sicurezza nelle comunicazioni Internet

Protocolli applicativi: FTP

Secure Socket Layer (SSL) Transport Layer Security (TLS)

Corso Specialista Sistemi Ambiente Web. Test finale conoscenze acquisite Windows 2000 Server

Applicazioni per l autenticazione Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

RETI DI CALCOLATORI. Crittografia. La crittografia

Il protocollo BitTorrent

Manuale Utente PEC e Client di Posta tradizionale

L IDENTITY MANAGEMENT

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

Side Channel Attack contro il protocollo SSL

Informatica per la comunicazione" - lezione 8 -

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

CRITTOGRAFIA, CERTIFICATI DIGITALI E PROTOCOLLI DI SICUREZZA

PEC. La posta elettronica certificata

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

e-government La Posta Elettronica Certificata

Acquisto con carta di credito. Acquisto con carta di credito

La sicurezza delle reti

Protezione dei Dati Digitali: Scenari ed Applicazioni

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

IPsec e TLS a confronto: funzioni, prestazioni ed estensioni

FTP. Appunti a cura del prof. ing. Mario Catalano

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Sicurezza delle reti wireless. Alberto Gianoli

Reti di Telecomunicazione Lezione 7

Sicurezza della posta elettronica

CONCETTI DI NAVIGAZIONE IN RETE

Corso di Laurea in Informatica Reti e Sicurezza Informatica

Transcript:

Elementi di Sicurezza e Privatezza Lezione 13 Web Security - SSL/TLS Chiara Braghin chiara.braghin@unimi.it

Sicurezza e TCP/IP HTTP FTP TCP IPSec SMTP HTTP FTP SMTP SSL o TLS TCP IP Kerberos UDP S/MIME FTP IP PGP TCP SET SMTP (a) Livello rete (b) Livello trasporto (c) Livello applicazione 1

TLS/SSL in breve Obiettivo: comunicazione sicura Autenticazione delle parti Sempre: autenticazione del server Opzionale: autenticazione del client Confidenzialità dei dati Integrità dei dati Basato su TCP, servizio affidabile orientato alla connessione Garantisce servizi sicuri per un qualsiasi protocollo a livello applicazione che sia basato su TCP (e.g., HTTP, FTP, TELNET, etc.) Indipendente dallʼapplicazione 2

TLS/SSL: Storia (1) Protocollo Secure Socket Layer (SSL): Introdotto nel 1994 da Netscape Communications per il browser Netscape Navigator Obiettivo: proteggere il traffico del Web Protocollo Transport Layer Security (TLS) IETF standards track protocol: TLS v1.0: RFC 2246 TLS v1.1: RFC 4346 TLS v1.2: RFC 5246 e 6176 TLS v1.0 quasi identico a SSL v3.0 (anche se TLS v1.0 non compatibile con SSL v3.0), quindi di solito si parla di TLS/SSL 3

TLS/SSL: Storia (2) 95 96 99 06 08 Progettazione SSLRef 2.0 SSL v3.0 TLS Draft iniziale SSL v2.0 SSL BOF @ IETF SSL BOF II @ IETF TLS v1.0 TLS v1.1 TLS v1.2 Implementazioni indipendenti Hardware, Toolkits, Applicazioni BoF: Birds of Feather, gruppo di discussione informale IETF: Internet Engineering Task Force 4

TLS/SSL: Architettura 5

TLS/SSL: Connessione vs Sessione Connessione Connessione tra due host (peer-to-peer) Ciascuna connessione è associata ad una sessione Sessione Unʼassociazione tra un client e un server Definisce un insieme di parametri crittografici che possono venire condivisi tra connessioni multiple Usata per evitare la (costosa!) negoziazione di nuovi parametri di sicurezza per ciascuna connessione 6

TLS/SSL: gestione dello stato (1) Una sessione TLS è stateful TLS deve inizializzare e mantenere informazioni relative allo stato della sessione per ciascuna direzione della comunicazione (dettagli in seguito) Una sessione TLS può venire usata da più connessioni Deve venire memorizzata anche lʼinformazione relativa allo stato delle connessioni 7

TLS/SSL: Handshake protocol (1) La parte più complessa di TLS/SSL Fase del protocollo che precede la trasmissione dei dati provenienti dal livello applicazione Obiettivi: Autenticazione del server (opzionale del client) Negoziazione parametri di sicurezza: Algoritmo di cifratura - da utilizzare in fase di trasmissione dati e di handshake Algoritmo di hashing (MAC) - per creare il message digest Chiavi di sessione (per cifratura e hash con chiave) NB: le chiavi che proteggono il traffico dal client al server sono diverse dalle chiavi che proteggono il traffico dal server al client, in questo modo i partecipanti riescono a distinguere tra messaggi che hanno spedito e messaggi che hanno ricevuto (no reflection attack) 8

TLS/SSL: Handshake protocol (2) M1 M2 parti opzionali protocollo separato per evitare stalli nella pipeline M3 M4 9

TLS/SSL: Handshake protocol (3) - M1 ClientHello Message: Messaggio iniziale Client -> Server Version Number: versione di TLS più recente supportata Randomly Generated Data: DataClientRandom[32], numero di 4 byte che specifica data e ora del client + numero casuale di 28 byte generato dal client Session Identification (se presente): permette al client di proporre al server di riutilizzare una sessione precedente Cipher Suite: lista di algoritmi di cifratura supportati dal client TLS_RSA_WITH_DES_CBC_SHA TLS versione del protocollo RSA algoritmo a chiave asimmetrica utilizzato per lo scambio della chiave DES_CBC algoritmo di cifratura (utilizza una chiave di 56-bit key in CBC mode) per SHA hash function Compression Algorithm: algoritmo di compressione (nessuno supportato per ora) 10

M1 - Esempio ClientVersion 3,1 ClientRandom[32] SessionID: None (new session) Suggested Cipher Suites: TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS_RSA_WITH_DES_CBC_SHA Suggested Compression Algorithm: NONE 11

TLS/SSL: Handshake protocol (4) - M2 ServerHello Message: Server -> Client Version Number: versione di TLS più recente supportata da entrambi Randomly Generated Data ServerRandom[32]: numero di 4 byte che specifica data e ora del server + numero casuale di 28 byte generato dal server Session Identification (se presente): new session-id resumed session-id, lo stesso ID indicato dal ClientHello; indica che il server è d accordo nel riutilizzare una sessione precedente Null, si tratta di una nuova sessione e il server non vuole che venga riutilizzata in seguito, quindi non le viene associato nessun ID Cipher Suite: il server sceglie l algoritmo di cifratura più forte supportato da entrambi Nel caso in cui non ci sia nessun algoritmo condiviso, la sessione termina con un messaggio di alert handshake failure Compression Algorithm: algoritmo di cifratura (nessuno supportato per ora) 12

TLS/SSL: Handshake protocol (5) - M2 Server Certificate Fase opzionale a seconda del cipher suite scelto Certificato del server che contiene la sua chiave pubblica (chiave che viene utilizzata dal client per autenticare il server e per cifrare il pre-master secret) Il client controlla anche che il nome del server nel certificato corrisponda a quello da lui usato per la connessione. Per esempio, se l utente ha inserito l URL www.prova.com nel browser, il certificato dovrebbe contenere www.prova.com o *.prova.com. Internet Explorer avverte l utente nel caso in cui i 2 nomi non corrispondano. Server Key Exchange Fase opzionale in cui il server crea e spedisce una chiave temporanea al client. Spedita SOLO SE il certificato del server non contiene informazioni tali da permettere al client di spedire il pre-master secret in modo sicuro Client Certificate Request Fase opzionale in cui il server richiede di autenticare il client Utilizzata dai siti Web delle banche in cui il server deve verificare l identità del cliente prima di rilasciare informazione sensibile Server Hello Done 13

M2 - Esempio Version 3,1 ServerRandom[32] SessionID: bd608869f0c629767ea7e3ebf7a63bdcffb0e f58b1b941e6b0c044acb6820a77 Use Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA Compression Algorithm: NONE 14

TLS/SSL: Handshake protocol (6) - M3 Client -> Server Client Certificate (opzionale) Viene spedito solo nel caso in cui il server lo abbia richiesto Client Key Exchange Il premaster secret (numero casuale generato dal client) viene cifrato con la chiave pubblica del server e poi viene trasmesso al server. Entrambi i partecipanti (client e server) calcolano il master secret localmente e da quello generano la chiave di sessione Certificate Verify (opzionale) Spedito solo nel caso in cui il server abbia richiesto l autenticazione del client Il client spedisce un messaggio che contiene i precedenti messaggi firmati con la propria chiave privata. In questo modo il server, verificando la firma con la chiave pubblica presente nel certificato del client, verifica esplicitamente che il client abbia accesso alla chiave privata del certificato 15

TLS/SSL: Handshake protocol (7) - M3 Client -> Server Change Cipher Spec Questo messaggio conferma al server che tutti i messaggi che seguiranno saranno autenticati e verranno cifrati usando le chiavi e gli algoritmi appena negoziati Client Finished Primo messaggio sicuro (cifrato e con hash) Questo messaggio contiene l hash di quanto scambiato fino ad ora ed è cifrato usando la chiave di sessione 16

TLS/SSL: Handshake protocol (8) - M4 Server -> Client Change Cipher Spec Message Questo messaggio conferma al client che tutti i messaggi che seguiranno verranno cifrati usando le chiavi appena negoziate Server Finished Message Questo messaggio contiene l hash di quanto scambiato fino ad ora ed è cifrato usando la chiave di sessione Se il client è in grado di decifrare con successo questo messaggio e di validare gli hash che contiene ha la garanzia che l handshake TLS/SSL è terminata con successo e che le chiavi calcolate localmente coincidono 17

Computazione chiave (1) NB: Il master secret è sempre di 48 bit, mentre la lunghezza del pre-master secret dipende dagli algoritmi negoziati. 18

Computazione chiave (2) 19

TLS/SSL: Abbreviated handshake (1) Detto anche Restart handshake, usa un vecchio session ID Il client associa un session ID con l indirizzo IP del server e la porta TCP. Memorizza inoltre il master secret associato al session ID Il server memorizza il session ID, i parametri negoziati precedentemente, e il master secret NB: La chiave generata nella nuova connessione è diversa grazie ai numeri casuali utilizzati per generarla e che sono diversi per ogni connessione 20

TLS/SSL: Abbreviated handshake (2) 21

TLS/SSL: gestione dello stato (2) Parametri per la sessione: Session ID: sequenza di bit arbitraria scelta dal server per identificare lo stato di una sessione attiva o ancora utilizzabile Peer certificate: certificato X509.v3 del peer Compression method: algoritmo di compressione dei dati prima della cifratura Cipher spec: descrizione degli algoritmi di cifratura dati e Message Authentication Code (MAC) Master secret: segreto condiviso tra client e server di 48 byte, serve per generare le chiavi di sessione Is resumable: flag che indica se la sessione può venire utilizzata per altre connessioni 22

SSL/TLS: gestione dello stato (3) Parametri per la connessione: Server and client random: sequenza di bit arbitraria scelta dal server e dal client per identificare ciascuna connessione Server MAC secret: segreto usato per il MAC dei dati del server Client MAC secret: segreto usato per il MAC dei dati del client Server key: chiave condivisa usata per la cifratura dei dati latoserver e decifratura lato-client (NB: non trasmessa lungo il canale) Client key: chiave condivisa usata per la cifratura dei dati lato-client e decifratura lato-server (NB: non trasmessa lungo il canale) Initialization vector: per CBC (cipher-block chaining) block ciphers (concatenazione) Sequence number: per i messaggi trasmessi e ricevuti, memorizzato da entrambi 23

TLS/SSL: gestione dello stato (4) 24

TLS/SSL: gestione dello stato (5) 25

TLS/SSL: Handshake protocol (7) - Revisited 26

TLS/SSL: Record protocol (1) Obiettivo: Recuperare i blocchi ricevuti da un protocollo di livello superiore (livello applicazione) e: Frammentare i blocchi Applicare le trasformazioni crittografiche prima della trasmissione dei blocchi Ovviamente a lato destinatario compiere le operazioni complementari (decifrare, merge e passaggio al livello superiore) 27

TLS/SSL: Record protocol (2) 28

TLS/SSL: Record protocol (3) 29

Differenze tra le versioni (1) TLS 1.0 definito nel Gennaio 1999 come un upgrade di SSL Version 3.0 "the differences between this protocol and SSL 3.0 are not dramatic, but they are significant enough that TLS 1.0 and SSL 3.0 do not interoperate." In genere l implementazione di TLS 1.0 permette di fare il downgrading della connessione a SSL 3.0. 30

Differenze tra le versioni (2) TLS 1.1 (SSL 3.2) Aprile 2006 Aggiunta protezione contro attacchi al Cipher block chaining (CBC) L Initialization Vector (IV) implicito rimpiazzato da uno esplicito TLS 1.2 (SSL 3.3) Agosto 2008 Aggiunto il supporto a nuovi algoritmi di cifratura e hash 31

TLS/SSL: uso comune (1) HTTP/S Simple Mail Transfer Protocol (SMTP) OpenVPN Voice over IP (in particolare Session Initiation Protocol - SIP) Implementazioni: Progetti di free e open source software: CyaSSL, OpenSSL, NSS, o GnuTLS 32

TLS/SSL: uso comune (2) Dopo la fase di TLS/SSL handshacking: 33

TLS/SSL: supporto browser Safari supporta TLS, anche se non è specifiato quale versione Mozilla Firefox, versione 2 e superiori, supporta TLS 1.0 Fino a Dicembre 2010, Firefox non supportava TLS 1.1 o 1.2 Microsoft Internet Explorer 8 in Windows 7 supporta TLS 1.2. Opera supporta TLS 1.2 34

TLS/SSL: siamo sicuri? (1) A vulnerability of the renegotiation procedure was discovered in August 2009 that can lead to plaintext injection attacks against SSL 3.0 and all current versions of TLS it allows an attacker who can hijack an https connection to splice their own requests into the beginning of the conversation the client has with the web server. The attacker can't actually decrypt the client-server communication, so it is different from a typical man-inthe-middle attack A short-term fix is for web servers to stop allowing renegotiation, which typically will not require other changes unless client certificate authentication is used (RFC 5746 e OpenSSL) 35

TLS/SSL: siamo sicuri? (2) A vulnerability in TLS 1.0 and all versions of SSL that was considered to be theoretical is to be demonstrated at the Ekoparty security conference on September 21, 2011. The demonstration will include the decryption of cookies used for website authentication 36

SSL/TLS: Riferimenti RFC 5246 e 6176: The Transport Layer Security (TLS) Protocol Version 1.2 W. Stallings, Cryptography and Network Security, 3rd Edition, Prentice Hall Garfinkel, S., and Spafford, G. Web Security & Commerce. O Reilly and Associates, 1997 OpenSSL website: www.openssl.org 37