www.SAMURAJ-cz.com 

26.04.2024 Oto Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Protokol SMTP a adresy v elektronické poště

Čtvrtek, 19.12.2019 12:44 | Samuraj - Petr Bouška |
V dalším článku se podíváme na metody pro ověřování původu poštovních zpráv (SPF, DKIM). K tomu je důležité rozumět, jak SMTP protokol odesílá poštovní zprávy. Hlavně, jak se ukládají adresy odesílatele a jak je jednoduché je podvrhnout. SMTP transakce, když se používají SMTP příkazy, označujeme jako SMTP obálku (Envelope). Vlastní email se skládá z hlavních částí, což je hlavička (Header) a tělo (Body) zprávy.

SMTP přenos zpráv

SMTP (Simple Mail Transfer Protocol) je komunikační protokol pro přenos elektronické pošty (emaily / zprávy / dopisy). Dnes se převážně používá rozšířený ESMTP (Extended SMTP). Jde o internetový standard popsaný v RFC 5321. SMTP server standardně používá TCP port 25. SMTP je textový protokol, který využívá komunikační spojení (connection-oriented). Princip spočívá v zasílání příkazů (textových řetězců) a odpovídajících dat, a příjmu odpovědí.

Poštovní klient (nebo aplikační server) posílá zprávy pomocí SMTP na zadaný poštovní server (alternativně může využívat proprietární protokol jako je pro Exchange Microsoft MAPI). Pro příjem zpráv se běžně využívá protokol POP3 nebo IMAP. Poštovní servery, a další Message Transfer Agents (MTA), používají SMTP pro odesílání a příjem poštovních zpráv mezi sebou. Směrování se provádí pomocí nastavených pravidel nebo DNS MX (Mail Exchanger) záznamů domény.

SMTP obálka - Envelope

Při přenosu poštovních zpráv spolu komunikuje SMTP klient a server. Používá se termín SMTP Envelope (obálka) pro SMTP příkazy, které obalují vlastní zprávu a zařizují její odeslání. Hlavní SMTP příkazy jsou HELO, MAIL FROM, RCPT TO, DATA.

Hlavička poštovní zprávy - Header

Vlastní poštovní zpráva (email) se skládá z položek hlavičky (The Header Section of the Message) následovaných tělem (Body). Formát emailu (Internet Message Format - IMF) je popsán v RFC 5322. Hlavička je sekvence řádků definované syntaxe, tělo je jednoduchá sekvence znaků oddělená od hlavičky prázdným řádkem (CRLF). Položky hlavičky začínají názvem položky následovaným dvojtečkou a tělem položky. Jediné povinné položky hlavičky jsou Date: (Origination Date) a From: (Originator Address).

V hlavičce se mohou nacházet položky Destination Address  To:, Cc: a Bcc:. V rámci SMTP obálky (Envelope) se vždy používá příkaz RCPT TO a musí obsahovat všechny příjemce (opakuje se pro každého z nich). Pro klienta se může rozlišit v hlavičce, zda jde o přímého příjemce (To), kopii (Carbon Copy) nebo skrytou kopii (Blind Carbon Copy), kde server při doručení odstraňuje řádek Bcc:.

Některé položky hlavičky doplňují poštovní servery při zpracování zprávy (třeba Received:). Teoreticky mohou změnit jakoukoliv informaci, i když norma určuje, které položky se nesmí odstraňovat či modifikovat, a které musí být v daném pořadí.

Přirovnání k dopisu

Celá situace se dá přirovnat k posílání dopisu klasickou poštou. Máme obálku, na kterou nadepíšeme odesílatele a příjemce, tyto údaje využívá pošta při doručování. Uvnitř obálky je zalepený dopis (který pošta nevidí) a ten obsahuje také informace o odesílateli a příjemci, které mohou být jiné od údajů na obálce. Příjemce může reagovat na údaje v dopise, když chce odpovědět.

Příklad posílání zprávy pomocí SMTP

Níže je příklad SMTP komunikace (transakce), kde S znamená Server, C je klient. Tučný text nepatří do SMTP komunikace a označuje danou část (obálka a email, rozdělený na hlavičku a tělo).

SMTP Envelope - obálka
S: 220 mail.firma.cz ESMTP
C: HELO test.cz
S: 250-mail.firma.cz
C: MAIL FROM:<user@test.cz> 
S: 250 2.1.0 Sender OK
C: RCPT TO:<user@firma.cz> 
S: 250 2.1.5 Recipient OK
C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>
Message Header - hlavička
C: From: User Test <user@test.cz>
C: To: User Firma <user@firma.cz>
C: Date: Tue, 17 Dec 2019 16:02:43 +0100
C: Subject: Test mail
C: 
Message Body - tělo
C: Mail text ...
C: .
SMTP Envelope - obálka
S: 250 2.6.0 Queued mail for delivery
C: QUIT
S: 221 2.0.0 Service closing transmission channel

Různé adresy odesílatele

Pro ověřování emailů může být problém, že poštovní zpráva může mít více údajů o odesílateli.

Hlavička zprávy - Header From

Údaje, které používá poštovní klient, se nachází v hlavičce zprávy a jsou popsány v RFC 5322. Nejběžnější je adresa odesílatele v položce From:, která má specifikovat autora zprávy (kdo email napsal). Na tuto adresu standardně odpovídají uživatelé. Chování se může změnit, pokud je v hlavičce položka Reply-To:, to je návrh autora, na jakou adresu odpovídat (poštovní klienti ji většinou použijí pro odpověď).

Další možná položka hlavičky je Sender:, která určuje adresu (schránku) agenta zodpovědného za skutečný přenos zprávy (kdo email odeslal, na tuto adresu se neodpovídá). Tedy tato adresa odeslala email jménem adresy uvedené ve From. Například nějaká služba na rozesílání emailů (nebo sekretářka) by měla být uvedena jako Sender a moje adresa jako From. Poštovní klient pak často příjemci zobrazuje postovni@sluzba.cz on behalf of ja@firma.cz.

SMTP obálka - Envelope From

Další adresu, která může být jiná, vidí poštovní server v SMTP obálce. Jde o adresu Envelope Sender ze SMTP příkazu MAIL FROM. Tato adresa se do hlavičky ukládá jako Return-Path:,  popis se nachází v RFC 5321. V praxi je určena pro odpovědi serverů, například pokud máme speciální adresu, kam se mají doručovat NDR (Non Delivery Report - Bounce Message). Běžně je adresa Return-Path stejná jako From. Spameři zneužívají toho, že mohou být adresy různé. Pak do adresy From dávají podvrženou adresu, kterou příjemce považuje za důvěryhodnou.

Technicky slouží Return-Path jako informace pro trasování zprávy (záznamy do zprávy vkládají SMTP servery při příjmu zprávy a umožní zjistit, jak zpráva putovala, další takovou položkou hlavičky je Received). Do hlavičky ji vkládá cílový poštovní server (zdrojový systém nesmí poslat zprávu, která by obsahovala tuto položku hlavičky).

Stručné shrnutí adres odesílatele

  • Envelope Sender - zadává se do SMTP příkazu MAIL FROM (doména má být také v HELO/EHLO), standardně se ukládá do položky hlavičky Return-Path:,  poštovní klient ji běžně nezobrazuje, používá server při odesílání chyb
  • Header Sender - nachází se v položce hlavičky From: nebo Sender:, zobrazuje ji poštovní klient, poštovní server se o ni nestará
zobrazeno: 8762krát | Komentáře [0]

Autor:

Související články:

Elektronická pošta - email

Protokol SMTP a jeho vlastnosti. Ochrana elektronické pošty proti SPAMu a Phishingu. Šifrování pošty...

Microsoft Exchange

Jednou částí mé práce je administrace poštovního serveru od firmy Microsoft, tedy Exchange Serveru. Články začínají u verze 2003 a jak jde čas, tak pokračují dále.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

Zatím tento záznam nikdo nekomentoval.

Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách