Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides06/Cap2-5.pdfalex@yahoo.com...

Post on 29-Oct-2020

1 views 0 download

Transcript of Corso Reti ed Applicazioni Mauro Campanellacmp/CorsoReti/slides06/Cap2-5.pdfalex@yahoo.com...

Capitolo 2 - parte 5

Corso Reti ed ApplicazioniMauro Campanella

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 2

Agenda

- Posta elettronica - Simple Mail Transfer Protocol (SMTP) - Post Office Protocol v3 (POP3) - Internet Message Access Protocol (IMAP) - Sicurezza

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 3

La Posta elettronica

Nel 1982 venne definita da una RFC l’attuale applicazione(SMTP) per trasferire posta via Internet (e-mail).

Nel 1984 CCITT :-( ora ITU-T), cioè tutti i telecom, moltigoverni e ditte di calcolatori, definì le raccomandazioni X.400per rendere standard il trasferimento dei messaggi via rete.

Dopo circa 20 anni, finalmente :-)SMTP è lo standard di fatto, mentrei sistemi X.400 sono praticamentescomparsi. IMHO, merito dellagrande semplicità di SMTP e dellaastrusità di X.400.

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 4

mailbox utente

coda inuscita

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

e-Mail

Tre componenti logiche principali:

- user agent (mail reader)- mail server- simple mail transfer protocol:

SMTP

User Agent e mail serverpossono essere nello stessonodo od in nodi diversi epossono usare SMTP od altriprotocolli per parlarsi.

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 5

e-Mail: user agent

Lo User Agent, detto anche“mail reader” permette dileggere, comporre, spediree gestire i messaggi.

Per esempio: elm, pine,Eudora, Outlook, NetscapeMessenger, Thunderbird

mailserver

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 6

e-Mail: mail servers

I Mail Servers possonosvolgere varie funzioni:– contenere la casella della

posta di un utente– contenere la coda dei

messaggi in uscita– ricezione dei messaggi– agire da relay intermedio

(store and forward)

Utilizzano il protocollo SMTPper smistare fra loromessaggi

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 7

e-Mail: SMTP

RFC 821 SMTP (storica, resa obsoleta da 2821)RFC 822 ARPA text message format (obsoleta da 2822)

RFC 2821 SMTP (extended)RFC 2822 Internet message format “la sintassi per

messaggi di testo inviati fra utenti”

+RFC 2045 - 2049 Multipurpose Internet mail extensions

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 8

e-Mail: SMTP

SMTP utilizza TCP e la porta 25 per il traferimento affidabile deimessaggi.

Un indirizzo di posta ha la forma generica: user@entity

Mentre all’inizio “user” corrispondeva ad un account reale sulcalcolatore “entity”, sempre di più oggi si tende ad usare per“user” un nome logico slegato dal reale account (tipicamenteNome.Cognome) e usare per la parte entity il nome del dominio.

Questo è reso possibile dai record MX del DNS e da programmi(sendmail) sul name server che hanno un database che legaindirizzi logici a fisici. Per esempioFilippo.Rossi@rossi.it viene trasformato in frss@hp1.rossi.it

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 9

Indirizzi

Gli indirizzi X.400 sono invece del tipo:/C=IT/ST=LOMBARDIA/L=MILANO/PA=VIA VERDI 1/CN=LUCIO ROSSI/

alex@yahoo.com luca@inwind.it

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 10

e-Mail: SMTP

A seconda della presenza e del valore del record MX nel DNSe della struttura dei mail server, il trasferimento della postapuò avvenire direttamente (ma raramente) dal (nodo del)mittente al (nodo del) destinatario, oppure attraverso serverintermedi.

Nei colloqui fra ogni coppia di server vi sono tre fasi:– riconoscimento reciproco– transferimento del messaggio– chiusura

Il colloquio è basato su commandi e risposte– comandi: testo ASCII :-)– risposte: codice di stato e messaggi in ASCII (7-bit)

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 11

useragent

mailserver

mailserver user

agent

1

2 3 4 56

Scenario: Alice manda un messaggio a Bob

1) Alice usa uno User Agentper comporre il messaggio

2) Lo UA invia il messaggio almailer che lo pone nellacoda di uscita

