Hlavní navigace

GPG: bezpečné předávání souborů

Adam Štrauch

Hlavní doménou OpenPGP je komunikace a často při komunikaci potřebujeme předat nějaký dokument, nákres nebo jiný důležitý soubor, a když už nejde o komunikaci, můžeme třeba jen ukrýt důležité informace. Proto si dnes ukážeme, jak udržet dokument v tajnosti a navíc bezpečně digitálně podepsaný.

Pro nějakou firemní komunikaci, ať už půjde o více či méně bezpečný kanál („můžeš mu prosím tě odnést tuhle flashku“), je vhodné použít alespoň nějakou formu šifrování. Pomocí programu gpg, můžeme šifrovat jak pro někoho, kdo zná heslo, tak pro někoho jehož klíč máme. Nemusíme tedy nezbytně nutně se shánět po jeho klíči, pokud se s druhou stranou bezpečně dohodneme na heslu. Takovýto postup je bezpečnější než klíče povalující se na různých webových stránkách jejich majitelů. Na druhou stranu, když už máme možnost si někoho takovýmto způsobem ověřit, tak ověření pravosti klíče bude univerzálnější než předání hesla. Každopádně tu možnost je a musíme o ní vědět.

Šifrování souborů se provádí podobně jako šifrování e-mailů. Napsání „gpg -e“ s dalšími parametry, případně nějakým rourami okolo, se spustí šifrování symetrickou šifrou. Pokud místo „-e“, použijeme „-c“, tak u symetrické šifry to končí a my si pouze zvolíme heslo, které se pro symetrické šifrování použije. To by samozřejmě mělo být dostatečně dlouhé a „náhodné“. S parametrem „-e“ budeme data směrovat na nějaký veřejný klíč druhé osoby. V tomto případě se symetrická šifra také použije, ale heslo se náhodně vygeneruje a posléze se veřejným klíčem zašifruje. Krom toho, že tento postup ulehčí diskům, tak i procesoru. Hlavní důvod, proč se data nešifrují nesymetrickou šifrou přímo, je právě rychlost, která je u symetrické několikrát, ne-li několiksetkrát vět­ší.

Je na vás, co si pro komunikaci vyberete, ale je lepší pracovat s veřejnými klíči než vlastnit několik desítek, stovek nebo i tisíce hesel, ke každé komunikaci.

Řádka

Příkazová řádka nám otevírá cestu k oběma popsaným případům a abychom byli opravdu důslední, tak bychom měli přidat navíc ještě podpis, který bude stvrzovat, že dokument je od nás a že se cestou někým nebo něčím nezměnil. Ať už nevinně např. při chybě přenosu nebo více závažně někým.

Začneme jednoduchým šifrováním. Jak už jsme si řekli, tak to se dělá přes parametr -e. K němu je dobré ještě něco málo přidat, např. aby se nám do výstupu nepletly netisknutelné znaky. Začneme tedy jednoduchým příkladem:

$ echo "Tajná zpráva." | gpg -e -a 

Rourou předáváme text programu gpg, který ho podle parametru -e zašifruje a podle parametru -a ho hodí do čitelných znaků. Můžete si zkusit parametr -a oddělat a uvidíte se co se stane. Další možností je přesměrovat výstup rourou ven nebo použít parametr –output a uložit výstup do souboru podobně jako když napíšeme „> soubor.gpg“. Pokud potřebujeme zašifrovat soubor, připíšeme jeho název za zadané parametry.

Dešifrování se provádí podobně a dokonce to je i výchozí chování gpg, takže použití parametru -d, který toto chování reprezentuje, je zbytečné. Vstup a výstup dat je řešen podobně u šifrování.

$ cat zasifrovany_soubor.gpg | gpg
$ gpg zasifrovany_soubor.gpg 

Obě zadání rozšifrují soubor, ale chovají se malinko jinak. Po spuštění budete u obou dotázáni na heslo a v druhém pravděpodobně ještě na název souboru pro rozšifrovaná data. První případ je vhodný, pokud potřebujeme data předat dál rourou nebo použít > pro výstup do souboru. Druhý případ se hodí tam, kde chceme uložit data opět do nějakého souboru.

Další ukázka se bude věnovat symetrické šifře.

$ echo "Tajná zpráva." | gpg -c -a 

Použití je prakticky stejné jako u šifrování pro veřejný klíč, pouze parametr -e nahradíme parametrem -c. Po spuštění budeme dotázání na heslo, které poté sdělíme bezpečnou cestou druhé straně, které pak můžeme nebezpečnou cestou poslat zašifrovaná data.

Rozšifrování se opět provádí buď s gpg bez parametru nebo s „gpg -d“.

