Sicurezza delle applicazioni web: protocollo HTTP



Documenti analoghi
Sicurezza delle applicazioni web: protocollo HTTP

Attacchi Web - Introduzione alla sicurezza nelle applicazioni Web

Sicurezza delle applicazioni web: protocollo HTTP

Sicurezza delle applicazioni web: protocollo HTTP

Sicurezza delle applicazioni web: protocollo HTTP

Protocollo HTTP. Alessandro Sorato

Il Protocollo HTTP e la programmazione di estensioni Web

url uniform resource locator

Web e HTTP. path name. host name Realizzato da Roberto Savino.

Il protocollo HTTP e HTTPS

Web (1) Internet. Elementi di Sicurezza e Privatezza Lezione 9 Web Security (1) Chiara Braghin. chiara.braghin@unimi.it! 20/11/12. browser.

Architetture Web Protocolli di Comunicazione

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

PROTOCOLLI APPLICATIVI PER INTERNET

Stack protocolli TCP/IP

Elementi di Sicurezza e Privatezza Lezione 12 Web Security

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Protocolli applicativi basati su TCP/IP

Il protocollo HTTP (cont.)

Applicazioni Web, HTTP e REST. Matteo Vaccari Milano XP User Group, 3 ottobre 2007

Programmazione in Rete

Protocolli applicativi: FTP

OSOR. Applicazioni di Rete

Sessioni Applicative in Http. Tito Flagella

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

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

INFORMATICA DISTRIBUITA. lez 6 World Wide Web (cont)

Applicazioni web. Sommario. Parte 4 http. http Metodi, intestazioni e codici di stato get post Parametri e cookie. Applicazioni web.

Lezione 1 Introduzione

HTTP adaptation layer per generico protocollo di scambio dati

Programma del Corso. Laboratorio

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

Tito Flagella - Il protocollo HTTP

Approfondimento di Marco Mulas

WEB: Architettura Client Server

Capitolo 2 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Infrastrutture e Protocolli per Internet Laboratorio 1

Posta Elettronica e Web

Web applications security: HTTP protocol

Metodologie Informatiche Applicate al Turismo

appunti delle lezioni Architetture client/server: applicazioni client

Assignment (1) - Varie

Elementi di Sicurezza e Privatezza Laboratorio 6 - Vulnerabilità di applicazioni Web (1) Chiara Braghin chiara.braghin@unimi.it!

Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)

Architetture Applicative Il Web

Il protocollo HTTP. Caratteristiche del protocollo HTTP. Versioni del protocollo. Due tipologie di messaggi:

Session Management. Corrado Aaron Visaggio Sicurezza delle Reti e dei Sistemi Software A.A. 2012/2013. Session Management 1

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

Tecnologie di Sviluppo per il Web

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

Bibliografia: Utenti e sessioni

Infrastrutture e Protocolli per Internet Laboratorio 1

La sicurezza nel Web

Introduzione ad HTTP WWW. Fabio Vitali

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

Caratteristiche del protocollo HTTP. Il protocollo HTTP. Messaggi HTTP. Versioni del protocollo

Il protocollo HTTP. Ringraziamenti. Caratteristiche di HTTP. Introduzione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

SMS-Bulk Gateway interfaccia HTTP

Applicazioni Web 2013/14

Prova in itinere Esempio d esame 1

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

Cenni di programmazione distribuita in C++ Mauro Piccolo

Tecnologie di Sviluppo per il Web

Applicazioni Web 2014/15

Internet Architettura del www

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

19. LA PROGRAMMAZIONE LATO SERVER

Metodologie Informatiche Applicate al Turismo

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Programmazione Web. Introduzione

Inizializzazione degli Host. BOOTP e DHCP

URI. Introduzione. Pag. 1

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

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Esercitazione 8. Basi di dati e web

Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML

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

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

World Wide Web. Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML. Il Successo del Web. Protocolli di accesso

Introduzione alle applicazioni di rete

Hackathon Developers User Guide

Introduzione. Java HTTP. G. Prencipe

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Dal protocollo IP ai livelli superiori

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Internet e Tecnologia Web

SMSPortal. SMS-Gateway interfaccia SMTP. Versione , 2005, 2006 SMSPortal. Digitel Mobile Srl Via Raffaello, Pescara (Italy)

Elementi di Sicurezza e Privatezza Lezione 13 Web Security. Chiara Braghin

