Braňte si své soukromí (3)

25. 6. 2001
Doba čtení: 3 minuty

Sdílet

Až dosud jsme uvažovali pouze jedinou metodu zabezpečení emailové komunikace - šifrování vlastní zprávy pomocí technologie PGP. Existují však i další způsoby, které možná nejsou tak efektivní jako PGP, ale zato jsou pro své uživatele - odesílatele i adresáta - při vhodném použití zcela transparentní.
APOP

APOP je rozšíření POP3 odstraňující nejslabší místo tohoto protokolu a sice nezabezpečenou autentizaci uživatele. POP3 totiž funguje tak, že po navázání spojení musí váš poštovní program poslat na server jméno a heslo uživatele, k jehož poštovní schránce chcete přistupovat. Celá komunikace POP3 však probíhá v otevřeném textu, takže datový paket s heslem může být kdekoli cestou na server odchycen a heslo zneužito. Často je navíc heslo k POP3 schránce zároveň heslem k uživatelskému účtu, takže potencionální cracker může získat nejen přístup k vaší poště, ale i shell konto na serveru. Proto je namístě jeho odchycení zabránit.

APOP funguje tím způsobem, že server nejprve pošle klientovi tzv. „banner greeting“, tedy jakési pozdravení, které je pro každé spojení jedinečné, neboť vedle jména serveru obsahuje také číslo procesu a časový údaj. Klient za tento údaj připojí uživatelské heslo a z takto získaného textu pomocí algoritmu MD5 vygeneruje 128-bitový kontrolní součet, který odešle zpátky na server. Server, který zná „banner greeting“ stejně jako uživatelovo heslo, tento proces provede také a porovná jej s tím, co získá od klienta. Pokud se oba výsledky shodují, autentizace je úspěšná a spojení přejde do další fáze podle původního protokolu POP3.

Z uvedeného plyne, že pokud se hackerovi podaří odchytit tento autorizační paket, nebude mu k ničemu, neboť při dalším spojení vygeneruje server jiný „greeting“ a tedy i výsledný MD5 bude jiný. Z vlastností algoritmu MD5 je zřejmé, že z výsledku jednocestného hashování už nelze zpětně získat původní heslo.

Aby bylo možné autentizaci APOP používat, je nutné zajistit, aby tuto funkci podporoval jak POP server, tak i klient. Na straně klientů to umožňuje např. fetchmail, getmail, stejně jako Netscape Messenger nebo třeba Microsoft Outlook. Horší je to na straně serverů. Aby server dokázal získat autentizační údaje, musí znát otevřený formát uživatelova hesla, tedy nikoliv jeho MD5 či SHA obraz, jak je dnes v unixech (jinak dobrým) zvykem. Proto je u některých serverů nutné už při vytváření schránky pamatovat na to, zda bude použita tradiční (USER/PASS) autentizace nebo APOP, protože hesla pro APOP nelze získat ze standardní unixové databáze hesel, kde jsou již uložena v MD5 formátu, ze kterého již nelze rekonstruovat jejich otevřený formát. Uživatel také většinou může použít jednu nebo druhou metodu přihlášení, ale ne obě současně. Ze serverů podporujících APOP jmenujme například qmail-pop3d, XMail POP3, „standardní“ IMAPd 2000, aj.

RFC 1939 Popis protokolu POP3
RFC 1321 Popis algoritmu MD5

CRAM-MD5

Tím, čím je APOP pro POP3, je metoda CRAM-MD5 pro protokol IMAP. Funguje velice podobně, ale navíc obsahuje další vylepšení – server nemusí znát otevřený tvar uživatelova hesla, pracuje s ním v tzv. klíčovaném-MD5 formátu. Tím lze zabránit odcizení uživatelova hesla například při napadení serveru.

Je zřejmé, že APOP stejně jako CRAM-MD5 řeší jenom problém odchycení hesla. Samotné předání zpráv však probíhá v otevřeném textu, takže pokud se chceme bránit také proti odposlechu přenášených zpráv, musíme se poohlédnout po jiných metodách…

RFC 2195 Autentizace metodou CRAM

POP3/IMAP over SSL

SSL (TLS) je technologie, kterou vyvinula společnost Netscape nejprve pro zabezpečený přenos dat mezi http serverem a www browserem protokolem https. Nejprve se klient a server dohodnou na použitém šifrováním a následně se po vytvořeném bezpečném spojení provede autentizace. Ta je zpravidla řešena pomocí certifikátů X.509.

Přes SSL lze přemostit prakticky jakoukoli službu používající TCP spojení, tedy i POP nebo IMAP. Pro IMAP/SSL je registrován TCP port číslo 993 a někteří klienti používají POP3/SSL na portu 995. Příslušné přenosy se pak označují jako imaps, resp. pop3s.

Podpora SSL může být řešena dvěma způsoby. Buď ji má nativně implementovánu klient či server, anebo se pomocí externího programu stunel (součást balíku OpenSSL) „vytuneluje“ příslušný otevřený port, čímž se dá podpora SSL vnutit i serveru (klientovi), který ji sám o sobě nepodporuje.

bitcoin_skoleni

IMAP/SSL podporuje většina IMAP serverů, stejně jako většina klientů. Naopak pop3s není tolik rozšířený a bývá obvykle realizován pomocí zmíněného triku s stunelem.

RFC 2595 Použití POP/IMAP přes SSL

Autor článku