V minulém čísle Zpravodaje byly popsány základní vlastnosti PGP. Pro praktické fungování celého systému veřejných klíčů je ovšem potřeba zajistit bezpečnou distribuci veřejných klíčů a ochranu veřejných i tajných klíčů před zneužitím.
V systému veřejných klíčů nemusí být veřejný klíč chráněn, naopak je vhodné, aby byl co nejvíce rozšířen. Je ovšem třeba chránit veřejné klíče před neoprávněnou manipulací, aby si každý mohl být jist, že klíč zkopírovaný například ze serveru veřejných klíčů skutečně patří tomu, jehož jméno obsahuje. Představme si, že chceme poslat dopis Aleně. Zkopírujeme si tedy její veřejný klíč z nějaké BBS, dopis tímto klíčem zakódujeme a pak jej e-mailem přes BBS Aleně pošleme. Jistý hacker jménem Karel ovšem do této BBS pronikl, vygeneroval nový klíč s Aleniným jménem a umístil jej na místo původního. My jsme si tedy nevědomky natáhli Karlův klíč. Karel nyní může zachytit náš dopis, rozkódovat jej, znovu zakódovat pravým klíčem a poslat Aleně, aniž by kdokoli poznal, že se děje něco špatného. Je tedy zřejmé, že neoprávněné manipulaci s klíči je nutno zabránit. Pokud dostaneme klíč osobně od Aleny, je vše v pořádku. Je-li však příliš daleko, může nám klíč předat prostředník, například spolehlivý přítel David, který má klíč přímo od Aleny a připojil k němu svůj podpis na potvrzení pravosti. My ovšem musíme mít zaručeně pravou kopii Davidova klíče, abychom jeho podpis na Alenině klíči mohli ověřit. (Máme-li zaručeně pravou kopii Davidova klíče, můžeme si být zcela jisti, že jakýkoli klíč podepsaný Davidem je pravý.) Klíč v souboru veřejných klíčů podepíšeme příkazem
pgp -ks jméno |
kde jméno je identifikace uživatele.
Některá velmi důvěryhodná osoba se tak může dokonce specializovat na připojování svého podpisu k veřejným klíčům; nazvěme ji "notářem". Každý veřejný klíč podepsaný touto osobou zcela jistě patří tomu, kdo je v něm uveden. Všichni uživatelé, kteří si potřebují ověřit pravost veřejného klíče, musí mít osobně převzatu kopii pouze jednoho veřejného klíče - notářova. Tento způsob ověřování veřejných klíčů se používá ve velkých centrálně řízených firmách. Některé instituce používají celou hierarchii notářů.
Decentralizované prostředí, dovolující všem uživatelům, aby vystupovali jako důvěryhodní prostředníci pro své přátele, funguje pravděpodobně lépe než centrální notář. PGP zdůrazňuje tento decentralizovaný přístup, který lépe odráží přirozený způsob komunikace a umožňuje lidem vybrat si, komu budou důvěřovat.
Problém ochrany veřejných klíčů je nejtěžším problémem a Achillovou patou systémů s veřejnými klíči. Veřejný klíč bychom měli použít, jen když máme naprostou jistotu, že není modifikovaný a že skutečně patří tomu, jehož jméno nese. Jisti si ovšem můžeme být, jen pokud jsme klíč dostali přímo od jeho vlastníka nebo pokud nese podpis někoho, komu věříme a jehož veřejný klíč již máme. Nikdy nebuďme pohodlní a ověřme si klíč, který jsme si odněkud zkopírovali. Neověřený veřejný klíč mohl být kýmkoliv zmodifikován, třeba i správcem systému, na němž byl vystaven. Naopak pokud jsme požádáni o podpis veřejného klíče, ověřme si jeho pravost. Náš podpis na tomto klíči bude potvrzením pravosti pro všechny, kdo nám důvěřují. Nepodceňujme situaci a podepišme klíč jen tehdy, pokud jsme jej dostali osobně od jeho vlastníka. Pokud podepisujeme nějaký klíč, musíme si být mnohem více jisti jeho vlastníkem, než když tentýž klíč použijeme pro kódování zprávy. Uvědomme si, že podepsáním klíče nepotvrzujeme důvěryhodnost majitele, ale pouze pravost klíče; lidé, kteří nám věří, budou díky našemu podpisu věřit, že klíč patří uvedenému majiteli, ale nemusí věřit jeho majiteli.
Ověřit pravost klíče lze i bez přímého kontaktu s jeho majitelem, např. pokud jsme schopni bezpečně rozpoznat totožnost majitele v telefonu. V tom případě zadáme příkaz
pgp -kvc jméno |
kde jméno je identifikace uživatele. PGP odpoví výpisem 16 bytů klíče. Náš přítel zadá stejný příkaz a pak si telefonicky oba výpisy PGP zkontrolujeme. Jsou-li totožné, je klíč pravý.
Je vhodné mít ke svému klíči připojeny ověřovací podpisy několika prostředníků; zvyšuje se tím pravděpodobnost, že většina lidí bude důvěřovat alespoň jednomu z nich, a bude tedy moci náš klíč využít. Svůj klíč s připojenými podpisy můžeme poslat na libovolný server klíčů. Naopak podepíšeme-li něčí klíč, vraťme mu jej i se svým podpisem, aby si jej mohl připojit ke své sbírce ověřovacích podpisů. PGP si udržuje informaci o tom, které klíče v našem souboru veřejných klíčů jsou ověřeny podpisy prostředníků. Stačí k tomu uvést jména důvěryhodných prostředníků a ověřit jejich klíče připojením vlastního podpisu. PGP pak může automaticky ověřovat pravost dalších klíčů, podepsaných našimi prostředníky. Kontrola pravosti nového klíče je ovšem závislá na neporušenosti našeho souboru veřejných klíčů. Proto bychom měli mít svůj soubor veřejných klíčů bezpečně uschovaný, nejlépe na svém osobním počítači, podobně jako soubor tajných klíčů. Je vhodné mít také kopii tohoto souboru, abychom si mohli v případě pochyb ověřit, zda jej nikdo nezměnil. Pokud nám přes veškerou snahu někdo tajný klíč a heslo odcizí, musíme co nejrychleji varovat všechny, kdo mají náš veřejný klíč. K vygenerování potvrzení o odvolání klíče slouží příkaz
pgp -kd jméno |
kde jméno je identifikace uživatele. Příjemci této zprávy si ji zařadí do svého souboru veřejných klíčů a PGP jim zabrání náš klíč nadále používat.
Program PGP byl původně vyvinut pro použití na osobních počítačích s MS-DOSem, nyní se však používá i na mnoha víceuživatelských systémech. Na těchto počítačích je však větší nebezpečí, že někdo naše soubory odcizí nebo bude monitorovat, co píšeme na klávesnici, nebo číst naši obrazovku. Každý musí zhodnotit svou bezpečnostní situaci a podle toho zvolit způsob práce s PGP. Záleží také na tom, jak pohodlnou chceme mít práci s PGP. Některé programy pro čtení pošty (například ELM) mají podporu pro práci s PGP přímo zabudovanou.
Program PGP se stále vyvíjí, ale novější verze nejsou určeny pro vývoz z USA. Poslední verze určená pro mezinárodní použití má označení 2.3.