PDF 2up
Transcript
PDF 2up
Autunno 2004 Prof. Roberto De Prisco Applicazioni Riferimento: Comer, Cap. 21,25-28,32 Università degli studi di Salerno Laurea e Diploma in Informatica Applicazioni Autunno 2004 2 TEORIA (Lez. 17) Distinzione fra Programma per interazione con l’utente Es. Browser Protocollo per lo scambio di dati Es. HTTP (Hyper Text Transmission Protocol) Il protocollo è unico (se è uno standard) Le implementazioni del programma varie Es. Netscape, Internet Explorer, Firefox, … 1 Protocolli applicativi Autunno 2004 3 TEORIA (Lez. 17) Il protocollo è l’aspetto che ci interessa Vedremo SMTP: Simple Mail Transfer Protocol Usato per la posta elettronica Protocolli correlati: POP e IMAP HTTP: HyperText Transmission Protocol Usato per le pagine Web Cenni ad altre applicazioni Telnet, Ssh, Ftp, NFS Modello client-server Server e client Autunno 2004 4 TEORIA (Lez. 17) Un server è un qualsiasi programma che offre un servizio accessibile su una rete È sempre in esecuzione Accetta richieste, esegue ogni richiesta e spedisce il risultato al richiedente Un client è un qualsiasi programma in esecuzione quando invia una richiesta ad un server e aspetta una risposta 2 Server Autunno 2004 5 TEORIA (Lez. 17) I server possono essere semplici o complessi Per i server più semplici Una richiesta arriva in un unico datagram IP La risposta viene rispedita al richiedente in un unico datagram IP Es. server dell’echo Es. server dell’orario Spedisce al client qualsiasi cosa il client invia nella richiesta Spedisce al client l’ora locale Un server può essere molto complesso Server Web Autunno 2004 Un esempio: server di echo Il server di echo È in esecuzione su una macchina con indirizzo I1 Riceve richieste sulla porta 7 (ben nota) Un client 6 TEORIA (Lez. 17) Gira su una macchina all’indirizzo I2 Sceglie una porta locale non utilizzata, es. 13000 Apre una connessione TCP fra i punti (I2,13000) e (I1,7) Invia una richiesta al server contenente i dati “Ciao” Il server Riceve la richiesta e rispedisce al client i dati “Ciao” Chiude la connessione TCP 3 Punti importanti Inizia l’esecuzione prima del client Continua ad accettare richieste senze smettere Tranne quando ci sono dei guasti Utilizza una porta ben nota per offrire il servizio Per i server standard ci sono delle porte riservate Un client Invia una richiesta e riceve una risposta Solitamente termina l’esecuzione dopo aver usufruito del servizio Utilizza una porta arbitraria, inutilizzata e non riservata per servizi standard Complessità del server Autunno 2004 8 TEORIA (Lez. 17) Alcuni server sono molto semplici 7 TEORIA (Lez. 17) Un server Autunno 2004 Echo, ora locale, lista utenti collegati, citazione del giorno I server semplici funzionano nel seguente modo: 1. Il server aspetta una richiesta 2. Quando la richiesta arriva il server esegue le istruzioni necessarie a soddisfare la richiesta 3. Spedisce la risposta e riprende dal punto 1. Durante l’esecuzione del punto 2, il server non può accettare altre richieste Un tale server è detto iterativo 4 Server ricorsivo Autunno 2004 9 TEORIA (Lez. 17) Un server iterativo va bene quando il lavoro da svolgere per ogni richiesta è minimo Altrimenti ci sarebbe troppo tempo in cui il server non accetta richieste Fatta eccezione per i casi più semplici, il server non può essere iterativo Server ricorsivo è sempre disponibile ad accettare richieste Possono eserci dei limiti alnumero di connessioni È simile a quello iterativo con la differenza che la richiesta viene soddisfatta da una copia del server Server ricorsivo Autunno 2004 10 TEORIA (Lez. 17) Funziona nel seguente modo 1. Il server aspetta una richiesta 2. La richiesta arriva ed il server crea una copia di se stesso (fork) per gestire la richiesta 3. Ritorna al punto 1 La richiesta viene eseguita dalla copia del server Il tempo necessario per eseguire 2 è trascurabile, quindi il server è sempre in attesa di una richiesta Permette di gestire simultaneamente più client 5 Posta elettronica Autunno 2004 11 TEORIA (Lez. 17) La posta elettronica (email) è stata la prima applicazione con ampio successo Programma applicativo permette la lettura Assume che la posta sia già arrivata O la recupera da un mail server Gestisce solo l’interazione con l’utente Es. Windows: Outlook, Linux: elm, Kmail Protocollo SMTP Usa lo standard MIME per rappresentare i messaggi di posta elettronica Permette la gestione di oggetti qualsiasi (non solo testo) MIME Autunno 2004 12 TEORIA (Lez. 17) Multipurpose Internet Mail Extensions Regole per rappresentare i messaggi I messaggi devono essere in testo ASCII Permette la stampa e la visualizzazione perché ogni byte di dati è un carattere ASCII Ogni messaggio ha Intestazione Con informazioni generali Corpo Con i dati, divisi in più parti se necessario 6 MIME Intestazione Autunno 2004 13 TEORIA (Lez. 17) L‘intestazione contiene Una serie di righe terminate da <CRLF> È separata dal corpo da una riga vuota Ogni riga contiene un tipo ed un valore separati da un “:” To: identifica il destinatario Subject: l’oggetto del messaggio Ci sono molte altre tipi (RFC 822) Es. Content-Type: multipart/mixed permette di avere un messaggio diviso in più parti MIME corpo Autunno 2004 14 TEORIA (Lez. 17) Il corpo contiene la definizione di ogni singola parte e del suo contenuto Tipi di contenuto previsto Text, per il testo Image, per immagini Application, per i dati prodotti da applicazioni Audio, Video, Multipart, Message Alcuni tipi prevedono dei sottotipi Text/plain, Text/richtext Image/jpg, image/png, image/gif Application/postscript, application/word 7 MIME codifica Autunno 2004 15 TEORIA (Lez. 17) Poiché i dati originali possono non essere in formato ASCII occorre codificarli I messaggi devono passare attraverso gateway di posta elettronica che sono stati progettati per manipolare messaggi di testo ASCII a 7 bit Tutto il messaggio MIME è stampabile in formato testo (vantaggio per i programmi con interfaccia testuale) Content-Transfer-Encondig: base64 Utilizza 64 caratteri ASCII stampabili, 6 bit Ogni 3 byte di dati (24 bit) sono rappresentati con 4 di questi caratteri (4*6=24 bit) MIME esempio Autunno 2004 16 TEORIA (Lez. 17) From: [email protected] To: [email protected] Subject: invio foto MIME-version: 1.0 Content-Type: multipart/mixed boundary=NextPart --NextPart Ciao Tizio, ecco una foto. Saluti da Pinco. --NextPart Content-Type: image/gif Content-Transfer-Encoding: base64 begin 644 Auyt&tuiytQ768quiyQuy8IUy98y1iujksiuq7(/O))8 … 8 SMTP Autunno 2004 17 TEORIA (Lez. 17) MIME permette di rappresentare un messaggio Permette di includere qualsiasi oggetto Immagini, video, audio, etc SMTP Permette di trasferire i messaggi Dalla macchina mittente alla macchina destinatario Un file (mailbox) contiene la posta elettronica in arrivo Viene stabilita una connessione TCP Ovviamente ci deve essere un server che parla SMTP Ogni host ha un tale programma (mail daemon) Il più diffuso (Linux) è sendmail Programma di posta (mail reader) Permette all’utente di accedere alla propria mailbox Outlook, elm, pine, … Autunno 2004 Il modello di posta elettronica 18 TEORIA (Lez. 17) Quando spediamo una lettera Non vogliamo aspettare che venga recapitata Semplicemente la mettiamo nella cassetta della posta Quando il postino porta la lettera Se non siamo in casa non aspetta La lascia nella cassetta della posta Per i messaggi elettronici valgono gli stessi principi Aree di spooling Concettualmente sono le cassette della posta, sia in entrata che in uscita 9 Autunno 2004 Spooling Utente invia la posta Programma utente 19 TEORIA (Lez. 17) Area di spool in uscita Trasferimento in background Disco Deamon di posta Area di spool in entrata Programma Utente legge la posta utente Deamon di posta Disco Connessione TCP uscita Connessione TCP entrata Server mailbox SMTP e gateway di posta Autunno 2004 20 TEORIA (Lez. 17) È possibile che il sendmail della macchina mittente stabilisca una connessione diretta SMTP/TCP con il sendmail della destinazione In molti casi però la posta passa per varie altre macchine intermedie Mail gateway (o portali di posta) Chiamati gateway perché svolgono la stessa funzione dei gateway IP, ma operano sui messaggi di posta Gateway di posta Programma Programma utente utente Disco Deamon di posta Disco Deamon di posta SMTP/TCP Disco Deamon di posta SMTP/TCP 10 Gateway di posta Autunno 2004 21 TEORIA (Lez. 17) Perché servono? Il mittene può parlare via TCP direttamente con il destinatario Indirizzi non contenenti il nome dell’host [email protected] [email protected] [email protected] Richiede che il mittente ed il destinatario siano sempre disponibili Le stazioni di lavoro di singoli utente spesso non sono attive (accessibili via rete) Es. miopc.dia.unisa.it potrebbe essere spento Connessioni temporanee Connessione da casa con jumpy, libero, tin … SMTP dettagli protocollo Autunno 2004 22 TEORIA (Lez. 17) L’utente scrive un messagio tamite il programma utente Il messaggio viene meorizzato in un buffer di uscita Client (demone posta mittente) si connette al server (demone posta destinatario) Il client invia dei comandi: HELO MAIL FROM: utente RCPT: utente DATA QUIT inizializzazione specifica il mittente specifica il destinatario segue il messaggio chiude la connessione Il server risponde con messaggi di Ok o di errore Es. utente sconosciuto 11 Autunno 2004 SMTP dettagli protocollo 23 TEORIA (Lez. 17) C: S: C: S: C: MAIL FROM:<[email protected]> S: 250 OK C: RCPT TO:<[email protected]> S: 250 Ok C: S: C: C: C: S: C: QUIT S: 221 posta.libero.it closing transmission channel telnet posta.libero.it 25 220 posta.libero.it SMTP Ready HELO mail.jumpy.it 250 posta.libero.it DATA 354 Start mail input; end with . on new line Ciao Tiziocaio, questo e’ un messaggio da pincopallino. . 250 Ok MIME Posta: programma utente Autunno 2004 24 TEORIA (Lez. 17) I demoni di posta Spostano i messaggi di posta dal mittente al destinatario Server di posta Macchina dove gira il demone di posta Il programma utente permette Al mittente di scrivere il messaggio Al destinatario di recuperarlo dalla mailbox Non deve girare necessariamente sul server di posta In tal caso servono ulteriori protocolli di comunicazione: POP e IMAP 12 POP e IMAP Autunno 2004 25 TEORIA (Lez. 17) Sono simili IMAP ha delle funzionalità in più POP (Post Office Protocol) Versione corrente 3 (POP3) L’utente attiva un client POP Crea una connessione TCP a un server POP Si autentica per mezzo di una password Recupera i messaggi Sul server POP è attivo anche il server SMTP I due server devono coordinarsi per l’accesso ai messaggi POP3 potrebbe cancellare messaggi SMTP scrive i messaggi in arrivo POP e IMAP Autunno 2004 26 TEORIA (Lez. 17) IMAP (Internet Message Access Protocol) Versione corrente 4 (IMAP4) Funzionalità in più Si possono ottenere informazioni sui messaggi, esaminare i campi dell’intestazione senza recuperare il messaggio Si può fare la ricerca di una stringa e recuperare solo parti specifiche di un messaggio Spedizione di un messaggio Viene usato direttamente il protocollo SMTP POP e IMAP servono solo a recuperare i messaggi 13 HTTP e World Wide Web Autunno 2004 27 TEORIA (Lez. 17) World Wide Web (WWW) Ha avuto un successo strepitoso ed è usata da tantissime persone Per i meno esperti Internet è il Web Successo dovuto all’utilizzo nel campo commerciale Come per il servizio di posta Il programma utente, detto browser Netscape, Internet Explorer, Mozilla, … Protocollo HTTP, HyperText Transmission Protocol WWW Autunno 2004 28 TEORIA (Lez. 17) Il WWW è collezione di documenti (pagine) Sparse un pò dappertutto su host connessi ad Internet Server Web è una macchina su Internet che memorizza pagine Web e le fornisce su richiesta Ogni pagina ha un proprio indirizzo Esattamente come ogni computer su Internet ha un indirizzo IP Ovviamente occorre un indirizzamento adeguato Es. Indirizzi IP non vanno bene! 14 Indirizzi Web: URL Autunno 2004 29 TEORIA (Lez. 17) Uniform Resource Locator [protocollo://] host [:porta] [path] [;parametri] [?query] Protocollo: HTTP (HTTPS, FTP, …) Host: nome del computer (DNS o indirizzo IP) Porta: porta usata del server Web (default 80) Path: path del file sul server contenente la pagina Web Parametri: per fornire ulteriori informazioni Query: permette al browser di inviare delle richieste http://www.dia.unisa.it/robdep www.google.it Web Autunno 2004 30 TEORIA (Lez. 17) Inserendo un URL in un browser Il browser apre una connessione TCP con l’host (server) specificato nell’URL Fa richiesta del file nell’URL In assenza del file il server solitamente è configurato per fornire un file di default Index.html Il file (pagina web) viene trasferito tramite il protocollo HTTP Il file è scritto in linguaggio di descrizione detto HTML (HyperText Markup Language) Il browser visualizza la pagina Web interpretando la descrizione HTML 15 Autunno 2004 Web 31 TEORIA (Lez. 17) Server Richiesta pagina T HT P pagina <HTML> <HEAD> <Title>Titolo Pagina</Title> </HEAD> <BODY> Questa è una pagina Web <IMG SRC=“picture.gif”> </BODY> </HTML> Browser HTTP Autunno 2004 32 TEORIA (Lez. 17) Scambio dati fra browser e server Web: Presuppone una connessione TCP Richiesta/Risposta Senza stato Ogni transazione non condivide nulla con le altre Cookies sono usati per condividere informazioni Trasferimento bidirezionale Negoziazione delle opzioni Browser e server web possono concordare dettagli (es. insieme di caratteri) Supporto per la cache Browser memorizza le pagine scaricate precedentemente Supporto per proxy Ci possono essere dei computer intermediari fra il browser ed il server 16 HTTP Autunno 2004 33 TEORIA (Lez. 17) Formato generale dei messaggi è CMD URL VERSIONE-PROTOCOLLO LINEE_DI INTESTAZIONE CORPO DEL MESSAGGIO La prima riga indica Il comando, la pagina web su cui operare, la versione di HTTP da utilizzare Ogni linea nell’intestazione specifica opzioni e parametri relativi alla richiesta/risposta Dopo la riga vuota c’è il contenuto Solitamente vuoto per le richieste Contiene la pagina web nelle risposte Negoziazione opzioni Autunno 2004 34 TEORIA (Lez. 17) L’intestazione permette di concordare le opzioni guidate dal server Il browser spedisce una lista di preferenze, il server ne sceglie una da usare guidate dal browser Il browser chiede al server le opzioni disponibili, il server invia la lista, il browser sceglie Accept: text/html, text/plain; q=0.5, text/x-dvi; q=0.8 Il browser preferisce Text/html, se non c’è accetta text/x-dvi e se nemmeno questo c’è accetta text/plain q è il livello di preferenza (se è omesso è 1) q=0 implica che l’opzione non è accettabile 17 HTTP GET Autunno 2004 35 TEORIA (Lez. 17) GET: comando per richiedere una pagina Basta una sola riga GET http://www.dia.unisa.it/index.html HTTP/1.1 O si può usare l’intestazione Ad esempio per specificare l’host GET index.html HTTP/1.1 Host: www.dia.unisa.it La risposta, se non ci sono errori, è la pagina web richiesta Altri comandi di richiesta Autunno 2004 36 TEORIA (Lez. 17) GET Recupera una pagina (file) dal server all’indirizzo specificato HEAD Informazioni sulla pagina (senza la pagina) POST Fornisce al server nuovi dati relativi alla pagina web Permette il posting di un msg ad newsgroup Un nuovo file PUT Chiede di memorizzare la pagina all’indirizzo specificato DELETE Chiede di cancella la pagina 18 Messaggi di risposta Autunno 2004 37 TEORIA (Lez. 17) La riga iniziale contiene un codice HTTP/1.1 202 Accepted … … 202 indica che non ci sono stati problemi HTTP/1.1 404 Not found 404 indica che il file non è stato trovato sul server Categorie codici di risposta: 1xx Informazione Richiesta ricevuta, l’elaborazione continua 2xx Successo Richiesta soddisfatta 3xx Redirezione Sono richieste ulteriori azioni per completare 4xx Errore client La richiesta ha degli errori o non può essere soddisfatta 5xx Errore server Errore del server (la richiesta è apparentemente valida) Richieste condizionali Autunno 2004 38 TEORIA (Lez. 17) Per motivi di efficienza HTTP consente di spedire richieste condizionali Se il file richiesto non è stato modificato dall’ultima volta, allora non serve rispedirlo Il browser può visualizzare quello precedente La seguente intestazione, inviata con una richiesta GET If-Modified-Since: Mon, 17 January 2005, 14:19:01 GMT Fa sì che il server controlli la data di modifica del file Se è anteriore alla data specificata allora il file non verrà spedito Verrà spedito un messaggio che dice che la copia locale è aggiornata 19 Server proxy Autunno 2004 39 TEORIA (Lez. 17) Forniscono una ottimizzazione del servizio Web Fanno diminuire il carico dei server Fanno diminuire il tempo di attesa Il proxy contiene copie delle pagine Web Ad esempio un’azienda può decidere di avere dei server proxy Le richieste di pagine Web verrano fatte ai proxy I proxy devono ottenere la pagine Web se non le hanno Contattano il server Web dell’azienda Il traffico sul server Web diminuisce notevolmente HTTP include alcune intestazione per i proxy Max-Forwards: 1 limita i proxy ad uno solo Cache browser e proxy Autunno 2004 40 TEORIA (Lez. 17) La prima volta che si accede ad una pagina Deve essere scaricata dal server e Memorizzata dal browser, da un proxy o da entrambi Se la si mantiene in memoria, al prossimo accesso non servirà ricontattare il server La memoria utilizzata per tale memorizzazione è detta cache Problema delle pagine obsolete Si possono impostare delle scadenze Si può usare l’If-Modified-Since 20 Autunno 2004 Accesso Remoto 41 TEORIA (Lez. 17) Un applicazione di accesso remoto consente ad un utente di operare su un computer remoto come se l’utente fosse ad un terminale del computer remoto Sul computer remoto deve essere in esecuzione un server che permette tale accesso Il client può connettersi al server Spedisce tutto ciò che l’utente digita sulla tastiera al server Il server interpreta i tasti sul computer remoto, esegue le istruzioni e spedisce i risultati Il client visualizza i risultati sul computer locale Autunno 2004 Telnet 42 TEORIA (Lez. 17) Telnet implementa l’accesso remoto Telnet è il nome sia dell’applicazione chiaramente sia il lato server che il lato client Ma anche del protocollo >telnet foo.co Blah blah blah xxxx server client telnet telnet Sistema Operativo Internet Sistema Operativo TELNET/TCP 21 Telnet È più complicato di quanto sembri Gestione dei caratteri di controllo Normalmente termina il programma in esecuzione, in questo caso il client TELNET Non è l’effetto desiderato Eterogeneità dei sistemi Il computer locale e quello remoto potrebbero avere sistemi operativi diversi Es. CR, LF e CR+LF ASCII a 7 bit e ASCII a 8 bit Controllo del terminale Trasferimento file Autunno 2004 44 TEORIA (Lez. 17) Molti sistemi di rete permettono l’accesso a file su macchine remote Obiettivi 43 TEORIA (Lez. 17) Es. CTRL-C Autunno 2004 Diminuire il costo generale delle macchine I file risiedono su un file server Le singole macchine non hanno bisogno di dischi (diskless) Il file server remoto viene usato solo per copie di backup Un file server permette la condivisione dei dati Archiviare i dati Condividere i dati Accesso Copia il file viene prima copiato e poi modificato localmente file modificato sul file server Trasparente (in linea) 22 Accesso con copia Prima copiato sul disco locale Poi modificato localmente Vantaggi Più facile da implementare Svantaggi Conversione del formato fra macchine diverse Le modifiche si applicano solo alle copie 45 TEORIA (Lez. 17) Il file viene Autunno 2004 Trasferimento Client-server, FTP Autunno 2004 FTP (File Transfer Protocol) Può essere usato Da programmi In modo interattivo Supporta vari formati 46 TEORIA (Lez. 17) Binario, testo ASCII o EBCDIC Autenticazione Utente e password per accedere al file remoto Due connessioni TCP Server usa le porte ben note 21, per una connessione di controllo 20, per il trasferimento dei file 23 Esempio sessione FTP Autunno 2004 47 TEORIA (Lez. 17) prompt> ftp ftp.cs.purdue.edu Connected to lucan.cs.purdue.edu 220 lucan.cs.purdue.edu FTP server (Version wu-2.4.2-VR6 ready) Name (ftp.cs.purdue.edu:user): anonymous 331 Guest login ok, send email address as password Password: guest 230 Guest login ok, access restriction apply ftp> get pub/comer/tcpbook.tar bookfile 220 PORT command ready 150 Open ASCII mode data connection for tcpbook.tar (9895469 bytes). 226 Transfer complete 9895469 bytes received in 22.76 seconds (4.3e+02 Kbytes/s) ftp> close 221 goodbye ftp> quit Accesso trasparente Il file remoto “sembra” un file locale Vantaggi Autunno 2004 48 TEORIA (Lez. 17) È più facile da usare Dal punto di vista dell’utente non c’è differenza fra un file locale ed uno remoto Svantaggi È più difficile da implementare Gestire gli accessi contemporanei Collegare i nomi di file su sistemi diversi Se il file server non è disponibile (o lento) l’utente non può procedere 24 NFS (Network File System) Autunno 2004 49 TEORIA (Lez. 17) Implementa l’accesso trasparante Dal punto di vista dell’utente è praticamente invisibile Applicazione Sistema Operativo Kernel Utente File system locale NFS client Disco locale Connessione al server NFS Sicurezza Autunno 2004 50 TEORIA (Lez. 17) Telnet, FTP, NFS non sono “sicuri” Spediscono i dati in chiaro Se qualcuno riesce ad intercettare i pacchetti può leggere i dati Anche la password Si può usare la crittografia per evitare il problema SSH è la versione “sicura” di telnet SFTP è la versione “sicura” di FTP 25 Autunno 2004 Problema della sicurezza Le reti di calcolatori sono una risorsa condivisa È possibile che vengano letti In molti casi i dati sono confidenziali Molti utenti/applicazioni hanno accesso I dati devono passare per molti nodi intermedi Es. Numero carta di credito per acquisto su Internet Password Dati personali Si può utilizzare la crittografia Privacy ed altro Problemi tipici: Privacy Autunno 2004 52 TEORIA (Lez. 17) Non far leggere a terzi informazioni private Autenticazione 51 TEORIA (Lez. 17) Verifica della identità delle entità remote Integrità Messaggi non possono essere alterati 26 Strumenti crittografici Entrambe le entità coinvolte nella comunicazione conoscono una chiave segreta k Tutta la comunicazione è cifrata e decifrata con la chiave k Algoritmi a chiave pubblica Ogni entità ha una chiave privata ed una pubblica Per inviare un messaggio a Pasquale si cifra il messaggio con la chiave pubblica di Pasquale Solo Pasquale può decifrare il messaggio con la sua chiave segreta Algoritmi di hashing Da un messaggio grande si crea un “riassunto” Funzioni one-way: facile creare il riassunto, molto difficile risalire al messaggio dal riassunto Principali algoritmi RSA (Rivest, Shamir, Adleman) MD5 (Message Digest versione 5) La privatezza dei dati è garantita dalla cifratura Problemi: Data Encryption Standard (DES) Funzioni di hashing 54 TEORIA (Lez. 17) Chiave pubblica (asimmetrici) Autunno 2004 Chiave segreta (simmetrici) 53 TEORIA (Lez. 17) Algoritmi a chiave segreta Autunno 2004 Chiave segreta: distribuire la chiave segreta Chiave pubblica: stabilire l’autenticità della chiave pubblica E(m,k): Cifratura di un messaggio m con la chiave k 27 Autunno 2004 Autenticazione: chiave segreta Prima di stabilire un canale di comunicazione Due entità vogliono autenticarsi a vicenda Es. Un server di file system deve essere sicuro che il client è l’utente che dice di essere Allo stesso tempo il client/utente vuole essere sicuro di parlare con il giusto file system prima di memorizzare un file con informazioni private 55 TEORIA (Lez. 17) Autenticazione con chiave segreta comune K Id, E(x, K Id = identifica il client x e y = numeri casuali K = chiave segreta condivisa con Id SK = chiave di sessione E(x+1,K ) ), E(y,K ) E(y+1, K) E(SK,K ) Client Server Autunno 2004 Autenticazione: Trusted Third Party 56 TEORIA (Lez. 17) Client e server non hanno una chiave segreta comune ma si fidano di una terza entità La terza parte condivide chiavi segrete con client e server A,B = identificativi del client e del server KA,KB = chiavi segrete condivise con il TTP T = timestamp (svolge il ruolo del numero casuale visto prima) L = lifetime della chiave di sessione K A,B E((T,L,K ,B),K ), A E((T,L ,K,A),K B) E((A,T), K),E((T ,L,K,A), K E(T+1,K TTP Client A B) ) Server B 28 Autunno 2004 Autenticazione: chiave pubblica 57 TEORIA (Lez. 17) Occorre conoscere la chiave pubblica dell’altra entità Si cifra un numero casuale con la chiave pubblica dell’altra entità Solo se l’altra entità ha la sua chiave segreta può decifrare il numero casuale E(x,Pu blic ) B x blic A) E(y,Pu y Client A Server B Integrità dei messaggi Autunno 2004 58 TEORIA (Lez. 17) A volte non è importante la privacy ma è importante garantire che il messaggio non possa essere alterato Firma digitale con RSA MD5 con chiave MD5 con firma RSA 29 Integrità con firma RSA Autunno 2004 59 TEORIA (Lez. 17) Sfrutta le chiave private e pubbliche al contrario: Il mittente cifra con la propria chiave privata Tutti possono leggere con la chiave pubblica e sono sicuri che il messaggio è stato scritto dal mittente Qualsiasi alterazione risulterebbe in una decifratura senza senso E(m,Pr ivate ) A m decifrato con PublicA E(m’,P ) rivate B m decifrato con PublicB Client A Server B Autunno 2004 Integrità con MD5 e chiave Con chiave segreta Il mittente trasmette m⊕MD5(m⊕k) Il ricevente 60 TEORIA (Lez. 17) Separa m da MD5(m⊕k) Concatena k a m Calcola MD5(m⊕k) Controlla che il risultato sia uguale al valore di MD5(m⊕k) ricevuto insieme ad m Con chiave pubblica Il mittente A scegli una chiave segreta k Trasmette m⊕MD5(m⊕k)⊕E(E(k,PublicB),PrivateA) Il ricevente B Separa m da MD5(m⊕k) e da E(E(k,PublicB),PrivateA) Recupera la chiave k da E(E(k,PublicB),PrivateA) Procede come prima 30 Autunno 2004 Integrità con MD5 e RSA 61 TEORIA (Lez. 17) L’hash del messaggio è protetto usando RSA Il mittente A spedisce m⊕E(MD5(m),PrivateA) Il destinatario Separa m da E(MD5(m),PrivateA) Recupera MD5(m) da E(MD5(m),PrivateA) Calcola MD5(m) Controlla i due MD5(m) siano uguali Autunno 2004 Distribuzioni di chiavi pubbliche La crittografia a chiave pubblica è potente Non c’è bisogno di scambio di chiavi Ma come si “pubblicano” le chiavi pubbliche? 62 TEORIA (Lez. 17) Non basta spedire un messaggio di posta elettronica o pubblicare la chiave su un sito web Chi riceve la chiave in questo modo non può verificare l’autenticità e l’integrità della stessa Se mittente e destinatario si incontrano Possono scambiarsi le rispettive chiavi pubbliche … a quel punto possono anche scambiarsi una chiave privata e quindi non ci sarebbe bisogno della crittografia a chiave pubblica 31 Certificati Il certificato contiene delle informazioni Es. KA è la chiave pubblica di A Affinchè il certificato sia valido deve essere firmato da una entità di cui ci fidiamo e per la quale possiamo verificare l’autenticità e l’integrità del messaggio Certification Authority (CA) Dobbiamo ovviamente già avere, ad esempio, la chiave pubblica della CA Certificati Autunno 2004 64 TEORIA (Lez. 17) Usando una CA possiamo ottenere la chiave pubblica di altre entità che si fidano della CA Si può creare una “catena” di CA 63 TEORIA (Lez. 17) Un certificato è uno speciale documento firmato digitalmente Autunno 2004 Il discorso è molto delicato perché si deve assumere che tutte le CA coinvolte siano fidate Revoca di certificati Una CA pubblica anche una lista di certificati ritirati (CRL, Certificate Revocation List) per poter annullare precedenti informazioni Prima di usare un certificato occorre vedere se è presente nella CRL Ogni certificato ha una data di scadenza in modo tale da poter eliminare i certificati revocati dalla CLR quando arriva la scadenza Altrimenti la CLR crescerebbe senza limiti 32 Sicurezza nelle reti Integrazione di strumenti per la sicurezza al livello del protocollo IP TSL, SSL, HTTPS Integrazione di strumenti per la sicurezza al livello di trasporto Livello applicazione PGP (Pretty Good Privacy) Cifratura ed autenticazione della posta elettronica SSH (Secure Shell) Versione “sicura” del telnet, rlogin PGP Autunno 2004 66 TEORIA (Lez. 17) PGP permette di 65 TEORIA (Lez. 17) IPSEC (IP security) Autunno 2004 Cifrare i messaggi Autenticare il mittente Si basa sulle chiavi pubbliche Risolve il problema della distribuzione Con un meccanismo di fiducia Se A e B si conoscono bene, e A consegna direttamente un chiave a B allora la fiducia di B nel fatto che la chiave sia di A è massima Se A firma un certificato per B in cui dice che i dati nel certificato sono la chiave pubblica di B allora una terza persona C può avere un certo livello di fiducia In ogni caso l’utente di PGP può decidere quanta “fiducia” dare ad ogni certificato e di conseguenza permette all’utente di stabilire quali chiavi sino valide 33 PGP Autunno 2004 67 TEORIA (Lez. 17) Funziona Raccogliendo le chiavi pubbliche Fornendo la propria chiave pubblica Facendo firmare la propria chiave pubblica da altri ottenendo così certificati per supportare l’autenticità della propria chiave pubblica Firmando la chiave pubblica di altri aiutandoli a costruire certificati Raccogliendo certificati di altre persone di cui si ha fiducia In questo modo PGP Raccogli un insieme di certificati (key ring) Ognuno con un certo grado di fiducia Quindi ad ogni chiave pubblica sarà associato un certo livello di fiducia Se l’utente A lo ritiene sufficientemente alto per B allora la chiave pubblica di B può essere usata per Cifrare messaggi per B Autenticare messaggi da A a B Secure Shell (SSH) Autunno 2004 68 TEORIA (Lez. 17) Problema di telnet La password viene inviata “in chiaro” Può essere intercettata Dati confidenziali posso essere visti da terzi Tutta la comunicazione è fatta in chiaro SSH crea un canale di trasporto cifrato fra il client ed il server Il primo passo da fare è l’autenticazione del client e del server Tramite chiavi pubbliche Si assume che la chiave pubblica dell’entità remota sia autentica La prima volta che ci si connette ad un server non conosciuto il software chiede all’utente se accettare o meno la chiave pubblica 34 Autunno 2004 Sicurezza nello strato di trasporto TSL, Transport Layer Security Derivato da SSL, Secure Socket Layer È un protocollo che si colloca fra lo strato TCP e il protocollo applicativo Permette la negoziazione in tempo reale per 69 TEORIA (Lez. 17) Decidere quali dati cifrare e quali no Decidere quale algoritmo di cifratura usare HTTPS È la versione sicura di HTTP In pratica è HTTP utilizzato sopra il livello TLS Quindi non comunica direttamente con TCP ma lo fa tramite TLS Permette di trasmettere dati importanti (es. carta di credito) in modalità cifrata Autunno 2004 Sicurezza nello strato IP IP SEC Ha come obiettivo l’integrazione della sicurezza direttamente nel livello IP Il protocollo IP Sec offre le caratteristiche di sicurezza viste prima 70 TEORIA (Lez. 17) Privacy Autenticazione Integrità Controllo di accesso Usando IP Sec non ci sarebbe bisogno di implementarle nei livelli più alti Difficile far parlare IP Sec a tutti i router di Internet 35 Autunno 2004 Firewall 71 TEORIA (Lez. 17) Un firewall è un router speciale Viene posto fra una rete locale ed il resto di Internet Svolge una funzione di filtro Controlla i pacchetti in arrivo Può eliminarli se sono indirizzati Verso un particolare IP Verso una particolare porta TCP Può eliminarli se provengono da un particolare IP È un metodo efficace per aumentare la sicurezza Non servirebbe se, ad esempio, tutti usassero IP Sec Autunno 2004 Firewall Internet Internet Rete locale Server WEB Regole: Inoltra tutto a meno che … Elimina i pacchetti <192.12.13.14,1234,128.7.6.5,80> Elimina i pacchetti <*,*.128.7.6.5,80> Firewall 72 TEORIA (Lez. 17) Non permette l’accesso al sito Web dall’esterno Regole: Elimina tutto a meno che … Accetta i pacchetti <*,*,128,19,20,21,25> Permette l’accesso dall’esterno solo per la posta 36 Autunno 2004 Proxy Proxy (delegato) 73 TEORIA (Lez. 17) È un processo interposto fra un client ed un server Per il client il proxy svolge le funzioni del server Per il server svolge le funzioni del client Può essere usato in varie situazioni Abbiamo visto un esempio per i Web server Può svolgere anche le funzioni del firewall Firewall Client Esterno Proxy Connessione HTTP/TCP esterna … fine Server Locale Connessione HTTP/TCP interna Autunno 2004 74 TEORIA (Lez. 17) Il corso è finito … 37