Posta Elettronica Internet
Total Page:16
File Type:pdf, Size:1020Kb
La posta elettronica nell'architettura TCP/IP Antonio Lioy < [email protected] > Politecnico di Torino Dip. Automatica e Informatica Applicazioni di rete indirizzi logici (applicativi) per identificare gli utenti del servizio applicativo protocollo applicativo (sopra TCP/UDP e IP) L7, ossia tra i due end-point applicativi formato dati dati significativi per l'applicazione per ciascun punto occorre definire: lessico = i caratteri ammissibili sintassi = composizione di richieste e risposte semantica (parziale) = significato © A.Lioy (Politecnico di Torino, 2013-2020) 2 Indirizzi reali e virtuali l’indirizzo RFC-822 è: casella-postale @ dominio-postale la casella postale può essere: un nome di utente (es. login) un identificativo virtuale (es. "casella funzionale") il dominio postale può essere: un nome (FQDN) o indirizzo del server di posta un dominio di posta virtuale © A.Lioy (Politecnico di Torino, 2013-2020) 3 Indirizzi RFC-822 tre possibilità: indirizzo commento < indirizzo > indirizzo ( commento ) esempio: [email protected] Antonio Lioy <[email protected]> [email protected] (Antonio Lioy) occhio alle fregature! "Prof. Antonio Lioy <[email protected]> " <[email protected]> © A.Lioy (Politecnico di Torino, 2013-2020) 4 Dai domini postali agli host il dominio postale è un concetto logico ma per trasmettere la posta con SMTP occorre identificare un host fisico con un indirizzo IP preciso il dominio è virtuale ed ha quindi un mail exchanger? nslookup -q=MX dominio-postale posta inviata ad uno degli MX host (contattati in ordine di preferenza) se non esiste un MX, il dominio coincide forse con un host? nslookup -q=A dominio-postale posta inviata all’host se non esiste né MX né A allora è impossibile consegnare la posta al destinatario (dominio di posta errato) © A.Lioy (Politecnico di Torino, 2013-2020) 5 Dai domini postali agli host: esempio nslookup –q=MX polito.it. Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: polito.it mail exchanger = 10 mx.polito.it. nslookup –q=A polito.it. Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: *** Can't find polito.it: No answer © A.Lioy (Politecnico di Torino, 2013-2020) 6 Dai domini postali agli host: esempio nslookup –q=MX cisco.com. Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: cisco.com mail exchanger = 30 aer-mx-01.cisco.com. cisco.com mail exchanger = 20 rcdn-mx-01.cisco.com. cisco.com mail exchanger = 10 alln-mx-01.cisco.com. nslookup –q=A cisco.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: Name: cisco.com Address: 72.163.4.185 © A.Lioy (Politecnico di Torino, 2013-2020) 7 MHS (Message Handling System) MTA MTA MTA chain MSA MSA MS MS MUA MUA MUA (Message User Agent) MSA (Message Submission Agent) MTA (Message Transfer Agent) MS (Message Store) © A.Lioy (Politecnico di Torino, 2013-2020) 8 Architettura Internet mail RFC-5598 "Internet Mail Architecture" in alcuni casi, oltre a MUA, MSA, MTA e MS, si distinguono altri server lato ricevente: MDA (Mail Delivery Agent) l'ultimo MTA della catena che ha l'incarico di consegnare la posta al MS MRA (Mail Retrieval Agent) elemento incaricato di prelevare la posta dal MS e metterla in un deposito locale accessibile al MUA in pratica un MUA senza interfaccia utente, da usarsi con un MUA incapace di prelevare la posta dal MS © A.Lioy (Politecnico di Torino, 2013-2020) 9 E-mail in client-server SMTP Mailserver SMTP MTA ... ( MSA ) MUA (es. Thunderbird, Outlook Express) Post Office ... MTA POP, IMAP ( MS ) SMTP © A.Lioy (Politecnico di Torino, 2013-2020) 10 Webmail Mailserver SMTP MTA ... ( MSA ) SMTP HTTP web server HTML HTTP virtual engine MUA web browser POP / IMAP Post Office ... MTA ( MS ) SMTP © A.Lioy (Politecnico di Torino, 2013-2020) 11 Protocolli e porte SMTP (Simple Mail Transfer Protocol) 25/tcp (MTA) 587/tcp (MSA) POP (Post Office Protocol) 110/tcp IMAP (Internet Message Access Protocol) 143/tcp sono protocolli di basso livello (si occupano solo di trasportare i messaggi, non entrano in merito al loro contenuto) © A.Lioy (Politecnico di Torino, 2013-2020) 12 Formati dei messaggi “RFC-822” formato di un messaggio (header + body) body di puro testo contenuti non testuali (es. immagini) devono essere trasformati in testo (es. uuencode, binhex) MIME estensione multimediale di RFC-822 body può includere anche dati non di testo trasformati automaticamente in testo da MIME alcuni campi aggiuntivi nell’header © A.Lioy (Politecnico di Torino, 2013-2020) 13 Messaggi "RFC-822" RFC-5322 (ex RFC-822) solo caratteri US-ASCII a 7 bit righe terminate da <CR> <LF> messaggi composti da header + body header parole chiave a inizio riga righe di continuazione iniziano con uno spazio body separato dall’header da una riga vuota contiene il messaggio © A.Lioy (Politecnico di Torino, 2013-2020) 14 Header RFC-822 From: mittente (logico) Sender: mittente (operativo) Organization: organizzazione del mittente To: destinatario Subject: argomento Date: data e ora di spedizione Received: passaggi intermedi Message-Id: ID di spedizione CC: in copia a Bcc: in copia (nascosta) a Return-Receipt-To: ricevuta di ritorno a © A.Lioy (Politecnico di Torino, 2013-2020) 15 Ricevuta di ritorno RFC-822 collegata all’header Return-Receipt-To: non standard e deprecata ma usata da molti MUA risposta dipende da MS e/o MUA del destinatario: può non offrirla può offrirla alla ricezione o alla lettura lo standard preferisce: RCPT TO con DSN (Delivery Status Notification, che però copre solo la consegna ma non la lettura) l'header MDN (Message Disposition Notification, che però può essere ignorato dal MUA) © A.Lioy (Politecnico di Torino, 2013-2020) 16 Perché si attraversano tanti MTA? minimo due MTA concettualmente MSA e MS sono diversi dagli MTA un MTA in uscita dalla rete del mittente (con tanti MSA alle spalle per distribuire il carico in ingresso) un MTA in ingresso nella rete del destinatario (con tanti MS per distribuire il carico di memorizzazione e lettura dei messaggi). in passato molti altri MTA intermedi rete non tutta TCP/IP e/o posta non RFC-822 MTA = gateway (traduzione protocollo di rete e/o formato di posta) guardare i "Received:" per vedere gli MTA attuali: "from" e "by" indicano MTA mittente e ricevente di un passo © A.Lioy (Politecnico di Torino, 2013-2020) 22 Esempio: lettura header Received Received: from [130.192.180.16] (HELO antispam.polito.it) by polito.it (CommuniGate Pro SMTP 6.2.5) for [email protected]; Fri, 14 Dec 2018 18:11:50 +0100 Received: from mail-it1-f177.google.com [209.85.166.177] by antispam.polito.it for <[email protected]>; Fri, 14 Dec 2018 18:11:48 +0100 Received: by mail-it1-f177.google.com for <[email protected]>; Fri, 14 Dec 2018 09:11:48 -0800 (PST) Received: from 131-193-184-17.east.wireless.uic.edu. [131.193.184.17] by smtp.gmail.com; Fri, 14 Dec 2018 09:11:37 -0800 (PST) © A.Lioy (Politecnico di Torino, 2013-2020) 23 Contenuti binari in RFC-822 devono essere codificati come testo tramite appositi programmi: uuencode / uudecode in Unix binhex in MacOS esempio: uuencode photo.gif photo.gif | mail –s "my pic" ucl!ucb!john problema poi affrontato e risolto in modo più automatico, completo e strutturato dal formato MIME © A.Lioy (Politecnico di Torino, 2013-2020) 24 Il protocollo SMTP specifica base in RFC-5321 (ex RFC-821) protocollo ASCII a 7 bit il MSB del byte può essere forzato a zero o usato per la parità (semplice controllo di errore) alfabeto US-ASCII comandi case-insensitive righe terminate da <CR><LF> © A.Lioy (Politecnico di Torino, 2013-2020) 27 Comandi base SMTP HELO hostname identifica l’host mittente MAIL FROM: return-path identifica il mittente RCPT TO: forward-path identifica il destinatario DATA tutte le righe successive contengono un messaggio RFC-822 sino alla riga (esclusa) che contiene “.<CR><LF>” QUIT termine della trasmissione SMTP © A.Lioy (Politecnico di Torino, 2013-2020) 28 Codici di stato SMTP ogni risposta inizia con un codice di stato numerico a tre cifre XYZ la prima cifra (X) fornisce il major status dell’azione richiesta: X=1 : positive preliminary X=2 : positive completion X=3 : positive intermediate X=4 : transient negative completion X=5 : permanent negative completion © A.Lioy (Politecnico di Torino, 2013-2020) 31 Codici di stato SMTP la seconda cifra (Y) indica la tipologia Y=0 : syntax Y=1 : information Y=2 : connections Y=5 : mail system la terza cifra (Z) fornisce un modo per distinguere codici di risposta appartenenti alla stessa classe risposta su più righe se lo stato è XYZ– (l’ultima riga ha solo XYZ) © A.Lioy (Politecnico di Torino, 2013-2020) 32 Limiti quantitativi di SMTP e RFC-822 mailbox ≤ 64 caratteri domain ≤ 64 caratteri reverse / forward-path ≤ 256 caratteri comando / risposta ≤ 512 caratteri linea di testo ≤ 1000 caratteri (MUST) linea di testo ≤ 80 caratteri (SHOULD) molti MTA forzano un CRLF dopo 78 caratteri numero di destinatari ≤ 100 © A.Lioy (Politecnico di Torino, 2013-2020) 33 Un esempio SMTP / RFC-822 telnet duke.colorado.edu 25 Trying ..... Connected to duke.colorado.edu Escape character is ‘^]’ 220 duke.colorado.edu ... HELO leonardo.polito.it 250 Hello leonardo.polito.it ... Nice to meet you! MAIL FROM: [email protected] 250 cat ... Sender ok RCPT TO: [email protected] 250 franz ... Recipient ok DATA 354 Enter mail, end with “.” on a line by itself © A.Lioy (Politecnico di Torino, 2013-2020) 34 From: [email protected] (Antonio Lioy) To: [email protected] Subject: vacanze Ciao Francesco, ti rinnovo l’invito a venirmi a trovare nelle tue prossime vacanze in Italia.