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



Documenti analoghi
Elementi di Sicurezza e Privatezza Lezione 13 Web Security - SSL/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

SECURE SOCKET LAYER FEDERICO REALI

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

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

Programmazione in Rete

La suite di protocolli SSL

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

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

La sicurezza del Web SSL

Introduzione alle applicazioni di rete

Sommario. Introduzione alla Sicurezza Web

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

La sicurezza nel Web

Dal protocollo IP ai livelli superiori

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

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

OpenVPN: un po di teoria e di configurazione

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

Sicurezza a livello IP: IPsec e le reti private virtuali

Cenni sulla Sicurezza in Ambienti Distribuiti

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

Creare connessioni cifrate con stunnel

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

Esercitazione 2 Certificati

Transmission Control Protocol

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

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

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

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

Appendice C. C. Protocolli per comunicazioni sicure

OpenVPN: un po di teoria e di configurazione

SICUREZZA. Sistemi Operativi. Sicurezza

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

Elements of Security Protocols Secure Socket Layer (SSL)

Protezione della posta elettronica mediante crittografia

Crittografia e sicurezza delle reti. WEP: Wired Equivalent Privacy

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

Reti di Telecomunicazione Lezione 8

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

Reti di Telecomunicazione Lezione 6

Reti private virtuali (VPN) con tecnologia IPsec

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

Informatica per la comunicazione" - lezione 13 -

Sicurezza delle applicazioni di rete

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

Protezione delle informazioni in SMart esolutions

Sicurezza in rete SSL

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

Una Introduzione a TLSv1.0

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

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

DEFINIZIONE MODALITÀ DI COMUNICAZIONE

PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB

Informatica per la comunicazione" - lezione 8 -

StarShell. IPSec. StarShell

Protocolli applicativi: FTP

Problemi legati alla sicurezza e soluzioni

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

Manuale Utente PEC e Client di Posta tradizionale

Protocolli di Comunicazione

Il protocollo BitTorrent

Acquisto con carta di credito. Acquisto con carta di credito

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

CONCETTI DI NAVIGAZIONE IN RETE

La sicurezza nelle comunicazioni Internet

RETI DI CALCOLATORI. Crittografia. La crittografia

Maschere di sottorete a lunghezza variabile

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

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

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

L IDENTITY MANAGEMENT

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

Stunnel & port forwarding

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Elementi sull uso dei firewall

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

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

La sicurezza delle reti

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

Applicazioni web centrati sui dati (Data-centric web applications)

PEC. La posta elettronica certificata

IFInet Secure Webmail

Side Channel Attack contro il protocollo SSL

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

Network Services Location Manager. Guida per amministratori di rete

Corso di Laurea in Informatica Reti e Sicurezza Informatica

e-government La Posta Elettronica Certificata

Transcript:

Elementi di Sicurezza e Privatezza Lezione 12 Web Security Chiara Braghin SSL e TLS 1

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 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 2 TLS/SSL: Storia (2) 95 96 99 06 08 Initial Design SSL v2.0 SSLRef 2.0 SSL BOF @ IETF SSL v3.0 SSL BOF II @ IETF TLS Draft TLS v1.0 TLS v1.1 TLS v1.2 Independent Implementations Hardware, Toolkits, Applications BoF: Birds of Feather, gruppo di discussione informale IETF: Internet Engineering Task Force 3 2

IETF (1) Comunità di tecnici e ricercatori interessati all'evoluzione tecnica e tecnologica di Internet struttura aperta: il lavoro svolto da gruppi di lavoro che operano tramite mailing list, aperte alla partecipazione di chiunque sia interessato I gruppi di lavoro si riuniscono 3 volte l anno Producono documenti denominati RFC (Request For Comments) che vengono sottoposti alla IESG (Internet Engineering Steering Group) per il loro avanzamento a standard ufficiale Obiettivi: sviluppare standard Internet (TCP/IP e la suite di protocolli Internet) Motto: Rough consensus and running code (Consenso diffuso e codice funzionante) 4 IETF (2) 5 3

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

Sicurezza e TCP/IP HTTP FTP TCP IPSec SMTP HTTP FTP SMTP SSL o TSL TCP IP Kerberos UDP S/MIME PGP SET FTP SMTP TCP IP (a) Livello rete (b) Livello trasporto (c) Livello applicazione 8 TLS/SSL: Architettura 9 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 10 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 11 6

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 puoʼ venire utilizzata per altre connessioni 12 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 write MAC secret: segreto usato per il MAC dei dati del server Client write MAC secret: segreto usato per il MAC dei dati del client Server write key: chiave condivisa usata per la cifratura dei dati lato- server e decifratura lato-client Client write key: chiave condivisa usata per la cifratura dei dati lato- client e decifratura lato-server Initialization vector: per CBC block ciphers (concatenazione) Sequence number: per i messaggi trasmessi e ricevuti, memorizzato da entrambi 13 7

TLS/SSL: gestione dello stato (4) 14 TLS/SSL: gestione dello stato (5) 15 8

TLS/SSL: Handshake protocol (1) La parte più complessa di TLS/SSL Fase del protocollo che precede la trasmissione dei dati provenienti dall application level Obiettivi: Mutua autenticazione di client e server 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) 16 TLS/SSL: Handshake protocol (2) M1 M2 parti opzionali protocollo separato per evitare stalli nella pipeline M3 M4 17 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 utilizzato per lo scambio della chiave DES_CBC algoritmo di cifratura (utilizza una chiave di 56-bit key in CBC mode) SHA hash function Compression Algorithm: algoritmo di compressione (nessuno supportato per ora) 18 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 19 10

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 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) 20 TLS/SSL: Handshake protocol (5) - M2 Server Certificate 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.contoso.com nel browser, il certificato dovrebbe contenere www.contoso.com o *.contoso.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. Questa fase viene utilizzata dai siti Web delle banche in cui il server deve verificare l identità del cliente prima di rilasciare informazione sensibile. 21 Server Hello Done 11

M2 - Esempio Version 3,1 ServerRandom[32] SessionID: bd608869f0c629767ea7e3ebf7a63bdcff b0ef58b1b941e6b0c044acb6820a77 Use Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA Compression Algorithm: NONE 22 TLS/SSL: Handshake protocol (6) - M3 Client -> Server Client Certificate (opzionale) 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) 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. 23 12

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 è l hash di quanto scambiato fino ad ora usando la chiave di sessione e il MAC secret 24 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 è l hash di quanto scambiato fino ad ora usando la chiave di sessione e il MAC secret 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 25 13

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 26 TLS/SSL: Abbreviated handshake (2) 27 14

Computazione chiave (1) NB: Il master secret è sempre di 48 byte, mentre la lunghezza del pre-master secret dipende dagli algoritmi negoziati. 28 Computazione chiave (2) 29 15

TLS/SSL: Handshake protocol (7) - Revisited 30 TLS/SSL: Record protocol (1) Obiettivo: Recuperare i blocchi ricevuti da un protocollo di livello superiore (application level) e: Frammentare i blocchi Applicare le trasformazioni crittografiche prima della trasmissione dei blocchi Ovviamente a lato receiver compiere le operazioni complementari (decifrare, merge e passaggio al livello superiore) 31 16

TLS/SSL: Record protocol (2) 32 TLS/SSL: Record protocol (3) 33 17

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. 34 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 35 18

TLS/SSL: uso comune (1) HTTPS 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 36 TLS/SSL: uso comune (2) Dopo la fase di TLS/SSL handshacking: 37 19

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 38 TLS/SSL: siamo sicuri? 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-in-the-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) 39 20

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