Šifry kolem nás - díl druhý - šifrovací software

1. 4. 2002

Sdílet

Poté, co jsme si v minulém dílu našeho seriálu řekli něco o historii aprincipech šifrování, podíváme se dnes na ryze praktickou stránku tohoto oboru a tou je šifrovací software. V úv...

Poté, co jsme si v minulém dílu našeho seriálu řekli něco o historii a
principech šifrování, podíváme se dnes na ryze praktickou stránku tohoto oboru

a tou je šifrovací software. V úvodu však uděláme ještě malou odbočku a povíme

si něco o algoritmech využívajících asymetrických (veřejných) klíčů.





Princip veřejného klíče



Princip těchto algoritmů je celkem jednoduchý. Je založen na dvojici

šifrovacích klíčů. Jeden z klíčů označujeme jako veřejný, který je všeobecně

znám, druhý jako privátní, který bychom měli znát pouze my. Zprávu lze šifrovat

oběma klíči. Ale o tom až za chvíli. Zřejmě nejznámějším algoritmem

využívajícím asymetrického klíče je RSA. Za tímto algoritmem stojí trojice lidí

a je po nich i pojmenován Ronald Rivest, Adi Shamir a Leonard Adleman. Celý

tento algoritmus je založen na obtížnosti (nemožnosti?) rozkladu velmi vysokých

čísel na prvočinitele (takzvané faktorizaci). Podle různých propočtů bylo

dokázáno, že je takovýto algoritmus za použití dnešního hardwaru prakticky

nerozluštitelný. No, uvidíme za pár let. Faktorizací si ale lze i slušně

vydělat. Pokud se vám například podaří faktorizovat číslo, které je uvedeno na

stránkách http://www.rsa.com, můžete si přijít na celkem slušnou finanční

odměnu, jež se pohybuje v desítkách tisíc dolarů.



Nyní se ale vraťme k principu šifrování za pomoci veřejných klíčů. Jak již bylo

řečeno, lze šifrovat za pomoci obou klíčů, veřejného i soukromého. To je možno

díky tomu, že každý veřejný klíč odpovídá právě jednomu klíči privátnímu a

naopak. V praxi z toho vyplývá následující:





1. Šifrujeme pomocí privátního klíče



Pokud šifrujeme pomocí svého privátního klíče (jiný privátní klíč k dispozici

nemáme, alespoň bychom neměli mít), znamená to, že může být zpráva dešifrována

jedině pomocí našeho klíče veřejného (každý privátní klíč odpovídá jednomu

klíči veřejnému vzpomínáte?). Jelikož je náš veřejný klíč všeobecně znám, může

zprávu dešifrovat prakticky každý. A to je princip digitálního podpisu. Nejde

zde o žádné utajení. Zpráva by měla být (a také je) snadno přístupná každému,

kdo má k dispozici náš veřejný klíč. Jelikož nemůže být zpráva dešifrována

jiným než naším veřejným klíčem, znamená to, že musela být zašifrována jedině

naším klíčem privátním. A jedinou osobou, která mohla tuto zprávu takto

zašifrovat, jsme my, jakožto majitelé privátního klíče.





2. Šifrujeme klíčem veřejným



Nyní tuto logiku obraťme naruby a představme si, že zprávu zašifrujeme veřejným

klíčem. Nepůjde logicky o náš veřejný klíč, ale o klíč někoho jiného. Jak již

jistě tušíte, jediný, kdo bude moci danou zprávu dešifrovat, je majitel

příslušného privátního klíče. Tímto způsobem budeme zasílat zprávy, které

chceme skrýt před zraky znuděných administrátorů nebo zvědavých kolegů.



Výše uvedené řádky by se daly shrnout do těchto dvou, myslím že celkem

výstižných vět:



- Pokud chcete utajit, šifrujte cizím veřejným klíčem.



- Pokud chcete podepsat, šifrujte svým soukromým klíčem.



Některé z vás jistě napadalo, co by se stalo, kdyby se někomu podařilo získat

váš privátní klíč. I na tuto situaci je však pamatováno. Více se dozvíte o

několik řádků později, až bude řeč o frázích.





PGP



PGP je v dnešní době jedním z nejrozšířenějších a troufám si tvrdit, že i

jedním z nejlepších šifrovacích programů. PGP napsal v roce 1991 Phil

Zimmermann. Od té doby byl program mnohokrát modifikován a vylepšován. V

současné době existuje tento program v různých verzích pro různé operační

systémy. Aktuální verze pro operační systémy z rodiny Windows nese označení

7.0.3 a je šířena jako freeware. Pro unixové systémy je k dispozici verze

6.5.8. Je namístě říci, že na unixových systémech, ale hlavně na Linuxu, se

dnes stále více používá program Gnupg, což je šifrovací nástroj odpovídající

standartu OpenPGP (RFC2440). Nutno však podotknout, že tento nástroj nepoužívá

žádný z patentovaných algoritmů, a proto nemůže být považován za kompatibilní s

PGP. PGP můžete získat z mnoha zdrojů na internetu, např. ze serveru

http://www.pgp.cz, nebo ho můžete pravidelně nalézt na CD, které je součástí

časopisu PC WORLD. Nyní se podíváme na to, jak vypadá jeho instalace.





Instalace v UNIXU (Linuxu)



Pro unixové systémy si můžete PGP stáhnout buď ve formě binárního balíčku, nebo

ve formě zdrojových souborů. Instalace pak probíhá klasicky, jako v případě

jakéhokoliv jiného softwaru. Pokud instalujete binární distribuci verze 6.5.8 a

setkáte se s chybovou hláškou o chybějící knihovně (podobný problém mě potkal u

RedHatu 7.1), doinstalujte balíček compat-libstdc++. I když existují grafické

nástavby, lze program efektivně ovládat z příkazového řádku. Skvěle zpracovanou

nápovědu naleznete v manuálových stránkách (man pgp). Prvním krokem po

instalaci by mělo být vygenerování dvojice klíčů (pokud je již nevlastníte).

Další informace, zejména návody, jak používat PGP s různými e-mailovými

klienty, naleznete v manuálových stránkách a souborech HOWTO.





Instalace ve Windows



V systémech Windows je instalace také velmi jednoduchá a dává nám na výběr

několik možností. Po obligátním odklikání Licence Agreement a volbě adresáře se

vás program zeptá, které součásti si přejete nainstalovat. Verze 7.0.3 nabízí,

kromě samotného programu, též firewall. K firewallům se vrátíme v některém z

dalších článků, takže toto téma nebudeme příliš rozebírat. Pokud používáte jiný

firewall nebo si nejste jisti, co přesně děláte, raději firewall neinstalujte.

V průběhu instalace si můžete rovněž zvolit plug-in pro svého poštovního

klienta. Podporovány jsou Outlook, Outlook Express a Eudora. Pokud používáte

jiného klienta, máte smůlu a budete si muset poradit jiným způsobem. Patříte-li

k zarytým odpůrcům programu Outlook (Express), což není zas tak ojedinělý

případ, vyzkoušejte Eudoru. Tento program je uživatelsky přívětivý, má

přehledné rozhraní, snadné ovládání co do možností plně nahradí výše zmíněné

produkty Microsoftu a neobsahuje (nebyly objeveny?) známé bezpečnostní díry

jako výše uvedené produkty. Program je v základní verzi dodáván zdarma.



Po dokončení instalace a následném restartu vás přivítá průvodce, který vám

pomůže vytvořit dvojici vašich klíčů. Pokud chcete změnit nastavení programu,

zejména co se týká algoritmů použitých k tvorbě klíčů, prozatím průvodce

zavřete.





Konfigurace PGP



Program PGP by se měl po správné instalaci spouštět ve skrytém tvaru jako

služba. Po poklepání na ikonku v systémové liště se vám nabídne několik

možností. První kroky by měly vést zřejmě na PGP keys (lze použít i Nabídku

Start). Pokud tedy zvolíme PGP keys, otevře se nám dialogové okno. Nastavení

programu naleznete pod položkami Edit Options. Zde pak můžeme zvolit například

cestu k souborům, které obsahují klíče, nastavit parametry PGP při použití

e-mailového klienta atd. Nejdůležitější je zřejmě poslední karta s názvem

Advanced, kde si můžeme zvolit, jaký algoritmus chceme použít (na výběr máme

mezi CAST, AES, TripleDES, IDEA a Twofish). O jednotlivých typech algoritmů

jsem si povídali minule, a je tedy na vás, který použijete. Poté již jen zbývá

vytvořit si vlastní šifrovací klíče (pokud jsme tak neučinili již po dokončení

instalace). Při vytváření klíčů je třeba odpovědět na několik otázek (jméno,

e-mail) a zvolit si frázi. O této frázi si povíme trochu podrobněji.





Fráze



Program PGP tuto frázi nebude používat jako kryptografický klíč, ale ze zadané

fráze pak vždy vypočítá pomocí funkce MD5 kontrolní součet. Díky tomu je možno

si zvolit libovolně dlouhou frázi. Správný výběr této fráze je velmi důležitý.

Obecně platí, že čím je fráze delší, tím je kvalitnější, což vám ostatně

oznamuje i indikátor kvality fráze, který je zobrazen v průběhu jejího

zadávání. Jako frázi je nejlépe zvolit nějakou větu, výrok, citát a podobně.

Nejdůležitější je však utajení této fráze. Jak již bylo naznačeno, je každý z

vašich klíčů uložen do souboru. K těmto souborům by neměl mít nikdo jiný než vy

