královský webhosting
webhostingwebhosting2webhosting3
hosting webhosting01 webhosting02 webhosting03 webhosting04 webhosting05 webhosting06 webhosting06 webhosting07 webhosting12
Zakaznicka linka WebSupport
226 253 240







Jak funguje SSL

Jak jste si mohli přečíst v článku o přenosu zpráv přes Internet, SSL umí řešit bezpečnostní nedostatky přenosových protokolů. V tomto článku se podíváme, jak to asi funguje.

   Základní věc, na které celý protokol SSL stojí, je kryptografie s veřejným klíčem. Co to vlastně je? No, vynechám matematické principy a pokusím se o poněkud lidový popis. Asi každý ví, jak vypadá běžný visací zámek. Ted si představte, že jste nějaká instituce a chcete, aby vám mohl kdokoli poslat nějakou zprávu (nebo peníze) aniž by se k ní (k nim) mohl někdo dostat. Jeden ze způsobů, jak toho dosáhnout, je nechat si udělat velké množství visacích zámků, ke kterým bude pasovat stejný klíč. Ty pak budou volně dostupné na každé poště. Jediný, kdo bude vlastnit onen klíč, budete vy. Člověk, který vám bude chtít něco poslat, to vloží do nějaké bedničky, vyzvedne si na poště zámek a bedničku tímto zámkem zamkne (na zaklapnutí visacího zámku klíč nepotřebujete). Ke zprávě se teď nemůže dostat nikdo, kdo nemá klíč od zámku - a ten máte pouze vy...

   Kriptografie s veřejným klíčem funguje velmi podobně. Řekněme, že chce Honza poslat zprávu Jirkovi. Jirka má dva klíče - veřejný (visací zámek) a sukromý (klíč). Nejdříve zavolá Honza na Jirku: "Chtěl bych ti něco tajně říct, můžeš mi, prosím, poslat svůj veřejný klíč?" Načež Jirka svůj veřejný klíč pošle. Honza zprávu tímto klíčem zakóduje a pošle Jirkovi. Ten může nyní použít svůj soukromý klíč a zprávu si přečíst. Jak vidno, utočník se dozví pouze to, že Jirka a Honza komunikují a bude znát Jirkův veřejný klíč...

   Aby nebyl svět tak jednoduchý, na Internetu na sebe jednotlivé systémy nevidí, takže když v úvodní fázi volal Honza na Jirku žádost o jeho veřejný klíč, nemohl vědět, že ten, kdo mu odpověděl byl skutečně Jirka. Aktivní útočník by mohl nasadit Jirkovi roubík a odpovědět vlastním veřejným klíčem. Honza by pak poslal úplně klidně tajná data ne Jirkovi ale utočníkovi!! Abysme mohli odstranit i tento nedostatek, musíme si něco říct o elektronickém podpisu.

   Elektronický podpis funguje trochu jinak než ten klasický. Zatímco klasický podpis je na všech zprávách stejný, elektronický se pro každou zprávu mění. Stojí na podobných matemetických principech jako kritografie s veřejným klíčem. Bohužel mě nenapadá žádná pěkná analogie ze života. Pro účely tohoto článku bude snad stačit, když napíšu, že pokud někdo elektronicky podepíše nějakou zprávu, není možné ji bez jeho vědomí změnit tak, aby podpis zůstal platný.

   Jak je tedy možné naše schéma upravit? Nejdříve je nutné, aby existovaly nějaké osoby, kterým všechny komunikující strany věří. Budeme jim říkat certifikační autority. Když tedy bude chtít Honza poslat Jirkovi zprávu, požádá ho ne o veřejný klíč, ale o certifikát. Co takový certifikát obsahuje? Kromě veřejného klíče ještě Jirkovo jméno, adresu, případně mail, ale hlavně je podepsán certifikační autoritou. Co to má za výhodu? Honza si sice nemůže být jistý, že ten, kdo certifikát poslal, je Jirka, ale podle podpisu a údajů v certifikátu pozná, že tento certifikát byl vydán Jirkovi a veřejný klíč, který obsahuje, patří tedy také Jirkovi. To znamená, že soukromý klíč do páru k němu (klíč od visacího zámku) vlastní pouze Jirka. To, čemu tedy musí Honza věřit je, že certifikační autorita by nepodepsala podvržený certifikát.

   V posledním odstavci už je v podstatě popsán základní princip, na kterém pracuje protokol SSL. Jediný rozdíl je v tom, že většinou nekomunikuje Jirka s Honzou, ale webový prohlížeč nebo poštovní klient se serverem. Někdo možná zná v celku běžné hlášení prohlížeče: "Certifikát, zaslaný serverem, nebyl podepsán certifikační autoritou, chcete věřit pravosti tohoto certifikátu?" Proč je toto hlášení tak běžné? Každý prohlížeč má "od výrobce" nastaveno několik důvěryhodných certifikačních autorit.

    Ten, kdo stránky provozuje, má 3 možnosti:
  1. Nechá certifikát nepodepsaný
  2. Požádá některou z duveryhodných certifikačních autorit, aby mu certifikát podepsala
  3. Zřídí si vlastní certifikační autoritu a certifikát si podepíše sám (tato certifikační autorita ale není v prohlížečích nastavena jako duvěryhodná)

   Prní varianta je je jednodušší a pužívají ji nezkušení administrátoři (není s tím prakticky žádná práce). Druhá varianta je poněkud drahá a ne každá firma si ji muže dovolit - používají ji většinou instituce jako banky nebo možná vládní organizace (i když například Komerční banka ji nepoužívá). Třetí varianta je pravděpodobně nejvhodnější pro většinu aplikací (mimo jiné ji používáme i my). Má ale jednu nevýhodu - pokud uživatel nenastaví svuj prohlížeč a poštovního klienta tak, aby věřil této nové certifikační autoritě, bude ho obtěžovat zmíněnými hláškami "certifikát nebyl podepsán...".

   Co tedy musí udělat uživatel našeho serveru, který chce využívat zabezpečený přenos dat přes SSL a nechce být obtěžován zmíněnými hláškami? Nejprve se musí rozhodnout, jestli vůbec chce věřit naší certifikační autoritě (ta se mimochodem jmenuje "Antonín Karásek" - tak se totiž jmenuje náš systémový administrátor, který ji zřizoval). Toto rozhodování je ale velmi jednoduché, protože tím, že stal naším uživatelem, se už rohodl, že bude věřit celému našemu týmu. Konec konců administrátor, který certifikační autoritu spravuje, také vygeneroval (a tudíž zná) všechna jeho přístupová hesla, takže může udělat mnohem horší věci než podvrhnout certifikát. Potom už stačí jen postupovat krok za krokem podle tohoto návodu.








přidej webhosting výchozí webhosting
© Český server.cz s.r.o. 2004 VŠE pro Váš webhosting info@ceskyserver.cz