Advanced Linux & INFOSEC

DOCUMENTATIE CURS

GNU Privacy Guard

GnuPG (GNU Privacy Guard) reprezinta o implementare completa si gratuita a standardului OpenPGP care este definit in RFC4880.

Functii GnuPG:
- criptare simetrica;
- criptare asimetrica;
- generare si management al cheilor publice si private;
- semnare digitala;
- verificarea semnaturii digitale;
- integrare usoara cu alte librarii si standarde precum S/MIME (proiectul Aegypten ofera functionalitatea S/MIME in GnuPG);


Important
Pentru o securitate crescuta se recomanda verificarea integritatii oricarui program instalat in sistem. Aici ne referim la servere, kernel, diverse utilitare, update-uri de sistem etc. GnuPG este programul cel mai folosit in acest scop.



Mod folosire GnuPG

1. Criptarea simetrica a unui fisier
gpg -c a.txt
Rezulta fisierul binar criptat a.txt.gpg

gpg -ca a.txt
Rezulta fisierul ASCII criptat a.txt.asc

2. Decriptarea unui fisier criptat simetric
gpg a.txt.gpg
gpg a.txt.asc
Rezulta fisierul in clar a.txt

gpg --decrypt a.txt.asc
Decripteaza catre stout (monitor).

Nota
De multe ori in momentul in care se doreste decriptarea unui fisier text/ascii este optim sa afisam in consola continutul fisierului in clar fara a mai crea fisierul in clar pe care ulterior sa-l deschidem cu un editor. Astfel nu trebuie sa fim atenti ca dupa citirea informatiei sa stergem fisierul in clar creat sau sa-l criptam din nou.


3. Generarea unei perechi de chei (publica si privata)
gpg --gen-key

Nota
GnuPG pastreaza cheile publice si private ale userului precum si alte chei publice ale persoanelor cu care comunicam criptat intr-un asa numit inel de chei sau key-ring.


4. Listarea cheilor private din key-ring
gpg --list-secret-keys

5. Listarea cheilor publice din key-ring
gpg --list-public-keys

6. Importarea unei chei publice in key-ring
a) Importarea cheii publice dintr-un fisier text numit public_key.txt
gpg --import public_key.txt
b) Importarea automata a cheii publice de pe un server de chei folosind ID-ul acesteia
gpg --keyserver KEYSERVER_IP --recv-keys PUBLIC_KEY_ID

Exemplu
root@CMA:~# gpg --keyserver wwwkeys.pgp.net --recv-key 517D0F0E
gpg: requesting key 517D0F0E from hkp server wwwkeys.pgp.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 517D0F0E: public key "Linux Kernel Archives Verification Key " imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1


Exemple servere de chei:
- wwwkeys.pgp.net
- www.keyserver.net
- pgp.mit.edu

7. Criptarea asimetrica a unui fisier folosind cheia publica a destinatarului
gpg -e -r PUBLIC_KEY_ID a.txt

Nota
Pentru a trimite un fisier criptat unei alte persoane acesta trebuie criptat asimetric folosind cheia publica a destinatarului. Astfel exista garantia ca doar cel care detine perechea cheii publice cu care se cripteaza si anume cheia privata poate decripta si citi fisierul. Inainte de criptarea fisierului cheia publica trebuie sa existe in key-ring.


8. Semnarea digitala a unui fisier. Semnatura reprezinta un fisier separat( a.txt.asc)
gpg --clearsign a.txt

9. Verificarea semnaturii digitale a unui fisier numit a.txt
gpg --verify a.txt.asc

Nota
Acesta operatie este foarte des intalnita si recomandata. Practic pentru orice program pe care dorim sa-l instalam trebuie sa verificam semnatura sa digitala.
Pentru verificarea semnaturii digitale a unui fisier trebuie sa avem:
a) fisierul pe care dorim sa-l verificam. Exemplu: arhiva cu sursele serverului Apache
b) fisierul semnatura digitala pentru programul de la punctul a). Exemplu: apache.tar.bz2.sig
c) cheia publica a celui care a semnat. Exemplu: cheia publica a echipei care dezvolta Apache-ul

Pentru a importa cheia publica a semnatarului exista 2 posibilitati:
- se cauta pe site-ul producatorului fisierul text care reprezinta cheia publica si se importa folosind gpg --import public_key_file;
- se forteaza verificarea semnaturii digitale fara a avea cheia publica. Comanda returneaza eroare, dar precizeaza ID-ul cheii publice care lipseste si datorita carea a dat eroare. Folosind acel ID se importa cheia automat de pe un server de chei. Aceasta modalitate este de cele mai multe ori mai la indemana;


10. Semnarea digitala si criptarea asimetrica a unui mesaj
gpg -e -r PUBLIC_KEY_ID -s a.txt

11. Listarea fingerprintului unei chei private
gpg --fingerprint

Durata: 3.12 min
Marime: 781KB


Resurse
© 2006-2012 Crystal Mind Academy. All rights reserved