3) Il server apre come clienteSMTP una connessione conTCP al server mail di Bob.

4) Il messaggio è inviato conSMTP

5) Il mail server di Bobmette il messaggio nellacasella della posta di Bob

6) Bob usa il suo User Agentper leggere il messaggio

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 12

Indirizzi: esempio

Nel server DNS autoritativo per garr.it vi è il record MX chepunta alla macchina lx1.dir.garr.it.

Un mail spedito a mauro.campanella@garr.it viene speditolx1.dir.garr.it. che ha nel database del programma di gestioneposta (sendmail) un record che legamauro.campanella@garr.it. a mauro.campanella@mi.infn.it

Nel server DNS autoritativo per mi.infn.it, c’è un record MXche punta a mercurio.mi.infn.it.La posta per mauro.campanella@mi.infn.it viene quindifinalmente smistata a cmp@mercurio.mi.infn.it ed io la leggocon Mozilla o pine.

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 13

S: 220 hamburger.edu C: HELO crepes.fr (oppure EHLO se rfc2881) S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

I comandi di SMTP

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 14

Si può provare:

– telnet serverdiposta 25

– attendere la risposta con codice 220 dal server– usare i comandi

– HELO, MAIL FROM, RCPT TO,– DATA, “.” e QUIT per inviare un messaggio senza usare nessun User

Agent, ma solo il trasporto via telnet.

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 15

SMTP

– SMTP usa connessionipersistenti

– SMTP impone che ilmessaggio (header ecorpo) sia in ASCII a 7-bit

– SMTP uses la sequenza dicaratteri CRLF.CRLF perstabilire la fine di unmessaggio

– il server agisce in modalitàSTORE and FORWARD

– il sistema può essereautomatico (senza umani)

Confronto con HTTP:

– HTTP: pull (tirare)– SMTP: push (spingere)

– Entrambi hanno una logicabasata su comandi e rispostein ASCII

HTTP: ogni oggetto è incapsulato in un messaggio di rispostaSMTP: oggetti multipli inviati in un messaggio a molte parti

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 16

Formato dei messaggi (rfc2822)

Header:

To: e-mail del destinatarioSubject: una frase che indichi il soggetto del mailCc: e-mail di eventuali altri destinatariBcc: Blind Cc (destinatario non vede gli altri destinatari)From: il creatore del messaggioSender: il vero mittentereply-to: se diverso da From:Date: la data di spedizioneReturn-Path: se deve tornare al mittenteMessage-Id: numeroIn-Reply-To: Id del messaggio cui si risponde

Corpo: il vero messaggio, solo in caratteri ASCII

header

Corpo

lineabianca(CR LF)

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 17

Formato dei messaggi: multipurpose extensions

L’evoluzione di Internet a livello mondiale e multimediale hareso insufficente la comunicazione in ASCII a 7 bit.Vi è la necessità di- usare lingue latine diverse dall’inglese- usare caratteri non latini (ebraico, russo)- la sfida delle lingue pittografiche (cinese, giapponese)- spedire non solo testo.

MIME definisce una ulteriore strutturazione del corpo delmessaggio basata su alcuni header aggiuntivi.

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 18

Header MIME

From: alice@crepes.frTo: bob@hamburger.eduSubject: Picture of yummy crepe.MIME-Version: 1.0Content-Transfer-Encoding: base64Content-Type: image/jpeg

base64 encoded data ....................................base64 encoded data

tipo dato multimedialesottotipo e dichiarazione

dei parametri

metodo di codificadell’oggetto

versione MIME

dati codificati

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 19

MIME types

Text html Per pagine web, aggiunto da RFC 2854

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 20

Tipo Multipart

From: alice@crepes.frTo: bob@hamburger.eduSubject: Picture of yummy crepe.MIME-Version: 1.0Content-Type: multipart/mixed; boundary=StartOfNextPart

--StartOfNextPartDear Bob, Please find a picture of a crepe.--StartOfNextPartContent-Transfer-Encoding: base64Content-Type: image/jpegbase64 encoded data ....................................base64 encoded data--StartOfNextPartDo you want the reciple?

Permette ad un messaggio di essere composto da più parti

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 21

Tipo encoding

