čtvrtek 13. prosince 2007

PGP šifrování

PGP(z ang. Pretty Good Privacy) je algoritmus navržení v r. 1991 Phillem Zimmermanem sloužící k šifrování souborů za využití asymetrické šifry. To znamená, že každý člověk má vytvořen pár klíčů(veřejný a soukromý).

* * *

Základní pojmy

Soukromý klíč(private key) je nutno uchovávat v tajnosti, protože pouze tímto klíčem je možno rozšifrovat šifrované soubory(e-maily). Naopak, pro zašifrování lze použít jak soukromý, tak veřejný klíč.

Veřejný klíč(public key) můžeme umístit např. na nšich WWW stránkách, nebo na speciálním keyserveru(např. www.keys.pgp.net, nebo www.keyserver.net).

Fingerprint(otisk prstu) je jedinečná kombinace hexadecimálních číslic, která určuje daný klíč - kontrolou fingerptintů lze např. zjistit podvržený klíč.

* * *

Jak vytvořit PGP klíč?

K vytvoření klíče je potřeba vlastnit program GNUPG. Jak už i samotný jeho název vypovídá, jedná se o opensource projekt šířený pod General Public Licence, který je dostupný jak pro Linux, tak pro platformu MS Windows a několik dalších.

POZNÁMKA: V Linuxových distribucích užívajících Debianí balíčkovací systém APT je možno nainstalovat potřebný balík takto:
sudo apt-get install pgp

Jakmile máme dotyčný program v systému, vytvoříme nový pár klíčů:

gpg --gen-key

Program se nás postupně dotáže na několik věcí. Předně se bude jednat o algoritmus(zvolil bych implicitní DSA), dále na délku šifrovacího klíče(doporučuje se 2048 a vyšší). Následně budete muset zadat své jméno a přijímení, e-mailovou adresu, pro niž je klíč vytvářen a heslo, které bude použito při rozšifrovávání souborů.
Při vytváření klíčů bude systém vyžadovat další data, takže je dobré např. pohybovat myší nebo psát na klávesnici.

Jakmile máme vytvořen pár klíčů, vyexportujeme veřejný klíč, který můžeme předat našim přátelům, známým, pracovním kontaktům, úřadům atp.

gpg --export --armor e-mailova_adresa_klice > soubor.pub

Takže, máme-li adresu jarda@blablabla.org, můžeme klíč vyexportovat takto:

gpg --export--armor jarda@blablabla.org > jarda.pub


* * *


Import veřejných klíčů

Tady už jen ve zkratce, neboť příkaz je velmi intuitivní:

gpg --import soubor_s_klicem

Např:

gpg --import jarda.pub


Když už máme klíč importován měli bychom ověřit jeho pravost, což uděláme za pomocí fingerprintu následovně:

gpg --fingerprint

Pokud se shoduje programem vypsaný otisk s otiskem klíče, který Vám dotyčný člověk poskytl, je vše v pořádku a můžeme tento klíč podepsat.

gpg --edit-keys e-mailova_adresa_klice

Objeví se programový interpret kterému nejdříve zadáme příkaz

sign

A poté příkaz

save

Sign zajistí podepsání klíče a save uloží provedené změny + ukončí interpret příkazů gnupg.


* * *


Šifrování souborů

Šifrování souborů je velmi jednoduchou záležitostí

gpg -e -r e-mailova_adresa_klice soubor_k_zasifrovani

Takže, chceme-li zašifrovat soubor textak.txt klíčem jarda@blablabla.org, uděláme to následovně:

gpg -e -r jarda@blablabla.org textak.txt

Vytvoří se nám soubor textak.txt.pgp, což je zašifrovaný ekvivalent textak.txt. Místo parametru -e je možno použít -s, což značí sign(podepsání). V některých případech je totiž dostačující text podepsat, i když zašifrování(encrypt) je rozhodně doporučovanější.


* * *

Rozšifrování souborů

K tomu slouží následující příkaz:

gpg -o vystupni_soubor -d vstupni_soubor

Například:

gpg -o out.txt -d textak.txt.pgp

A je to vše :-)


Co se týká využití PGP, začíná se pomalu protlačovat i na našich úřadech, kde může zastávat úlohu normálního podpisu. Dokladem toho je společnost Brailcom, která se elektronickým podpisem pro nevidomé zabývá. Kde se však důrazně nedoporučuje šifrovat jsou e-mailové konference, neboť nelze počítat s tím, že všichni účastníci mají Váš veřejný klíč, navíc leckdy je syntaxe PGP podpisu charakterizována jako SPAM.


Martin Sukaný

Žádné komentáře: