V souvislosti s pokusy o zneužití počítačů Masarykovy univerzity pro rozesílání spammů (nevyžádaných e-mailů, reklam apod.) jsou naše poštovní servery nuceny omezovat přijímání elektronické pošty ze světa. Nově připravovaná konfigurace všech poštovních serverů na naší univerzitě bude mít za následek, že fakultní servery budou přijímat poštu jen od strojů ze své domény a od ostatních strojů žádnou poštu nepřijmou. Jediný server, který bude přijímat poštu ze strojů mimo doménu muni.cz, bude hlavní poštovní server Masarykovy univerzity. Ale ani ten nepřijme poštu "ze zbytku světa" jen na základě snadno zfalšovatelné adresy odesílatele z domény muni.cz.
Z tohoto důvodu je nutné nabídnout našim uživatelům možnosti, jak na své služební cestě, na svém domácím počítači, na počítači na koleji či v internetové kavárně prokáží svoji totožnost. Na základě autentizace (prokázání totožnosti) mohou naše servery povolit přijetí pošty i od stroje mimo naši doménu. Cílem tohoto článku je ukázat možnosti autentizace v protokolu na posílání pošty (SMTP) a popsat již zprovozněné metody. Po kratší době testovacího provozu budou vybraná řešení zpřístupněna všem zájemcům z řad zaměstnanců a studentů Masarykovy univerzity a po úplném omezení přijímání elektronické pošty mimo svoji subdoménu na fakultních serverech se stanou jedinou možností, jak posílat elektronickou poštu přes naše stroje ze strojů mimo Masarykovu univerzitu.
Článek se zabývá pouze problémem autentizace, nikoli problémem šifrování spojení. Šifrování použité v navrhovaných metodách je použito jen z důvodu nutnosti zašifrovat heslo, které je v některých metodách přenášeno od klienta na server v otevřené podobě. Pokročilejší metody autentizace šifrování spojení nevyžadují a nelze se tedy spolehnout, že přenos celého e-mailu bude šifrován. Pokud některý z uživatelů potřebuje zašifrovat celý e-mail, musí použít jiné, pro tento účel navržené metody (např. PGP).
Protokoly pro čtení pošty (POP, IMAP) od počátku umožňují autentizaci (heslem nebo pomocí protokolu Kerberos). V případě autentizace heslem se heslo přenáší v otevřené podobě a i zde je tudíž vhodné spojení šifrovat. Nejčastěji používaným řešením je využití podpory SSL při čtení pošty v programech Netscape a MS Outlook. Na serveru běží program typu stunnel, který uzavře šifrovaný SSL kanál s klientem podporujícím SSL a provoz přesměrovává na lokální POP či IMAP server. Pro programy nepodporující přímo SSL lze použít program stunnel už na lokálním počítači. V tomto případě uzavře stunnel šifrované spojení se stunnelem na serveru a klient se obrací na lokální stunnel jako na POP nebo IMAP server. Nakonfigurování je poměrně jednoduché, uživatel si nemusí instalovat žádné certifikáty (na uzavření šifrovaného spojení stačí certifikát serveru). Podobné řešení lze implementovat i pomocí programu ssh.
Pro autentizaci v protokolu na posílání pošty (SMTP) se v současnosti se nabízejí dvě základní varianty: využití protokolu SSL (autentizace na základě předložení SSL certifikátu) a použití protokolů definovaných v RFC 2554 a 2222 (SMTP Service Extension for Authentication a Simple Authentication and Security Layer - SASL).
V RFC 2554 je definováno rozšíření protokolu SMTP o autentizaci. Autentizace je prováděna podle protokolu SASL (definovaného v RFC 2222). Protokol SASL definuje autentizaci pomocí hesla (opět se posílá v otevřené podobě a je tedy vhodné spojení šifrovat), MD5 digestu (místo hesla se po síti posílá jen kontrolní součet spočítaný metodou MD5 z hesla a z dohodnutého řetězce) a systému Kerberos. Je dostupná implementace Cyrus SASL library z Carnegie Mellon univerzity, která podporuje protokoly PLAIN (autentizace heslem), KERBEROS_V4, GSSAPI (autentizace metodami Kerberos 4 a Kerberos 5), SCRAM-MD5, DIGEST-MD5, CRAM-MD5 (autentizace pomocí MD5 digestů). Na webových stránkách popisujících autentizaci v sendmailu (http://www.sendmail.org/ ca/email/auth.html) lze najít i podporu pro metodu LOGIN (upravená metoda PLAIN používaná v programu MS Outlook). SASL knihovna je vyvíjena na Linuxu a Solarisu, mělo by být možné ji použít i na dalších unixových systémech.
Nejnovější sendmail (8.10.beta) už autentizaci pomocí SASL podporuje. Seznam klientů podporujících tento protokol lze najít na http://www.demo.ru/homerus/mail/SASL_ClientRef.html. Z programů častěji používaných u nás jsou to např. Netscape 4.7, MS Outlook 5, Eudora Pro 4.2 a Pegasus Mail 3.12. Unixové programy používající sendmail pro odesílání pošty (elm, mutt) mohou využít podpory SASL v sendmailu i pro autentizaci při odesílání (v konfiguračním souboru sendmailu lze zadat soubor s heslem).
Protokol SASL podporují i rozšířené programy Netscape 4.7 a MS Outlook 5, oba však podporují pouze autentizaci heslem. Je nutné proto ještě použít SSL tunel pro zašifrování přenosu hesla. I tento protokol je definován, bohužel dvěma způsoby. Netscape používá SSL šifrování definované v RFC 2487 (rozšíření protokolu SMTP o příkaz STARTTLS, který uzavře SSL spojení). MS Outlook používá starší protokol, v němž bylo definováno, že program obsluhující protokol SMTP a podporující SSL poslouchá na portu smtps a spojení se uzavře na začátku relace.
Zprovoznili jsme SSL wrapper sendmail-tls, který je připraven pro sendmail a umožňuje po malých úpravách šifrování spojení pomocí SSL jak pro Netscape, tak pro MS Outlook. V současné době provozujeme takto nakonfigurovaný systém v testovacím režimu na počítači s Linuxem. Ověřili jsme funkčnost proti programům Netscape 4.7 (měla by fungovat i verze 4.6, verze 4.5 už ne) a MS Outlook 5 (verze 4 nefunguje). Sendmail má (mimo protokoly PLAIN, LOGIN) zakompilovánu podporu protokolů CRAM-MD5 a DIGEST-MD5, které používá Eudora Pro 4.2 a Pegasus Mail 3.12, ale spolupráci jsme neověřovali. V současné době ověřuje sendmail hesla získaná v protokolech PLAIN nebo LOGIN proti /etc/shadow na serveru, další možností je ověřování hesla proti Kerberovi a vlastní databázi hesel. Hesla používaná v protokolu DIGEST-MD5 se musí ověřovat proti vlastní databázi hesel. Ověřili jsme i vzájemnou autentizaci dvou sendmailů pomocí protokolu DIGEST-MD5 a CRAM-MD5.
Pro dlouhodobější řešení by bylo vhodné nabízet službu autentizace v protokolu SMTP na našich poštovních serverech. Situace je však komplikována tím, že sendmail 8.10 je stále ještě v beta verzi a navíc používá jiný formát pro frontu mailů (v adresáři /var/spool/mqueue se vytvářejí podadresáře a až v nich jsou uloženy jednotlivé e-maily). Není tedy možno tuto verzi používat současně s aktuálním sendmailem a vývojový charakter beta verze rovněž neumožňuje jej nasadit jako jediný na hlavní poštovní server univerzity. Server ověřující totožnost odesílatele bude proto dočasně provozován na poštovním serveru pro ÚVT a až později přesunut na hlavní poštovní server. Autentizace heslem by se mohla provádět proti Kerberovi (realmu ICS.MUNI.CZ), proti vlastní databázi hesel (tady by mohly nastat problémy s distribucí a změnou hesla) nebo proti databázi hesel pro přístup na is.muni.cz.
Protože programy Netscape a MS Outlook podporují šifrování přenosu pošty pomocí SSL, bylo by možné založit autentizaci na klientských certifikátech pro protokol SSL. Rozšířili jsme program sendmail-tls o tuto možnost. Oproti použití SSL pro šifrování komunikace při čtení pošty je v tomto případě nutné nainstalovat do svého prohlížeče uživatelský certifikát a přimět mailer, aby se tímto certifikátem prokazoval.
Problémem je jednak prozatímní nefunkčnost tohoto řešení pro MS Outlook (MS Exchange Server certifikáty nevyžaduje a MS Outlook tudíž posílání certifikátů v SSL nad SMTP nepodporuje - nad HTTP potokolem však ano a tudíž je šance, že novější verze už tuto možnost podporovat bude) a také prozatímní neexistence rozsáhle používané certifikační autority u nás (jak v České republice, tak na Masarykově univerzitě).
Dočasně jsme si proto vytvořili vlastní certifikační autoritu a jsme schopni vydat zájemcům z řad uživatelů certifikát použitelný v programu Netscape 4.7 pro autentizaci pro posílání pošty. Program sendmail-tls je připraven i na rozpoznávání certifikátů od jiných certifikačních autorit (ověřeno na certifikační autoritě pro TEN-155). Autorizace (povolení práva přístupu) je prováděna proti seznamu certifikátů uživatelů oprávněných zasílat poštu touto službou.
Jsme schopni nabídnout autentizaci při zasílání pošty. Možnosti jsou:
Obě základní varianty autentizace (SASL a SSL certifikáty) lze kombinovat. Tato služba bude dočasně nabízena na počítači dior.ics.muni.cz a později bude přesunuta na hlavní poštovní server relay.muni.cz. Podobnou službu může v budoucnosti poskytovat i více strojů (např. fakultní poštovní servery pro své uživatele). Fakultní servery by mohly ověřovat hesla proti vlastnímu seznamu hesel v souboru /etc/shadow nebo proti vlastní databázi hesel používané např. pro protokoly POP či IMAP.
Otevřenou možností zůstává možnost ověřování hesel proti databázi hesel pro přístup na is.muni.cz, ale IS prozatím nenabízí službu na ověření hesla. V současné době probíhá jednání s autory o možnosti převést jejich databázi hesel i do databáze pro Kerberos. Pak by bylo možné založit realm IS.MUNI.CZ a provádět autentizaci proti této databázi. Tato metoda by pak mohla být použita i pro další celouniverzitní služby požadující autentizaci (např. celouniverzitní učebna) a umožnila by i elegantní řešení sdílení databáze hesel mezi několika servery.
Námětem pro úvahu je i možnost zřídit na ÚVT certifikační autoritu pro Masarykovu univerzitu nebo spolupráce s některou již existující certifikační autoritou při vygenerování uživatelských certifikátů pro zaměstnance a studenty naší univerzity.