|
Bezpečná komunikácia cez protokol SSL
SSL (Secure Socket Layer) je protokol vložený
medzi spojovo-orientovanú vrstvu TCP a vrstvu
aplikačných protokolov, ako HTTP, LDAP, SMTP
atď. Protokol SSL poskytuje bezpečnú komunikáciu
medzi klientom a serverom. Vrstva SSL šifruje
údaje prijaté od aplikačných protokolov,
vypočítava z prenášaných fragmentov kontrolný
súčet a odovzdáva ho vrstve TCP. Druhá strana
spojenia overí kontrolný súčet, dešifruje dáta a
odovzdá ich príslušnému aplikačnému protokolu.
SSL podporuje :
-
vzájomnú autentizáciu komunikujúcich partnerov
-
symetrické šifrovanie prenášaných údajov
-
kontrolu integrity prenášaných údajov.
Autentizácia klienta a servera sa uskutočňuje
pomocou asymetrickej kryptografie na základe
certifikátov. Celý proces overovania totožnosti
si môžeme zjednodušene predstaviť nasledovne :
-
V prvej fáze komunikácie si server aj klient
vymenia svoje certifikáty, ktoré si hneď aj
verifikujú, čiže si overia ich pravosť
pomocou certifikátu certifikačnej autority,
ktorá ich vydala, za predpokladu že obe
strany dôverujú tejto autorite.
-
V prípade overenia totožnosti servera klient
vygeneruje náhodné číslo n a pošle ho
serveru. Server vypočíta kontrolný súčet
(hash hodnotu) čísla n a zašifruje ho svojim
privátnym kľúčom. Takto získaný reťazec
pošle naspäť klientovi. Klient dešifruje
verejným kľúčom servera prijatý reťazec a
výsledok porovná s ním vypočítanou hodnotou
kontrolného súčtu čísla n. Zhoda oboch
reťazcov ubezpečuje klienta o identite
servera.
-
Autentizácia klienta, ktorá prebieha podobne, sa
v prípade prístupu na anonymný server
nerobí.
Samotná autentizácia je súčasťou handshakingu,
počas ktorého sa klient a server dohodnú
-
na použitom symetrickom kryptovacom algoritme
-
na symetrickom kryptovacom kľúči servera a
klienta
-
na kompresnom algoritme
-
na algoritme výpočtu kontrolného súčtu tzv. hash
funkcií .
Po značnom zjednodušení by sme mohli povedať, že
protokol SSL používa šifrovanie správ
symetrickou šifrou, pričom šifrovací kľúč
generuje klient. Aby klient mohol tento tajný
kľúč bezpečne odovzdať serveru po nezabezpečenom
Internete, šifruje ho privátnym kľúčom servera
získaným z jeho certifikátu. Ako vyplýva aj z
tohoto výkladu, na to, aby sme mohli vytvoriť
bezpečný šifrovaný komunikačný kanál, stačí, aby
jedna strana mala certifikát. V praxi vo väčšine
prípadov je to server, pričom klient by mal byť
schopný verifikovať tento certifikát. Príkladom
takejto komunikácie je aj proces generovania
žiadosti na serveri Prvej slovenskej
certifikačnej autority protokolom https. K
zvýšeniu bezpečnosti protokolu SSL prispieva aj
možnosť zmeny symetrického šifrovacieho kľúča
počas spojenia, aby nemohlo dôjsť k jeho
odhaleniu v reálnom čase pri použití výkonného
výpočtového systému. Na prevádzku niektorých
aplikačných protokolov cez SSL sú na strane
servera vyhradené nasledujúce porty :
-
443 - HTTPS (HTTP cez SSL)
-
465 - SSMTP (SMTP cez SSL)
-
563 - SNNTP (NNTP cez SSL)
-
636 - Secure LDAP (LDAP cez SSL)
-
995 - POP3 cez SSL
Na stránkach Návody nájdete podporu pri
nastavení vybraných serverov pre bezpečnú
komunikáciu s protokolom SSL.
|