Elementi di Sicurezza e Privatezza Lezione 13 Web Security. Chiara Braghin. Cookie e Sicurezza

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

1 WIZARD DI AUTOCONFIGURAZIONE MAPI 1.1 INTERNET EXPLORER 8

Introduzione alla Posta Elettronica Certificata (PEC): le regole tecniche

HOWTO. SER_Gestione_Credenziali.doc

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Transcript:

Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2009/2010 Sicurezza delle applicazioni web: protocollo HTTP Roberto Paleari roberto@security.dico.unimi.it 23 Novembre 2009 R. Paleari Protocollo HTTP 23 Novembre 2009 1 / 28

Sommario 1 Introduzione 2 Introduzione al protocollo HTTP 3 Analisi e manipolazione di traffico HTTP 4 Sessioni HTTP R. Paleari Protocollo HTTP 23 Novembre 2009 2 / 28

Architettura infrastruttura web web browser page request server response spawn new worker web server spawn new worker interpreter HTML script query DB R. Paleari Protocollo HTTP 23 Novembre 2009 3 / 28

HTTP: HyperText Transfer Protocol Cos è? elemento fondamentale su cui si basa il Web protocollo di livello applicazione usato per trasferire dati tra client ed web server protocollo text-based, stateless in uso le versioni 1.0 (RFC 1945) e 1.1 (RFC 2616) incapsulato in connessioni TCP (default: porta 80) Goal trasmissione di documenti ed elementi multimediali oggi utilizzato in contesti diversi (e.g, SOAP) R. Paleari Protocollo HTTP 23 Novembre 2009 4 / 28

Richiesta pagina http://www.example.com/test.html browser DNS server web server A? www.example.com A 123.45.67.89 Client server DNS il browser interroga un server DNS per ottenere l indirizzo IP del server web R. Paleari Protocollo HTTP 23 Novembre 2009 5 / 28

Richiesta pagina http://www.example.com/test.html browser DNS server web server A? www.example.com A 123.45.67.89 GET /index.html HTTP/1.1 Client server web il browser si collega alla porta TCP 80 del server e invia una richiesta HTTP R. Paleari Protocollo HTTP 23 Novembre 2009 5 / 28

Richiesta pagina http://www.example.com/test.html browser DNS server web server A? www.example.com A 123.45.67.89 GET /index.html HTTP/1.1 HTTP/1.1 200 OK Client server web il server web processa la richiesta ricevuta e restituisce una riposta (e.g., la pagina HTML) R. Paleari Protocollo HTTP 23 Novembre 2009 5 / 28

Richieste HTTP Struttura 1 request line (e.g., GET /index.html HTTP/1.1) 2 header (opzionali, e.g., User-Agent: Mozilla/5.0 (X11; U; Linux i686) 3 linea vuota 4 corpo del messaggio (opzionale) Note request line e header terminati da CRLF ( \r\n ) linea vuota CRLF implementazioni flessibili (e.g., richieste accettate anche con linee terminate da LF) R. Paleari Protocollo HTTP 23 Novembre 2009 6 / 28

Request line e metodi HTTP metodo risorsa versione GET /index.html HTTP/1.1 R. Paleari Protocollo HTTP 23 Novembre 2009 7 / 28

Request line e metodi HTTP metodo risorsa versione GET /index.html HTTP/1.1 Metodi (GET /index.html HTTP/1.1) GET per recuperare la risorsa specificata HEAD simile a GET, ma il server non restituisce il corpo POST richiesta che include dati del body, come ad esempio: dati da inserire in un forum, newsgroup, mailing list,... dati provenienti da un form di un altra pagina HTML input da inserire in un database HTTP/1.1 aggiunti OPTIONS, PUT, DELETE, TRACE, CONNECT R. Paleari Protocollo HTTP 23 Novembre 2009 7 / 28

Risorsa e versione del protocollo Risorsa (GET /index.html HTTP/1.1) specificata tramite URI assoluta o path assoluto URI assoluta solo quando si effettua una richiesta attraverso un proxy (e.g., GET http://security.dico.unimi.it/index.html HTTP/1.1) path assoluto per richieste dirette al server (e.g., GET /index.html HTTP/1.1) Versione del protocollo (GET /index.html HTTP/1.1) major/minor number della versione del protocollo in 1.1 è obbligatorio inserire l header Host normalmente viene utilizzata la versione 1.1 R. Paleari Protocollo HTTP 23 Novembre 2009 8 / 28

Request header principali Authorization credenziali di autenticazione e.g., Basic + username:password, codificato in base64 (roberto:mypassword cm9izxj0bzptexbhc3n3b3jkcg==) If-Modified-Since il server resistuisce la risorsa solo se modificata dopo la data specificata Referer pagina di provenienza User-Agent agente con cui è stata effettuata la richiesta Entity header Contiene meta-informazioni sul body, ad esempio: Content-Length lunghezza del payload contenuto nella richiesta Content-Type tipo di payload (e.g., application/x-www-form-urlencoded) R. Paleari Protocollo HTTP 23 Novembre 2009 9 / 28

Request header principali User-Agent Browser/OS User-Agent Mozilla/Linux Mozilla/5.0 (X11; U; Linux i686; en-us; rv:1.7.8)... Mozilla/Win XP Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1)... Opera 8.50/Win XP Opera/8.50 (Windows NT 5.1; U; en) IE 1.5/Win NT Mozilla/1.22 (compatible; MSIE 1.5; Windows NT) IE 2.0/Win 95 Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) IE 3.01/Win 98 Mozilla/2.0 (compatible; MSIE 3.01; Windows 98) IE 7.0b1/Win XP Mozilla/4.0 (compatible; MSIE 7.0b; Win32) IE 7.0b/Win Vista Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)...... R. Paleari Protocollo HTTP 23 Novembre 2009 10 / 28

Request header principali User-Agent Browser/OS User-Agent Mozilla/Linux Mozilla/5.0 (X11; U; Linux i686; en-us; rv:1.7.8)... Mozilla/Win XP Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1)... Opera 8.50/Win XP Opera/8.50 (Windows NT 5.1; U; en) IE 1.5/Win NT Mozilla/1.22 Quanto (compatible; sonomsie 1.5; Windows NT) IE 2.0/Win 95 Mozilla/1.22 attendibili (compatible; gli header? MSIE 2.0; Windows 95) IE 3.01/Win 98 Mozilla/2.0 (compatible; MSIE 3.01; Windows 98) IE 7.0b1/Win XP Mozilla/4.0 (compatible; MSIE 7.0b; Win32) IE 7.0b/Win Vista Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)...... R. Paleari Protocollo HTTP 23 Novembre 2009 10 / 28

Esempio richiesta HTTP (GET) GET /index.html HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-us; rv:1.8.1.1)... Accept: text/xml,text/html;q=0.9,text/plain;q=0.8,*/*;q=0.5 Accept-Language: it,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.google.com/ If-Modified-Since: Fri, 05 Jan 2007 14:30:45 GMT If-None-Match: "7f0f1-7-ecdaaf40" R. Paleari Protocollo HTTP 23 Novembre 2009 11 / 28

Esempio richiesta HTTP (POST) POST /test.php HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-us; rv:1.8.1.1)... Accept: text/xml,text/html;q=0.9,text/plain;q=0.8,*/*;q=0.5 Accept-Language: it,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.google.com/ Content-Type: application/x-www-form-urlencoded Content-Length: 11 testo=prova R. Paleari Protocollo HTTP 23 Novembre 2009 12 / 28

Risposte HTTP Struttura 1 status-line (e.g., HTTP/1.1 200 OK) 2 header (opzionali) (e.g., Server: Apache/2.2.3) 3 linea vuota 4 corpo del messaggio (opzionale) status-line e header terminati da CRLF linea vuota = CRLF Status line 1 versione del protocollo (e.g., HTTP/1.1) 2 status code (risultato dell operazione, e.g., 200) 3 testo associato allo status code (e.g., OK) R. Paleari Protocollo HTTP 23 Novembre 2009 13 / 28

Status code tre cifre: la prima indica la classe della risposta, le altre due precisano il significato Classi di risposta 1xx informazione - richiesta ricevuta parzialmente, il client deve completarla (HTTP 1.1) 2xx successo - azione ricevuta, compresa e accettata con successo 3xx redirezione - necessarie altre azioni per completare la richiesta 4xx client error - richiesta con sintassi errata o non soddisfacibile 5xx server error - il server non è in grado di rispondere ad una richiesta valida R. Paleari Protocollo HTTP 23 Novembre 2009 14 / 28

Codici di risposta Esempi Codice Descrizione 200 OK 201 Created 202 Accepted 301 Moved Permanently 307 Temporary Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 500 Internal Server Error 503 Service Unavailable R. Paleari Protocollo HTTP 23 Novembre 2009 15 / 28

