PGP - Pretty Good Privacy

Z HelpDesk

Pretty Good Privacy (česky bychom řekli dost dobré soukromí) je balík programů, který umožňuje šifrovat a dešifrovat zprávy, digitálně je podepisovat, ověřovat identitu odesílatele a spravovat klíče. V podstatě je PGP možné použít stejným způsobem jako PKI.

Základní rozdíl je v přístupu ověřování majitele veřejného klíče - PKI využívá centrální certifikační autoritu (organizace má vlastní certifikační autoritu nebo využívá služeb třetí strany), zatímco PGP je založeno na decentralizovaných certifikačních autoritách, kdy každý uživatel PGP může vystupovat jako certifikační autorita. Každý z přístupů má své výhody, PGP je využíváno zejména uživateli, kteří nemají přístup k centrální certifikační autoritě nebo potřebují bezpečně komunikovat s lidmi, jejichž certifikační autoritě nedůvěřují.

Podrobnější popis lze nalézt například na stránkách http://cs.wikipedia.org/wiki/PGP nebo http://www.pgpi.org/.

Základní informace o PGP

--- DOPSAT ---

Pavučina důvěry

--- DOPSAT ---

PGP party

--- DOPSAT ---

GPG - GNU Privacy Guard

GNU Privacy Guard (GnuPG nebo GPG) je svobodná alternativa k PGP, vydaná pod GNU General Public License. K dispozici je pro většinu operačních systémů. Další informace o PGP lze nalézt například na stránkách http://www.gpg.cz/ nebo http://cs.wikipedia.org/wiki/GNU_Privacy_Guard

Instalace

V linuxových distribucích je GnuPG obvykle jako samostatný balíček, instalace je následující:

apt-get install gnupg

Pro některé další operační systémy (např. Windows) je potřeba instalační balíček stáhnout z adresy http://www.pgpi.org/download/gnupg/ a spustit instalaci.

Běžné operace s GnuPG

Následující operace jsou ty nejběžněji používané.

Vytvoření PGP klíče

Vytvoření páru (privátní a veřejný) klíčů je prováděno příkazem

gpg --gen-key

Je dobré vybrat si délku klíče minimálně 2048 bitů a expiraci nastavit na nikdy. Klíčovou frázi je potřeba si pamatovat, protože tato znalost je vyžadována při podepisování a dalších činnostech.

Výsledkem je výstup např.

pub 1024D/BCB88B92 2007-05-10 Ales Padrta <apadrta@civ.zcu.cz>
    Key fingerprint = 6328 6BF1 6835 AC7F BF8B  F756 D8DB 958F BCB8 8B92
sub 2048g/07B6F0B9 2007-05-10

Ve výstupu lze identifikovat následující důležité informace :

  • KEYNAME - v příkladu Ales Padrta <apadrta@civ.zcu.cz>
  • KEY-ID - v příkladu BCB88B92
  • FINGERPRINT - v příkladu 6328 6BF1 6835 AC7F BF8B F756 D8DB 958F BCB8 8B92

V následujícím kroku je potřeba vytvořit revokační certifikát pro případ zapomenutí klíčové fráze nebo kompromitace privátního klíče. Toto se provádí příkazem

gpg --output revoke.asc --gen-revoke apadrta@civ.zcu.cz

Vzniklý soubor musí být bezpečně uschován, protože jeho zveřejněním bude veřejný klíč zneplatněn.

Pokud jste se dostali až sem, měli byste mít následující soubory (v adresáři c:\gnupg nebo ~/.gnupg:

  • secring.gpg - zde jsou uloženy všechny privátní klíče (vytvořené příkazem gpg --gen-key)
  • punring.gpg - zde jsou uloženy všechny veřejné klíče (vytvořené příkazem gpg --gen-key nebo stažené)
  • revoke.asc - revokační certifikát (každý vytvořený pár klíčů má vlastní soubor)
  • trustdb.gpg - zde jou uloženy informace o pavučině důvěry

V souboru secring.gpg jsou uloženy privátní klíče, takže je nutné jej chránit jako oko v hlavě.

Výměna veřejných klíčů

Pro ověření podpisu je potřeba znát veřejný klíč odesílatele a pro zašifrování veřejný klíč adresáta. Nyní mám přeci pouze svůj veřejný klíč, jak se dostat k ostatním veřejným klíčům? V podstatě to jde dvěma způsoby, buď přímým zasláním nebo pomocí serveru spravujícího veřejné klíče PGP. Prakticky je používána spíše druhá varianta.

Přímá výměna vyžaduje exportování veřejných klíčů do souboru, který je pak poslán adresátovi. Export je realizován příkazem

pgp --output pubkeys.pgp --export 

Chcete-li zaslat pouze omezenou množinu klíčů, zadejte část nebo celé KEYNAME, např.

pgp --output pubkeys_pavels.pgp --export Pavel

Případně můžete klíč specifikovat jeho KEY-ID, např.

pgp --output pubkeys_pavels.pgp --export BCB88B92

Příjemce si pak následně importuje všechny veřejné klíče ze zaslaného souboru příkazem

pgp --import pubkeys.pgp

Tím jsou veřejné klíče přidány do souboru pubring.gpg, případně jsou aktualizovány informace o podpisech klíčů.

Pro zjednodušení existuje pro správu podpisů veřejných klíčů řada serverů, které výměny veřejných klíčů zajišťují. Informace zaslané na jeden server se automaticky vypropagují na ostatní. Mezi takovéto podpisové servery patří např. wwwkeys.cz.pgp.net.

Poslání všech veřejných klíčů (a jejich podpisů) ze souboru pubring.gpg na server wwwkeys.cz.pgp.net je prováděno příkazem

gpg --keyserver wwwkeys.cz.pgp.net --send-keys

Případně lze operaci aplikovat pouze na veřejný klíč specifikovaný svým KEY-ID, např.

gpg --keyserver wwwkeys.cz.pgp.net --send-keys BCB88B92

Také lze omezit množinu veřejných klíčů zadáním celého či části KEYNAME, např.

gpg --keyserver wwwkeys.cz.pgp.net --send-keys Pavel

Stažení konkrétního veřejného klíče s KEY-ID 1BEDF25D ze serveru wwwkeys.cz.pgp.net je prováděno příkazem

gpg --keyserver wwwkeys.cz.pgp.net --recv-key 1BEDF25D

Není možné stahovat více veřejných klíčů najednou. Veřejný klíč je opět přidán do souboru pubring.gpg s aktuálními informacemi o jeho podpisech.

Protože jsou veřejné klíče v průbehu času porůznu podepisovány, je vhodné si občas aktualizovat informace. Místo postupného stahování jednotlivých klíčů je používán příkaz

gpg --refresh-keys --keyserver wwwkeys.cz.pgp.net

Jsou aktualizovány informace o všech klíčích v souboru pubring.gpg.

Výpis informací o stažených veřejných klíčích

Seznam všech dostupných veřejných klíčů lze vypsat příkazem

gpg --list-keys

Opět je možné výpis omezit zadáním části KEYNAME nebo KEY-ID

gpg --list-keys Pavel
gpg --list-keys BCB88B92

Výpis FINGERPRINTU všech dostupných veřejných klíčů je prováděn příkazem

gpg --fingerprint

S omezením pro KEYNAME nebo KEY-ID pak příkazy

gpg --fingerprint Pavel
gpg --list-keys BCB88B92

Podpisování veřejných klíčů

--- DOPSAT ---

Overeni klice: gpg --fingerprint <Key_ID>

Podepsani klice: gpg --sign-key <Key_ID>

Informace o klici (kdo je podepsal): gpg --edit-key 1BEDF25D check

PGP v Mozille Thunderbird

Do poštovního klienta Mozilla Thunderbird existuje add-on nazvaný Enigmail, který umožňuje snadné používání PGP v e-mailové komunikaci (oveřování, podepisování a šifrování pošty). Pro svou činnost využívá funkce GnuPG, takže potřeba mít GnuPG nainstalováno. Více informací je na stránce projektu Enigmail

Instalace

V linuxových distribucích je Enigmail obvykle jako samostatný balíček, instalace je tedy jednoduchá:

apt-get install enigmail

Pro ostatní OS je potřeba stáhnout na disk instalační balíček ve formátu xpi, k nalezení je například na stránkách

a naistalovat jej jako add-on

  1. V menu Mozilla Thunderbird otevřít menu Nástroje -> Správce doplňků
  2. Tlačítko Instalovat ...
  3. Nalézt dříve stažený soubor xpi
  4. Po proběhnuté instalaci je nutné Mozillu Thunderbird restartovat

Další informace o instalaci a řešení častých problémů je popsáno na stránce http://enigmail.spi.cz/help.html

Konfigurace

Postup při konfigurování Enigmailu je pěkně popsán krok za krokem na stránce http://enigmail.spi.cz/konfigurace.html. V některých verzích je zpřístupněno jenom základní nastavení, ostatní záložky se objeví až po zaškrtnutí políčka Zobrazit experní nastavení. Další doporučení a poznatky

  • Zapisujete-li KEY-ID používaného klíče ručně nezapomeňte, že musí začínat 0x, jinak nebude rozpoznán
  • Do položky pamatovat heslo vložte 0 (passphrase se nebude nikam ukládat)

Používání

--- DOPSAT ---