LINUXSOFT.cz
Username: Password:     
    CZ UK PL

> Linux v příkazech - GnuPG

V další sérii článků tohoto seriálu se prakticky podíváme na to, jak chránit data programem GnuPG.

2.9.2004 08:00 | Josef "jose" Kadlec | read 33305×

DISCUSSION   

GnuPG (The GNU Privacy Guard - zkráceně označováno také jako GPG) vzniklo jako kompletní, volně šiřitelná náhrada PGP (Pretty Good Privacy). Oba tyto programy slouží k šifrování dat, elektronickému podepisování, ověřování elektronických podpisů, správě klíčů, apod. GPG je tedy na rozdíl od PGP bezplatný software, který lze používat za podmínek licence GNU GPL. PGP používá patenty IDEA a RSA, které tedy v současné době již neomezují (jejich platnost vypršela v září roku 2000), takže je volně k dispozici i mimo USA a Kanadu. Protože omezení vývoje a používání šifrovacího softwaru, který je například v USA řazen na stejnou úroveň jako zbraně, jsou značně nejasná a v dnešní době se týká politik jednotlivých států, zmínil bych dokument Crypto Law Survey, který veškerá omezení, týkající se šifrování, shrnuje. Ovšem PGP jako freeware obsahuje pouze omezené množství funkcí a to pouze k nekomerčnímu použití.

Tento článek nemá být teoretický, takže nyní již popíši proces vytvoření vlastních klíčů. Začneme příkazem (pozn: následující příkazy nemusíte spouštět jako superuživatel root):

bash-2.05b# gpg --gen-key
gpg (GnuPG) 1.2.4; Copyright (C) 2003 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: /root/.gnupg: adresář vytvořen
gpg: vytvořen nový konfigurační soubor `/root/.gnupg/gpg.conf'
gpg: VAROVÁNÍ: nastavení z `/root/.gnupg/gpg.conf' \
                            \nejsou při tomto spuštění zatím aktivní
gpg: soubor klíčů (keyring) `/root/.gnupg/secring.gpg' vytvořen
gpg: soubor klíčů (keyring) `/root/.gnupg/pubring.gpg' vytvořen
Prosím, vyberte druh klíře, který chcete:
   (1) DSA a ElGamal (implicitní)
   (2) DSA (pouze pro podpis)
   (4) RSA (pouze pro podpis)
Váš výběr? 1
Pár klíčů DSA bude dlouhý 1024 bitů.
Chystám se vytvořit nový pár klíčů ELG-E.
                       minimální velikost klíče je  768 bitů
                      implicitní velikost klíče je 1024 bitů
             nejvyšší navrhovaná velikost klíče je 2048 bitů
Jakou velikost klíče si přejete? (1024) 
Požadovaná délka klíče je 1024 bitů.    
Prosím určete, jak dlouho by klíč měl platit.
      0 = doba platnosti klíče není omezena
        = doba platnosti klíče skončí za n dní
      w = doba platnosti klíče skončí za n týdnů
      m = doba platnosti klíče skončí za n měsíců
      y = doba platnosti klíče skončí za n let
Klíč je platný pro? (0) 365
platnost Key skončí Pá 26. srpen 2005, 20:26:14 CEST
Je to správně (a/n)? a
                      
Aby bylo možné rozpoznat Váš klíč, musíte znát identifikátor uživatele;
program jej složí z Vašeho jména a příjmení, komentáře a e-mailu
v tomto tvaru:
    "Magda Prochazkova (student) <magda@domena.cz>"

Jméno a příjmení: Josef Kadlec
E-mailová adresa: jose@czslug.cz
Komentář: geek               
Zvolil(a) jste tento identifikátor uživatele:
    "Josef Kadlec (geek) <jose@czslug.cz>"

Změnit (J)méno, (K)omentář, (E)-mail, (P)okračovat dál nebo (U)končit program? P
Pro ochranu Vašeho tajného klíče musíte zadat heslo.                            

Musíme vytvořit mnoho náhodných bajtů. Během vytváření můžete
provádět nějakou jinou práci na počítači (psát na klávesnici, pohybovat myší,
používat disky); díky tomu má generátor lepší šanci získat dostatek entropie.
+++++.++++++++++.+++++..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+..+++++.++++++++++..++..+++++.++++++++++...
++++++++++...............................+++++ gpg: /root/.gnupg/trustdb.gpg: databáze důvěry vytvořena veřejný a tajný klíč byly vytvořeny a podepsány. klíč označen jako absolutní důvěryhodný. pub 1024D/58A764A7 2004-08-26 Josef Kadlec (geek) <jose@czslug.cz> Fingerprint klí??e = AEC9 415B A47B A164 AD69 1539 9674 45AB 58A7 64A7 sub 2048g/EDF65E6B 2004-08-26 [platnost skončí: 2005-08-26]

Pokud je toto vaše první práce s GPG na daném počítači, vytvoří se adresář .gnupg, kde se budou nacházet potřebné konfigurační soubory. Po zadání příkazu potvrďte implicitní volbu "DSA a ElGamal (implicitní)", kterou vytvoříte pár klíčů. Dále vyberte velikost klíče. Optimální bude zvolit 1024 nebo 2048 bitů. Více už by bylo zbytečné a nepohodlné - velikost 2048 je ještě v současné době prakticky neprolomitelná a větší velikost klíče by šifrování a rozšifrování značně prodlužovala. Dále vybere dobu platnosti klíče - nedoporučuje se nechat dobu platnosti klíče neomezenou. Dále je nutné vyplnit identifikátory klíče ve formě jména, e-mailové adresy a komentáře. Při následné generaci klíče potřebuje program náhodné hodnoty - ke zvýšení entropie můžeme přispět například pohybem myši. Nyní máme k dispozici pár klíčů.

Pokud chceme předat veřejný klíč druhé straně, která s ním bude šifrovat data pro nás, je nutné ho nejdříve vyexportovat - nejlépe do souboru:

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

Takový klíč je vlastně obyčejný textový soubor.

bash-2.05b# cat jose.pub 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.4 (GNU/Linux)

mQGiBEEuK5gRBACcvwFL/ltULhkYII7OSWIjIdvGp5rSJ0QWHyZD1zV7EraAlz7g
FfADP1TLjmYMIoMtpbwJ8aoYJa+x6RVpf9O7Cd7wLWl4AR0vKoSiq21Unw/WpHd8
PeXM+SWVdIzLtdj9gBiwopo3N7hVyycVaCJtcLaQ2dKRnbu6xTDMWwNxpwCg2G69
kQU6Dj5jJ53oVE5MZvhCvr0D/ixF41uZPkfM9NcdXZT7naGZIGz8X8RkMS5l22hZ
g7VHAuniVRmyA0HVfrChQDyzL6GJq8HvFKCsV40HEjS12w4Uh5x/blkfMaRuOm+A
eawOfCGruT+ERjBvWiYJIOhOV482uIUTAn7koeYL2mgr2zoop9EVcbYY6lKjj9TA
81JAA/4ot3wPekLVIBhzscTdTyLLr6tOO8nvn0ahQ/g8ciDlPjkafsVD9Aydu/Yg
q6v3Z1dEKh3Utcd9AHF+IDog5BI/eXGxh7WaVWkfkCmOS/5TiWLm7eKQYK+Iupxr
D+etdV/ujwgDLVald6IyheGyb+NvOJ4yhKR/RGlP1CyFfTmGZLQkSm9zZWYgS2Fk
bGVjIChnZWVrKSA8am9zZUBjenNsdWcuY3o+iGQEExECACQFAkEuK5gCGwMFCQHh
M4AGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQlnRFq1inZKfmbgCdHgsLuwiM8m3a
hupkNrFHHSXWn30AoLV7zOHGH+2YTGNrWvFNfv/cJ4aOuQINBEEuK6AQCACDPXlG
pzwH+dZGcngVQ7jCIZRrX3HkY0Y/jX8suRVaR/xsM41Z5nyCR962XIhTCY5HFz5T
S5J84GCyINbwddaM0DdbqcjFHt5sMlamog4aSG93qZVxGe/nxwzXbUHvGhyIez1h
V3sUp/8fSVqFkzAUcD3e8EL2gM6b9h/WtI836v3vB6G0OYByOag6a1Lkj2bGDm4N
IC7lzrvB0cgSh34VytdPZR3YJwOJIRGogo2yqk7h3sdmnMjde8v48H/qSSZeS4uc
7FmNhfQYsHyifXq1fnq28U+7QoMIAzxKh69axDyU6MRC8WuG+s4QE2ynZiPDjMkB
pLye6ZX4sJ17tyPrAAMFB/wL3up1vEKN6V/LJ+Y0nXgeuLrwxZ72wM82U8B7Aws2
6Q8ZYMnhK36rpcsxZ09AsxgpOQiHGkNadyIIvpfzF/MB9j9bavGnNtz+x7P9v58L
lC5j6G+8YG0tbvBtbtaLCu/gahUbC92blc05XXGkuwlj3tVkKA80eKRrv7BmDqj6
iEKlZNPHsvWyneP3t89Pc+MkDUKkRgMDS+B2JVTlr8YQ3SwK61SUkEe0r54SpRpL
6EnAZplrHptOTyAJ5LmOpiWLWdsxmMHyT4NiCUwrYDgLR0gSyt2t8of64j05MP6N
RWAjc2XFGuMh8cf1mfALlCCz2cftixW8N6RhTaNc/NU3iE8EGBECAA8FAkEuK6AC
GwwFCQHhM4AACgkQlnRFq1inZKcqKACfd96y3wvTe+7OSEivey4HGDCtMlIAoLp0
ZJNzoCNyDE5bQA1JLYnTdF3/
=ZPzR
-----END PGP PUBLIC KEY BLOCK-----