Response header principali Server informazioni generali sul server web Location utilizzato nei redirect, indica la locazione della risorsa Last-Modified quando la risorsa è stata modificata (per caching) Content-Length lunghezza del payload Content-Type tipo di payload Esempio HTTP/1.1 200 OK Date: Fri, 05 Jan 2007 14:55:09 GMT Server: Apache/2.2.3 (Debian) PHP/4.4.4-8 Last-Modified: Fri, 05 Jan 2007 14:30:45 GMT ETag: "7f0f1-7-ecdaaf40" Accept-Ranges: bytes Content-Length: 5 Content-Type: text/html; charset=utf-8 ciao R. Paleari Protocollo HTTP 23 Novembre 2009 16 / 28

Passaggio parametri Metodo GET l utente passa i dati all applicazione attraverso form HTML o tecnologie lato client tutto si deve tradurre in richieste HTTP Caso 1: passaggio parametri tramite form <form action="submit.php" method="get"> <input type="text" name="var1" /> <input type="hidden" name="var2" value="b" /> <input type="submit" value="invia" /> </form> Caso 2: parametri embedded nell URL <a href="submit.php?var1=a&var2=b">link</a> Richiesta corrispondente GET /submit.php?var1=a&var2=b HTTP/1.1 Host: www.example.com... R. Paleari Protocollo HTTP 23 Novembre 2009 17 / 28

Passaggio parametri Metodo POST Ex.1: parametri POST <form action="submit.php" method="post"> <input type="text" name="var1" /> <input type="text" name="var2" /> <input type="submit" value="invia" /> </form> POST /submit.php HTTP/1.1 Host: localhost... Content-Type: application/x-www-form-urlencoded Content-Length: 13 var1=a&var2=b R. Paleari Protocollo HTTP 23 Novembre 2009 18 / 28

Passaggio parametri Metodo POST Ex.1: parametri POST <form action="submit.php" method="post"> <input type="text" name="var1" /> <input type="text" name="var2" /> <input type="submit" value="invia" /> </form> POST /submit.php HTTP/1.1 Host: localhost... Content-Type: application/x-www-form-urlencoded Content-Length: 13 var1=a&var2=b Ex.2: GET + POST <form action="test.php?var3=c&var4=d" method="post"> <input type="text" name="var1" /> <input type="text" name="var2" /> <input type="submit" value="invia" /> </form> POST /test.php?var3=c&var4=d HTTP/1.1 Host: localhost... Content-Type: application/x-www-form-urlencoded Content-Length: 13 var1=a&var2=b R. Paleari Protocollo HTTP 23 Novembre 2009 18 / 28

Traffico HTTP payload incapsulato in pacchetti TCP (default: porta 80) comunicazione in chiaro Monitoring del traffico per analisi black-box dell applicazione web strumenti di sniffing (e.g., ngrep, tcpdump, wireshark,... ) non consentono l analisi di traffico TLS/SSL R. Paleari Protocollo HTTP 23 Novembre 2009 19 / 28

Traffico HTTP payload incapsulato in pacchetti TCP (default: porta 80) comunicazione in chiaro Monitoring del traffico per analisi black-box dell applicazione web strumenti di sniffing (e.g., ngrep, tcpdump, wireshark,... ) non consentono l analisi di traffico TLS/SSL Manipolazione HTTP browser tradizionali proxy netcat, curl,... Manipolazione HTTPS estensioni browser (e.g., Firefox Tamper Data) proxy R. Paleari Protocollo HTTP 23 Novembre 2009 19 / 28