přístup. To ale může být například v systémech Windows 9× problém, neboť každý,

kdo sedí u klávesnice, má přístup k celému obsahu disku, tedy i k vašim klíčům.

A právě zde nabývá na důležitosti fráze. Přestože se někomu podaří zmocnit se

vašich klíčů, bez fráze jsou mu k ničemu. Funguje to i opačně. Pokud někdo zná

vaší frázi, ale nemá šifrovací klíče, je mu fráze také na nic. V každém případě

je ale dobré mít obě věci pod kontrolou a nedovolit, aby se dostaly do rukou

třetí osoby to platí zejména o frázi. Řešením může být například uložení klíčů

na disketu, vypálení na CD apod.





Publikace klíče



Pokud jsme si vytvořili dvojici klíčů, zřejmě budeme chtít svůj veřejný klíč

publikovat, abychom mohli využít možností, které nám program dává. Klíč můžeme

publikovat několika způsoby. První možnost nám nabízí sám program, a sice

odeslání klíče do databáze některého ze serverů, který takovéto klíče

shromažďuje. Na výběr máme z několika serverů (v našem případě zřejmě využijeme

serveru ldap://keys.europe.pgp.com). Každý, kdo si poté bude chtít ověřit nebo

použít váš klíč, se k serveru připojí (port 11370) a klíč si ověří.



Další možností, jak někomu zaslat váš veřejný klíč, je jeho export do .asc

souboru a jeho následné zaslání například jako přílohy elektronické pošty

(můžete tento soubor zveřejnit také na svých webových stránkách atd.). Příjemce

poté soubor pomocí programu PGP importuje. Při importu si ještě nechá zobrazit

takzvaný fingerprint (otisk prstu) klíče a ověří si jeho správnost u

odesílatele (nejlépe telefonicky, pomocí SMS nebo osobně, tedy pomocí kanálu,

který by neměl mít pod kontrolou případný útočník). Pokud otisk souhlasí, může

klíč podepsat (dát mu důvěru) a začít ho používat.





Ostatní software



Na poli kryptografie však není jen program PGP, ale mnoho dalších. Na začátku

jsme se zmínili například o programu Gnupg, což je alternativa programu PGP.

Ale zejména pro systémy Windows existuje nepřeberné množství různých utilit,

které nabízejí možnost šifrování dat, šifrování obsahu celého disku,

zašifrování aktuálního okna atd. V záplavě takovýchto programů je opravdu těžké

se vyznat, a ne všechny programy jsou tak užitečné, jak se tváří. Většina

těchto prográmků může někdy spíše škodit, než pomáhat.



Pokud se rozhodnete použít některý z výše uvedených programů, měli byste si

položit několik základních otázek. Především je třeba vědět, jaký algoritmus

program používá. Pokud program používá některý z patentovaných a ověřených

algoritmů, je to celkem v pořádku, i když se mohou objevit problémy s

implementací tohoto algoritmu. Daleko horší je situace, pokud program využívá

nějakého uzavřeného, nebo ještě hůře, vlastního algoritmu. Dobrý a silný

algoritmus není opravdu snadné vymyslet a uvést do praxe. Proto se také může

někdy stát, že váš údajně superbezpečný prográmek k šifrování textových souborů

využívá algoritmus, který je ve svém důsledku stejně bezpečný jako již

zmiňovaný ROT13. Proto se raději vyhýbejte programům, u nichž neznáte jejich

algoritmus. Další důležitou věcí je efektivita programu. Program, který šifruje

algoritmem TripleDES padesátikilový soubor 10 hodin, je stejně efektivní jako

program, který stejný soubor zašifruje algoritmem ROT13 za 10 sekund. Na vás je

najít ideální hranici, takříkajíc poměr „cena/výkon“. Neméně důležitou věcí je

též osoba tvůrce programu. Pokud je tvůrcem programu známá a vážená osobnost

jako například Phil Zimmermann, může být vaše důvěra v software daleko větší,

než kdyby byl autorem programu jakýsi ruský student, který ani nezveřejní své

jméno.





Závěrem



A tím se dostáváme k závěru našeho článku. Naším cílem nebylo plně osvětlit

problematiku kryptografie, ale nasměrovat čtenáře určitým směrem. Šifrování je

ve svém důsledku zábava, a těm, kteří mu přijdou na chuť, otevře jistě netušené

obzory. Taktéž téma digitálních podpisů je v médiích propíráno dlouhou dobu a

proto věřím, že tento miniseriál posloužil i lidem, kteří se o šifrování příliš

nezajímají. S tématem kryptografie se určitě v budoucnu ještě setkáme a zde

získané poznatky tak získají další souvislosti.



Všechny vaše rady, náměty na další články nebo seriál, názory a prosby opět rád

uvítám na adrese igm@centrum.cz.