Práce s keyservery
Veřejné klíče se pro usnadnění práce ukládají na tzv. keyservery (klíčové servery). Ty umožňují snadno klíče ukládat a publikovat pro ostatní uživatele a naopak si je stahovat pro vlastní použití (šifrování a kontrolu podpisu). Keyservery mohou být soukromé i veřejné, používají se různé protokoly (aktuálně nejvíce HPK a LDAP).
Hledání a import klíčů
Potřebujeme-li získat veřejný klíč nějakého uživatele a víme, na kterém serveru svůj klíč publikoval, je jeho získání snadné. Můžeme se například podívat, jaké klíče jsou pro určitého uživatele na keyserveru k dispozici:
gpg --keyserver hkp://pgp.mit.edu --search-keys uzivatel@nejakadomena
Není-li na serveru žádný klíč pro uživatele s danou e-mailovou adresou, program to ohlásí. Pokud klíče najde, vypíše zhruba toto:
gpg: vyhledávám "uzivatel@nejakadomena" na hkp serveru pgp.mit.edu (1) Uživatel na doméně (Testovací) <uzivatel@nejakadomena> 2048 bit RSA key DFEDD2B7D391886158ED92CCD173DA928C4A3E65, vytvořen: 2010-03-21 (2) Uživatel na doméně (Ostrý) <uzivatel@nejakadomena> 2048 bit RSA key C1D17F0C57166A82E979CB68264D978D4BB1AC83, vytvořen: 2010-10-07 Keys 1-2 of 2 for "uzivatel@nejakadomena". Vložte číslo (čísla), 'N' pro další nebo 'Q' pro konec> q
V tomto případě program našel dva klíče. Rovnou lze výběrem pořadového čísla některý z nich naimportovat do místního úložiště k použití. K hledání lze použít kteroukoli část identifikátoru, podobně jako při místním vyhledávání.
Víte-li přesně, který klíč chcete importovat, můžete spustit přímo importní příkaz:
gpg --keyserver hkp://pgp.mit.edu --recv-keys 4BB1AC83
Lze zadat i více klíčů najednou. Jak se zjistí, že se importuje opravdu ten správný klíč? Jednou z možností je ověření otisku – na výše uvedeném výpisu jsou otisky ty dlouhé řetězce hexadecimálních čísel. Dále může být klíč podepsán jinými uživateli (resp. klíči), jimž důvěřujeme a jejichž veřejné klíče máme k dispozici.
Vzájemné podepisování klíčů může tvořit celou síť (nazývanou web of trust, síť důvěry), které bude později věnován samostatný díl seriálu. Ta výrazně zjednodušuje situaci s ověřováním klíčů, na druhou stranu lze ale mít pak ke klíčům mnohdy pouze částečnou důvěru.
Aktualizace klíčů
Z keyserveru lze již importované klíče také aktualizovat. To má význam pro případy, že se u klíče něco změní.
gpg --keyserver hkp://pgp.mit.edu –refresh-keys gpg --refresh-keys 4BB1AC83
První příkaz aktualizuje všechny klíče v úložišti a použije keyserver podle zadání. Klíče, které nejsou na serveru nalezeny, se samozřejmě neaktualizují. Třetí příkaz aktualizuje pouze konkrétní klíč, a to z preferovaného serveru.
Export klíčů
Na keyserver se klíč dostane tak, že se tam odešle přes nějaké zvláštní rozhraní (typicky webové), nebo ho tam lze poslat přímo z GPG. Jednou odeslaný klíč už mnohdy nejde ze serveru nikdy odebrat – a i kdyby to šlo, může se mezitím dostat jinam do světa. Odeslání klíče si tedy předem dobře promyslete!
gpg --keyserver hkp://pgp.mit.edu --send-keys 18CEFEA4
Příkaz odešle uvedený klíč na daný keyserver. Mnohé veřejné servery jsou zcela otevřené a může na ně klíče posílat kdokoli. Proto uvedený příkaz prostě proběhne a klíč se na server uloží, aniž by jeho správce jakkoli ověřoval, zda jméno a e-mailová adresa má vůbec něco společného s uživatelem, který tam klíč poslal.
Veřejné servery si často mezi sebou klíče synchronizují, proto uložíte-li klíč na jeden z nich, objeví se za nějakou dobu i na dalších.
Revokace
Dostane-li se soukromý (tajný) klíč do nesprávných rukou, resp. je přinejmenším takové podezření, je žádoucí klíč zneplatnit a dát ostatním uživatelům vědět, že nemají šifrovat data příslušným veřejným klíčem ani důvěřovat podpisu. Tomuto procesu se říká revokace („odvolání“) a u PGP/GPG se poněkud liší od té revokace, kterou známe u klíčů třeba na webových serverech.
Revokovat lze jak celý klíč (včetně podklíčů), tak i jen některé podklíče. K revokaci je potřeba revokační certifikát – ten je dobré vygenerovat hned po vygenerování klíčů a pak ho uložit na bezpečné místo (doporučuje se ho raději i vytisknout, není dlouhý). Generuje se jednoduše:
gpg --output revoke.asc --gen-revoke bflm@psvzabcd
Program se zeptá na důvod revokace – nemusíte ho uvádět (zadáte 0), ale pro certifikát generovaný pro případ úniku klíče je vhodné uvést příslušný důvod (1).
V okamžiku, kdy se musí provést revokace, je potřeba udělat dva kroky: revokovat klíč přímo v místním úložišti a dostat revokační informaci k uživatelům. První část se udělá podobně jako import klíče:
gpg --import revoke.asc
Tím se klíč místně zrevokuje a nepůjde už používat. Druhým krokem je odeslání na keyserver, aby všichni uživatelé, kteří si následně klíč stáhnou nebo aktualizují, dostali informaci o revokaci:
gpg --keyserver hkp://pgp.mit.edu --send-keys bflm@psvzabcd
Je to tedy stejné jako při běžném exportu klíče na keyserver. V případě potřeby revokovat jen podklíč je to celé trochu složitější, vrátíme se k tomu v budoucnu.
Grafické nástroje
Počínaje příštím dílem bude seriál nějakou dobu věnován grafickým nástrojům pro práci s GPG. Nebude tedy potřeba psát ručně žádné příkazy, nicméně „průprava“ z přímého spouštění programu GPG se bude hodit.