Proxy HTTP modifica del traffico HTTP/HTTPS indipendenti dall applicazione HTTPS: il browser notificherà l errore nella verifica del certificato SSL Alcuni proxy HTTP WebScarab (http://www.owasp.org/) Burp (http://www.portswigger.net/proxy/) Paros (http://www.parosproxy.org/ R. Paleari Protocollo HTTP 23 Novembre 2009 20 / 28

Proxy HTTP modifica del traffico HTTP/HTTPS indipendenti dall applicazione HTTPS: il browser notificherà l errore nella verifica del certificato SSL Alcuni proxy HTTP WebScarab (http://www.owasp.org/) Burp (http://www.portswigger.net/proxy/) Paros (http://www.parosproxy.org/ R. Paleari Protocollo HTTP 23 Novembre 2009 20 / 28

Sessioni HTTP Introduzione Problema stateless: ogni richiesta è indipendente dalle precedenti applicazioni web dinamiche richiedono il concetto di sessione come fare? A cosa serve una sessione? evitare login ad ogni pagina memorizzare preferenze utente tenere traccia di azioni precedenti (e.g., shopping cart)... R. Paleari Protocollo HTTP 23 Novembre 2009 21 / 28

Sessioni HTTP Soluzioni concetto di sessione implementato dall applicazione web informazioni sulla sessione corrente trasmesse client e server Come trasmettere le informazioni di sessione? R. Paleari Protocollo HTTP 23 Novembre 2009 22 / 28

Sessioni HTTP Soluzioni concetto di sessione implementato dall applicazione web informazioni sulla sessione corrente trasmesse client e server Come trasmettere le informazioni di sessione? 1 payload HTTP <INPUT TYPE="hidden" NAME="sessionid" VALUE="7456"> R. Paleari Protocollo HTTP 23 Novembre 2009 22 / 28

Sessioni HTTP Soluzioni concetto di sessione implementato dall applicazione web informazioni sulla sessione corrente trasmesse client e server Come trasmettere le informazioni di sessione? 1 payload HTTP 2 URL <INPUT TYPE="hidden" NAME="sessionid" VALUE="7456"> http://www.example.com/page.php?sessionid=7456 R. Paleari Protocollo HTTP 23 Novembre 2009 22 / 28

Sessioni HTTP Soluzioni concetto di sessione implementato dall applicazione web informazioni sulla sessione corrente trasmesse client e server Come trasmettere le informazioni di sessione? 1 payload HTTP 2 URL <INPUT TYPE="hidden" NAME="sessionid" VALUE="7456"> http://www.example.com/page.php?sessionid=7456 3 header HTTP (e.g., Cookie) GET /page.php HTTP/1.1 Host: www.example.com... Cookie: sessionid=7456... R. Paleari Protocollo HTTP 23 Novembre 2009 22 / 28

Cookie Cosa sono? dati creati dal server e memorizzati sul client trasmessi tra client e server utilizzando header HTTP Client Server GET / HTTP/1.1 Host: www.google.com... GET / HTTP/1.1 Host: www.google.it Cookie: PREF=ID...... HTTP/1.1 302 Found Location: http://www.google.it/ Set-Cookie: PREF=ID...... R. Paleari Protocollo HTTP 23 Novembre 2009 23 / 28

Cookie Struttura Attributo nome=valore expires path domain secure Descrizione dati generici (unico campo obbligatorio) data di scadenza percorso per il quale il cookie è valido dominio per il quale il cookie è valido (e.g.,.google.it) flag che indica se il cookie deve essere trasmesso solo attraverso un canale sicuro standardizzati in RFC 2109 R. Paleari Protocollo HTTP 23 Novembre 2009 24 / 28

Sessioni Due possibilità per realizzare una sessione: 1 dati inseriti manualmente nelle richieste/risposte (obsoleto e insicuro) 2 meccanismo implementato dal linguaggio di programmazione Cookie di sessione tecnica maggiormente utilizzata dati di sessione memorizzati sul server al client è passato un id di sessione tramite cookie ad ogni richiesta, il client spedisce i cookie al server (e.g., Cookie: PHPSESSID=da1dd139f08c50b4b1825f3b5da2b6fe) il server recupera le informazioni di sessione tramite l id R. Paleari Protocollo HTTP 23 Novembre 2009 25 / 28

Sessioni Sicurezza elemento critico (e.g., usate per autenticazione) rischio: bypass del sistema ti autenticazione! devono essere valide per un periodo di tempo limitato Attacco intercettazione predizione brute force session fixation Possibili soluzioni SSL/TLS generatori pseudocasuali efficaci lunghezza id controllo IP, Referer, rigenerazione id R. Paleari Protocollo HTTP 23 Novembre 2009 26 / 28

Sessioni Sicurezza Session hijacking Vittima Attaccante Web server GET /login.php?user=foo&pass=bar Set-Cookie: sessionid=23245 GET /main.php Cookie: sessionid=23245 R. Paleari Protocollo HTTP 23 Novembre 2009 27 / 28

Sessioni Sicurezza Session fixation Vittima Attaccante Web server GET /index.php Set-Cookie: sessionid=23245 http://www.target.it/?sessionid=23245 GET /?sessionid=23245 GET /login.php?user=foo&pass=bar R. Paleari Protocollo HTTP 23 Novembre 2009 28 / 28