COMPUTERWORLD
Specializovaný týdeník o výpočetní technice

Seriál
o bezpečnosti
a informačním soukromí

Část 44 - CW 12/98

Zatraceně dobré soukromí s PGP

Václav Matyáš ml.

Asi jen stěží najdete někoho, kdo se ochomýtá okolo oboru počítačové bezpečnosti a nikdy neslyšel o PGP. PGP se stalo bezesporu fenoménem pro mnohé uživatele služeb Internetu, především pak e-mailu.

Co všechno PGP umožňuje? Nejnovější komerční verze umožňují spoustu vylepšení a dodatků jako např. certifikační server (umožňující aplikaci hierarchického modelu certifikace/důvěry), aplikace pro správu bezpečnostní politiky pro SMTP atd., nás ale většinou zajímá to, co si můžeme nainstalovat sami a sami také používat (pokud možno bezplatně). V kostce -- PGP umožňuje jednoduché šifrování souborů symetrickou šifrou vámi zvoleným klíčem, digitální podpis souborů (vytvoří se MD5 haš souboru a ten se podepíše vašim soukromým klíčem) a zašifrování souborů "asymetrickou šifrou" (v uvozovkách proto, že se ve skutečnosti používá bloková symetrická šifra s náhodně vygenerovaným klíčem, který je po zašifrování vlastního souboru teprve zašifrován zvoleným veřejným klíčem). Pokud nejste pravidelnými čtenáři seriálu a "kryptohatmatilka" vám nic neříká, tak v části věnované problémům s verzemi PGP najdete odkazy na relevantní články seriálu, které "záhadné" pojmy vysvětlují. V zájmu rychlosti přenosu je při šifrování využita komprese (ZIP) a pro aplikace jako je třeba e-mail se využívá kódování dat přes Radix-64. V podstatě tedy vše, co potřebujete pro bezpečnou komunikaci e-mailem, distribuci zašifrovaných souborů přes FTP/WWW či digitální podpis jakýchkoliv dat.

To je tedy ono pověstné PGP ? Ano a ne -- výše uvedený výčet funkcí není vyčerpávající a je také třeba zvážit fakt, že dnes se nejedná jen o samotné PGP, ale o tisíce programů umožňujících např. šifrované telefonování po Internetu, propojení PGP a programů pro e-mail atd. Více se o funkcích PGP a jeho nástaveb můžete dočíst na URL uváděných v tab. 1, my se v dalším podíváme na věci, které se tak často nezmiňují, ale je dobré o nich vědět.

Pojďme ke klíčovému aspektu

Základní nápovědu lze získat spuštěním pgp s parametrem -h; jako obvykle je vhodné si skutečně přečíst průvodní dokumentaci (téměř vždy bývá přibalena v komprimovaném balíku, který si stáhnete). Na mnohých univerzitách je pgp už nainstalován (především na unixových strojích) -- můžete tak sobě ušetřit práci a jiným kapacitu linky. Stejné klíče lze samozřejmě používat na různých platformách -- klíč vytvořený na laptopu Mac nebo Wintel lze bez problémů používat pod Unixem. Vytvoření klíče/klíčů je samozřejmě prvním stěžejním krokem pro práci s PGP.

1. Nejprve si řádně zvažte, kolik párů klíčů budete chtít používat. Tedy hlavně se jedná o ochranu soukromých klíčů těchto párů. Můžete stejný klíč používat na všech strojích a systémech, které používáte; můžete zvolit různé klíče pro různé úrovně bezpečnosti (jiné pro vaše osobní stroje pod vaší výhradní kontrolou a jiné pro firemní počítače, kde používáte internetové spojení). Na příkladu tabulek 2--4 vidíte některé mé osobní klíče. Delší (2 048bitový) používám jen jako záložní, soukromý klíč nikdy není na počítači, který je připojen k jakékoliv síti a pokud není používán, tak je uložen pouze na disketách a ve vytištěné ASCII podobě, vše v zapečetěné obálce na bezpečném místě. Tento klíč je hlavně používán pro potvrzení (podpis) operačního klíče o délce 1 024 bitů. Tento kratší klíč používám pro běžnou komunikaci a mám ho nainstalován na několika strojích. Dále mám třeba zvláštní klíč pro podpis známek studentů na brněnské Fakultě informatiky MU -- tento klíč není vůbec pod mou správou, takže v něj mám minimální důvěru.

2. Podle způsobu očekávaného použití klíčů zvolte jejich vhodnou délku a popisné údaje. Stávající hranice bezpečnosti RSA klíčů je něco pod 600 bitů, takže doporučuji pro klíče, které budete běžně používat v blízké budoucnosti, volit standardních 1 024 bitů, příp. délku nad 700 bitů. Větší délka má smysl v případech, kdy klíč má být vazbou pro budoucí aplikace nebo klíče a také kdy rychlost kryptooperací nehraje velkou roli (pamatujte -- čím delší klíč, tím pomalejší operace s ním). Pro popisné údaje je samozřejmě vhodné jméno a dále je silně doporučován e-mail, lze ale volit jakékoliv jiné údaje (poštovní adresa ap.). Pokud budete používat stejný klíč pro e-mailovou komunikaci prostřednictvím více adres (ať již skutečné e-mailové schránky nebo jen přesměrování pošty), uveďte všechny adresy v dodatečných popisných údajích a pro dokonalé zajištění vazby těchto adres tyto vždy podepište (viz tab. 4).

3. Rozšíření vašich veřejných klíčů je dalším stěžejním krokem.

· Nejspolehlivější mechanismus samozřejmě je, když svým partnerům předáte osobně (např. na disketě) alespoň jeho vytištěnou ASCII podobu nebo otisk (haš) a poté zašlete klíč i elektronickou cestou -- partner pak může podle vytištěné informace zkontrolovat, zda dostal skutečně ten pravý klíč. Pro tyto účely je např. vhodné uvádět otisk klíče na vizitkách atd.

· O něco méně spolehlivou metodou je poslat klíč elektronickou cestou a haš sdělit telefonicky -- pokud druhá strana zná váš hlas, případně je schopna vás "prověřit" otázkami, na které můžete okamžitě správně odpovědět jen vy ("jak se jmenovala tvoje první láska na gymnáziu", "kde jsme byli naposled na pivu", "kdo zavinil krach našeho posledního projektu" atd.). Méně důvěryhodnou alternativou této metody je čistě elektronická cesta, kdy tyto otázky přijdou zašifrovány vámi dodaným veřejným klíčem, vy je musíte dešifrovat (čili být schnopni použít soukromý klíč) a zodpovědět během krátkého časového intervalu (s mírnou nadsázkou pak lze předpokládat, že jste na ně skutečně odpověděli vy).

· Klíče může podepsat a tak "akreditovat" někdo z vašich přátel, kteří mají svoje PGP klíče již dostatečně rozšířeny. Podle toho, jakou důvěru ve vaše přátele mají jejich partneři, tak dalece se bude důvěřovat vašim klíčům. PGP je z tohoto hlediska velmi propracovaný mechanismus -- tranzitivní důvěru lze pomocí PGP spravovat velmi šikovně. Registrace a ověření (na různých úrovních a tedy i s různým hodnocením důvěry) pro PGP i WWW prohlížeče a Entrust je také možná v Global Trust Register (viz tab. 1), který vychází jednou ročně v tištěné a celosvětové (a tedy obtížněji padělatelné) podobě, ale i ve formátu PDF pro Acrobat Reader.

· Klíče lze pak také rozšířit na servery PGP klíčů (viz tab. 1), kam ale může poslat falešné klíče každý (zkuste si najít např. klíče z whitehouse.gov), zpřístupnit přes WWW (např. jako www.cl.cam.ac.uk/~vm206/pgp_publ.html) nebo pro příkaz finger v souborech jako .plan (zkuste např. finger). Ve všech těchto případech je ale vhodné mít klíče podepsány jinými akreditory, příp. rozšířeny spolehlivými způsoby -- tyto metody jsou vhodné pro širokou veřejnost, vaši důvěrní přátelé by měli získat vaše klíče spolehlivější cestou.

Analogicky pak získejte veřejné klíče všech stran, se kterými chcete do budoucna bezpečně komunikovat. Případně si také zjistěte, zda existuje nadstavba nad PGP pro e-mailové klienty, se kterými pracujete (vyjděte ze zdrojů v tab. 1).

Kde je verze 22?

Existuje několik verzí PGP -- verze před 2.6 jsou dnes již z praktického hlediska nezajímavé; verze 2.6.x jsou dnes nejrozšířenější; verze 3 byla čistě komerční od firmy Viacrypt; verze 4 se "nekonala", aby se zabránilo zmatkům po koupi firmy Viacrypt firmou Pretty Good Privacy, Inc., která vypustila až verzi 5.0; poslední verzí dostupnou v době psaní článku pak je verze 5.5. Je důležité si povšimnout rozdílu mezí verzemi před zlomovou verzí 5 a verzemi 5.0 a výše. Zatímco nižší verze využívaly algoritmů RSA (díly 27 a 30) pro digitální podpis a asymetrické šifrování, IDEA (díl 29) jako blokovou šifru a MD5 pro hašování (úvod do principů šifrování a hašování lze nalézt v dílu 26), tak verze 5 a vyšší podporují navíc i algoritmy El-Gamal/DSS (díl 32) pro asymetrickou kryptografii, RIPEMD-160 a SHA-1 pro hašování a blokové šifry CAST a 3-DES. Pokud používáte PGP -- jakoukoliv verzi -- legálně (bezplatně pro osobní použití nebo řádně zakoupenou pro komerční využití), tak se nemusíte starat o patentové poplatky. Výhoda verze 5 v implicitním nastavení je -- pro země jako USA -- ta, že nepoužívá algoritmy, na které se vztahují komplikovaná patentová práva (a často i poplatky). Nevýhoda je ta, že klíče vytvořené pro verzi 5 s implicitním nastavením nelze použít v nižších verzích, protože ty používají klíče RSA. A abychom si nic nezastírali, jedná se o naprosto zásadní problém, zvláště u bezplatných verzí. Verze 5.0 existuje totiž v podstatě ve třech "variantách" -- pravá bezplatná verze nepracuje s RSA klíči, potřebný upgrade je potřeba zakoupit (naštěstí za velmi malý poplatek); komerční verze pracuje s novými i starými (RSA) klíči.

Je také vhodné vzít v potaz problémy s americkou exportní politikou v oblasti kryptografie (díl 38) a pokud se rozhodnete PGP používat, pak si nainstalujte mezinárodní verzi PGP. Také je potřeba zvážit fakt, že verze 5 a vyšší podporují mechanismy obnovy klíčů (key recovery), což pro mnohé instalace (např. použití ve firmách atd.) je sice velkou výhodou, ale pro jednotlivce znamená spíše potenciální hrozbu kompromitování klíče.

A je to!?

Jakou verzi tedy nainstalovat? Pokud PGP budete používat komerčně, tak si jej raději řádně zakupte, nejlépe verzi 5.5, příp. 5.0, vytvořte si jak DSS, tak RSA klíče (a pokud budete chtít bezpečně komunikovat i s lidmi mimo vaši firmu, tak obojí klíče rozšiřte jak po serverech PGP klíčů, tak i v registrech, jako je Global Trust Register -- odkazy najdete v tabulce č. 1). Pro osobní použití je zatím (dle mého osobního názoru) vhodnější používat verze 2.6.2i nebo 2.6.3i, ale mít také nainstalovánu některou z verzí 5.x -- většinou budete komunikovat s uživateli 2.6.x, ale občas se najde někdo s 5.x. PGP Inc. silně tlačí na rozšíření verzí 5.x, ale verze 2.6.x jsou mezi jednotlivci-uživateli Internetu stále výrazně populárnější.

Velmi důležitým rysem PGP je to, že většina verzí je dostupná nejen jako zkompilované balíky, ale také jako zdrojový program. Je tím umožněna nezávislá kontrola, které se mnozí kutilové a hackeři (v kladném slova smyslu) rádi oddávají a případné nedostatky pak mohou prezentovat na veřejnosti. Princip je zde v podstatě stejný jako u kryptografických algoritmů -- rozsáhlá a neomezená kontrola odbornou veřejností odhalí více chyb než jednorázové (ať už jakkoliv dlouhé) otestování sebelepšími odborníky. Lze namítat, že takový postup umožní "zlým" hackerům vnést chyby do pozměněných balíků nabízených různými národními servery atd. Podobná tvrzení -- jak o kryptoalgoritmech, tak i PGP -- najdete často v českém tisku; nejčastěji v "obvyklém" českém stylu -- zkritizovat světově provozované řešení a nabídnout jinou cestu, nejlépe beze zmínky o vlastních zájmech na prosazení této cesty. Čtěte podobné materiály pozorně a vždy se dobře dívejte, co vám jejich autoři nabízejí jako náhradu za "špatné řešení". (Pozorně samozřejmě čtěte a zvažujte i informace tohoto seriálu!)

Daly by se ještě popisovat další možnosti PGP nebo trampoty jeho otce -- Phila Zimmermanna -- s americkou vládou, která se jej několik let pokoušela zastrašit hrozbou soudních řízení a trestů, ale nakonec se sama veřejného soudního řízení zalekla -- ale to už je námět na jiný článek.

PGP je nástroj, který umožnil internetové komunitě bezpečnou výměnu informací. Je ideálním zhmotněním ideje tohoto seriálu -- bezpečnostní nástroj, který nám umožňuje zatraceně dobrou ochranu informačního soukromí nás a našich přátel. Proč tedy o něm jenom číst -- zkuste to na vlastních strojích.


