Jak šifrovat a dešifrovat soubory pomocí GPG na Linuxu

Zajistěte ochranu svého soukromí pomocí nástroje gpg v prostředí Linux. Využijte šifrování na nejvyšší úrovni pro zabezpečení vašich důvěrných informací. Ukážeme vám, jak efektivně pracovat s klíči, šifrovat a dešifrovat data s pomocí gpg.

Gnu Privacy Guard (GPG) umožňuje bezpečné šifrování souborů tak, aby k nim měl přístup pouze zamýšlený příjemce. GPG je v souladu se standardem OpenPGP. Tento nástroj je inspirován programem Pretty Good Privacy (PGP), který vytvořil Phil Zimmermann v roce 1991.

GPG pracuje na principu páru šifrovacích klíčů pro každého uživatele. Každý uživatel má svůj soukromý a veřejný klíč. Veřejný klíč je určen k dešifrování dat, která byla zašifrována odpovídajícím soukromým klíčem.

Pro bezpečné odeslání souboru ho zašifrujete pomocí svého soukromého klíče a veřejného klíče adresáta. Příjemce pak k dešifrování souboru použije svůj soukromý klíč a váš veřejný klíč.

Z výše uvedeného vyplývá, že veřejné klíče je nutné sdílet. K zašifrování souboru potřebujete veřejný klíč příjemce a on potřebuje váš veřejný klíč k jeho dešifrování. Není nebezpečné, že vaše veřejné klíče jsou veřejně dostupné. Pro tento účel existují veřejné servery s klíči. Je však zásadní udržovat soukromé klíče v naprostém bezpečí. Zatímco veřejný klíč může být volně dostupný, soukromý klíč musí zůstat v tajnosti.

Nastavení GPG vyžaduje více kroků než samotné použití, ale naštěstí se obvykle provádí pouze jednou.

Generování vašich klíčů

Nástroj gpg je standardně instalován ve všech testovaných linuxových distribucích, včetně Ubuntu, Fedory a Manjaro.

GPG nemusíte využívat jen pro e-mailovou komunikaci. Soubory můžete šifrovat a zpřístupnit je ke stažení nebo je fyzicky předat příjemci. Nicméně, při generování klíčů musíte zadat e-mailovou adresu, takže si vyberte tu, kterou budete používat.

Zde je příkaz pro vygenerování vašich klíčů. Volba --full-generate-key spustí interaktivní proces generování klíčů v okně terminálu. Budete také vyzváni k zadání přístupové fráze. Ujistěte se, že si heslo zapamatujete. Dobrou a spolehlivou metodou pro hesla a přístupové fráze je použití tří nebo čtyř jednoduchých slov spojených interpunkcí.

gpg --full-generate-key

Budete vyzváni k výběru typu šifrování z nabídky. Pokud nemáte specifický důvod pro jinou volbu, zadejte 1 a stiskněte Enter.

Dále musíte zvolit bitovou délku pro šifrovací klíče. Pro přijetí výchozího nastavení stiskněte Enter.

Nyní je třeba stanovit platnost klíče. Pokud systém testujete, zvolte kratší dobu platnosti, například 5 dní. Pro dlouhodobé používání zvolte delší trvání, například 1 rok. Klíč bude platný 12 měsíců a poté ho bude nutné obnovit. Potvrďte volbu stisknutím Y.

Následně zadejte své jméno a e-mailovou adresu. Volitelně můžete přidat komentář.

Budete vyzváni k zadání přístupové fráze. Tu budete potřebovat při každé manipulaci s klíči, proto si ji dobře zapamatujte.

Po zadání přístupové fráze klikněte na OK. Toto okno se vám bude zobrazovat při práci s gpg, proto nezapomeňte heslo.

Následně dojde k vygenerování klíče a vrátíte se do příkazového řádku.

Generování revokačního certifikátu

V případě, že se váš soukromý klíč dostane do cizích rukou, je nutné odpojit staré klíče od vaší identity a vytvořit nové. K tomu budete potřebovat revokační certifikát. Vygenerujeme ho nyní a uložíme na bezpečné místo.

Po volbě --output následuje název souboru s certifikátem, který chcete vytvořit. Volba --gen-revoke způsobí, že gpg vygeneruje revokační certifikát. Musíte zadat e-mailovou adresu, kterou jste použili při generování klíčů.

gpg --output ~/revocation.crt --gen-revoke [email protected]

Budete požádáni o potvrzení vygenerování certifikátu. Stiskněte Y a Enter. Dále budete dotázáni na důvod generování certifikátu. Protože ho vytváříme preventivně, tak důvod neznáme. Zadejte 1 a stiskněte Enter.

Volitelně můžete zadat popis. Ukončete ho dvojím stisknutím Enter.

Budete vyzváni k potvrzení nastavení, stiskněte Y a Enter.

Certifikát bude vygenerován a zobrazí se zpráva s upozorněním, že je nutné certifikát chránit.

Zmiňuje se zde někdo jménem Mallory. V kryptografických diskusích se dlouho používají Bob a Alice jako dva komunikující lidé. Existují i další postavy. Eva je odposlouchávající a Mallory je zlomyslný útočník. Vše, co musíme vědět, je, že musíme certifikát uchovat v bezpečí.

Jako minimum odeberme z certifikátu veškerá oprávnění kromě našich.

chmod 600 ~/revocation.crt

Zkontrolujeme pomocí ls aktuální oprávnění:

ls -l

Výborně. Nikdo kromě vlastníka souboru – nás – nemůže s certifikátem manipulovat.

Import cizího veřejného klíče

K zašifrování zprávy pro jinou osobu potřebujeme její veřejný klíč.

Pokud máte klíč uložený v souboru, můžete ho importovat pomocí následujícího příkazu. V tomto příkladu se klíčový soubor jmenuje „mary-geek.key“.

gpg --import mary-geek.key

Klíč se importuje a zobrazí se jméno a e-mailová adresa spojená s klíčem. Tyto údaje by se měly shodovat s informacemi od osoby, od které jste klíč dostali.

Druhou možností je, že osoba, od které klíč potřebujete, ho nahrála na veřejný klíčový server. Tyto servery ukládají veřejné klíče lidí z celého světa. Pravidelně se mezi sebou synchronizují, takže klíče jsou všeobecně dostupné.

Server veřejných klíčů MIT je oblíbený server, který se pravidelně synchronizuje, takže by vyhledávání mělo být úspěšné. Pokud byl klíč nahrán teprve nedávno, může trvat i několik dní, než se objeví.

Za volbou --keyserver následuje název serveru, který chcete prohledat. Za volbou --search-keys následuje jméno osoby nebo její e-mailová adresa. Použijeme e-mailovou adresu:

gpg --keyserver pgp.mit.edu --search-keys [email protected]

Nalezené shody jsou vypsány a očíslovány. Pro import zadejte číslo a stiskněte Enter. V tomto případě je pouze jedna shoda, takže napíšeme 1 a stiskneme Enter.

Klíč se importuje a zobrazí se nám jméno a e-mailová adresa s ním spojená.

Ověření a podepsání klíče

Pokud vám veřejný klíč poskytla známá osoba, můžete si být jisti, že jí opravdu patří. Pokud jste ho stáhli z veřejného klíčového serveru, měli byste ověřit, že klíč skutečně patří osobě, které má být určen.

Volba --fingerprint způsobí, že gpg vygeneruje krátkou sekvenci deseti sad čtyř hexadecimálních znaků. Můžete požádat danou osobu, aby vám zaslala otisk svého klíče.

Poté můžete pomocí volby --fingerprint vygenerovat stejnou sekvenci a porovnat ji. Pokud se shodují, víte, že klíč patří správné osobě.

gpg --fingerprint [email protected]

Zobrazí se otisk prstu.

Pokud jste si jisti, že je klíč pravý a patří osobě, které je určen, můžete její klíč podepsat.

I když to neuděláte, můžete klíč dále používat pro šifrování a dešifrování zpráv od dané osoby. Nicméně gpg se vás pokaždé zeptá, zda chcete pokračovat, protože klíč není podepsán. Použijeme volbu --sign-key a zadáme e-mailovou adresu osoby, jejíž klíč chceme podepsat.

gpg --sign-key [email protected]

Zobrazí se informace o klíči a budete požádáni o potvrzení podepsání. Stiskněte Y a Enter pro podepsání klíče.

Jak sdílet veřejný klíč

Pro sdílení klíče jako souboru je potřeba jej exportovat z místního úložiště klíčů gpg. K tomu použijeme volbu --export následovanou e-mailovou adresou, kterou jste použili k vygenerování klíče. Volba --output určuje název souboru, do kterého chceme klíč exportovat. Volba --armor způsobí, že gpg vygeneruje ASCII výstup namísto binárního souboru.

gpg --output ~/dave-geek.key --armor --export [email protected]

Můžeme si prohlédnout soubor s klíčem pomocí less.

less dave-geek.key

Zobrazí se obsah klíče:

Můžete také sdílet svůj veřejný klíč na serveru s veřejnými klíči. Volba --send-keys odešle klíč na server. Za volbou --keyserver následuje webová adresa veřejného klíčového serveru. K určení, který klíč má být odeslán, je nutné zadat otisk klíče. Všimněte si, že mezi sadami čtyř znaků nejsou mezery.

(Otisk vašeho klíče můžete zjistit pomocí volby --fingerprint.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

Zobrazí se potvrzení o odeslání klíče.

Šifrování SOUBORŮ

Nyní jsme konečně připraveni zašifrovat soubor a odeslat ho Mary. Soubor se jmenuje Raven.txt.

Volba --encrypt říká gpg, aby zašifrovalo soubor, a volba --sign říká, aby soubor podepsal vašimi údaji. Volba --armor zajistí, že výstupní soubor bude mít formát ASCII. Volba -r (příjemce) je následována e-mailovou adresou osoby, které soubor posíláte.

gpg --encrypt --sign --armor -r [email protected]

Vznikne nový soubor se stejným jménem jako originál, ale s příponou „.asc“. Prohlédneme si jeho obsah.

less Raven.txt.asc

Soubor je zcela nečitelný a může ho dešifrovat pouze někdo, kdo má váš veřejný klíč a soukromý klíč Mary. Jediná osoba, která by měla mít obojí, je Mary.

Nyní můžeme soubor bez obav poslat Mary s jistotou, že ho nikdo jiný nedokáže dešifrovat.

Dešifrování souborů

Mary nám poslala odpověď. Je v zašifrovaném souboru s názvem coded.asc. Můžeme ho snadno dešifrovat pomocí volby --decrypt. Výstup přesměrujeme do nového souboru plain.txt.

Všimněte si, že gpg nemusíme informovat o odesílateli. Zjistí si to z obsahu zašifrovaného souboru.

gpg --decrypt coded.asc > plain.txt

Soubor byl úspěšně dešifrován.

Obnovení vašich klíčů

Pravidelně můžete aktualizovat gpg a ověřit klíče, které má, proti veřejnému serveru a obnovit případné změny. Doporučuje se to dělat každých pár měsíců nebo při získání klíče od nového kontaktu.

Volba --refresh-keys spustí kontrolu. Volba --keyserver je následována zvoleným serverem klíčů. Jakmile se klíče synchronizují mezi servery, nemělo by záležet na tom, který server zvolíte.

gpg --keyserver pgp.mit.edu --refresh-keys

gpg odpoví vypsáním kontrolovaných klíčů a informuje vás o případných změnách a aktualizacích.

Soukromí je aktuální téma

Soukromí je v dnešní době velmi diskutovaným tématem. Ať už máte jakékoli důvody pro zabezpečení svých informací, gpg poskytuje snadný způsob, jak použít silné šifrování pro vaše soubory i komunikaci.

Gpg lze využít i mnoha dalšími způsoby. Můžete si pořídit plugin Thunderbird nazývaný Enigmail. Ten se přímo integruje do nastavení gpg a umožní vám šifrovat e-maily přímo z Thunderbirdu.