Jelikož se u obou případů používá symetrická šifra, možná dostanete chuť nahradit aktuálně nastavený algoritmus jiným algoritmem. Podporované šifrovací algoritmy zjistíme zadáním:

$ gpg --version
[...]
Šifra: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
[...] 

V mém případě se jako výchozí používá CAST5, ale to se dá změnit např. parametrem –personal-cipher-preferences.

$ echo "Tajná zpráva." | gpg -c -a --personal-cipher-preferences AES256 

Všechny podobně odesílané soubory ještě můžeme opatřit naším podpisem, takže vždy budeme vědět že je dokument pravý a nezměněný.

$ echo "Tajná zpráva." | gpg -c -a -s 

O jeho pravosti se příjemce dozví při rozšifrování automaticky.

Pro úplnost ještě uvedu samotné podepisování souborů bez jejich šifrování. K tomu se používá parametr -s, většinou doplněný opět parametrem -a, který z podpisu udělá čitelný „čaj“. Podpisem stvrzujeme pravost souboru a také tím zaručíme, že se po cestě nějak nezměnil. Je tak ve většině případů dostatečným zabezpečením. Ne všechna data jsou tajná, ale téměř žádná by neměla být měněna bez vědomí autora.

$ gpg -s -a soubor.txt 

Po spuštění budeme dotázání na heslo k soukromému klíči a nakonec dostaneme nový soubor s příponou .asc, případně .gpg pokud vynecháme parametr -a. Ten pak můžeme použít na ověření.

$ gpg --verify soubor.txt.asc 

Případně i bez parametru.

$ gpg soubor.txt.asc 

Součástí nového souboru je v tomto případě i obsah toho starého. Pokud nám stačí jen podpis bez dat, použijeme parametr -b.

$ gpg -s -a -b soubor.txt 

Podpis si pak můžeme ověřit stejným způsobem. Nakonec uvedu příklady správného a porušeného souboru.

Věrohodný podpis:

gpg: Podpis vytvořen Čt 17. prosinec 2009, 10:47:19 CET pomocí klíče DSA s ID uživatele C55A0172
gpg: Dobrý podpis od "Adam Štrauch <cx@initd.cz>"
gpg:                 alias "Adam Štrauch <adam.strauch@iinfo.cz>"
gpg:                 alias "Adam Štrauch <creckx@gmail.com>"
gpg:                 alias "[jpeg image of size 5173]"
gpg:                 alias "Adam Štrauch <cx@dev-it.org>" 

Nevěrohodný podpis, poškozený nebo jinak změněný původní soubor či podpis:

gpg: Podpis vytvořen Čt 17. prosinec 2009, 10:47:19 CET pomocí klíče DSA s ID uživatele C55A0172
gpg: ŠPATNÝ podpis od "Adam Štrauch <cx@initd.cz>" 

 Závěr

Šifrování souborů asi nebude nejčastějším použitím GnuPG, ale je dobré ho znát nebo alespoň vědět kde najít návod pro případ, že se použití naskytne. S lidmi, kteří odmítají mít vlastní klíč, můžete použít symetrické šifrování. Častěji možná použijete podepisování.

V příštím díle se podíváme na grafické utilitky a pluginy do různých programů, které umí všechno to co jsme si popsali na jeden až dva kliky. Tohle byl poslední letošní díl o GnuPG, protože na následující dva pátky připadá svátek. Doufám, že nezapomenete podepsat vánoční přání…

Našli jste v článku chybu?

20. 12. 2009 15:04

Já mám zase pocit, že OpenPGP je zajímavější, než standardní certifikáty, které mají uřady podporovat, ale prakticky jim to nikde pořádně nefunguje (vlastní bolestivá zkušenost).

OpenPGP beru jako výborné řešení pro zabezpečení komunikace uvnitř firmy nebo v rámci nějaké komunity lidí. Není tu závislost na CA, která není levná nebo není běžnou součástí instalace operačního systému.

Oba dva systémy mají své výhody a nevýhody. Vidím to 50 na 50. Je jen na uživateli, kde dokáže využít výhody.

19. 12. 2009 21:02

Viz zdejší Wiki: http://wiki.root.cz/…ovaniOpelSSL (jestli to jde i asymetricky jsem nezkoumal, používá se to minimálně).

Ale je pravda, že GPG se na šifrování souborů hodí mnohem víc. U e-mailů je to celkem vyrovnané, záleží, co používají lidé kolem, nejlepší je mít oboje.

Vitalia.cz: Vychytané vály a válečky na vánoční cukroví

Vychytané vály a válečky na vánoční cukroví

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Měšec.cz: Stavební spoření: alternativa i pro seniory

Stavební spoření: alternativa i pro seniory

DigiZone.cz: Flix TV: dva set-top boxy za korunu

Flix TV: dva set-top boxy za korunu

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách