Braňte si své soukromí (2)

18. 6. 2001
Doba čtení: 4 minuty

Sdílet

Dnešním dílem pokračuje minisérie o zabezpečené komunikaci. Na příkladu programů GnuPG a Mutt si ukážeme, jak vypadá použití technologie PGP v praxi.

Prvním krokem při práci s PGP je vygenerování veřejného a soukromého klíče. Děje se tak voláním příkazu 'gpg –gen-key". Program se vás zeptá, jaký formát klíče chcete používat. Potom si vyberete délku šifrovacího klíče. Obecně platí, že čím více bitů, tím bezpečnější je šifrování. Avšak klíče delší než 2048 bitů již nepřinášejí očekávanou míru bezpečnosti, protože slabé místo šifry se v takovém případě přenáší na kvalitu hashovacího algoritmu. V praxi si většina uživatelů vystačí s klíči o délce 1024 bitů, které jsou standardní a dostatečně bezpečné.

Následně určíme dobu, po kterou bude klíč platný, a zejména identifikační údaje. Pomocí emailové adresy, jména a příjmení nebo dalšího doplňujícího textu je možné váš klíč identifikovat.

Svůj klíč můžete (ale nemusíte) chránit heslem, tzv. passphrase. Passphrase je vlastně heslo pro zašifrování privátního klíče a měla by být použita všude tam, kde hrozí nebezpečí nepovolaného zkopírování nebo odcizení souboru s klíčem. Doporučuje se volit krátký text, aby jej bylo možné rychle napsat, ale zároveň dostatečně kvalitní, aby jej nebylo možné uhádnout například zkoušením hesel ze slovníku.

Následně začne GnuPG generovat klíče. Během této operace musí počítač nasbírat dostatečné množství náhodných dat, proto se doporučuje během této fáze počítač co možná nejvíce zaměstnávat (mačkat klávesy, pohybovat myší, atd.). Na pomalých počítačích trvá občas generování velmi dlouho a někdy se musí pro malé množství náhodných vzorků opakovat.

Vytvořenému klíči je pak přiděleno jedinečné 32-bitové ID číslo a jeho veřejná část se uloží do souboru ~/.gnupg/pubrin­g.gpg, zatímco soukromá do ~/.gnupg/secrin­g.gpg. Do těchto souborů se ukládají všechny klíče, se kterými GnuPG přijde do styku. Reálný veřejný klíč, shodou okolností můj vlastní, může vypdat třeba nějak takto.

Hned po vygenerování klíče je vhodné jeho veřejnou část nahrát na některý z keyserverů. Keyservery udržují databázi veřejných klíčů, které na ně posílají jejich majitelé. Uživatelé si je z těchto serverů naopak stahují, když si třeba chtějí ověřit, zda je podepsaná zpráva autentická. Přenos dat na keyserver lze provést více způsoby. Nejsnazší je použití direktivy „–send-keys“ (adresu keyserveru je nutné určit parametrem „–keyserver“ nebo ještě lépe zapsat v souboru .gnupg/options). Klíč také můžete vyexportovat do ASCII podoby „-a –export“ a poslat jej na keyserver emailem nebo přes WWW rozhraní. Klíč stačí poslat pouze jednou, neboť jednotlivé keyservery si mezi sebou samy synchronizují své databáze. Více informací najdete tady.

Dodám jen, že klíč stažený z veřejného keyserveru nelze považovat za absolutně věrohodný, protože nemáme jistotu, že jej tam skutečně vložila autentická osoba. Proto se keyservery používají jen pro samotné šíření klíčů a jejich potvrzení se provádí porovnáním otisků (fingerprints), nejlépe osobním předáním, telefonicky nebo jiným důvěryhodným kontaktem s majitelem klíče. Otisk všech veřejných klíčů z vaší databáze můžete získat voláním gpg s parametrem ‚–fingerprint‘. V podstatě se jedná o krátké číslo vygerované z dlouhého klíče. Poté, co klíč nějakým způsobem ověříte, můžete změnit jeho atribut v databázi důvěryhodnosti, kterou si GnuPG vede.

Více se o problematice správy klíčů dočtete tady nebo v příslušné manuálové stránce. Pokud by vám práce s programem pomocí příkazové řádky připadala příliš těžkopádná, můžete vyzkoušet některé z GUI rozhraní, jejichž popisem se zase zabýval tento článek.

PGP a Mutt

Mutt je v mnoha ohledech nepřekonaný emailový klient pracující ve znakovém režimu. Čtenáři ROOTa se s ním mohli seznámit třeba v nedávném článku.

Podpora PGP v Muttovi je velmi povedená. Součástí distribuce Mutta jsou předdefinované konfigurační soubory pro různé verze pgp a hlavně GnuPG. Příslušný soubor („gpg.rc“) překopírujete do svého „.muttrc“ nebo se na něj odkážete pomocí direktivy source.

Vlastní použití PGP je velice snadné. Po napsání zprávy a opuštění textového editoru stačí stisknout klávesu „p“. V následující nabídce určíte, zda chcete zprávu podepsat nebo zašifrovat, přičemž při šifrování budete vyzváni k zadání vaší passphrase. To je vše. Když se zašifrovaná zpráva dostane k rukám nepovolané osoby (neznalé privátního klíče), příliš si z ní nepočte:

screenshot

Pokud jste adresáti zprávy zabezpečené pomocí PGP, je situace ještě jednodušší. Mutt automaticky ověřuje otevírané zprávy a kontroluje platnost jejich podpisu. Jak vypadá správně potvrzený podpis, je patrné z přiloženého obrázku. Pokud je zpráva zašifrovaná, Mutt vás rovnou vyzve k zadání passphrase k příslušnému privátnímu klíči.

screenshot

Až dosud se vše zdá být snadné a bezproblémové, ale v praxi se můžete setkat s nemalými problémy. Může se stát, že odesílatel použije k šifrování něco jiného než GnuPG – třeba PGP 2.x – nebo jiný program používající šifru nepodporovanou v GnuPG. V takovém případě nezbyde, než si opatřit komerční program PGP (může být i zdarma, pro osobní použití – k nalezení tady), nebo přesvědčit partnera, aby používal jiný šifrovací algoritmus. Pro úplnost dodejme, že je možné také najít patch, který do oficiální verze GnuPG přidá podporu patentovaných technologií.

bitcoin školení listopad 24

Dalším zádrhelem může být formát přijatého PGP dopisu. Mutt preferuje způsob používající MIME. Problémy, avšak nikoliv neřešitelné, nastávají, pokud váš partner používá klienta, který PGP bloky vkládá přímo do těla zprávy (tzv. plaintextový formát). Jestliže potřebujete pracovat s tímto formátem, pomůže vám tento dokument.

PGP je efektivní, ale nikoliv univerzální metoda pro bezpečnou komunikaci. K dokonalosti mu chybí hlavně kompatibilita, protože současný stav umožňuje bezproblémové používání snad jen tehdy, když odesílatel používá naprosto stejný software jako adresát. Rozvoji PGP také brání patentová a exportní omezení, která způsobují, že v různých částech světa je nutné používat různé verze šifrovacích programů.

Autor článku