Po bezpečném předání tohoto souboru druhé straně (uživatelé často vystavují své veřejné klíče na webových stránkách, což nemusí být z hlediska bezpečnosti optimální. Je proto nutné důkladně kontrolovat fingerprinty (viz. dále) takto stahovaných klíčů.), může druhá strana tento soubor (veřejný klíč) importovat:

bash-2.05b# gpg --import popelek.pub      
gpg: klíč 77099380: veřejný klíč "Jan Popelek <popelek@geocities.com>" importován
gpg: Celkový počet zpracovaných klíčů: 1
gpg:               importováno: 1

Měli bychom také vyloučit možnost, že někdo klíč změnil po cestě a to pomocí již zmiňovaných fingerprintů (otisků). Pro zobrazení fingerprintu daného klíče zadají obě strany:

bash-2.05b# gpg --fingerprint popelek@geocities.com 
pub  1024D/77099380 2000-03-22 Jan Popelek <popelek@geocities.com>
   Fingerprint klíče = 99F9 85C1 B301 ECD4 B3D4  FBD5 A69F 1305 7709 9380
sub  1024g/02F838D6 2000-03-22

Místo e-mailové adresy lze opět použít i jméno vztahující se ke klíči. Poté vhodným způsobem komunikace otisky porovnají. Pokud se shodují, je vše v pořádku a druhá strana (jakožto příjemce veřejného klíče) by měla klíč uznat pravým a podepsat ho příkazem sign, který zadá v interaktivním režimu, který se spustí takto:

bash-2.05b# gpg --edit-key popelek@geocities.com
gpg (GnuPG) 1.2.4; Copyright (C) 2003 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.


pub  1024D/77099380  vytvořen: 2000-03-22 platnost skončí: nikdy     důvěra: -/-
sub  1024g/02F838D6  vytvořen: 2000-03-22 platnost skončí: nikdy     
(1). Jan Popelek <popelek@geocities.com>

Příkaz> sign
            
pub  1024D/77099380  vytvořen: 2000-03-22 platnost skončí: nikdy     důvěra: -/-
 Primární fingerprint klíče: 99F9 85C1 B301 ECD4 B3D4  FBD5 A69F 1305 7709 9380

     Jan Popelek <popelek@geocities.com>

S jakou jistotou jste prověřili, že klíč, který chcete podepsat
patří výše uvedené osobě.
Pokud neznáte odpověď, zadejte "0".

   (0) Neodpovím. (implicitně)
   (1) Nijak jsem to nekontroloval(a).
   (2) Částečně jsem to ověřil(a).
   (3) Velmi pečlivě jsem to ověřil(a).

