Linux E X P R E S

Facebook

Bezpečnost v počítačové komunikaci

Mnozí z vás si jistě vzpomenou na válečné filmy, kde se zásadní informace sdělovaly jako tajná hesla, papíry s nesmyslně vyhlížejícím textem a zprávy maskované všemožnými jinými způsoby, jen aby nepropadly nepříteli. Od dob Enigmy se toho však mnoho změnilo a v současnosti, zejména kvůli veřejným sítím, jako je internet, jsou informace cenným majetkem pro každého z nás – nebo tomu tak není? Daniel Závodský.


V normálním světě používáme ke své identifikaci předměty, jako jsou občanské průkazy, pasy, různé karty, dokumenty je třeba podepisovat... Jak ale přesvědčit server na druhé straně zeměkoule, že jste oprávněným uživatelem svého e-mailového účtu? Samozřejmě svým uživatelským jménem a heslem, to ví přece každý. Ovšem každý, kdo zná vaše jméno a heslo, se za vás může vydávat – a cesta od jejich zadání ve vašem počítači až po vzdálený server je dlouhá a nikdo neví, kolik zvědavých očí sleduje komunikaci. Existují různé programy, které jednoduše odchytávají a filtrují přenášené informace a hledají v nich jména a hesla, která by se dala zneužít. Většinou sice k ničemu nedojde a naše jméno a heslo projde k cíli bez povšimnutí, avšak mnohem lepší než spoléhat na náhodu, je nějakým způsobem přenášené informace ochránit – zašifrovat.

Když zapomeneme své heslo do systému, vzhledem k povaze šifrování nám jej ani správce nemůže sdělit – naštěstí může však nastavit heslo nové.

Možná jste si jako děti zkoušeli psát různé „tajné zprávy“ – písmeno „A“ se bude psát jako „F“, „F“ zase jako „X“ atp. I toto je způsob šifrování, avšak ve světě moderní výpočetní techniky, která nám pomáhá a umožňuje řešit úkoly „hrubou výpočetní silou“, je zapotřebí mnohem složitějších a bezpečnějších šifer.

Čas od času někdo přijde s novou, „nerozluštitelnou“, šifrou, která je záhy dešifrována a její vynálezce vystaven na posměch. Ve skutečnosti existuje pouze jeden způsob šifrování informací, který je matematicky dokázán jako zcela neproniknutelný (v ideálních podmínkách, jak uvidíme dále). Tím je jednorázová tabulková šifra (zvaná též Vernamova šifra). Každý znak v abecedě je posunut o náhodný počet míst – čímž získáme zcela náhodný text. Ten se v principu nedá rozluštit, pokud nemáme k dispozici tabulku, pomocí které byl zašifrován. Tento způsob šifrování informací se v běžné praxi nepoužívá, protože aby příjemce mohl zprávu dešifrovat, musí se k němu bezpečně dostat šifrovací tabulka, která je stejně dlouhá jako zašifrovaná zpráva. Navíc každou tabulku lze použít pouze jednou. Její teoretická nerozluštitelnost nám však pomůže ukázat si některá úskalí, kvůli kterým se i nejlepší šifra může stát naprosto snadno rozluštitelnou.

Když na svém počítači zapomeneme heslo superuživatele, je potřeba nabootovat z instalačního CD do záchranného režimu a heslo změnit.

Algoritmus každé moderní běžně používané šifry je veřejně k dispozici a každý má možnost ji rozluštit, protože teoreticky jsou všechny rozluštitelné. K čemu nám tedy jsou takové šifry, které může každý, kdo má zájem, rozluštit? Ano, tuto možnost má skutečně každý, i vy na svém počítači. Problém je však v tom, že vycházejí z principu matematické náročnosti některých operací – a tím zabezpečují vysokou ochranu dat i navzdory tomu, že jsou matematicky řešitelné a tedy rozluštitelné. Čas potřebný pro jejich dešifrování může být měsíce, roky, desítky let... přesný čas závisí na mnoha faktorech, ale většinou ho tolik nemáme.

Moderní šifry se v zásadě dělí na symetrické a asymetrické. Jednoduché příklady šifer, o kterých jsem se zmínil, jsou v podstatě také šiframi symetrickými – existuje pouze jeden klíč a každý, kdo jej má, může pomocí něj zprávu zašifrovat i dešifrovat. Symetrické šifry se používají například pro ochranu dat na disku, přenos dat přes internet (webové prohlížeče) a podobně. Šifry asymetrické používají klíče dva – jeden soukromý a jeden veřejný. Název těchto klíčů vychází z toho, že soukromý klíč má zpravidla pouze jeho vlastník a klíč veřejný je volně k dispozici pro každého. Šifra je asymetrická proto, protože zpráva zašifrovaná soukromým klíčem se dá dešifrovat pouze klíčem veřejným a naopak. Tyto šifry se používají zejména pro podepisování a šifrování e-mailů, autentizaci pro SSH apod.

Při prohlížení internetu narazíme dříve či později na stránky, jejichž adresa se nezačíná http://, nýbrž https://. To značí, že se pro komunikaci se serverem používá zabezpečený protokol. Dokument, který má takovou adresu, se pak přes síť přenáší v zašifrované formě.

Soukromé klíče (včetně klíčů pro symetrické šifry) lze ochránit heslem, což je velmi doporučeno. Důvod je prostý – samotný klíč chrání data a identitu, ale kdokoliv s přístupem ke klíči se k datům dostane. Heslo chrání samotný klíč před neoprávněným použitím, bez jeho znalosti je nepoužitelný.

Prohlížeč vás může upozornit, že zabezpečená stránka, kterou prohlížíte, obsahuje nezabezpečené informace. Tyto „nezabezpečené informace“ bývají zpravidla obrázky, které není potřeba šifrovat a pro snížení zátěže serveru se přenášejí normálně. Šifrování dat je více či méně složitá (podle použitého algoritmu) matematická operace, která zatěžuje procesor počítače. V případě běžného používání prohlížeče zvýšenou zátěž na svém počítači nepoznáme, ale pro server, který každou sekundu šifruje desítky dokumentů a jiných souborů, to může být zátěž značná.

Asymetrické šifry jsou použitelné pro některé aplikace, kde nám šifry symetrické nepomohou. Jako příklad uvedu výše zmíněné e-maily. Když chceme někomu poslat zašifrovaný e-mail, který nikdo jiný nepřečte, použijeme k jeho zašifrování veřejný klíč adresáta. Ten je sice volně k dispozici, ale pro dešifrování této zprávy je nepoužitelný. Zprávu lze dešifrovat pouze za použití soukromého klíče, který má pouze adresát. Naopak při podepisování e-mailu použijeme svůj soukromý klíč, kterým se z obsahu zprávy vygeneruje podpis. Ten pak může každý ověřit pomocí našeho veřejného klíče.

I navzdory tomu, že moderní šifrovací algoritmy s klíči o značné délce poskytují teoreticky ochranu dat i pro bližší či vzdálenější budoucnost, relativně často se setkáváme s případy, kdy dojde například k získání přihlašovacího jména a hesla či dešifrování tajné zprávy a jejich následnému zneužití. Jak to ve světě techniky často bývá, selhává lidský faktor, neboli komponenta systému mezi židlí a klávesnicí. Podíváme se na základní zásady bezpečnosti a nejčastější chyby, kterých se lidé dopouštějí.

Asi každý z nás používá někde nějaké to heslo... Hesla se na disku ukládají v zašifrované podobě tak, že je nelze jednoduše dešifrovat. Při ověřování hesla systém námi zadané heslo zašifruje a porovná jej s tím, které má také zašifrované na disku. Jestliže se zašifrované řetězce shodují, je ověření úspěšné. Prakticky jediným způsobem, jak získat heslo, je zkoušet všechny kombinace znaků, které může obsahovat. Čím je heslo delší, tím déle samozřejmě potrvá nalezení správné kombinace, protože možných kombinací znaků bude více. Jako postačující délku hesla bychom mohli zvolit osm znaků, samozřejmě to závisí na požadavcích na bezpečnost. Proto první zásadou je – nevolit příliš krátké heslo.

Delší heslo nám však stále nemusí tolik pomoci – v předešlém odstavci jsme totiž mlčky předpokládali, že jako heslo použijeme náhodnou směsici velkých a malých písmen, čísel a jiných znaků, které může obsahovat. Když zvolíme jako heslo pouze normální slovo ze slovníku či kombinaci slov, zvolíme tím heslo, které poskytuje nízký stupeň ochrany, protože útočník nejdříve vyzkouší právě slova a jejich kombinace. Těch je mnohem méně než náhodných kombinací, a proto je mnohem větší šance, že bude heslo v brzké době odhaleno. Ještě horším heslem je však používat slova nebo čísla, která si jiní lidé s námi mohou spojovat. Například rodné číslo, jméno manželky a podobně. Takováto hesla jsou téměř k ničemu, protože je může uhodnout téměř každý, kdo o vás něco ví, za pár minut. Nejlepší hesla jsou proto směsicí velkých a malých písmen, čísel a znaků, která se nedají uhodnout jinak než pracným zkoušením všech kombinací.

Na internetu po nás chtějí hesla téměř na každém kroku, a kdo si jich má tolik pamatovat? Naštěstí moderní prohlížeče či prostředí pracovní plochy nabízejí možnost uchovat hesla na disku v zašifrované podobě a vyžadují po nás pouze jedno hlavní heslo. Místo desítek hesel si tak stačí pamatovat jedno.

Další zásada, kterou by se patřilo vzpomenout, je: nikdy heslo nikam v čitelné formě nepsat. Papírek s heslem nalepený na monitoru prakticky znamená, že pro jakéhokoliv návštěvníka stolku s počítačem heslo neexistuje. Také není vhodné zapisovat si hesla do textových souborů v počítači. Kdokoliv, kdo k nim má přístup pro čtení, si heslo přečte. Zapamatovatelnost hesel, která nemají žádný smysl, je však docela nízká, a proto bychom měli volit heslo, které si ještě zapamatovat dokážeme, ale obsahuje jak velká, tak malá písmena, čísla a případně jiné znaky.

V případě, že si nedokážeme zapamatovat heslo, které je naprosto náhodnou směsicí znaků, je pro zvýšení bezpečnosti vhodné jednou za čas heslo změnit. Čím je heslo méně náhodné, tím je pro zajištění stejné úrovně bezpečnosti potřebné jej měnit častěji.

V případě, že zapomenete heslo k souboru s klíči pro zašifrovaný disk, můžete se s daty na onom disku rozloučit. Je proto potřeba ještě jednou zdůraznit – volte zapamatovatelné heslo!

Ukázka podpisu (část):
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iQEVAwUBRj+eczvRww8BFPxFAQKnKgf9G8pYWSIfPpXZWn0mQ62r71bG+quXYks5
etajzVMzOPJ855v4lMJb/NgpNTCs0tgNQaKCb6mZkVBAB3fwm/DRVBqNFDssr8zx
Ukázka veřejného klíče:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP Key Server 0.9.6
mQGiBD99wzcRBAD2OpkpF0cy/XcbkvO6R5YiciyqGIu6bOyMR7It6yu07nSKsq2z
A9wQDS2VQSyXYHeSHDkwFLAat8CYmUD5fGajieQF2TwH6DdqTJ5BoQX3zyccYIKm

Diskuze (0) Nahoru