Tomáš "Tomyk" Ruprich
tomyk at uikt.mendelu.cz


Používání GPG v muttu

Co je GPG, k čemu slouží?

GPG (nebo také GnuPG) znamená GNU privacy guard a jedná se o opensource variantu komerčního řešení OpenPGP standardu definoaného RFC2440. Ve zkratce se jedná o sadu algoritmů a obecně postup, jak pomocí elektronických klíčů podepisovat a zpětně ověřovat data, nebo data šifrovat a dešifrovat.

Co je mutt, k čemu slouží?

Mutt je textově orientovaný emailový klient pro UNIX-based operační systémy, založený především na rychlosti a jednoduchosti, ocenitelný obzvláště při čtení velkého množství pošty (zkuste si v outlooku přečíst 2000 emailů denně ;-)).

Jak vytvořit GPG klíče

Základem je samotná existence elektronického klíče, ten si vytvoříme v shellu příkazem tomyk@tomyk$ gpg --gen-key Samotná tvorba je dialog, dá se použít i dávky, ale nedoporučuje se to a je to jen experimentální metoda. Velikost klíče stačí ponechat implicitní, 1024 bitů je bohatě postačujících, nicméně paranoici můžou klidně sáhnout po 2048 bitech. Pro kontrolu, že se klíč nyní opravdu nachází v úložišti, stačí zadat tomyk@tomyk$ gpg --list-keys Výstup by měl vypadat nějak takto: tomyk@tomyk$ gpg --list-keys
/home/tomyk/.gnupg/pubring.gpg
--------------------------------
pub 1024D/BC84B123 2007-10-14 Tomas Ruprich
sub 1024g/DDC2A38C 2007-10-14 [platnost skončí: 2008-10-13]

Jak nechat mutt používat právě vytvořený klíč?

Konfigurační soubor muttu se standardně nachází v domovském adresáři uživatele pod názvem .muttrc. Veškeré změny týkající se použití GPG se dají psát přímo do něj, nicméně přehlednější mi přijde vytvořit si samostatný konfigurační soubor a ten následně includovat: source ~/.gpgrc Vzorový konfigurační soubor GPG se (na distribucích založených na redhatu) nachází v /usr/doc/mutt/samples/gpg.rc, odkud si jej stačí zkopírovat do domovského adresáře: tomyk@tomyk$ cp /usr/doc/mutt/samples/gpg.rc ~/.gpgrc

Základem konfiguračního souboru jsou jednotlivé příkazy pro samotné použití příkazu gpg a zatím jsem neměl potřebu do nich jakýmkoliv způsobem zasahovat. Pokročilejší funkce je možné dohledat v manu muttrc a gpg, oba jsou dobře zpracovány a všechno se tam dá najít, takže by s tím neměl být žádný problém.

Některé užitečné parametry

set pgp_autosign=yes Tato volba zapne automatické podepisování odchozí pošty, tedy bez nutnosti vyvolání menu.

Zapne automatické šifrování odchozí pošty, tedy bez nutnosti vyvolání menu. set pgp_autoencrypt=yes

Ukládat vešekré kopie zpráv (tedy všechno co se ukládá někam pomocí set copy=yes nebo příkazu <c>) šifrovaně. set pgp_encryptself=yes

Pokud přijde podepsaná zpráva, odpověď bude taky podepsaná. set pgp_replysign=yes

Pokud přijde zašifrovaná zpráva, odpověď bude taky šifrovaná. set pgp_replyencrypt=yes

Nastavení timeoutu pro pamatování passphrase ke klíči. set pgp_timeout=1800

Který chceme používat defaultně klíč. set pgp_sign_as=83CC2D5E

Tento text se zobrazí u podpisu, který bude korektně ověřen pomocí příkazu zadaného direktivou pgp_verify_command. set pgp_good_sign="^gpg: Good signature from"

No a nakonec je tu můj kompletní konfigurační soubor (v podstatě by mělo stačit změnit pgp_sign_as a klíč u pgp_encrypt_only_command).

Vlastní práce s GPG v Muttu

Samotné podepsání probíhá tak, že po dopsání zprávy v oblíbeném editoru před samotným odesláním se zmáčkne klávesa <p> a z jednoduchého kontextového menu se vybere požadovaná akce.

Podepsáním bude ke zprávě připojen veřejný klíč a každý, kdo veřejný klíč vlastní je schopen ověřit, že se jedná opravdu o zprávu od Vás. Podepsaná zpráva se v indexu muttu vyznačuje příznakem s. S tím souvisí problematika distribuce veřejných klíčů. Z toho důvodu existují veřejné key servery, založené právě k tomuto účelu. Šifrovaná zpráva se naproti tomu vyznačuje příznakem P.

Po špatném zadání hesla ke klíči je třeba vyprázdnit paměť pomocí <Ctrl+f>.

Názorná ukázka běžné zprávy, té samé zprávy zašifrované, podepsané a rozšifrované.

Používání klíče a trocha nutné prudy k bezpečnosti

Je třeba mít na paměti, že celý mechanismus má několik slabých míst, a porušení některých základních pravidel má za následek to, že celá ta práce byla naprosto zbytečná. Prvním základním pravidlem je ochrana soukromého klíče. Bez dostatečně silného jednak hesla do systému, kde je soukromý klíč uložen a jednak samotné passphrase ke klíči.

Druhým důležitým pravidlem, které je třeba mít vždy na paměti je, že passphrase by člověk NIKDY neměl zadávat pro nešifrovaný přenos. V takovém případě totiž zadané údaje letí po síti čistě a je snadné je odposlechnout.


Poslední aktualizace 19. 10. 2007