Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Černý vzadu, podpisy, a vůbec...
17. července 2006, 00.00 | V minulém dílu našeho seriálku o počítačové bezpečnosti jsme jen zběžně "nakousli" dvě velmi důležité záležitosti: risika spojená s asymetrickým šifrováním a digitální podpis. Podíváme se na ně tedy dnes; ačkoli jde ještě pořád o "teoretickou přednášku", není to žádný krok stranou: jedna vede přímo k druhé, a druhá vede přímo k certifikátům – jejichž postavení v Mac OS X a konkrétní použití si budeme vysvětlovat hned potom.
V minulém dílu našeho seriálku o počítačové bezpečnosti jsme jen zběžně "nakousli" dvě velmi důležité záležitosti: risika spojená s asymetrickým šifrováním a digitální podpis. Podíváme se na ně tedy dnes; ačkoli jde ještě pořád o "teoretickou přednášku", není to žádný krok stranou: jedna vede přímo k druhé, a druhá vede přímo k certifikátům – jejichž postavení v Mac OS X a konkrétní použití si budeme vysvětlovat hned potom.
Černý vzadu, či spíše uprostřed: "middleman attack"
Připomeňme si základní principy asymetrických šifer tak, jak jsme si je vysvětlili minule:
asymetrické šifry jsou nesmírně výhodné pro bezpečnou komunikaci v prostředích typu Internetu: jestliže znalost jednoho klíče umožňuje šifrovat, ale nikoli číst, mohu jej veřejně publikovat (a utajím onen druhý klíč, jenž mi umožní dešifrování); kdokoli mi pak snadno může poslat libovolnou zprávu šifrovaně, a jen já ji dokáži přečíst.
Mohlo by se tedy zdát, že asymetrická šifra (pokud samozřejmě její matematické základy skutečně fungují a nelze ji prolomit nějakým trikem, ale to můžeme považovat za dané – ačkoli dokázáno to vlastně dodnes není ;)) je splněným snem těch, kdo chtějí něco utajit: zveřejnění šifrovacího klíče při zachování bezpečnosti šifry umožňuje pohodlné a zcela bezpečné šifrování.
Pohodlné jistě, zcela bezpečné však nikoli: těm, kdo užívají asymetrického šifrování, totiž hrozí "middleman attack", útok "muže uprostřed" – hned si vysvětlíme, o co jde, je to skutečně jednoduché.
Představme si, že Alice a Bob si chtějí povídat, a aby jim nějaký šmírák nelezl do soukromí, rozhodnou se užívat asymetrického šifrování. Je zde ovšem ještě K, jemuž se šmírování stalo smyslem života.
(Mimochodem, při takovýchto výkladech se běžně užívá jmen Alice, Bob a Charlie pro A, B a C; užití K namísto C má mnoho výhod: je iniciálou počeštěného Karlíka, evokuje i Josefa K a kafkovskou realitu současného světa. Připomene nakonec i Jiřího Koláře, českého policejního presidenta, proslavivšího se kromobyčejně katastrofální větou Já vedu rozhovory a ať si je každý odposlouchává, jak chce. Když si je člověk jistý, že nic nespáchal, může mu to být jedno – v této souvislosti se ostatně velmi dobře hodí i řada jiných vhodných českých i slovenských slůvek, začínajících písmenem K, jež si laskavý čtenář zajisté doplní sám... Eh, omlouvám se, ty mé digrese jsou neodpustitelné; zpět ke kryptografii!)
Má náš kuriózní kašpar K nějakou šanci sledovat soukromé hovory Alice a Boba, užívají-li asymetrické šifry? Inu ano: podaří-li se mu zachytávat veškeré zprávy, jež si Alice s Bobem vyměňují – a to není na Internetu zase až tak těžké – může na ně zahrát hezkou habaďůru:
- sám si připraví vlastní soukromý i veřejný klíč;
- až bude Alice posílat Bobovi svůj veřejný klíč – vědoma si bezpečnosti asymetrického šifrování, Alice k tomu ovšem použije obyčejné nijak nechráněné zprávy – K zprávu pozmění, a vloží do ní svůj vlastní veřejný klíč;
- kdykoli pak Bob pošle Alici nějakou zašifrovanou zprávu, K ji rozšifruje, přečte si ji, pak ji zašifruje Aliciným klíčem a pošle Alici. Ta se bude domnívat, že zprávu dostala přímo od Boba, a že její obsah nikdo nepovolaný číst nemohl.
Analogickým způsobem může K zachytávat a číst zprávy od Alice posílané Bobovi, nebo obecně korespondenci libovolného množství lidí.
Je zřejmé, že jedinou obranou proti všem K-ům je zajistit bezpečné předání hesla mezi těmi, kdo si chtějí dopisovat, aniž by jim někdo nahlížel přes rameno. Nejlepší samozřejmě je osobní předání; to je však mnohdy buď zcela nerealisovatelné, nebo přinejmenším krajně nepohodlné. Šanci K pak lze snižovat publikováním veřejného klíče často a mnoha různými způsoby – je kupříkladu velmi rozumné přidávat veřejný klíč ke každé e-mailové zprávě, již odesíláme (bez ohledu na to komu – pozor ovšem na minule zmíněnou potvornost Outlooku!), vystavit jej na webových stránkách, a podobně. Čím více různých kanálů pro zveřejnění klíče, tím má K menší šanci je všechny zachytit a klíče v nich nahradit svým.
Velmi elegantní možnost bezpečného předání klíče prostřednictvím Internetu pak je to, že nám platnost klíče potvrdí někdo, komu věříme. Jenže... jak poznat, zda potvrzující zpráva pochází skutečně od toho, komu věříme, a nikoli od našeho konfidenta K? Inu, potřebovali bychom, aby šla e-mailová zpráva podepsat.
Digitální podpis
V tom nám ale opět pomůže asymetrické šifrování. Ono totiž – o tom jsme se doposavad nezmínili – asymetrické šifrování je v jistém smyslu symetrické; stejně jako může pomocí veřejného klíče kdokoli zašifrovat zprávu tak, že ji s užitím vlastního soukromého klíče můžeme přečíst jen my a nikdo jiný, to funguje i naopak: my a nikdo jiný můžeme s užitím soukromého klíče zašifrovat zprávu tak, že ji kdokoli rozšifruje pomocí klíče veřejného.
V principu bychom tedy mohli jednoduše celou zprávu zašifrovat pomocí našeho tajného klíče; příjemce ji přečte pomocí našeho klíče veřejného – a má-li správný klíč (tedy skutečně ten náš, nikoli klíč podvržený klamavým K), zprávu si přečte. Má-li ovšem klíč špatný, nepřečte si nic.
V praxi se to dělá trochu jinak, praktičtěji, ovšem princip zůstává: aby zprávu mohl přečíst kdokoli, avšak ten, kdo chce, aby mohl ověřit její autenticitu, se zpráva posílá nešifrovaná; spolu s ní se ale posílá pomocný údaj, který ji jednoznačně specifikuje (v nejjednodušším případě by to mohl být třeba počet písmen a slov ve zprávě) – a právě ten je zašifrovaný naším tajným klíčem. Příjemce si pak tuto signaturu rozšifruje a ověří, zda opravdu odpovídá skutečnosti – tedy zda obsah zprávy nikdo nezměnil.
(Samozřejmě, že v praxi se nepoužívá pro ověření platnosti obsahu počet písmen a slov ve zprávě, neboť takovýto údaj by šel snadno zfalšovat – tj. napsat jinou zprávu s jiným obsahem, ale týmž počtem znaků a slov. Namísto toho se užívá speciálních algoritmů vycházejících opět z vyšší matematiky, jež jsou přibližně stejně spolehlivé, jako samy asymetrické šifry. V současnosti jsou nejběžnější algoritmy ověřující obsah MD5 a SHA.)
Samozřejmě – je-li digitální podpis založen na spolehlivosti veřejného klíče, sám může být napaden "middlemanem". V praxi se užívá "hierarchická" obrana, kdy Bobovi potvrdí pravost Alicina klíče dejme tomu Danny, pravost Dannyho klíče mu potvrdí Eleanor, platnost Eleanořina klíče Filip – a Filipa již Bob zná, jeho klíč dostal osobně, a tedy ví, že napaden být nemohl – díky tomu pak je ale (jsou-li samozřejmě Filip, Eleanor i Danny důvěryhodní) zaručeno, že Alicin klíč je v pořádku. O tomhle si ale již více řekneme příště, až si budeme povídat o certifikátech a certifikačních autoritách.
Obsah seriálu (více o seriálu):
- Je to bezpečné?
- Základy zabezpečení Mac OS X
- Identifikace a autorizace
- Jak je to s administrátory
- Šifrování
- Co jsou to ty šifry?
- Černý vzadu, podpisy, a vůbec...
- Certifikáty
- Kde vzít certifikát?
- Certifikát Thawte
- Keychain
- Keychain Access
- Kolik keychainů máš, tolikrát jsi paranoikem
- Lepší konfigurace keychainů
- Jeden na neděli, jeden na všední den...
- WEP or weep
- AirPort a nastavení bezdrátové sítě
- WEP and weep...
- Externí router
- Slušný člověk nešifruje!
- Je ve vězení bezpečno