C Consiglio Nazionale delle Ricerche Istituto per le Applicazioni Telematiche © Francesco Gennai 2000 iat Posta elettronica • Alcuni cenni su “Multipurpose Internet Mail Extensions” (MIME) • La posta certificata • Un progetto basato sull’elaborazione di un messaggio MIME (Progetto: BIBLIO-MIME) • La posta elettronica come veicolo di propagazione virus • Centralized Management with Delegated Administration (CMDA) • Il fenomeno “Unsolicited Bulk Email” (spamming). © Francesco Gennai 2000 MIME Multipurpose Internet Mail Extensions © Francesco Gennai 2000 RFC 822 (S) Standard for the format of ARPA Internet text messages Headers e indirizzi To: From : cc: Subject Data message Normale parte testo caratteri US-ASCII (7bit) lunghezza linea limitata a 80 caratteri © Francesco Gennai 2000 Multipurpose Internet Mail Extensions (MIME) Headers e indirizzi To: From : cc: Subject Multipart Data message message (attachments) Normale parte testo caratteri (7bit) Uno o piùUS-ASCII “attachment” lunghezza linea limitata a 80 caratteri Immagine GIF Documento MS Word Messaggio rispedito (Forward) © Francesco Gennai 2000 Multipurpose Internet Mail Extensions • rappresentazione e codifica di dati multimediali per trasmissione via e-mail. • estende la RFC822 • semplicità • compatibilità • flessibilità © Francesco Gennai 2000 Multipurpose Internet Mail Extensions • Superare i limiti imposti da: • RFC822 - formato del messaggio • RFC821 - (SMTP) trasporto del messaggio • senza perdita di compatibilità • 7 bit US-ASCII • Header seguito da un solo monolitico Body • Lunghezza linee in Header e Body © Francesco Gennai 2000 Multipurpose Internet Mail Extensions • Un messaggio MIME può contenere: • più oggetti all’interno del messaggio stesso • testo di lunghezza illimitata • set di caratteri diversi da US-ASCII, consentendo così messaggi in lingue con set di caratteri esteso • più fonti nello stesso messaggio • file binari per applicazioni specifiche • immagini, audio, video, messaggi multimediali • rappresentazioni alternative dello stesso oggetto • riferimenti esterni (esempio: accesso FTP) © Francesco Gennai 2000 Multipurpose Internet Mail Extensions • MIME definisce 8 formati “Content-type” • Nuove definizioni via documenti formali (RFC) • Content-type: - text - image - audio - video - message - multipart - application - model © Francesco Gennai 2000 Multipurpose Internet Mail Extensions la sintassi del campo “Content-type” Content-type := type “/” subtype [“;” parameter] Esempi: a) Application/Octet-Stream; name=“pippo.bin” b) Image/gif c) Message/external-body; name=“rfc2045.txt”; site=“ftp.ripe.net”; access-type=“anon-ftp”; directory=“rfc” d) Multipart/mixed; boundary=h78kUoI5TX9x © Francesco Gennai 2000 Multipurpose Internet Mail Extensions Content Subtype sono obbligatori per ogni Content Type Registrati presso la IANA (Internet Assigned Numbers Authority). Tre strutture di registrazione: IETF, Vendor (VND.) e Personal (PRS.) Ogni Subtype può avere uno o più parametri Notare che i tipi MIME sono ora utilizzati anche in contesti diversi dalla posta elettronica: World Wide Web, NetNews © Francesco Gennai 2000 Multipurpose Internet Mail Extensions MIME definisce due possibili “algoritmi di trascodifica” per il body (o body part) di un messaggio RFC822: base64 e quoted-printable Content-transfer-encoding: - base64 - quoted-printable - 8bit - 7bit - binary - x-nomecodifica © Francesco Gennai 2000 Esempio messaggio MULTIPART From: ..... Subject: .... Content-type: multipart/mixed; boundary=AAAconfine --AAAconfine parte contenente testo in US-ASCII infatti non e’ marcata con Content-transfer-encoding --AAAconfine Content-type: multipart/parallel; boundary=XXXsepara --XXXsepara Content-type: audio/basic Content-transfer-encoding: base64 ..... dati audio codificati in base64 --XXXsepara Content-type: image/gif Content-transfer-encoding: base64 ... dati per immagine gif codificati in base64 --XXXsepara---AAAconfine Content-type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: quoted-printable testo scritto in ISO-8859-1, questo testo =E8 codificato con= =93quoted-printable=94 --AAAconfine-© Francesco Gennai 2000 Multipurpose Internet Mail Extensions Gli RFC di riferimento: RFC2045 RFC2046 RFC2047 Internet RFC2048 RFC2049 Part I: Format of Internet Message Bodies Part II: Media Types Part III: Representation of Non-ASCII Text in Message Headers Part IV: Mime Registration Procedures Part V: Conformance Criteria and Examples © Francesco Gennai 2000 Alcune note sull’organizzazione di un servizio di posta elettronica © Francesco Gennai 2000 Un servizio SMTP omogeneo MTA che non supportano le più importanti estensioni SMTP non dovrebbero trovarsi sui “percorsi principali” Per esempio ecco cosa accade se un MX non supporta DSN mail.qualcosa.edu mailsrv.cnuce.cnr.it DSN Richiesta/Risposta Internet cnuce.cnr.it MX 10 mailsrv.cnuce.cnr.it MX 20 mail.xx.cnr.it mail.xx.cnr.it fw.qualcosa.edu = NON supporta DSN = supporta DSN © Francesco Gennai 2000 Un servizio SMTP omogeneo Estensioni di cui è consigliabile prevedere il supporto: • 8BITMIME, DSN, PIPELINE, ENANCHEDSTATUSCODE, AUTH • Rendere omogeneo il livello delle estensioni presenti sui server all’interno di una stessa organizzazione Evitare l’attraversamento di gateway, quando possibile © Francesco Gennai 2000 Una nota sui Firewall • Spesso si utilizzano firewall che agiscono sulla comunicazione SMTP limitando l’insieme dei comandi SMTP e degli argomenti. In altre parole limitano l’utilizzo di ESMTP • Questo tipo di azione storicamente deriva da problemi riscontrati nel Sendmail • Estensioni come NOTARY consentono una migliore traccia del traffico di email. E’ giusto eliminarle ? • L’eliminazione delle linee Received che alcuni Firewall effettuano è inappropriata per i messaggi in ingresso. Critica per quelli in uscita (meglio riscriverle) © Francesco Gennai 2000 Naming Centralizzato e Centralizzazione del servizio © Francesco Gennai 2000 Il servizio di posta elettronica: alcune riflessioni. Dal Naming Centralizzato alla Centralizzazione del servizio • Ogni centro di servizio ha un proprio schema per l’indirizzamento dei propri utenti: • chi usa il nome proprio, chi una semplice sigla..... marco@dominio, mb@dominio, F.Gennai@dominio • Server che non supportano i nuovi standard rendono disomogenee le caratteristiche del servizio • Server malgestiti creano problemi al servizio in Internet e problemi di sicurezza per lo stesso centro dove sono in funzione © Francesco Gennai 2000 Naming Centralizzato • Distinzione tra l’indirizzo “reale” (ind. interno) di una mailbox e l’indirizzo con cui si identifica la persona o la funzione/ruolo di una mailbox (ind. esterno): [email protected] [email protected] [email protected] [email protected] • Adottare nomi delle mailbox consistenti con l’uso frequente anche in ambienti diversi (Elenchi telefonici (su carta), biglietti da visita, etc.) [email protected] è meglio di [email protected] • Adottare nomi mailbox di ruolo come da RFC 2142 (postmaster@dominio, webmaster, hostmaster, sales, etc...) • Definire ed adottare i nomi di mailbox di ruolo per la tua organizzazione (esempio: segreteria@dominio, etc...) © Francesco Gennai 2000 Naming Centralizzato • Per una gestione efficiente del naming utilizzare Directory Services • LDAP (LDAPv3 RFC 2251-2256) è la soluzione emergente: • LDAP è supportato dai maggiori produttori (spesso in sostituzione (o affiancato) ai Directory Service proprietari). © Francesco Gennai 2000 Naming Centralizzato Internet mail.iat.cnr.it ws1.iat.cnr.it Server Router [email protected] [email protected] [email protected] Server: Router: W Antonio Bianchi e Paolo Rossi hanno le proprie mailbox su ws1.iat.cnr.it Directory server [email protected] [email protected] [email protected] PC di F. Gennai IAT Distribuzione messaggi in ingresso. Filtra virus, converte formati in base al destinatario. Logging del traffico e degli accessi. Accesso POP/IMAP da client locali. Può controllare campo MAIL FROM dei messaggi in uscita. Può gestire più classi di utenza: una con accesso limitato all’Intranet, l’altra senza limiti. Può impedire connessioni SMTP con host diversi da server. © Francesco Gennai 2000 Naming Centralizzato: verso una centralizzazione del servizio PC di Mario Rossi IRPEM (Ancona) Internet Router Server: Router: [email protected] mail.iat.cnr.it ws1.iat.cnr.it Server W Directory server [email protected] PC di F. Gennai IAT (Pisa) Distribuzione messaggi in ingresso. Filtra virus, converte formati in base al destinatario. Logging del traffico e degli accessi. Accessi POP/IMAP da client locali e REMOTI (diverso meccanismo di autenticazione) Gestione del dominio “REMOTA”. Può controllare campo MAIL FROM dei messaggi in uscita. Può gestire più classi di utenza: una con accesso limitato all’Intranet, l’altra senza limiti. Può impedire connessioni SMTP con host diversi da server. © Francesco Gennai 2000 La centralizzazione del servizio Ogni “infrastruttura di servizio” di una certa dimensione può trovare notevoli vantaggi in una centralizzazione del servizio di posta elettronica Vantaggi: pochi server da gestire: globale riduzione dei problemi di gestione. funzionalità aggiornate, maggiore omogeneità. gestione operativa centralizzata: backup, sviluppo, etc. Svantaggi: amministrazione del servizio “lontana” dall’utente periferico: gestione utenti, controllo traffico, etc. problemi di rete possono cambiare il livello di affidabiltà della comunicazione client/server. Come ridurre gli svantaggi ? © Francesco Gennai 2000 La delega della gestione amministrativa in un servizio centralizzato • Amministrazione del servizio, • introduciamo un nuovo concetto: • Centralizzazione della gestione operativa, • Distribuzione della gestione amministrativa • Attività tipiche della gestione di un dominio: • • • • • creazione/modifica/canc. mailbox creazione/modifica/canc. indirizzi e-mail (alias, forward) nel dominio creazione/modifica/canc./controllo mailing list nel dominio controllo attività di logging del sistema postmaster@dominio © Francesco Gennai 2000 La delega della gestione amministrativa in un servizio centralizzato • L’amministratore dispone di un’interfaccia attraverso la quale svolge le attività di gestione del proprio dominio • L’accesso all’interfaccia è protetto da password • Più di un dominio può essere amministrato sullo stesso server da amministratori che accedono via rete • La distribuzione dei server dovrà tenere conto dei punti di accesso alla rete e del flusso dei messaggi (tra utenti interni, verso utenti esterni) • Le connessioni di rete oggi hanno un discreto livello di affidabilità © Francesco Gennai 2000 Naming centralizzato per organizzazioni topologicamente distribuite From: [email protected] To: [email protected] Internet pa.cnr.it [email protected] Email server Rete interna cnr.it pi.cnr.it iat.cnr.it ict.pi.cnr.it Email server LDAP directory server Email server ge.cnr.it ice.ge.cnr.it itd.ge.cnr.it From: [email protected] To: [email protected] Mario.Rossi [email protected] LDAP directory server © Francesco Gennai 2000 Autenticazione client/server nei protocolli “connection-based” © Francesco Gennai 2000 Autenticazione (POP, IMAP, SMTP-draft) SASL (RFC 2222) Simple Authentication and Security Layer: definizione di un metodo per la negoziazione di meccanismi di autenticazione in protocolli “connection-based” Registrati presso IANA: KERBEROS_V4 GSSAPI SKEY EXTERNAL CRAM-MD5 ANONYMOUS RFC 2222 RFC 2195 RFC 2245 Migrazione di tutti i protocolli verso l’utilizzo di autenticazione sicura EXTERNAL può essere TLS (Transport Layer Security - vari draft) © Francesco Gennai 2000 CRAM-MD5 RFC 2195 (P) IMAP/POP AUTHorize Extension for Simple Challenge/Response Offre un metodo per l’autenticazione client/server senza la necessità di far passare le password in chiaro sulla rete. Utilizza la tecnica descritta in RFC 2104 “HMAC: Keyed-Hashing for Message Authentication”. Simile a APOP Server e client conoscono la password Il server invia al client una stringa s (simile a message-id RFC 822) Il server applica una fuzione di hash a (password + s) Il client applica la stessa funzione a (password + s) ed invia il risultato al server Il server può ora autenticare il client Definito ANONYMOUS SASL per offrire l’accesso ANONYMOUS anche con il metodo SASL © Francesco Gennai 2000 Un esempio Caselle postali “aperte” e caselle postali “chiuse” From: [email protected] To: [email protected] Internet Firewall NO YES Email server qualcosa.it acme.it From: [email protected] To: [email protected] Terminal server Pc1 Pc2 Pcn From: [email protected] To: [email protected] © Francesco Gennai 2000 Un altro esempio Configurazioni anti-relay ed accessi remoti From: [email protected] To: [email protected] From: [email protected] To: [email protected] Internet Firewall Email server qualcosa.it acme.it From: [email protected] To: [email protected] Terminal server Pc1 Pc2 Pcn From: [email protected] To: [email protected] © Francesco Gennai 2000 MIME e MTA • MIME è un meccanismo che attua le sue funzioni nel colloquio tra User Agent • Un Gateway tra ambienti diversi deve svolgere importanti funzioni MIME: • per esempio inoltrare messaggi verso ambienti proprietari in genere richiede l’espletamento di funzioni quali: conversioni di formati, creazione di header MIME, encrypt/decrypt di messaggi. • ma anche in ambiente “omogeneo” evitare la consegna di un messaggio che contiene un documento Word ad un UA che non può visualizzarlo è una funzione importante per un MTA (che possiamo identificare come Gateway tra ambienti UA incompatibili) © Francesco Gennai 2000 MIME gateway alcuni esempi • Inoltro di un messaggio verso una lista di distribuzione: • limitazioni sul messaggio ma anche sulle singole parti di un messaggio MIME multipart (Esempio: sostituzione di attachment image/gif con parte plain/text di avviso) • Inoltro messaggio verso un dispositivo fax (email/fax-gateway) • messaggio MIME multipart potrebbe contenere un attachment non compatibile con il dispositivo fax (Esempio: audio/basic) • il fax-gateway, può verificare un eventuale firma digitale ed aggiungere al messaggio una parte MIME plain/text che riporti il risultato della verifica • Politica di (sicurezza ?): nessun attachment di tipo Word, Powerpoint o Excel può essere trasmesso verso determinati domini (Esempio: dall’Intranet all’Internet) © Francesco Gennai 2000 MIME e MTA messaggio da convertire cnvt messaggio convertito UA reflector messaggio convertito convertitore Un esempio pratico: il servizio conversioni • il messaggio MIME arriva e ciascuna parte che compone il body viene analizzata • se il Content-type corrisponde a quello per cui è richiesta la conversione, la corrispondente parte è passata all’opportuno convertitore. Il risultato è quindi inserito nuovamente nel messaggio originale con Content-type: e gli altri parametri aggiornati • se il Content-type non corrisponde a quello per cui è richiesta la conversione la parte viene rinserita nel messaggio originale senza alcuna modifica Al termine di questo processo ho la stessa struttura del messaggio originario, con alcune parti convertite © Francesco Gennai 2000 Header MIME (prima e dopo la conversione) [email protected] Content-type: multipart/mixed; boundary=“x1234y” Content-type: multipart/mixed; boundary=“x1234y” --x1234y Content-type: text/plain --x1234y Content-type: text/plain Ciao,..... Ciao,..... --x1234y Content-type: application/postscript --x1234y Content-type: application/pdf; x-mac-type=50444620; x-mac-creator=4341524f; name=cnvt.pdf Content-disposition: INLINE; FILENAME=cnvt.pdf Content-transfer-encoding: BASE64 %!PS-Adobe-1.0 %%Pages %%EndComments %%BeginProlog ............ . . . .. . . . . . . . . . . . . .. . ...... . .. ... . . .. .. .. . . . . ...... --x1234y-- JVBERiOxLjFgHHHJKlllsKIjJjWGRLHSTbwKJYWjJH.... ...... .. . . . .. .. . . . . . . . . . . . . . . . . . .. . . --x1234y-© Francesco Gennai 2000