PGP - Pretty Good Privacy
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
- V menu Mozilla Thunderbird otevřít menu Nástroje -> Správce doplňků
- Tlačítko Instalovat ...
- Nalézt dříve stažený soubor xpi
- 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 ---