29
HTTPS Sicurezza 2003/2004 Simone Vallarino

HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Embed Size (px)

Citation preview

Page 1: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

HTTPS

Sicurezza 2003/2004

Simone Vallarino

Page 2: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Sommario Introduzione Che cos’è Perché è nato e chi l’ha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over TLS) Fase di identificazione (HTTP over TLS) Formato dell’URL e comportamento del

browser Esempi di attacchi a HTTPS Considerazioni finali

Page 3: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Introduzione Abbiamo già visto:

HTTP (Hyper text transfer protocol)

Ricordiamo: Protocollo di trasmissione client-server di tipo

request/response basato su: TCP-IP (Transmission Control Protocol)

Page 4: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Che cos’è HTTPS

Secure Hyper Text Transfer Protocol

Come l’HTTP ma…

Sicuro! Perché le informazioni che viaggiano su internet passano attraverso un canale cifrato

Page 5: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Che cos’è

Page 6: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Perché è nato e chi l’ha creato

Successo dell’HTTP che era però usato in chiaro su internet (limitativo !)

Utilizzo di internet per applicazioni sensibili (commercio elettronico, banche, aziende,ecc.)

Page 7: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Perché è nato e chi l’ ha creato

Quindi…Precisiamo le motivazioni base: Le informazioni scambiate tra 2 applicazioni su

Internet passano per diverse organizzazioni, occorre un sistema per poter avere transazioni confidenziali.

Molti servizi richiedono il supporto di alcune importanti proprietà come: autenticazione e integrità dei dati

Occorre tener conto del concetto di “non ripudiabilità” dell’originale

Page 8: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Perché è nato e chi l’ ha creato

Sviluppato da Netscape La prima implementazione pubblica nata come

HTTP over SSL era in Netscape Navigator 2 nel 1995

Non sono stati pubblicati standard veri e propri Praticamente inalterato fino all’RFC2818

(maggio 2000) con la sostituzione di SSL con il più evoluto TLS

Da non confondersi con S-HTTP !S-HTTP è una speciale versione di HTTP accresciuta in sicurezza proposta come standard dall’EIT (Enterprise Integrated Technology). Si poneva come alternativa a SSL.

Page 9: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

HTTPS = HTTP + SSL/TLS Per rendere sicuro il protocollo http(hyper text

transfer protocol) si rende utile l’utilizzo di un altro protocollo :

Prima:SSL (Secure socket layer) introdotto da Netscape a partire dal 1994 come protocollo di gestione della sicurezza dei messaggi che transitano in internet

Ora:TLS (Transport Layer Security) successore di SSL (basto sulla versione 3.0) nato nel 1999 ad opera dell’IETF

Page 10: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

HTTPS = HTTP + SSL/TLS Ricordiamo:

TLS/SSL

si tratta di protocolli che garantiscono la privacy delle comunicazioni su Internet

Creati per prevenire le intrusioni, le manomissioni e le falsificazioni dei messaggi

Page 11: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

HTTPS = HTTP + SSL/TLS tre funzionalità fondamentali: Privatezza del collegamento: La crittografia

(simmetrica). è usata dopo un handshake iniziale per definire una chiave segreta.

Autenticazione: L'identità nelle connessioni può essere autenticata, così i client sono sicuri di comunicare con il corretto server, prevenendo ogni interposizione (uso di crittografia asimmetrica, o a chiave pubblica).

Affidabilità: si verifica che i dati spediti tra client e server non siano stati alterati durante la trasmissione (check basato su MAC e utilizzo funzioni Hash)

Page 12: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

HTTPS = HTTP + SSL/TLS Quindi: HTTPS = HTTP + SSL/TLS

Posizionamentro all’interno della “pila” del protocollo TCP/IP: viene introdotto un ulteriore livello che si colloca tra quello di applicazione e quello di trasporto

Concettualmente: uso HTTPS attraverso SSL/TLS come si fa con HTTP attraverso TCP.

HTTP SMTP FTP SSL o TLS

TCP

IP

Page 13: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

HTTPS = HTTP + SSL/TLS

il canale sicuro di cui parlavano è rappresentato da SSL/TLS

Page 14: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

ConnessioneInizio della connessione:

Chi agisce da HTTP client deve anche essere in grado di agire come TLS client

La connessione inizia su una determinata porta con il segnale SSL/TLS ClientHello

Segue il SSL/TLS handshake Tutti i dati http devono essere inviati come

SSL/TLS “application data”. Non viene spedito nessun dato riguardante il

client finchè la connessione SSL/TLS non è attiva Per il resto vengono seguite le normali

caratteristiche dell’HTTP

Page 15: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

ConnessioneChiusura della connessione TLS fornisce una struttura per la chiusura di

connessione sicura:Quando si riceve un valido segnale (alert) di chiusura sicuramente non si avranno ulteriori dati su quella connessione.

Chiusura normale: le implementazioni di TLS devono aver portato a termine uno scambio di alert di chiusura prima dell’effettiva chiusura

Incomplete close:una implementazione tls, dopo aver spedito un segnale di chiusura può anche non aspettare la sua corrispettiva generando così una chiusura incompleta con il vantaggio che può riutilizzare questa sessione

Premature close :Un’implementazione che riceve un connection close senza prima aver ricevuto un close alert valido non può riusare la sessione. Non indica la perdita della sicurezza dei dati ma soltanto che potrebbero essere troncati

Page 16: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Connessione

Client helloClient hello

Server helloServer hello

Server CertificateServer Certificate

serverHelloDone serverHelloDone

ClientKeyExchange E(Kserv, PK)ClientKeyExchange E(Kserv, PK)

ChangeCipherSpec ChangeCipherSpec

FIN Handshake (MAC) FIN Handshake (MAC) ChangeCipherSpecChangeCipherSpec

FIN Handshake (MAC) FIN Handshake (MAC)

Handshake

Page 17: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Connessione

Application_data http request Application_data http request Application_data http responseApplication_data http response

Alert : close_notify Alert : close_notify Alert : close_notify Alert : close_notify

Data

Close

Page 18: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Connessione Port number:

Il primo dato che un server http si aspetta di ricevere da un client è il request line production. Il primo dato che si aspetta di ricevere un server tls(e quindi anche un server http/tls) è il clienthello, quindi per distinguerli:

Se vengono usati su una connessione TCP/IPHTTP server attende su porta 80HTTP/TLS server attende su porta 443

Poiché https e http sono differenti protocolli ed usano porte diverse, lo stesso sistema server può far girare contemporaneamente entrambi i tipi di server

Page 19: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Fase di identificazioneEndpoint identification Server identity:

Solitamente le richieste attraverso http/tls sono generate differenziando una url, di conseguenza l’hostname per il server è conosciuto al client.

Se l’hostname è disponibile,il client deve controllarlo rispetto all’identità del server presentata nel server certificate message al fine di prevenire attacchi del tipo man in the middle

Se il client ha informazione esterne sulla supposta identità del client il controllo dell’hostname può essere omesso. In questi casi è importante restringere il dominio dei certificati accettabili il più possibile sempre al fine di prevenire attacchi del tipo man in the middle.

Page 20: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Fase di identificazione Vengono confrontati i nomi nel certificato con

l’hostname E’ concesso l’uso di wildcard (*) Se l’hostname non corrisponde con il nome nel

certificato il client è tenuto a lasciare la scelta all’utente se continuare o meno

Si noti che in molti casi l’URI stesso proviene da una sorgente non verificata. L’identificazione descritta non provvede protezione contro attacchi dovuti al fatto che questa sia compromessa.

Page 21: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Fase di identificazione Client identity

tipicamente si sceglie di non autenticare i “clienti”.

Se si sceglie di farlo si utilizzano dati esterni (ad es. il numero della carta di credito o la password)

L’identificazione del cliente non era supportata con i primi SSL ora lo è (era la differenza fondamentale con l’S-HTTP).

Page 22: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Formato dell’URI Il formato dell’URl: si differenzia dal normale

uso di http per l’uso di https:

Sintassi:https://host [:port]/path [#fragment][?query]

ad esempio: https://webmail.unige.it

Indica che ci vogliamo/dobbiamo collegare in maniera sicura

Page 23: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Comportamento del browser All’entrata in modalità sicura il browser ci

avverte con un messaggio

Confermato successivamente (di solito) da un simbolo (lucchetto a dx su netscape, a sx su IE)

Page 24: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Comportamento del browser E’ anche possibile visualizzare una finestra con

le informazioni relative al certificato che stabilisce delle credenziali sul web (solitamente cliccando sul lucchetto)

Il certificato è emesso da una CA (certification autority) e contiene tutte le informazioni (nome, numero seriale, data di scadenza, una copia della chiave pubblica del proprietario)

Page 25: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Comportamento del browser

Page 26: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Comportamento del browser

Page 27: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Esempi di attacchi Substitution attack Possibile se l’attaccante ha la possibilità di

sostituire la pagina Il riferimento a https://amazone.com viene

rimpiazzato con https://amaz0ne.com In html:

<html>… <a href=https://amaz0ne.com> Click here to go to https://

amazone.com </a>…

</html> Quando l’user clicca sul link la richiesta viene

spedita per: https://amaz0ne.com Il certificato corrisponde con l’host richiesto…

Page 28: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Esempi di attacchi Referrer attack Il referrer header contiene l’url della pagina che l’utente

stava visualizzando quando ha cliccato sul link per la pagina corrente

Nelle form che utilizzano il metodo GET gli argomenti sono concatenati all’URL:es:www.ebay.com/confirm.htm?visa=123&item=7

Quando l’utente cliccherà sulla pagina aperta dal form submission questa stringa apparirà nel referrer header in richiesta alla nuova pagina

Gli argomenti vengono passati nel referrer header: Se la nuova pagina è HTTP sono passati in chiaro !!! Se anche fosse HTTPS ma di un altro sito gli argomenti

passati al primo sito saranno noti anche al secondo Soluzione: usare il metodo POST nei form in quanto, al

contrario di GET passa gli argomenti nel body della richiesta

Page 29: HTTPS Sicurezza 2003/2004 Simone Vallarino. Sommario Introduzione Che cosè Perché è nato e chi lha creato HTTPS = HTTP+SSL/TLS Connessione (HTTP over

Considerazioni finali HTTPS è sostanzialmente semplice e ben

funzionante

Ha trovato uso comune nelle applicazioni web (online shop ecc.)

Occorre tuttavia attenzione da parte dell’utente (vedi attacchi tipo substitution) e da chi progetta servizi web (vedi attacchi tipo referrer)

Un difetto ovvio: le prestazioni (intese come velocità “nel tempo”) sono inferiori al normale HTTP