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