pop3 a imap pres SSL - vytvoreni klicu

Jaroslav Snajdr jsnajdr na kerio.com
Úterý Březen 26 14:44:54 CET 2002


Mošnička Roman wrote:

> jako pop3 a imap server pouzivam imap-2000c-117. Protoze, potrebuji
> ke sve poste pristupovat i z internetu (sluzby pop3 zatim jsou
> spusteny pouze pro uzivatele ve vnitrni siti) rad bych pouzil pop3
> a imap over SSL. ( budou sluzby pop3 a imap dostatecne bezpecne,
> kdyz pouziji protokol ssl ?)

Zalezi na tom, jak presne bude SSL pouzito. Server se self-signed
certifikatem je nachylny na man-in-the-middle utok - nekdo jiny muze
"ukrast" navazovane TCP spojeni a vydavat se za server a nechat si
poslat heslo nebo jine informace. To ale neni zase tak jednoduche a
self-signed certifikat by vam proto mohl stacit. Kdyz budete mit
certifikat podepsany nejakou certifikacni autoritou instalovanou v
klientskem programu, da se rici, ze bude spojeni opravdu bezpecne.

> Jestli jsem to pochopil spravne,tak musim vygenerovat privatni a
> verejny klic. To se dela pomoci prikazu openssl. Muzete mi nekdo
> poradit jak. Co potom musim s temito klici udelat,aby pop3 a imap o
> nich vedeli a dokazali je pouzit ? Verejny klic je certifikat ?

Nez se zacne neco sifrovat, server a klient se musi domluvit na nejakem
tajnem klici. To se dela tak, ze na zacatku spojeni posle server
klientovi svuj verejny klic. Klient vygeneruje nahodny klic, zasifruje
ho verejnym a posle serveru. Server desifruje prijata data svym
privatnim klicem a vysledek je ten, ze klient i server spolu sdileji
tajny klic aniz by odposlouchavac vedel, jaky ten klic je.

Verejny klic, ktery na zacatku posila server, neni nijak chraneny proti
falsovani utocnikem a s tim je treba neco delat. Od toho jsou
certifikaty. Certifikat je verejny klic + jmeno serveru, to cele
podepsane certifikacni autoritou (napr. Thawte). Klient tak ma sanci
overit, ze prijaty verejny klic neni zmeneny (overenim podpisu) a ze se
opravdu pripojuje na server s DNS jmenem, ktere chtel (certifikacni
autorita podepise certifikat jenom tomu, komu patri domena).

Dosti teorie, ted vyrobime certifikat programem OpenSSL. Nejdriv
vygenerujeme RSA klic:

openssl genrsa -out server.key 1024

Vznikl 1024bitovy RSA klic a byl ulozen do souboru server.key. To je
privatni klic (z nej se da odvodit diky principu RSA i verejny klic, ale
ne obracene).

Z tohoto klice ted udelame self-signed certifikat:

openssl req -new -x509 -days 365 -key server.key -out server.crt

Program se interaktivne zepta na hostname serveru a jine podrobnosti.
Vysledny certifikat bude ulozen do souboru server.crt.

Tyto dva soubory ted musite pod vhodnym jmenem dat do spravnych adresaru
a servery spravne nakonfigurovat. To uz ja neumim a snadno to najdete v
dokumentaci, pote co jste (doufam) pochopil, o co vlastne jde.

J. Snajdr


Další informace o konferenci Linux