www.pgp.net a ftp.pgp.net
PGP a kryptografický archiv na University of Cambridge Computer Laboratory, pro PGP miřte do adresáře /pub/pgp/ pro českou podporu 2.6.3i(autor Hanuš Adler) stáhněte /pub/pgp/language/pgp263i-czech.zip
www.pgpi.com
Mezinárodní verze PGP -- mj. zde lze stáhnout PGP ve verzích 2.6.3i a 5.x; další odkazy na PGP zdroje jsou pak v adresáři /links/
www.pgp.com
Stránka firmy Pretty Good Privacy, Inc.
pgp5.ai.mit.edu
Server PGP klíčů na MIT (pro PGP 5.x ale zvolte pgp.ai.mit.edu a port "11371")
www.pgp.cz
Český server PGP klíčů provozovaný firmou SkyNet (propojen s MIT)
www.cl.cam.ac.uk/Research/Security/Trust-Register
The Global Trust Register -- tištěný (a PDF) registr nejvýznamnějších klíčů, jak pro PGP, tak i pro prohlížeče WWW a Entrust/Solo
akpublic.research.att.com:80/~reiter/PathServer/
AT&T PathServer, který vám umožní najít řetěz podpisů mezi dvěma klíči

Tab. 1: -- Relevantní zdroje na Síti


-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.2i
mQENAzSHHi8AAAEIANHoIiNFA8Mm9jCb4LYr+tXCdg29/vWNQg+OYStkuIAN
AIMR9XZoHLWzrYI6o/3ndIisGgZjZe1x88/tFrb2T37UK1zthQd9/i+mmUAv
zspJfr03........r6a5d0PtDR2TLKkaHX1ghWpb9Dmg/ysAqJLoucbYP+4Z
eqBl2rZX2rD4k0HtK/+F9cJOqomhm+ckiNu9VkRtcoBSbQ===uRtX
-----END PGP PUBLIC KEY BLOCK-----

Tab. 2: Takto vypadá ASCII podoba veřejného klíče, ze záhlaví je zjevné o jakou verzi PGP se jedná


pub 2048/971D8145 1997/12/04 Vaclav Matyas Jr. - Long Term Key of 1997 <matyas@fi.muni.cz>
Key fingerprint = B9 B3 F9 AA E5 1B 38 0E F9 DF 00 21 CA F6 87 57
Vaclav Matyas Jr. - Long Term Key of 1997 ID2 <Vaclav.Matyas@cl.cam.ac.uk>

Tab. 3: Informace o veřejném klíči z tabulky 2; lze se dozvědět délku klíče (2 048 bitů), identifikátor klíče (971D8145), datum vytvoření (4. prosince 1997), jméno a příp. další údaje o vlastníkovi klíče (zbytek prvního řadku), otisk klíče (jeho MD5 haš) -- na druhém řádku, a případně další údaje (alternativní e-mailová adresa na třetím řádku).


pub 1024/275D0671 1996/10/09 Vaclav Matyas <Vaclav.Matyas@cl.cam.ac.uk>
sig! 971D8145 1997/12/05 Vaclav Matyas Jr. - Long Term Key of 1997 <matyas@fi.muni.cz>
sig! 4B2700B9 1997/01/15 Ross Anderson <rja14@cl.cam.ac.uk>
sig! 275D0671 1996/10/10 Vaclav Matyas <Vaclav.Matyas@cl.cam.ac.uk>
Vaclav Matyas <vm206@cam.ac.uk>
sig! 275D0671 1996/10/11 Vaclav Matyas <Vaclav.Matyas@cl.cam.ac.uk>
Vaclav Matyas <vm206@cl.cam.ac.uk>
sig! 275D0671 1996/10/09 Vaclav Matyas <Vaclav.Matyas@cl.cam.ac.uk>
Vaclav Matyas <matyas@informatics.muni.cz>
sig! 275D0671 1996/10/10 Vaclav Matyas <Vaclav.Matyas@cl.cam.ac.uk>
Vaclav Matyas <matyas@fi.muni.cz>
sig! 275D0671 1996/10/10 Vaclav Matyas <Vaclav.Matyas@cl.cam.ac.uk>

Tab. 4 Informace o jiném veřejném klíči, který je mj. podepsán klíčem z tab. 2/3. Všimněte si také, že všechny alternativní e-mailové adresy jsou důsledně podepsány, aby se zabránilo jakékoliv možnosti neautorizované modifikace.


| COMPUTERWORLD - seriál o bezpečnosti | COMPUTERWORLD | IDG CZ homepage |