Il contenuto del mesaggio deve essere trasformato in unaserie di caratteri alfanumerici e pochi altri per garantirne latrasmissione:

- codifica BASE-64: ogni gruppo di 24 bit è spezzato ingruppi di 6 bit, codificati in un carattere ASCII. Ideale pertesto arbitrario. CR ed LF sono ignorati.

- codifica quoted-printable: i caratteri con codice ASCIImaggiori di 127 sono codificati come un segno di “=“seguito dal valore del simbolo in esadecimale.

La codifica quoted-printable è considerata più compatibile fragli User Agent, ma BASE64 è comunque diffusa.

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 22

Agenda

- Posta elettronica - Simple Mail Transfer Protocol (SMTP) - Post Office Protocol v3 (POP3) - Internet Message Access Protocol (IMAP) - sicurezza

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 23

Protocolli di accesso al mailer

SMTP è usato per la consegna e memorizzazione.I protocolli di accesso sono usati tra UA e server perl’accesso alla mailbox:

– POP: Post Office Protocol [RFC 1939]• autorizzazione (agent <-->server) quindi scarico

– IMAP: Internet Mail Access Protocol [RFC 1730]• più sofisticato

– HTTP: Hotmail , Yahoo! Mail, etc.

useragent

mail server del mittente

useragent SMTP SMTP protocollo

di accessomail server del

ricevente

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 24

POP3

Permette il collegamento con TCP alla porta 110 del serverche contiene la posta dopo una fase di autenticazione conusername e password. Specificato nella RFC 1939.

Permette solo di scaricare i messaggi nuovi dal server inordine di arrivo e per default li cancella dal server.

Efficente solo se ri ricevono pochi messaggi, tuttiinteressanti, e si usa sempre lo stesso calcolatore perleggere la posta.

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 25

POP3 protocol

Fase di autorizzazionecomandi del client :

– user: declare username– pass: password

Risposte del server :– +OK– -ERR

Fase di transazione, client :list: list message numbersretr: retrieve message by numberdele: deletequit

C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <contenuto messaggio 1> S: . C: dele 1 C: retr 2 S: <contenuto messaggio 2> S: . C: dele 2 C: quit S: +OK (POP3 server si scollega)

S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK (user autorizzato al collegamento)

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 26

POP3 contro IMAP

Caratteristica POP3 IMAPDefinito in RFC 1939 RFC 2060Porta TCP 110 143La posta è raccolta nel client serverQuando la posta è letta off-line on / off lineTempo di collegamento il tempo di scarico il tempo di scarico o minoreUso risorse del server Medio Medio-altoUA accede a più server NO SIDuplicazione dei mail NO SI

(con sincronizzazioneAdatto ai portatili NO SIUso da più nodi NO (difficile) SIScarico solo Header NO SIControllo di interazione NO SIGestione raccoglitori NO SISupportato da ISP SI In diffusione veloceImplementazione semplice SI Media

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 27

Posta - Note a margine

– E’ possibile spedire a più utenti contemporaneamente lo stessooggetto.

– Esistono sistemi sofisticati di posta per gestire “mailing List”,cioè nomi logici che sono espansi in una lista di indirizzi di postafisici.

– Alcuni di questi sistemi (majordomo per esempio) permettononon solo di gestire in modo sofisticato le mailing list, ma anchedi archiviare una copia di tutti i messaggi.

– Altri programmi permettono di trasformare la storia deimessaggi della mailing list in un database consultabile via web.

– Esistono dei tool sui server di posta che controllano tutti i mailche transito per la presenza di virus (amavis per esempio).

M. Campanella Corso Reti ed Applicazioni - Como 2006 Cap 2 - 5 pag. 28

Sicurezza e-Mail

Come abbiamo visto SMTP:– non fornisce alcuna garanzia sulla identità del sender– trasmette in chiaro (ASCII) i messaggi ed il loro contenuto

Per risolvere questi problemi, quando sia necessario, si può:– criptare il contenuto del messaggio e/o il trasferimento fra

i server e fra server e client con Secure Socket Layer (nonfacilmente applicabile per ora all’intera Internet)

– firmare con chiave (PGP) il messaggio (per ora mancano leautorità che forniscano in modo sicuro le chiavi)

Di più sulla sicurezza alla fine del corso...