Ghost in the Machines
On 23 září, 2021 by adminPro šifrování souborů obsahujících citlivé informace (většinou hesla) používám software GPG (známý také jako GnuPG). Jako systémový inženýr dělám většinu své práce na vzdálených serverech přístupných přes rozhraní příkazového řádku. Přirozeně je pro mě jednodušší používat k přímému šifrování a dešifrování dokumentů verzi GPG pro příkazový řádek.
GPG (GNU Privacy Guard) je svobodná open source verze šifrovacího softwaru PGP (Pretty Good Privacy). Koncepčně oba používají stejný přístup ke kryptografii (tj. šifrování a dešifrování). Každá z nich se však jedinečně liší svou implementací.
Následuje stručný návod, jak nainstalovat nástroje příkazového řádku GPG, a také seznam základních příkazů, které budete pravděpodobně potřebovat.
Instalace GPG
GPG lze nainstalovat několika různými způsoby. Podle tohoto návodu nainstalujete základní nástroje GPG pro příkazový řádek, které jsou určeny k použití v terminálu.
Pokud naopak dáváte přednost grafickému uživatelskému rozhraní (neboli GUI) pro přístup k funkcím GPG (např. šifrování e-mailové komunikace nebo šifrování dokumentů v textovém editoru s GUI), podívejte se na odkazy na konci tohoto článku.
Red Hat / CentOS
yum install gnupg
Ubuntu / Debian
apt-get install gnupg
Mac OS X
Nejjednodušší způsob, jak nainstalovat nástroje příkazového řádku GPG na Mac, je nejprve nainstalovat Homebrew, systém správy balíčků, který zpřístupňuje tisíce softwarových balíčků k instalaci na Mac.
Otevřete okno Terminálu (nabídka Aplikace > Nástroje) a zadejte následující příkaz.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install gnupg
GPG Quick How To
Následující text je velmi stručným úvodem do používání příkazového řádku GPG. Považujte jej za „rychlou referenci“ nebo „tahák“. Určitě byste se měli o GPG dozvědět více, než je vysvětleno v rámci tohoto příspěvku. Je určen pouze pro začátek. Pokud předpokládáte, že budete GPG používat rozsáhleji, důrazně vám doporučuji přečíst si další dokumentaci (viz část Odkazy níže).
GPG je výkonný šifrovací software, ale může být také snadný na naučení – jakmile pochopíte některé základy. GPG používá metodu šifrování známou jako kryptografie s veřejným klíčem, která poskytuje řadu výhod a předností. K získání těchto výhod je však zapotřebí minimální úroveň složitosti, aby vše fungovalo. Přehled o tom, jak kryptografie s veřejným klíčem funguje, najdete v článku Úvod do kryptografie (odkaz na konci tohoto příspěvku).
Typografické konvence používané v příkazech:
Ve všech níže uvedených příkladech je text, který budete muset nahradit vlastními hodnotami (např. uživatelská jména, e-mailové adresy, názvy souborů), uveden „šedou kurzívou“. Text, který budete psát doslova (beze změny), je označen „černou konstantní šířkou“.
"gray italic""black constant width"
Vytvoření klíče GPG:
Chcete-li začít používat GPG, musíte si nejprve vygenerovat dvojici klíčů. To znamená, že jedním příkazem vygenerujete soukromý i veřejný klíč. Na výzvy zadejte své jméno a e-mailovou adresu, ale jinak přijměte výchozí možnosti.
gpg --gen-key
První klíč je váš soukromý (nebo tajný) klíč. Tento soukromý klíč musíte mít vždy v bezpečí a nesmíte jej nikomu sdělovat. Soukromý klíč je chráněn heslem. Snažte se, aby heslo bylo co nejdelší, ale zároveň takové, které nezapomenete. Pokud heslo zapomenete, neexistuje žádný způsob, jak ho obnovit. Ze stejného důvodu byste si také měli vytvořit záložní kopii soukromého klíče. (Zvažte použití Time Machine pro zálohování v systému Mac OS X.)
Druhým klíčem je váš veřejný klíč, který můžete bezpečně sdílet s dalšími lidmi.
Vztah soukromého a veřejného klíče je vlastně velmi jednoduchý. Cokoli, co je zašifrováno pomocí veřejného klíče, lze dešifrovat pouze pomocí příslušného soukromého klíče. Proto poskytnete svůj veřejný klíč jiné osobě a ta vám poskytne svůj veřejný klíč. Cokoli zašifrovaného vaším veřejným klíčem můžete dešifrovat pouze vy. Cokoli zašifrovaného veřejným klíčem druhé osoby může dešifrovat pouze tato druhá osoba.
Export vašeho veřejného klíče:
Dalším krokem je export vašeho veřejného klíče a jeho sdílení s jinou osobou. Tato osoba by měla udělat totéž a exportovat svůj veřejný klíč.
gpg --export --armor [email protected] > mypubkey.asc
Importovat veřejný klíč jiné osoby:
Když importujete veřejný klíč, umístíte jej do tzv. svazku klíčů GPG.“
gpg --import theirpubkey.asc
Seznam veřejných klíčů ve vaší sbírce klíčů:
Nyní můžete zobrazit seznam veřejných klíčů ve vaší sbírce klíčů a také jméno a e-mailovou adresu přiřazenou ke každému klíči.
gpg --list-keys
Seznam soukromých klíčů ve vaší sbírce klíčů:
Následující příkaz zobrazí seznam soukromých klíčů ve vaší sbírce klíčů. Zobrazí se váš vlastní soukromý klíč, který jste vytvořili dříve.
gpg --list-secret-keys
Důvěra veřejnému klíči:
Po importu veřejného klíče druhé osoby musíte nyní nastavit úroveň důvěryhodnosti klíče. Tím zabráníte tomu, aby vás GPG varoval pokaždé, když s tímto veřejným klíčem něco zašifrujete.
V příkazu zadejte jméno nebo e-mail druhé osoby.
gpg --edit-key glenntrust (invoke trust subcommand on the key)5 (ultimate trust)y (if prompted)quit
Užitečné příkazy GPG
GPG má mnoho možností, z nichž většinu nikdy nebudete potřebovat. Zde je stručný seznam nejužitečnějších příkazů, které budete pravděpodobně potřebovat.
Šifrování souboru:
Chcete-li zašifrovat soubor s názvem souboru.txt pro jednu osobu, zadejte tuto osobu jako příjemce.
gpg --encrypt --recipient glenn filename.txt
Tím vytvoříte nový zašifrovaný soubor s názvem název souboru.txt.gpg.
Chcete-li soubor zašifrovat tak, abyste jej mohli dešifrovat pouze vy sami, zadejte jako příjemce sebe.
gpg --encrypt --recipient 'my_name' filename.txt
Pokud chcete soubor zašifrovat tak, abyste jej mohli dešifrovat vy i jiná osoba, zadejte jako příjemce sebe i druhou osobu.
gpg --encrypt --recipient glenn --recipient 'my_name' filename.txt
Pokud chcete soubor zašifrovat pro skupinu osob, definujte skupinu v gpg.conf (viz část níže) a poté zadejte skupinu jako příjemce.
gpg --encrypt --recipient journalists filename.txt
Po nějaké době budete chtít být stručnější a používat zkrácenou verzi voleb příkazového řádku. Zde je stejný příkaz.
gpg -e -r journalists filename.txt
Dekódování souboru na terminál (standardní výstup):
První verze tohoto příkazu zobrazí obsah souboru v samotném okně terminálu.
gpg --decrypt filename.txt.gpg
Příkaz --decrypt
použijte pouze v případě, že soubor je textový soubor ASCII. Pokud se jedná o binární soubor, pak volbu --decrypt
vynechejte, čímž dojde k zápisu dešifrovaného souboru na disk. V tomto okamžiku můžete binární soubor otevřít v libovolné aplikaci, která se používá k prohlížení souboru.
Dešifrování souboru na disk:
Ať už je soubor ASCII nebo binární, pokud chcete provést změny v obsahu zašifrovaného souboru, musíte jej nejprve dešifrovat, provést změny a poté soubor znovu zašifrovat. Jak jsem se zmínil v předchozím odstavci, dešifrovanou verzi souboru zapíšete na disk tak, že v příkazu vynecháte volbu --decrypt
.
gpg filename.txt.gpg
Pokud se zašifrovaný soubor jmenoval jméno souboru.txt.gpg, výše uvedený příkaz vytvoří dešifrovanou verzi s názvem název souboru.txt (s odstraněnou příponou .gpg).
Vytvoření skupin osob v konfiguračním souboru GPG
Pro usnadnění můžete v konfiguračním souboru GPG předem definovat skupinu osob. To má tu výhodu, že můžete zašifrovat soubor každému členu skupiny zadáním pouze názvu skupiny jako příjemce, místo zdlouhavého zadávání každého jednotlivého člena skupiny.
Vaše konfigurace softwaru GPG je uložena ve vašem domovském adresáři v souboru ~/.gnupg/gpg.conf
. Tento soubor upravte pomocí svého oblíbeného textového editoru s příkazovým řádkem (vim, nano, pico, emacs atd.). Ačkoli je v konfiguračním souboru k dispozici řada nastavení, přejděte k části týkající se definování skupin.
Při definování skupiny uvedete seznam jejích členů. Každý člen je odkazován některým atributem svého veřejného klíče nalezeného ve vašem svazku klíčů GPG – typicky jménem osoby (nebo částečným jménem, například jménem nebo příjmením) nebo e-mailovou adresou (nebo částečnou e-mailovou adresou).
Jste-li členem skupiny, nezapomeňte do ní zahrnout i sebe! Pokud se ve skupině neuvedete, nebudete moci dešifrovat žádné soubory, které do skupiny zašifrujete.
Tady je příklad skupiny s názvem „novináři“, kde je uvedeno křestní jméno každé osoby.
group journalists = glenn laura ewan barton
Kam dál
Poručuji vám, abyste se o GPG dozvěděli více. Viz odkazy níže.
Můžete se také dozvědět o bezpečných metodách mazání souborů z pevného disku počítače. Systém Mac OS X má ve Finderu možnost „Bezpečné vysypání koše“. Existuje také řada nástrojů třetích stran, které si můžete nainstalovat.
Když už jsme u toho, jak se naučit používat GPG v příkazovém řádku, můžete vyzkoušet „bcwipe“ – program pro bezpečné mazání souborů v rámci příkazového řádku.
V systému Mac OS X můžete nainstalovat bcwipe prostřednictvím Homebrew.
brew install bcwipe
Odkazy
Obecně
- Úvod do kryptografie (PDF)
- Stránky softwaru GnuPG
- GnuPG na Wikipedii
- Homebrew (správce balíčků pro Mac OS X)
Nástroje uživatelského rozhraní
.
- GPG Suite (grafické rozhraní pro Mac OS X)
- Jak používat GPG Suite na Mac OS X (Electronic Frontier Foundation)
- Gpg4win (grafické rozhraní pro Windows)
- Jak používat Gpg4Win na Windows (Electronic Frontier Foundation)
Napsat komentář