Praktikum z informatiky 2003/2004 Elektronická pošta Jiří Marchalín Praktikum z informatiky 2003/2004 MFF-UK Úvodní slajd
Stručný obsah Historie Protokoly Komunikace mezi sítěmi s různými formáty (UUCP,Fidonet,Bitnet…) Spam a jak se mu bránit Krátce o historii Velká část o SMTP, IMAP a POP Jak na přirozené požadavky o prostupnosti sítí a posílaní do sítí s jiným protokolem Spam
Historie elektronické pošty pravěk před internetem 1962 CTSS MIT (Compatible Time Sharing System) 1965 SDC - Q32 (inter-user), BBN – Mercury 1965 Multics (Multiplexed Information and Computing Service) 1969 ARPANET poprvé použit “@” ~ Internet 1980 SMTP protokol CTSS – MIT, používal příkaz MAIL MAIL M1416 2962 MAIL M1416 * bylo nutné znát číslo příjemce SDC – op.systém Q32 BBN Mercury – mrtvý systém,ale avizoval jakousi formu elektronické pošty Multics – operační systém (MIT,General Electrics,Bell), prvně implementován na počítači G645, @ ukončení řádku ARPANET Larry Roberts napsal TECO macro, které umožňovalo posílat zprávy jiným počítačům A series of ARPANet RFCs discuss the "Mail Box Protocol," which was a way of sending messages to an ARPANet host preceded by a user ID. What the site did with such mail aftewrward was its problem. The first was RFC 0196, "Mail Box Protocol," by R.W. Watson, dated Jul-20-1971. It is not clear this protocol was ever implemented. 1971 – propojeno s Multicsem, zaveden @
Historie elektronické pošty INTERNET 1969 RFC 1, Steve Crocker Requests for Comments, soubor standardů DNS & MX record (Mail Exchange) SMTP, POP, IMAP, UUCP, NNTP RFC je soubor doporučení a standardů k internetové komunikaci, existuje mnoho verzí a většina je už poměrně zastaralá, ale stále používaná DNS: Domain Name Systém je distribuovaná síť používaná k překladu názvu domény na její IP. Pokud dojde K výpadku tohoto servery, vyskytnou se obvykle problémy s poštou a jejím doručováním. Případně některé stránky využívající spadlý server nejsou dostupné. MX record: Mail Exchange Record je záznam v databázi domén, který identifikuje, který server je schopen Přijímat e-maily pro toto doménové jméno. Záznamů může být více, dá se priorizovat.
SMTP aneb co bude následovat Popis SMTP protokolu Odesílání e-mailu Struktura SMTP spojení Chybová hlášení SMTP Co bude dále
Popis SMTP protokolu Simple Mail Transfer Protocol RFC 821 RFC 2821 Transportní protokol Obvykle používá port 25 Krátký úvod
Fáze odesílaní I. (SMTP) klient ~ server II. (SMTP) server ~ server Fáze slouží k odeslání mailu k „vyřízení“ K vlastnímu odeslání příijemci
I. (SMTP) klient ~ server Odesílatel odesilatel@seznam.cz Navázání komunikace se serverem SMTP server odesílatele akceptuje zprávu pro její další doručení Mail Transfer Agent Mail User Agent MUA Mail User Agent, čili software na počítači uživatele naváže spojení se zadaným smtp serverem obvykle na portu 25. Předá mu zprávu a ukončí spojení. Dále se o zprávu postará Mail Transfer Agent, nemusí se nutně jednat přímo O smtp server, protože definice MTA je jen taková,že je stále zapnutý. Viz. dále SMTP server smtp.seznam.cz MTA
II. (SMTP) server ~ server Komunikace mezi servery SMTP server odesílatele naváže spojení se SMTP serverem příjemce DNS server lookup (MX,MB record) Relaying, DNS Spoofing
Schéma doručení DNS lookup smtp.seznam.cz mx3.hotmail.com odesilatel@seznam.cz DNS server
Schéma doručení Relaying Relay server mx3.hotmail.com Local IP Local IP Local IP DNS server
Struktura SMTP Příklad SMTP spojení Příkazy SMTP Návratové hodnoty SMTP Jak poslat e-mail přes telnet pomocí SMTP protokolu
Příkazy SMTP HELO/EHLO – přivítání se se serverem MAIL FROM - odesílatel RCPT TO - příjemce DATA – text zprávy RSET – reset spojení EXPN – (Expand Mailing list) NOOP – udržuje spojení, nemá efekt ETRN – pro DNS lookup bude použit první záznam VRFY – server ověří adresu příjemce QUIT – ukončení spojení Každý příkaz musí mít argmunety (vyjma RSET A QUIT)
Návratové hodnoty SMTP Informuje o stavu SMTP spojení a stavu stroje Každý příkaz generuje právě jednu odpověď (RFC) Sestává z tří číslic a textu Každé číslo v odpovědi má svůj vlastní význam První číslice udává typ chyby Druhá a třetí udává přímo, o kterou chybu se jedná
Význam čísel Význam první číslice Význam druhé číslice 1 – Positive preliminary reply 2 – Positive completion reply 3 – Positive intermediate reply 4 – Transient negative completion reply 5 – Permanent negative completion reply Význam druhé číslice 0 – Sytax 1 – Information 2 – Connections 5 – Mail system
Příklad chyb 502 Command not implemented 500 Syntax error, command unrecognized 501 Syntax error in parameters or arguments 552 Requested mail action aborted: exceeded storage allocation
Rozšířený návratový kód Informuje o stavu Mail serveru Následuje po trojčíslí stavu Podpora není nutná RFC 2034 třída "." předmět "." detail
E-mail ~ Telnet Spojení s vybraným serverem Přihlášení Správná sekvence příkazů
E-mail ~ Telnet HELO jirka // přivítání se se serverem 250 mujserver.cz HELLO jirka [127.0.0.1] Please to meet you MAIL FROM: pokusny@mail.com // odesilatel 250 2.1.0 <pokusny@mail.com>... Sender ok RCPT TO: uzivatel@naserveru.cz // příjemce 250 2.1.5 <uzivatel@naserveru.cz>... Recipient ok DATA // tělo zprávy 354 Enter mail, end with “.” on a line by itself. Text . 250 2.6.0 9 bytes received in 00:00:03; Message accepted for delivery
Tvar zprávy V RCPT TO: může být smyšlená adresa Rozdíl mezi Sender From a Header Hlavička – není nutná, zprávy bez hlavičky většinou mazány jako spam
Hlavička zprávy Oddělena od textu e-mailu prázdným řádkem – není nutné, standard RFC From: moje@adresa.cz To: prijemcova@adresa.cz Cc: nekdo@jiny.cz BCc: tajny@prijemce.cz Subject: zkouska CR/LF
Protokol POP3 Post Office Protocol TCP/IP port 110 Poslední část přenosu e-mailu Slouží ke komunikaci příjemce s cílovým serverem RFC 1225, poslední verze 1460 Pošta je nahrána k uživateli (podstatný rozdíl oproti IMAP)
POP3 – schéma spojení smtp.seznam.cz mx3.hotmail.com POP3 odesilatel@seznam.cz prijemce@hotmail.com DNS server
Příkazy POP3 USER – login, musí následovat příkaz PASS PASS – zadání hesla STAT – vrací velikost MAILBOX a počet zpráv LIST – vrací seznam čísel zpráv LAST – vrací číslo poslední zprávy RETR – vrací text specifikované zprávy (mar) TOP – počet řádek specifikované zprávy DELE – smaže specifikovanou zprávu RSET – označí všechny zprávy jako nepřečtené NOOP – udržuje spojení, nemá efekt APOP – autentifikace s MD5 QUIT – ukončí spojení
Příklad spojení POP3 +OK QPOP (version 2.53) at pop3.server.com starting. USER uzivatel +OK Password required for uzivatel. PASS heslo +OK uzivatel has 2 messages (773 octets). STAT +OK 2 773 LIST +OK 2 messages (773 octets) 1 391 2 382 QUIT +OK Pop server at pop3.server.com signing off.
IMAP 4 Internet Mail Acces Protocol 1986, RFC 2060, Stanford University Veškeré operace jsou prováděny výhradně na serveru. Nemá charakter transportního protokolu Nezáleží na formátu uložené zprávy
Příkazy IMAP 4 AUTHENTICATE – zabezpečené spojení LOGIN – login pouze přes plaintext LIST – obsah účtu SELECT – výběr MAILBOXu EXAMINE – statistika účtu CREATE – vytvoření MAILBOX/adresář DELETE – smazání zprávy/adresáře/MB RENAME – přejmenování adresáře/MB
Spojení přes IMAP4 * OK Merak 7.2.0 IMAP4rev1 Sun, 22 Feb 2004 <<< 001N CAPABILITY <<< 001O LOGIN "pokus" ******* >>> 001O OK LOGIN Completed <<< 001P SELECT "INBOX" >>> 001Q OK UID FETCH Completed <<< ZZZZ LOGOUT >>> * BYE IMAP4rev1 Server terminating connection
UUCP Unix to Unix Copy Protocol Staré RS 232 (seriové linky) RFC 976, 1970 Spojení mezi dvěma UUCP moduly 3 fáze Inicializační handshake Přenos souboru Finální handshake Tento protokol měl poskytovat jednoduché připojení k síti pomocí veřejných telefonních linek. Protože většina lidí, kteří chtějí mít na svém domácím počítači elektronickou poštu a usenetové news, stále používá ke komunikaci modemy, zůstává protokol UUCP i nadále velice populární. I přes vysoký počet implementací tohoto protokolu, které lze provozovat na širokém spektru hardwarových platforem a operačních systémů, jsou tyto implementace navzájem vysoce kompatibilní. Neexistuje univerzalní implementace. The UUCP protocol is a conversation between two UUCP packages. A UUCP conversation consists of three parts: an initial handshake, a series of file transfer requests, and a final handshake.
Implementace UUCP BNU (Basic Networking Utilities) HDB (HoneyDanBer) Honeymana, D. A. Novitze a B. E. Redmana Taylor, nejnovější, Linux Výhodné pro Unixové systémy (různá práva k doručování)
Komunikace s UUCP Začíná ^P, \020 a končí \000 nebo \012 \020Shere=hostname\000 Forma úkolů, priority 020\0000000\012 020\00000000\012 Protokol UUCP nabízí mechanismus, pomocí něhož můžete na ostatních systémem spustit přenosy souborů pod svým jménem. Například následující mechanismus umožňuje, aby pro vás hostitel seci přijal soubor z hostitele uchile a poslal ho do vašeho systému. Tato technika, pomocí níž lze předávat úkol přes několik systémů, se nazývá doručování. Ve výše uvedeném příkladu může být důvodem použití doručovací techniky například to, že hostitel seci má přístup pomocí protokolu UUCP k hostiteli uchile, zatímco váš hostitel nemá přístup k tomuto hostiteli. Avšak pokud provozujete systém s protokolem UUCP, budete chtít omezit doručovací službu pouze na několik důvěryhodných hostitelů, kteří vám nevyženou telefonní účet do neúnosných mezí například tím, že by chtěli po vašem hostiteli stáhnout poslední verzi zdrojového kódu balíku X11R6.
NNTP Net News Transfer Protocol RFC 977 Port 119 Princip zcela shodný se SMTP "NNTP" stands for Net News Transfer Protocol, as specified in RFC977, with extensions in common practice. NNTP is a TCP/IP protocol based upon text strings sent bidirectionally over 7 bit ASCII TCP channels. It is used to transfer articles between servers as well as to read and post articles.
Komunikace mezi různými sítěmi E-mail do sítě používající jiný protokol Přenos e-mailu přes tyto sítě Poštovní brány (Princip Gateway) (konverze mezi aplikačními protokoly)
Poštovní brána Gateway MS MAIL X 25 Internet X 400 MS MAIL SMTP Gateway
SPAM 1978 První článek o Spamu (Brad Templeton) DEC první spam o DEC-20 (Arpanet) Spam filtry, Analýza obsahu (Content filter) Black & White listy, Challenge Response, Bayesianské filtry