Vaš výběr? (pro detailnější informace stiskněte '?'):3

Jste si jistý(á), že chcete podepsat tento klíč
svým klíčem: "Josef Kadlec (geek) <jose@czslug.cz>" (58A764A7)

Velmi pečlivě jsem ověřil tento klíč.

Skutečně podepsat? ano
                      
Musíte znát heslo, abyste odemknul(a) tajný klíč pro
uživatele: "Josef Kadlec (geek) <jose@czslug.cz>"
délka 1024 bit??, typ DSA, klíč 58A764A7, vytvořený 2004-08-26

              
Příkaz> 

Pokud chceme vypsat všechny klíče v interaktivním režimu, použijeme příkaz list. Může to vypadat např. takto:

Příkaz> list
            
pub  1024D/77099380  vytvořen: 2000-03-22 platnost skončí: nikdy     důvěra: -/-
sub  1024g/02F838D6  vytvořen: 2000-03-22 platnost skončí: nikdy     
(1). Jan Popelek <popelek@geocities.com>

Příkaz> 

Všechny příkazy interaktivního režimu zobrazíte příkazem help.

Když máte svojí práci v interaktivním režimu hotovou, můžete ho opustit příkazem save, který uloží provedené změny. Příkaz quit ukončí tento režim bez uložení těchto změn.

Veřejné klíče lze stahovat i ze serveru, pokud jsou na něm k dispozici:

gpg --keyserver server_s_klici --recv-keys ciselna_hodnota

Klíč nelze stáhnout přímo přes e-mail či jméno vztahující se ke klíči, ale pomocí jakési číselné hodnoty. Tato služba využívá TCP port 11 371. K těmto účelům lze využít například servery www.keyserver.net, wwwkeys.pgp.net či pgp.ai.mit.edu. Pokud chceme umístit naše veřejné klíče na takovýto server, uskutečníme to příkazem:

gpg --send-keys e-mailova_adresa_klice --keyserver server_s_klici

Nyní k samotnému šifrování a dešifrování dat. Prosté zašifrování souboru provedeme takto:

gpg -e -r jmeno_klice soubor

Příznak -e znamená, že soubor bude zašifrován. Příznakem -s si lze vynutit i podepsání šifrovaného souboru. Příznak -r definuje klíč, kterým bude soubor zašifrován. Lze zadat jméno nebo e-mail vztahující se ke klíči. Po zašifrování se v aktuálním adresáři vytvoří soubor s příponou .gpg, což je výsledný zašifrovaný soubor. Rozšifrování takového souboru provedeme takto:

gpg -d soubor.gpg

Pokud nechceme mít výsledný rozšifrovaný soubor vypsaný na standardním výstupu, lze výstup specifikovat i pomocí příznaku -o, za kterým následuje název souboru, kam chceme výsledná data uložit.

Pokud chceme ověřit pravost souboru (například program stažený z Internetu), ke kterému je k dispozici podpis, provedeme to takto:

gpg --verify program.asc program.tgz

kde program.asc je soubor s podpisem (často má také koncovku .sig, což je většinou binární podoba podpisu) a program.tgz samotný program. Pokud chceme tedy vytvořit soubor s ASCII podobou podpisu bez originálních dat s koncovkou .asc, provedeme to takto:

gpg -b --armor soubor

Pokud neuvedeme příznak --armor, vytvoří se binární podoba podpisu s koncovkou .sig.

Program GPG nám samozřejmě nabízí nesčetně dalších voleb, které nalezneme v dokumentaci.

 

DISCUSSION

For this item is no comments.

Add comment is possible for logged registered users.
> Search Software
> Search Google
1. Pacman linux
Download: 4879x
2. FreeBSD
Download: 9067x
3. PCLinuxOS-2010
Download: 8564x
4. alcolix
Download: 10949x
5. Onebase Linux
Download: 9661x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6244x

1. xinetd
Download: 2413x
2. RDGS
Download: 937x
3. spkg
Download: 4760x
4. LinPacker
Download: 9966x
5. VFU File Manager
Download: 3198x
6. LeftHand Mała Księgowość
Download: 7203x
7. MISU pyFotoResize
Download: 2808x
8. Lefthand CRM
Download: 3563x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3120x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz