Zabezpečení v systému elektronické pošty
Úvod
Elektronická pošta patří k nejvyužívanějším službám internetu. Kromě standardního používání dochází k jejímu různému zneužívání: falšování odesilatele, hromadné rozesílání nevyžádané pošty, padělání obsahu zprávy aj. V tomto článku představíme některé postupy zabezpečení zpráv při odesílání z klientského programu na odesílající poštovní server. Cesta dopisu zpravidla vede z odesílajícího serveru na cílový, takže zabezpečení prvního úseku neznamená zabezpečení dopisu na celé jeho cestě, tj. od odesilatele až k příjemci.
Vysvětlení komunikace jsou doprovozena praktickými příklady, které slouží k ověření vlastního porozumění specifikovaným protokolům a k ověření deklarovaného chování poštovních aplikací.
Obecně o zabezpečení elektronické pošty
Přístup k poště můžeme rozdělit na dvě části: odesílání a příjem zpráv. Těmto částem odpovídají různé protokoly. Rozvoj webu vedl k zavedení webového rozhraní k poště (WebMail). Toto rozhraní využívá kombinace protokolů HTTP (HTTPS) a (E)SMTP.
Prakticky všechny protokoly musí řešit otázku ověřitelnosti totožnosti serveru a klienta, zabezpečení přenosu dat proti odposlechu šifrováním, a problém integrity (neporušenosti a totožnosti zpráv) - kontrolní součty, resp. otisky.
Protokoly SMTP a (E)SMTP nejsou v zásadě dosti bezpečné: nevyžadují ověření totožnosti odesilatele a nebrání jeho falšování. Obsah zprávy je přenášen v otevřeném (nezašifrovaném) tvaru a při nesprávné konfiguraci (E)SMTP serveru je možné zprávy rozesílat anonymně nebo pod falešným jménem na mnoho míst. Složitější formáty zprávy podle protokolu MIME mohou být zneužity k šíření virů a makrovirů.
Protokoly POP3 a IMAP pro přijímání zpráv ověřují totožnost uživatele, takže není možno ke schránce přistoupit anonymně. V základní podobě jde o nezašifrovanou komunikaci, proto je možné uživatelské heslo odposlechem zachytit.
Ochrana poštovní komunikace pomocí protokolů
V současné době existují protokoly a jejich realizace, které chrání komunikaci mezi poštovním klientem a poštovním serverem nebo poštovními servery navzájem.
Zabezpečení má chránit před:
- falšováním totožnosti serveru,
- odposlechem,
- pozměněním zprávy.
Ochrana je založena na různých kombinacích šifrování zpráv a ověřování totožnosti uživatele a serveru. Přitom se využívají nové porty. Zabezpečení je možné odstupňovat v závislosti na konkrétním prostředí a přijaté bezpečnostní politice.
Kromě šifrování a ověřování totožnosti odesilatele lze pro zabezpečení poštovní komunikace využít i umístění počítače v místní síti na základě IP adresy nebo doménového jména. Na odesílajícím poštovním serveru lze zvolit množinu IP adres, z nichž bude odesílání zpráv povoleno nebo zakázáno a ověřování totožnosti odesilatele nebude vyžadováno. Tato kontrola IP adresou však nemusí stačit.
Protokol ESMTP pro odesílání zpráv na portu 25 se využívá s ověřováním totožnosti (SASL), ale bez šifrování celé komunikace. Častější je odesílání zpráv s ověřováním totožnosti a šifrováním celé komunikace pomocí protokolu SSL/TLS na portu 465.
Pro příjem (stahování) zpráv se místo nezabezpečených verzí protokolu POP3 a IMAP užívají jejich zabezpečené (šifrované) varianty. Místo portu 110 se využívá port 995, místo portu 143 port 993, místo HTTP na portu 80 se užívá HTTPS na portu 443.
V dalším ukážeme na příkladech možnosti zabezpečení při přijímání a odesílání zpráv. Začneme bezpečnostními prvky obsaženými v protokolech POP3 a IMAP, protože jejich představení, zejména v protokolu POP3, je snazší.
Protokol POP3
Protokol POP3 umožňuje klientskému programu počítače, který není trvale připojen k internetu, stahovat nevyzvednutou poštu z POP3 serveru, který má přístup k poštovní schránce majitele účtu. Jiné složky než "došlá pošta" (inbox) nejsou přístupné.
Protokol je textový, používá se port TCP/110 a komunikace není šifrovaná. Po navázání spojení je nutné přihlášení jménem a heslem.
Hlavní příkazy POP3
Použitelné během ověřování totožnosti | |
USER už_jméno - jméno uživatele | PASS řetězec zadání hesla (nešifrovaně) |
QUIT – bez parametru, ukončení transakce, přechod do aktualizační fáze | |
Použitelné během transakce | |
STAT – bez parametru, počet zpráv ve schránce, jejich celkový objem | |
LIST [n] - bez parametru, seznam zpráv (pořadové číslo, velikost zprávy) | RETR n stáhnutí zprávy n |
DELE n - zrušení zprávy n | NOOP - bez parametru, udržování spojení |
RSET – bez parametru, odvolání hodnot klienta/serveru, nová relace | QUIT – bez parametru, ukončení transakce, přechod do aktualizační fáze |
APOP už_jméno otisk - použitelné během ověřování, varianta k USER/PASS | n - pořadové číslo zprávy ve schránce |
Protokol lze realizovat ručně. Po navázání spojení s POP3 serverem se přihlásíme příkazem USER a vložíme heslo příkazem PASS. Prokázání totožnosti lze provést jedním příkazem APOP. První parametr je jméno uživatele a druhý je otisk MD5; vytváří se z identifikace relace a sdíleného hesla. Tím končí fáze ověření totožnosti.
V příkladu příkaz LIST vypíše seznam dopisů ve schránce, příkazem RETR získáme dopis a příkazem QUIT klient končí spojení. Příkaz LIST zahajuje fázi transakční. Když navíc zadáme DELE x, pak po QUIT přejde server do fáze aktualizace a odstraní zprávu ze schránky. Kladné odpovědi serveru se označují +OK, záporné -ERR.
Příklad
. . .
S: +OK pop.iol.cz POP3 server (Internet on Line) <44707571.b7c5f54@pop2>
K: USER opinkas
S: +OK password required for user