Linux E X P R E S

Facebook

Komunikujeme a ukládáme data bezpečně s PGP/GPG (4) – speciality z příkazové řádky

zamek.png

Tento díl je poslední, který je věnován ovládáním GnuPG z příkazové řádky. Přichází čas pro některé speciality.


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 HPKLDAP).

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@nejaka_domena

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@nejaka_domena" na hkp serveru pgp.mit.edu
(1)     Uživatel na doméně (Testovací) <uzivatel@nejaka_domena>
          2048 bit RSA key DFEDD2B7D391886158ED92CCD173DA928C4A3E65, vytvořen: 2010-03-21
(2)     Uživatel na doméně (Ostrý) <uzivatel@nejaka_domena>
          2048 bit RSA key C1D17F0C57166A82E979CB68264D978D4BB1AC83, vytvořen: 2010-10-07
Keys 1-2 of 2 for "uzivatel@nejaka_domena".  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@psvz_abcd

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@psvz_abcd

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.

Diskuze (2) Nahoru