Elektronická pošta

Vít Novotný, witiko na mail.muni.cz

Obsah

Historie

Elektronická pošta je způsob komunikace, který vznikl na víceuživatelských sálových počítačích během šedesátých let minulého století. Původně se jednalo pouze o jednoduchý systém, který umisťoval soubory do uživatelova domovského adresáře. S nástupem ARPANETu o několik let později byla elektronická pošta rozšířena do distribuovaného prostředí a rychle se stala hlavní službou sítě. Tou zůstává i v rámci dnešního Internetu. [1]

Anatomie služby

Druhy uzlů a jejich chování

          ____________                          _____________________
|\__________/| | |
MUA = | | => MTA => ... => MTA = | From: alice@1.2.3.4 |
| 1.2.3.4 -> | | To: bob@5.6.7.8 |
/\ | -> 5.6.7.8 | | Subject: .......... |
/||\ |____________| |_____________________|
|| ||
_____________________ ____________ \||/
| | |\__________/| \/
| From: alice@1.2.3.4 | | | (ne) (ano)
| To: bob@5.6.7.8 | | <empty> -> | <==== MDA ====> bob@5.6.7.8
| Subject: .......... | | -> 1.2.3.4 | (existuje bob)
|_____________________| |____________|

alice@1.2.3.4
Obrázek: Cesta e-mailové zprávy od Alice k Bobovi

Systém elektronické pošty sestává z následujících komponent:

Zpráva elektronické pošty se skládá z obálky a dat. Obálka zprávy obsahuje následující informace:

Obálka je vygenerována MUA (Mail User Agent) odesílatele a je spolu se zprávou předána MTA. MTA (Mail Transfer Agent) si zprávu předávají, až je zpráva doručena poslednímu MTA, který obálku zahodí a předá samotná data zprávy místnímu MDA (Mail Delivery Agent). Ten zprávu buďto úspěšně doručí, nebo odešle chybovou zprávu, přičemž jako obálkového adresáta nastaví odesílatele původní zprávy a obálkového odesílatele nechá nevyplněného.

Formát zpráv

Samotná data zprávy [2] pak můžeme rozdělit na následující části:

Hlavičky zpráv

Mezi standardně používané hlavičky elektronické pošty patří:

Kromě standardních hlaviček lze zadávat i nestandardní hlavičky s klíči ve tvaru X-cokoliv.

Hlavičky mohou standardně obsahovat pouze ASCII znaky. Použití ne-ASCII znaků v hlavičkách pak popisuje standard MIME Words [5], který diktuje následující formát:

=?přenosové kódování?znaková sada?text?=
Přenosová kódování jsou v tomto případě definována dvě:

Tělo zpráv

Tělo zprávy může obsahovat ASCII text. S využitím rozšíření MIME [39] však lze do těla vkládat i text v osmi- a vícebitových kódováních nebo libovolné binární soubory. Povinné hlavičky MIME jsou následující:

Protokoly

Komunikace s MTA (SMTPESMTP)

Pro přenos pošty nad TCP/IP stackem slouží protokol SMTP [10]. Protokol je rozšiřitelný (tzv. ESMTP) [11], přičemž mezi dnes běžně podporovaná rozšíření patří např. podpora 8-bitového přenosu (příkaz 8BITMIME), přenos bez potvrzování (příkaz PIPELINING) a další.

Klient se připojuje k (E)SMTP serveru na TCP portu 25 a zahajuje komunikaci příkazem HELO (nebo EHLO pro vyžádání práce s ESMPT). Následně dojde k předání obálky zprávy pomocí následujících příkazů:

MAIL FROM: odesílatel
RCPT TO: adresát
Následně klient zadává příkaz DATA, za kterým následuje datová část zprávy. Ta je ukončena tečkou na samostatném řádku. Klient ukončuje relaci pomocí příkazu QUIT.

Mezi běžně používané (E)SMTP servery (MTA) na UN*Xových systémech patří:

Při doručování lokální pošty (E)SMTP servery spouští MDA. Mezi běžně používaná MDA servery na UN*Xových systémech patří Procmail [15] a Maildrop [16].

Vzdálené čtení pošty (POPIMAP)

Pro přístupu k elektronické poště uložené na vzdáleném stroji slouží protokoly POP (verze 3) a IMAP (verze 4). Protokol POP umožňuje výlučný přístup k uživatelově schránce, přičemž práce s poštou je v rámci dané relace atomická. Díky jednoduchosti protokolu není možné v rámci schránky vytvářet adresáře. Protokol IMAP oproti tomu umožňuje sdílený přístup k uživatelově schránce, přičemž obsah schránky je možné organizovat do adresářů.

Mezi běžně používané POP/IMAP servery na UN*Xových systémech patří DoveCot [17]. Mezi běžně používané POP/IMAP klientské programy (MUA) na UN*Xových systémech patří Mutt [18], Alpine [19] a sup [20].

Webová rozhraní (HTTP)

HTTP je spolu s elektronickou poštou jednou z hlavních služeb současného Internetu. Existuje proto množství HTTP serverů, které poskytují skrz webové rozhraní přístup k MUA. Toto umožňuje naprosté odstínění uživatele od konfigurace parametrů stahování a odesílání pošty.

Mezi běžně používané POP/IMAP servery na UN*Xových systémech patří SquirrelMail [21], Roundcube [22] a Mailpile [23].

DNS záznamy

Pokud je obálkový adresát zadán ve formátu uživatel@[IP adresa], může MTA zprávu rovnou odeslat. Pokud je obálkový adresát zadán ve formátu uživatel@doména, musí MTA nejprve zjistit, na jaké IP adrese se nachází MTA pro příslušnou doménu. K tomuto účelu slouží MX DNS záznam, který udává seznam MTA domény seřazených podle pořadí, v jakém mají být zkoušeny:

; Zone file for pv090.fi.muni.cz
$TTL    1D
; …
@       IN      MX      0       proto06
@       IN      MX      0       proto06-alpha
@       IN      MX      10      erigona
Pro stažení MX záznamů z DNS serveru můžeme použít příkaz host -t mx doména DNS_server.

Dalším DNS záznamem, který se pojí s elektronickou poštou je SFP záznam [24]. Implicitně může MUA odesílající zprávu skrz MTA zadat libovolného obálkového odesílatele. Aby se zabránilo podvrhu, je možné SFP záznamem zadat, z jakých IP adres lze odesílat zprávy se zadaným obálkovým odesílatelem.

Obrana proti spamu

Video: Monty Pythonův létající cirkus a spam

Jedním z problémů elektronické pošty je pošta nevyžádaná, která podle statistik tvoří více než 80 % veškerého (E)SMTP provozu. [25] Existuje několik druhů obrany proti spamu:

Odkazy

  1. The history of email
  2. RFC 5322 – Internet Message Format
  3. RFC 2045 – Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
  4. RFC 2046 – Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
  5. RFC 2047 – Multipurpose Internet Mail Extensions (MIME) Part Three: Extensions for Non-ASCII Text
  6. RFC 4288 – Media Type Specifications and Registration Procedures
  7. RFC 4289 – Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures
  8. RFC 2049 – Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples
  9. RFC 2231 – MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations
  10. RFC 2821 – Simple Mail Transfer Protocol
  11. RFC 1869 – SMTP Service Extensions
  12. Sendmail – Wikipedia
  13. Exim Internet Mailer
  14. The Postfix Home Page
  15. procmail – mail delivery agent
  16. maildrop - mail delivery agent with filtering abilities
  17. Dovecot – Secure IMAP server
  18. The Mutt E-Mail Client
  19. Alpine Messaging System
  20. ./sup – A curses threads-with-tags style email client
  21. SquirrelMail – Webmail for nuts
  22. Roundcube – Free and Open Source Webmail Software
  23. Mailpile – e-mail that protects your privacy
  24. Sender Policy Framework – Introduction
  25. State of Spam – A Monthly Report
  26. Apache SpamAssassin
  27. [ANNOUNCE] hash cash postage implementation
  28. PV005 – Služby počítačových sítí > Mail
  29. UNIX: Programování a správa systému II > Administrace sítě > Elektronická pošta