Elektronická pošta

Dávid Šimanský, 359267@mail.muni.cz

Obsah

Úvod

Elektronická pošta, najčastejšie označovaná v skrátenej forme e-mail/email(z angl. electronic mail) definuje spôsob výmeny správ v digitálnej forme medzi odosielateľom a jedným alebo viacerými príjemcami. Emailové systémy sú založené na store-and-forward princípe, teda email server sa stará o príjem, doručenie, ukladanie. Užívateľ sa pripája len na čas potrebný na odoslanie a prijatie správ. Pre prítup k mailom je možné využívat webové rozhranie(SquirrelMail, Roundcube a mnoho ďalších) alebo natívnych klientov (Thunderbird, Claws Mail, Bližšie nešpecifikovaný klient z Redmontu, etc.) pre PC, Mac, Linux alebo mobilné platformy. V súčastnosti sa s elektronickou poštou spájajú tri najdôležitejšie protokoly SMTP pre posielanie správ a IMAP/POP3 pre získavanie správ zo servera.

Formát emailovej adresy je definovaný v RFC5322. Príklad: alice@domain.com. Reťazec pred "@" reprezentuje lokálnu časť adresy, typicky username užívateľa v našom prípade alice, je case-sensitive. Reťazec po "@" zastupuje doménu, kam bude email odoslaný, nie je case-sensitive.

Príklad zasielania správ

Formát správ

Rovnako aj formát správ je definovaný v RFC5322. Pozostáva z dvoch hlavných častí:

Header

Každý email obsahuje práve 1 hlavičku, ktorá pozostáva z polí danými podľa RFC. Názov a hodnota sú oddelené ":". Prípustné sú len US-ASCII znaky. Donedávna bolo možné použitie iných znakových sád len prostredníctvom rozšírenia MIME (Multipurpose Internet Mail Extensions). Od februára 2012 je dostupné RFC6532, ktoré zavádza možnosť používania Unicode UTF-8 priamo v hlavičkách ako From:, To:, Cc: atd. Toto rozšírenie musí byť podporované na strane servera.

Príklad hlavičky + MIME:


Received: by sender-daemon@arethusa2.fi.muni.cz
        PID 7309 for 359267@mail.muni.cz; Wed, 20 Feb 2013 17:00:19 +0100
Received: from ismu-submit at Wed Feb 20 17:00:03 2013 via SQL
From: Ondrej =?UTF-8?Q?Fam=C4=9Bra?= <324964@mail.muni.cz>
To: =?UTF-8?Q?D=C3=A1vid?= =?UTF-8?Q?=20=C5=A0imansk=C3=BD?= <359267@mail.muni.cz>
Subject: Virtualne stroje pre pre predmet PV090
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <1361376019.122083933.978.980961677888@mail.muni.cz>
Date: Wed, 20 Feb 2013 17:00:19 +0100
Return-Path: 324964
X-ISMU-Expires: 2013-08-18
X-DSPAM-Result: Innocent
X-DSPAM-Processed: Wed Feb 20 17:00:19 2013
X-DSPAM-Confidence: 0.9985
X-DSPAM-Probability: 0.0000
X-DSPAM-Signature: 5124f313321841336510255

Zaujímavosťou je napríklad hlavička List-Unsubscribe, ktorá umožňuje odosielateľovi newsletteru zahrnúť tento odkaz priamo do hlavičky. Túto rozpozná emailový klient a pri pokuse o zmazanie/presunutie do spamu (záleží na konkrétnej impl.) ponúkne možnost odhlásenia sa z mailing listu. Gmail tento dialóg ponúka pri kliknutí na "Report Spam". Mal by to byť best practice všetkých mailing listov, ktoré nemajú v úmysle otravovať luďom život.

Príklad hlavičky List-Unsubscribe:


From: bob@domain.com
Subject: [espc-tech] More info on List-Unsubscribe
Date: August 31, 2012 3:13:02 PM CDT
To: alice@domain.com
List-Unsubscribe: , 

Body

Podobne ako hlavička telo správy podporovalo telo správy len US-ASCII. Preto sa tiež používa MIME, ktoré v tele stará znakové sa, netextový obsah (base64 pre binárne dáta), rozdeľovanie do častí. V dnešnej dobe je dobre rozšírená v emailových klientoch aj podpora formátovania pomocou HTML, hlavička musí obsahovať Content-type: text/html. HTML nespornou výhodou hlavne pre newslettery a iné propagačné materiály je možnosť používania CSS štýlov, vkladanie obrázkov, klikateľné odkazy.

Ukladanie správ

O ukladanie správ do lokálnej schránky príjemcu sa stará MDA. Bežne sa stretneme s dvomi formátmi ukladania správ.

Protokoly

SMTP

SMPT - Simple Mail Transfer Protocol je štandardom pre emailovu komunikaciu prostredníctvom IP siete. Komunikácia prebieha na TCP porte 25. Pre zabezpečenú komunikáciu SSL sa používal port 465, ale ten bol nahradený portom 587 a zabezpečením STARTTLS, kde je možné na rovnakom porte komunikovať šifrovaným spojením alebo len plaintextom. SMTP je textovým protokolom. Komunikácie medzi klientom a serverom prebieha spoľahlivým TCP protokolom na základe textových príkazov.

SMTP-AUTH rozšírenie pridáva možnosť prihlásenia užívateľa pred odoslaním emailu, aby sa zabezpečila legitimita odosielateľov. Server tiež može nastavit hlavičku Authentication-Results: pre príjmajúce MTA.


S: 220 smtp.example.com ESMTP Postfix
C: HELO relay.example.org //príkaz na naviazanie spojenia
S: 250 Hello relay.example.org, I am glad to meet you
C: MAIL FROM: //príkaz na ustanovenie (obálkového) odosielateľa správy
S: 250 Ok
C: RCPT TO: //príkaz na ustanovenie prijímateľa správy
S: 250 Ok
C: RCPT TO: //príkaz na ustanovenie prijímateľa správy
S: 250 Ok
C: DATA //príkaz na odoslanie tela správy
S: 354 End data with .
C: From: "Bob Example" 
C: To: "Alice Example" 
C: Cc: theboss@example.com
C: Date: Tue, 15 January 2008 16:02:43 -0500
C: Subject: Test message
C:
C: Hello Alice.
C: This is a test message with 5 header fields and 4 lines in the message body.
C: Your friend,
C: Bob
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye

POP3

POP3 - Post Office Protocol 3 je protokol na získanie nových správ. Po pripojení server sa nové správy stiahnu a lokálne uložia na klientskom storji, následne sa tieto správy odstránia na servery. Nevýhodou POP3 je práve mazanie mailov na servery a tým zhoršený prístup z viacerých zariadení do jednej schránky, to bolo odstránené u MUI klientov a väčšina bežne používaných ponúka možnosť ponechať emaily na servery po stiahnutí. Pre POP3 musí byť povolený firewall na porte 110, pre SSL spojenie bol vyhradený port 995. Rovnako ako SMTP aj POP3 podporuje zabezpečenie STARTTLS na štandardnom porte.

IMAP

IMAP - Internet Message Access Protocol vo verzii 4 revision 1 je taktiež protokol pre získavanie správ zo servera. Odstraňuje niektoré nedostatky spojené s POP3, hlavne prístup do jedného mailboxu viacerým užívateľom/strojom. S tým daľej suvísí ukladanie stavu správy na serveri, či bola prečítaná, preposlaná, odpovedaná a následnú synchronizáciu. Vytváranie nových adresárov na servery na triedenie správ. Nevýhodou je neustále udržiavenie TCP spojenia na server, aby bol klient hneď notifikovaný o novej správe. Pri odosielaní je potrebné posielať správu dvakrát, raz do SMTP a raz do odoslaných správ na IMAP. V IMAP je podprované vyhľadávanie na strane server, čo može znamenať značné využitie zdrojov pri obsiahlých mailboxoch.

Spam

Spam je termín označujúci použitie systému elektornickej pošty na zasielanie nevyžiadaných správ najčastejšie obsahujúcich reklamu na rôzne produkty, odkazy na podvrhnuté stránky (phishing) alebo infikované stránky. Podľa odhadov môže spam tvoriť až 80% celkovej emailovej komunikácie prebiehajúcej na . Na rozosielanie spamu sú často využívané botnety. Aj v dnešnej je to veľmi obľúbená forma marketingu s takmer nulovými vstupnými nákladmi a malou mierou preukázania zodpovednosti a následných postihov.

Medzi techniky ako bojovať proti spamu patrií napríklad vynútenie RFC štandardov, blacklisting, kontrola reverzných záznamov.

Open relay - SMTP server v tomto režime umožňuje odosielanie e-mailov komukoľvek. Táto funkcionalita sa však začala používať na rozširovanie spamu, preto sa dnes servre konfigurujú, aby to neumožňovali.

Vynútenie RFC štandardov

Greeting delay - SMTP server čaká pri nadviazaní spojenia určitý čas, kým pošle naspať odpoveď. Spambot, ale nečaká na prijatie odpovede a hned začína vysielať dáta. Tento krok pre SMTP server indikuje, ze niečo nie je v poriadku a komunikáciu odmieta.

Greylisting - technika, kedy SMTP server dočasne odmietne správu od neznámeho odosielateľa. Odmietnutie prebehne pomocou error kódu 4xx, to pre normálne MTA indikuje, že sa majú pokúsiť o komunikáciu neskôr. Je založený na predpoklade, že pre spambota je nevýhodné čakať a preto sa presúva na dalšiu adresu so svojho zoznamu bez toho, aby sa pokúsil opäť odoslať odmietnutý email.

HELO/EHLO - SMTP server robí kontrolu, či HELO/EHLO message spĺňa požiadavky podľa RFC. Napríklad adresa je FQDN, keď ide o ip adresy musí byť v hranatých zátvorkách [10.0.0.60].

Nolisting - technika, kedy sa medzi MX záznami vloží neexistujúci SMTP server s najvyššou prioritou. RFC štandard definuje ako správne postupovať pri nedostupnosti tohto servera a preto len správne implementovaný error-handling na strane odosielateľa zaručí poslanie správy.

Quit detection - spojenie musí byť ukončené pomocou príkazu QUIT. Mnoho spambotov, túto časť preskakuje, aby šetrili čas a bandwidth.

DNS blacklisting

Zoznam IP adries, ktoré sú spojené zo spamovaním je rozosielaný pomocou DNS ako zónový záznam pre ostatné DNS servery alebo ako live DNS zóna, na ktorú je možné sa dotazovať. Dôvodo zaradenie do blacklistu je uvádzaný v TXT zázname, ide najčastejšie o spam, ale blacklistujú sa aj open relays, ISP, ktorý podporujú/hostujú spamsites.

Sender Policy Framework

SPF je systém založený na overovaní e-mailovej adresy odosielateľa správy. SPF umožňuje administrátorom špecifikovať, ktorý uzol môže odosielať e-maily z danej domény. Toto je definované SPF (alebo TXT) záznamom v DNS danej domény. SMTP servery teda kontrolujú tento záznam a na základe neho vyhodnocujú, či daná správa mohla byť odoslaná, alebo je spam.

Antispamové filtre

Program alebo funkcionalita MUA, ktorá slúži na rozpoznanie spamu na základe kontroly tela, hlavičky, príloh,... správy. Filtre sa dajú nastaviť aby boli citlivé na dané výrazy, slová, na konkrétnych odosielateľov, domény, atď. Mnohé filtre dovolia užívateľovi nejaký čas označovať správy ako spam a na základe týchto informácií následovný spam odhalovať.

Postfix

Podľa štúdie z januára 2012 cca 23% verejne dostupných mail serverov prevádzkovaných na Postfixe.

Postfix je open-source mail transfer agent, ktorý smeruje a doručuje elektronickú poštu. Bol mienený ako alternatíva k Sendmailu. Nasadzuje sa typicky s ďalšími riešeniami. Dovecot na prístup cez POP3/IMAP, anti-spam SpamAssasin, ClavAV.

Konfiguračné súbory k postfixu sa nachádzajú v adresári /etc/postfix. Hlavnými konfiguračnými súbormi sú master.cf, ktorý obsahuje nastavenia démonov postfixu a main.cf, ktorý obsahuje nastaviteľné parametre postfixu a jeho podsystémov.

Funkcie:

Doménový kôš - e-mailová schránka určená pre správy pre neexistujúceho užívateľa danej domény. V Postfixe sa nastevuje premenná luser_relay = @$domain, kam môžme priradiť fiktívneho užívateľa, cez ktorého budeme túto poštu daľej triediť. Je dôležité, aby lokálnu poštu doručoval podsystém local, inak parameter luser_relay nebude fungovať.

Literatura