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 &egrave 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