ArticleHead('Jak pracuje SSL', 'Michal Till', 'Michal.Till@Seznam.cz', '21.11.2001', '08:51:10', '╚lßnek');
Intro('BezpeΦnost na internetu je dnes klφΦovß v∞c, proto se dnes seznßmme s mo₧n²mi ·toky na a povφme si, jak funguje bezpeΦnostnφ protokol SSL (Secure Socket Layer). ');
Bez pou₧itφ SSL je veÜkerß komunikace neÜifrovanß a neautentizovanß. VeÜkerß hesla, kterΘ pou₧φvßme k p°ihlaÜovßnφ do r∙zn²ch WWW slu₧eb a ·Φt∙ se posφlajφ v otev°enΘ podob∞. V∙bec nepom∙₧e ₧e se na serveru mφsto hesla uklßdß jeho hash. I kdyby se spoΦφtal na stran∞ klienta prostΘ zopakovßnφ datovΘho toku ·toΦnφkem mu garantuje ten sam² p°φstup do systΘmu (·Φtu). Znamenß to, ₧e pokud by m∞l ·toΦnφk fyzick² p°φstup k datovΘmu toku mezi nßmi a serverem, m∙₧e jednak odposlechnout informace, jednak je falÜovat.
┌tok∙ na internetu existuje celß °ada, detaily zßle₧φ na vlastnφ implementaci bezpeΦnostnφch mechanizm∙ v jednotliv²ch systΘmech. My si zde uvedeme pouze ty nejΦast∞jÜφ.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> ┌toky na hesla<br><FONT Color=#707070>Nejsnadn∞jÜφ zp∙sob ·toku, p°i kterΘm se cyklicky zkouÜejφ r∙znß hesla. Pokud znßme n∞jakΘ omezenφ hesla (t°eba ₧e to je p∞t Φφslic), m∙₧eme vyzkouÜet brute-force, jinak jsme nejΦast∞ji odkßzßni na ·tok slovnφkem (hesel)</FONT></UL>
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> P°evzetφ session<br><FONT Color=#707070>V tomto p°φpad∞ jde o p°edstφrßnφ identity u₧ivatele, jeho odpojenφ a p°evzetφ jeho "sezenφ" se servrem v moment∞ kdy je p°ipojen. Pokud je session fixovßna na IP adresu, musφ ·toΦnφ falÜovat i toto. Viz Φlßnky o autentizaci na internetu.</FONT></UL>
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> P°edstφrßnφ IP adresy ve vnit°nφch sφtφch<br><FONT Color=#707070>┌toΦnφk z venku p°edstφrß IP poΦφtaΦe vnit°nφ sφt∞, tφm m∙₧e zφskat p°φstup k vnit°nφmu systΘmu.</FONT></UL>
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> NedostateΦnß autorizace<br><FONT Color=#707070>R∙znΘ loginy jako guest, anonymous apod. dovolujφ neoprßv∞n² p°φstup do systΘmu a monitorovßnφ strukturu dat na serveru.</FONT></UL>
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> Backdoors<br><FONT Color=#707070>Backdoors, neboli zadnφ vrßtka jsou ·myslnΘ slabiny systΘmu, kterΘ poslΘze programßtor vyu₧φvß k vlastnφmu obohacenφ.</FONT></UL>
</DIV></FONT></b></i>
<SCRIPT>
_Image('file.php@Name=layers','Umφst∞nφ SSL v hierarchii protokol∙','24','Left');
Secure socket layer pochßzφ p∙vodn∞ z dφlny firmy Netscape a v denÜnφ dob∞ je zcela nekomerΦnφ, tv∙rce souhlasφ s jeho neomezen²m pou₧φvßnφm. Jak je vid∞t z obrßzku Φφslo 1, tento bezpeΦnostnφ protokole je umφst∞n mezi aplikaΦnφ a transportnφ vrstvu. Je to z toho d∙vodu, aby mohly b²t bezpeΦn∞ zajÜt∞ny vÜechny "druhy" internetovΘ komunikace (protokoly HTTP, FTP, SMTP apod.).
</DIV></FONT></b></i>
<A Name="Title2"><FONT Size=3><DIV Class=Headline>Jak to tedy funguje</DIV></font>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Na bezpeΦnost SSL byly dßny t°i zßkladnφ po₧adavky:
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> Spojenφ musφ b²t soukromΘ, aby je mohl Φφst pouze oprßvn∞n² p°φjemce. Z tohoto d∙vodu se pou₧φvß symetrickΘ Üifrovßnφ</UL>
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> Minimßln∞ strana serveru (ale m∙₧e to b²t i klient) je pro TCP/IP autotentizovßna pomocφ certifikßtu. </UL>
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
<UL STYLE="margin-right:50px;" Class=LinkItem><LI> Spojenφ musφ b²t spolehlivΘ. Toho se dosahuje pou₧itφm nejr∙zn∞jÜφch hashovacφch funkcφ (SHA, MDx... apod.)</UL>
</DIV></FONT></b></i>
<SCRIPT>
_Image('file.php@Name=ssl','SchΘma funkce Secure Socket Layeru','23','Left');
Na obrßzku Φ. 2 je zjednoduÜen∞ naznaΦeno jak vlastnφ komunikace probφhß. Klient nejprve poÜle po₧adavek na bezpeΦnΘ p°ipojenφ (https) se sv²m ve°ejn²m klφΦem. Ten je generovßn p°φ instalaci p°φsluÜnΘho prohlφ₧eΦe. Server naoplßtku poΦle sv∙j ve°ejn² klφΦ a sv∙j certifikßt klientovi, obeje zaÜifrovanΘ pomocφ ve°ejnΘho klφΦe prohlφ₧eΦe. Nynφ klient prozkoumß platnost cerifikßtu. Pokud nenφ vystaven certifikaΦnφ agenturou, m∙₧e nabφdnout u₧ivateli ukonΦenφ spojenφ pop°φpad∞ ukonΦit spojenφ sßm.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Kdy₧ prohlφ₧eΦ zjistφ shodu informacφ na klφΦi a certifikßtu, je server pova₧ovßn za d∙v∞ryhodn². Nßsleduje vlastnφ generovßnφ klφΦe, klient poÜle serveru seznam Φφslic. Pokud je po₧adovßna autentizace klienta, p°ipojφ i sv∙j certifikßt (pokud nenφ vystaven certifikaΦnφ autoritou, server ukonΦφs spojenφ). Server vybere n∞jakΘ Φφslice a zaÜifrovanΘ ve°ejn²m klφΦem prohlφ₧eΦe je poÜle zp∞t. Ten je pomocφ svΘho tajnΘho klφΦe rozÜifruje a vytvo°φ z nich klφΦ pou₧φvan² pro p°enos dat (session-key). Zb²vß dodat ₧e v n∞kter²ch modifikacφch je ve°ejn² klφΦ tvo°en na stran∞ serveru.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
O bezpeΦnΘm spojenφ nßs prohlφ₧eΦe pat°iΦn∞ informujφ, nejΦast∞ji p°i vstupu a v²stupu do/z zabezpeΦenΘ z≤ny. Internet Explorer nap°φklad malou ikonkou zßmku v pravo dole. Kdykoliv si m∙₧eme zkontrolovat zda jsme v zabezpeΦenΘ z≤n∞ pomocφ aktußlnφ adresy, kterß v tomto p°φpad∞ musφ zaΦφnat na <SPAN Class=Code>https:/</SPAN>.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Bez pou₧φtφ SSL by nebylo mo₧nΘ bezpeΦn∞ komunikovat na internetu.