Gentoo Logo

Ghidul Utilizatorului GnuPG în Gentoo

Conţinut:

1.  Introducere

Ce veţi învăţa în acest ghid

Acest ghid presupune că sunteţi familiar cu criptografia bazată pe cheie publică, criptarea şi semnăturile digitale. Dacă nu şi cazul dvs., treceţi la secţiunea Criptografia cu Cheie Publică sau consultaţi manualul GnuPG, capitolul 2, şi apoi reveniţi la acest ghid.

Acest ghid vă va învăţa cum să instalaţi GnuPG, cum să creaţi perechea dvs. de chei, cum să adăugaţi chei în setul keyring, cum să vă transmiteţi cheia publică la un server de chei şi cum să semnaţi, criptaţi, verificaţi sau decodaţi mesajele pe care le transmiteţi sau le primiţi. Veţi învăţa, de asemenea, cum să criptaţi fişierele pe sistemul dvs. local pentru a preveni ca alte persoane să le citească conţinutul.

Instalarea aplicaţiilor necesare

La un prim nivel, va trebui să instalaţi utilizând emerge gnupg. Multe aplicaţii din ziua de astăzi au un oarecare suport pentru gpg, deci, probabil că este o idee foarte bună să aveţi crypt în valoarea variabilei USE. Dacă doriţi să aveti un client de mesagerie electronică capabil să utilizeze gnupg, puteţi utiliza pine (emerge pinepgp), mutt (emerge mutt), Mozilla/Netscape Mail, evolution (evolution este a o aplicaţie din GNOME asemănătoare cu Microsoft Outlook) şi aplicaţia din KDE, KMail (KMail este parte din pachetul kdepim).

Kgpg ar putea să vă intereseze dacă utilizaţi KDE. Această aplicaţie mică vă permite să generaţi perechi de chei, să importaţi chei din fişiere ASCII, să semnaţi cheile importate, să exportaţi chei, precum şi alte funcţionalităţi.

2.  Generarea cheii dvs. şi adăugarea cheilor în setul public keyring

Crearea cheii dvs.

Pentru a vă crea cheia, trebuie doar să rulaţi gpg --gen-key. Prima oară când îl rulaţi, vă va crea unele directoare; rulaţi-l din nou pentru a vă crea cheile:

Cod 2.1: procesul de generare al cheii

$ gpg --gen-key
gpg (GnuPG) 1.0.7; Copyright (C) 2002 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.

Please select what kind of key you want:
   (1) DSA and ElGamal (default)
   (2) DSA (sign only)
   (4) ElGamal (sign and encrypt)
   (5) RSA (sign only)
   Your selection? 1

Aici, puteţi alege tipul cheii pe care doriţi să-l utilizaţi. Cei mai mulţi dintre utilizatori vor alege opţiunile implicite DSA şi ElGamal. Urmează mărimea cheii - aminiţi-vă, cu cât mai mare cu atât mai bine, dar nu utilizaţi o mărime mai mare decât 2048 pentru cheile DSA/ElGamal. În general, 1024 este mai mult decât deajuns pentru mesajele electronice normale.

După mărime, urmează data expirării. Aici, cu cât este mai mică, cu atât este mai bine, dar majoritatea utilizatorilor aleg pentru cheie să nu expire niciodată sau în jurul a 2 sau 3 ani.

Cod 2.2: Alegerea mărimii cheii

DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
              minimum keysize is  768 bits
              default keysize is 1024 bits
    highest suggested keysize is 2048 bits
    What keysize do you want? (1024) 2048
Requested keysize is 2048 bits       
Please specify how long the key should be valid.
         0 = key does not expire
 <n>= key expires in n days
 <n>w = key expires in n weeks
 <n>m = key expires in n months
 <n>y = key expires in n years
 Key is valid for? (0) 0
Key does not expire at all

Acum, este timpul să introduceţi unele informaţii personale despre dvs. Dacă veţi transmite cheia publică altor persoane, va trebui să introduceţi adresa de email reală, aici.

Cod 2.3: Introducerea informaţiilor despre utilizator

Is this correct (y/n)? y
                        
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: John Doe
Email address: john@nowhere.someplace.flick
Comment: The Real John Doe
You selected this USER-ID:
"John Doe (The Real John Doe) <john@nowhere.someplace.flick>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O 
You need a Passphrase to protect your secret key.    

Enter passphrase: 

Acum, introduceţi fraza de autentificare pentru cheie de două ori. Este o idee bună să utilizaţi o parolă foarte puternică. Dacă cineva intră în posesia cheii dvs. private şi vă află parola, va putea să transmită mesaje semnate de "dvs.", făcând pe toţi ceilalţi să creadă că mesajele au fost transmise de dvs.

Apoi, GnuPG vă va genera cheia. Mişcând dispozitivul mouse sau rulând o melodie mp3 în fundal va ajuta mărirea vitezei procesului, deoarece va genera date aleatoare.

Generarea certificatului de revocare

Important: Acest pas este foarte important şi trebuie efectuat ACUM.

După crearea cheilor dvs., ar trebui să creaţi un certificat de revocare. Acest lucru vă va permite să vă revocaţi cheia în cazul în care se întâmplă ceva anormal cu cheia dvs. (cineva a intrat în posesia cheii dvs. private/frazei de autentificare).

Cod 2.4: Generarea certificatului de revocare

$ gpg --list-keys
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 John Doe (The Real John Doe) <john@nowhere.someplace.flick>
sub  2048g/96D6CDAD 2002-12-08

$ gpg --output revoke.asc --gen-revoke 75447B14

sec  1024D/75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhere.someplace.flick>

Create a revocation certificate for this key? y
Please select the reason for the revocation:   
  0 = No reason specified
  1 = Key has been compromised
  2 = Key is superseded
  3 = Key is no longer used
  Q = Cancel
(Probably you want to select 1 here)
Your decision? 1
Enter an optional description; end it with an empty line:
> Someone cracked me and got my key and passphrase
>
Reason for revocation: Key has been compromised
Someone cracked me and got my key and passphrase
Is this okay? y

You need a passphrase to unlock the secret key for
user: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"
1024-bit DSA key, ID 75447B14, created 2002-12-08

ASCII armored output forced.
Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!

Comanda gpg --list-keys afişează o listă cu cheile din setul public keyring. O puteţi utiliza pentru a afla identificatorul cheii dvs., pentru a vă putea crea certificatul de revocare. Acum este o idee bună să compiaţi tot directorul .gnupg şi certificatul de revocare (în format ASCII - revoke.asc) pe un mediu securizat (două dischete sau un mediu CD-R pe care să le stocaţi într-un loc sigur). Amintiţi-vă că revoke.asc poate fi utilizat pentru a vă revoca cheile şi a le face inutilizabile în viitor.

Notă: Dacă aveţi mai multe adrese de email pe care aţi dori să le utilizaţi cu această cheie, puteţi rula gpg --edit-key IDENTIFICATOR_CHEIE şi apoi să utilizaţi comanda adduid. Vă va intreba numele, adresa de email şi comentariul asociat celui de-al doilea identificator utilizat.

Exportarea cheilor

Pentru a vă exporta cheia, puteţi tasta gpg --armor --output john.asc --export john@nowhere.someplace.flick. Aproape în orice situaţie vă puteţi utiliza identificatorul cheii pentru ceva ce identifică cheia (aici, am utilizat adresa de email). Acum, John are un fişier john.asc ce îl poate transmite prietenilor lui sau să-l stocheze pe o pagină web, pentru ca alte persoane sa poată comunica în siguranţă cu acesta.

Importarea cheilor

Pentru a adăuga fişiere setului public keyring, trebuie mai întâi să-l importaţi, apoi să verificaţi amprenta cheii. După ce aţi verificat amprenta cheii, ar trebui să o validaţi.

Notă: Ar trebui să fiţi atenţi când verificaţi cheile. Acesta este unul dintre punctele slabe ale criptografiei cu cheie publică.

Acum, vom adăuga cheia publică a lui Luis Pinto (un prieten de-al meu) în setul nostru public keyring. După ce l-am sunat şi l-am intrebat de amprenta cheii lui, am comparat această amprentă cu ceea ce afişează comanda fpr. Deoarece cheia estes autentică, am adăugat-o setului public keyring. În acest caz particular, cheia lui Luis va expira la data de 2003-12-01, deci sunt întrebat dacă semnătura mea pentru cheia lui să expire la aceeaşi dată.

Cod 2.5: Importarea şi semnarea cheilor

$ gpg --import luis.asc
gpg: key 462405BB: public key imported
gpg: Total number processed: 1
gpg:               imported: 1
$ gpg --list-keys
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 John Doe (The Real John Doe) <john@nowhere.someplace.flick>
sub  2048g/96D6CDAD 2002-12-08

pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@student.dei.uc.pt>
uid                            Luis Pinto <lmpinto@dei.uc.pt>
sub  4096g/922175B3 2002-12-01 [expires: 2003-12-01]

$ gpg --edit-key lmpinto@dei.uc.pt
gpg (GnuPG) 1.0.7; Copyright (C) 2002 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: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
sub  4096g/922175B3  created: 2002-12-01 expires: 2003-12-01
(1)  Luis Pinto <lmpinto@dei.uc.pt>
(2). Luis Pinto <lmpinto@student.dei.uc.pt>

Command> fpr
pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@dei.uc.pt>
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB
     
Command> sign
Really sign all user IDs? y
                           
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB

     Luis Pinto <lmpinto@dei.uc.pt>
     Luis Pinto <lmpinto@student.dei.uc.pt>

This key is due to expire on 2003-12-01.
Do you want your signature to expire at the same time? (Y/n) Y
How carefully have you verified the key you are about to sign actually belongs
to the person named above?  If you don't know what to answer, enter "0".

   (0) I will not answer. (default)
   (1) I have not checked at all.
   (2) I have done casual checking.
   (3) I have done very careful checking.

   Your selection? 3
Are you really sure that you want to sign this key
with your key: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"

I have checked this key very carefully.

Really sign? y
              
You need a passphrase to unlock the secret key for
user: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"
1024-bit DSA key, ID 75447B14, created 2002-12-08

Command> check
uid  Luis Pinto <lmpinto@dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhe
uid  Luis Pinto <lmpinto@student.dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhe

3.  Interschimbul cu server-ele de chei

Transmiterea cheilor către servere

Acum, că aveţi cheia dvs., este probabil o idee bună să o transmiteţi unui server de chei din lume. Există multe server-e de chei în lume şi majoritatea acestora schimbă cheile între ele. Acum, vom transmite cheia lui Luis către server-ul subkeys.pgp.net. Acesta utilizează HTTP, deci dacă vă este necesar un proxy pentru traficul HTTP, nu uitaţi să-l setaţi(export http_proxy=http://server_proxy:port/). Comanda pentru transmiterea cheii este : gpg --keyserver subkeys.pgp.net --keyserver-options honor-http-proxy --send-key 75447B14 unde 75447B14 este identificatorul de cheie. Dacă nu aveţi nevoie de un server proxy HTTP, puteţi să omiteţi --keyserver-options honor-http-proxy.

Puteţi, de asemenea, să trasmiteţi cheile altor persoane pe care le-aţi semnat, server-ului de chei. Am fi putut transmite cheia lui Luis Pinto către server-ul de chei. În acest fel, o persoană ce are încredere în cheia dvs., poate utiliza semnătura introdusă de dvs. pentru a avea încredere în cheia lui Luis.

Descărcarea cheilor de pe server-ele de chei

Acum, vom căuta cheia lui Gustavo Felisberto şi o vom adăuga în setul keyring al lui John Doe (doar în cazul în care nu aţi observat, Gustavo Felisberto este autorul acestui ghid :) ).

Cod 3.1: Căutarea cheilor pe server-ele de chei

$ gpg --keyserver subkeys.pgp.net --keyserver-options honor-http-proxy --search-keys humpback@felisberto.net
gpg: searching for "humpback@felisberto.net" from HKP server subkeys.pgp.net
Keys 1-5 of 5 for "humpback@felisberto.net"
(1)Gustavo Felisberto (apt-get install anarchy) <humpback@felisberto.net> 1024
  created 2002-12-06, key B9F2D52A
(2)Gustavo Felisberto <humpback@altavista.net> 1024
  created 1999-08-03, key E97E0B46
(3)Gustavo A.S.R. Felisberto <humpback@altavista.net> 1024
  created 1998-12-10, key B59AB043
(4)Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net> 1024
  created 1998-08-26, key 39EB133D
(5)Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net> 1024
  created 1998-06-14, key AE02AF87
  Enter number(s), N)ext, or Q)uit >1
gpg: requesting key B9F2D52A from HKP keyserver subkeys.pgp.net
gpg: key B9F2D52A: public key imported
gpg: Total number processed: 1
gpg:               imported: 1

Aşa cum puteţi observa din răspunsul primit de la server, am câteva chei transmise server-ului de chei, dar utilizez momentan doar B9F2D52A. Acum, John Doe o poate descărca şi semna, în cazul în care are încredere în aceasta.

4.  Utilizarea unui Agent GPG

Ce este un Agent GPG?

Există cazuri, în momentul lucrului cu anumite aplicaţii, când utilizaţi cheia dvs. GPG foarte frecvent, ceea ce înseamnă că trebuie să tastaţi fraza de autentificare de multe ori. Existau anumite aplicaţii care aveau un mecanism pentru reţinerea frazei de autentificare într-o memorie cache pentru a înlesni operarea utilizatorilor, dar această metodă nu permitea partajarea acestei memorii cache între aplicaţii (cât de sigur poate fi?) şi forţa aplicaţiile să reinventeze roata din nou.

Un agent GPG este o aplicaţie separată pe care o utilizează GPG pentru a reţine într-o memorie cache fraza de autentificare într-un mod securizat. Permite aplicaţiilor să utilizeze GPG concurent: dacă introduceţi fraza dvs. de autentificare în timp ce lucraţi cu o aplicaţie, o altă aplicaţie poate să lucreze cu GPG fără a reitera cererea pentru fraza de autentificare în scopul eliberării cheii - dacă agentul GPG este configurat pentru a permite acest lucru, bineînţeles.

Gentoo oferă o serie de aplicaţii agent GPG. Pachetul app-crypt/gnupg-1.9.* conţine ceea ce este considerat de referinţă, şi va fi cel utilizat de noi în acest document.

Instalarea şi Configurarea Aplicaţiilor gpg-agent şi pinentry

Ar trebui să instalaţi gnupg-1.9.* ce include gpg-agent, şi pinentry. pinentry este o aplicaţie ajutătoare utilizată de gpg-agent pentru a cere fraza de autentificare într-o fereastră grafică. Aceasta este oferită în 3 variante: poate afişa o fereastră utilizând una din librariile gtk+, Qt sau curses (depinzând de variabila USE utilizată în momentul instalării programului).

Cod 4.1: Instalarea gpg-agent şi pinentry

# emerge \>=gnupg-1.9.20 pinentry

Apoi, creaţi un fişier denumit ~/.gnupg/gpg-agent.conf şi introduceţi următoarele linii, ce definesc timpul de expirare implicit al frazei de autentificare (spre ex. 30 de minute) şi aplicaţia ce trebuie invocată pentru momentul în care fraza de autentificare este cerută pentru prima oară (spre ex. versiunea Qt a aplicaţiei pinentry).

Cod 4.2: Editarea ~/.gnupg/gpg-agent.conf

pinentry-program /usr/bin/pinentry-qt
no-grab
default-cache-ttl 1800

Acum, configuraţi GnuPG să utilizeze un agent, dacă este cazul. Editaţi ~/.gnupg/gpg.conf şi adăugaţi următoarea linie:

Cod 4.3: Configurarea GnuPG să utilizeze un Agent GPG

use-agent

Acum sistemul dvs. este (aproape) gata pentru a utiliza agentul GPG.

Pornirea Automată a unui Agent GPG

Dacă utilizaţi KDE ca mediu grafic, editaţi /usr/kde/3.x/env/agent-startup.sh (la nivel de sistem) sau ~/.kde/env/gpgagent.sh (la nivel de utilizator local) şi adăugaţi următoarea comandă în acesta pentru ca mediul KDE să pornească automat agentul GPG:

Cod 4.4: Pornirea automată a agentului GPG

eval "$(gpg-agent --daemon)"

Dacă utilizaţi un alt mediu grafic, introduceţi acea linie (aceeaşi cu cea meţionată anterior) în ~/.xinitrc (dacă utilizaţi startx) sau ~/.xsession (dacă utilizaţi XDM/GDM/KDM/...).

5.  Lucrul cu documente

Criptarea şi semnarea

Să presupunem că aveţi un fişier pe care doriţi să i-l trimiteţi lui Luis. Îl puteţi cripta, semna sau cripta şi semna. Criptarea înseamnă că numai Luis îl va putea deschide. Semnătura îi specifică lui Luis că aţi fost chiar dvs. cel care a creat fişierul.

Următoarele trei comenzi vor face acest lucru, criptarea, semnarea şi criptarea/semnarea.

Cod 5.1: Criptarea şi Semnarea fişierelor

$ gpg --output doc.gpg --encrypt --recipient lmpinto@dei.uc.pt document_pentru_criptare
$ gpg --output doc.gpg --sign --recipient lmpinto@dei.uc.pt document_pentru_semnare
$ gpg --output doc.gpg --encrypt --sign --recipient lmpinto@dei.uc.pt document_pentru_criptare_si_semnare

Aceasta va crea fişiere binare. Dacă doriţi să creaţi fişiere ASCII, trebuie doar să adăugaţi --clearsign la începutul comenzii.

Decriptarea şi verificarea semnăturilor

Presupunând că aţi primit un fişier ce este criptat pentru dvs. Comanda pentru a-l decripta este gpg --output document --decrypt encrypted_doc.gpg. Aceasta va decripta documentul şi verifica semnătura (dacă există vreuna).

Funcţionalităţi Avansate

Există unele funcţionalităţi avansate în GnuPG. Pentru a le regăsi, deschideţi fişierul ~/.gnupg/gpg.conf.

Cod 5.2: ~/.gnupg/gpg.conf

#keyserver x-hkp://subkeys.pgp.net
#keyserver-options auto-key-retrieve include-disabled include-revoked

Căutaţi liniile meţionate anterior şi decomentaţi-le. Cu ajutorul acestora, oricând GnuPG are nevoie să verifice o semnătură şi nu poate găsi nici o cheie publică în setul keyring local, va contacta server-ul de chei la subkeys.pgp.net şi va încerca să o descarce de acolo.

O altă comandă este gpg --refresh-keys. Aceasta va contacta server-ul de chei definit în opţiuni şi va reîmprospăta cheile publice din setul keyring local, căutând chei revocate, noi identificatori, noi semnături pe chei. Ar trebui să rulaţi această comandă o dată sau de două ori pe lună pentru ca sa fiţi notificat în cazul în care cineva îşi revocă cheia.

6.  Interfeţe GnuPG

Despre semnăturile din mesajele electronice

95% din timp veţi utiliza GnuPG cu mesageria electronică, semnând/criptând mesajele trimise şi citind mesaje semnate/criptate. Deci, este normal dacă tratăm acest subiect primul.

Există două moduri de a semna/cripta un mesaj cu GnuPG, varianta veche şi varianta nouă :). În varianta veche, mesajele apăreau în mod text clar, cu nici o posibilitate de formata, iar fişierele ataşate ar fi nesemnate/necriptate, şi iată un exemplu al unui mesaj semnat cu metoda veche:

Cod 6.1: O semnătură în text clar

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Test message

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.8 for non-commercial use

iQA/AwUBP8461jMX0745gR7AEQIEOwCg011GbufXO3ED3FkLWXmfzg7xm1cAoJD0
0EU3Kd2EKNCqataEqM5qjpPs
=LchZ
-----END PGP SIGNATURE-----

Mesagele de acest fel nu sunt bune pentru zilele noastre, când avem unele aplicaţii grafice şi clienţi de citit mesajele electronice ce pot interpreta cod html.

Pentru a rezolva această problemă, o adăugare pentru MIME (Multipurpose Internet Mail Extensions) a fost creată. Aceasta adaugă un câmp mesajului ce îi indică aplicaţiei client de mesagerie electronică faptul că întregul conţinut al mesajului este semnat şi/sau criptat. Problema cu această metodă este că nu toţi clienţii de mesagerie electronică o suportă. Unii clienţi chiar amestecă conţinutul, clientul Outlook de la Microsoft fiind faimos pentru incompatibilitatea cu aceasta.

Kgpg

Kgpg este o aplicaţie grafică pentru GnuPG. În fereastra principală puteţi efectua paste la textul ce doriţi să îl semnaţi sau să-l criptaţi, şi puteţi, de asemenea, să efectuaţi paste la text ASCII în format armor pe care doriţi să-l decriptaţi.


Figura 6.1

Fig. 1: fereastra principală pentru kgpg

În această imagine puteţi vedea fereastra principală a Kgpg cu text ASCII în format armor şi text criptat în aceasta. Din aceasta îl puteţi decripta (va trebui să introduceţi parola dvs.), cripta alte fişiere, introduce altele pentru a fi semnate....


Figura 6.2

Fig. 2: fereastra de administrare a cheilor din kgpg

Acum, puteţi observa fereastra de administrare a cheilor. Din aceasta puteţi observa cheia bună pentur John Doe. Cele două chei de încredere pentru Gustavo şi Luis, şi cheia pentru care nu este oferită încredere, a lui Daniel Robbins ( încă nu l-am sunat pentru a îi verifica amprenta :) ).

Seahorse

Seahorse se vrea a fi o interfaţă GUI pentru Gnome. Aplicaţiile au evoluat mult, dar acestuia încă îi lipsesc funcţionalităţi importante ce pot fi găsite în Kgpg sau în versiunea din linie de comandă.

Mozilla Enigmail

Versiunile începând cu 1.0 şi cele ulterioare ale Mozilla sunt distribuite cu Enigmail, o aplicaţie plug-in pentru ca acest client de mesagerie electronică, ce este foarte simplu de configurat. Trebuie doar să accesaţi Preferences -> Privacy & Security -> Enigmail. Acolo vă introduceţi adresa de email corespondentă cheii dvs. şi atât.

Mesajele ce vin cu o semnătură pgp sau gpg care nu este de încredere va fi marcată cu un pix rupt. Altele, ce au semnături bune vor apare cu un pix drept. Enigmail vine chiar şi cu posibilitatea de a descărca chei de pe server-ele de chei, dar dacă are probleme va afişa unele mesaje ciudate (dar încă vă mai amintiţi cum să utilizaţi linia de comanda, nu?).

KMail

Dacă aveţi indicatorul USE crypt setat, KMail va fi compilat cu suport gpg şi va putea cripta şi decripta mesaje PGP automat, precum şi de a decripta mesaje OpenPGP/MIME. Dacă doriţi să decriptaţi şi mesaje OpenPGP/MIME (ceea ce, probabil, doriţi) trebuie să aveţi un agent GPG rulând (consultaţi Utilizarea unui Agent GPG).

Puteţi verifica dacă KMail este configurat corect prin accesarea Settings, Configure KMail, Security, Crypto Backends. Ar trebui să vedeţi afişată o interfaţă bazată pe GpgME şi ar trebui să puteţi să bifaţi opţiunea OpenPGP. Dacă este afişată dar nu este activă, apăsaţi pe Rescan. Dacă interfaţa bazată pe GpgME rămâne inactivă, KMail nu funcţionează corect.

Dacă încă nu puteţi configura KMail corect, vă rugăm să consultaţi Ghidul pentru KMail şi PGP pentru mai multe informaţii.

Sylpheed-Claws

Acesta reprezintă alegerea personală în materie de client de mesagerie electronică. Este foarte rapid în cazul căsuţelor cu multe mesaje, are toate funcţionalităţile pe care le puteţi dori de la un client de mesagerie electronică şi funcţionează destul de bine cu gpg. Singura problemă este că nu funcţionează cu semnăturile vechi PGP, deci când veţi primi asemenea mesaje, va trebui să verificaţi manual semnăturile.

Pentru a vă utiliza cheia gpg cu Sylpheed-Claws, trebuie doar să accesaţi configurarea contului şi să selectaţi pagina privacy. Odată accesată, trebuie să alegeţi cheia pe care doriţi să o utilizaţi, cel mai probabil majoritatea utilizatorilor o vor utiliza pe cea implicită.

7.  Criptografia Bazată pe Cheie Publică

Bazele Criptografiei Bazate pe Cheie Publică

Conceptul de criptografie bazată pe cheie publică a fost inventat original de către Whitfield Diffie şi Martin Hellman în 1976. Când am auzit prima dată cuvintele "cheie publică" şi "criptografie" în aceeaşi frază în '93, m-am gândit că este imposibil să existe un asemenea concept. În acele vremuri nu exista Internet (adica, exista, dar nu pentru mine), aşa că am mers la bibliotecă şi am cerut cărţi despre Criptografie. Trebuie să vă spun că aveam 16 ani la acea vreme şi gestionarul s-a uitat la mine foarte uimit şi mi-a adus o carte pentru copii despre cifruri de substituţie (acelea în care modifici o literă pentru o alta ca în faimosul Caesar Cypher sau ROT-13 (Tragbb Ebpxf, naq lbh xabj vg vf tbbq orpnhfr lbh ner ernqvat guvf qbp.), (emerge rotix dacă nu înţelegeţi textul precedent)). Am fost foarte supărat despre aceasta şi am început să caut mai multe informaţii. Este un lucru bun să ai matematicieni în familie, deoarece odată ce am vorbit cu unul dintre aceştia, am fost introdus într-o lume nouă.

Şi acum, un pic de matematică:

Cod 7.1: Concepte Matematice

Definiţii:

1- Un număr prim este un număr întreg pozitiv mai mare ca 1 ce este divizibil
doar cu 1 şi cu el însuşi (restul împărţirii este zero).
Primele 8 numere prime sunt 2,3,5,7,11,13,17,19

Teoremă (Fără demonstraţie)
1- Pentru orice număr neprim pozitiv este posibil să-l reprezentăm ca un
produs de numere prime, şi acel produs este unic.
4=2*2
6=2*3
8=2*4=2*2*2
10=2*5
12=2*6=2*2*3

"Date":
1- Este uşor din punct de vedere matematic să înmulţim două numere întregi mari
2- Este greu să găsim factorii primi a unui număr întreg pozitiv, dat.

Dacă vă dau numărul 35 şi vă spun că acest număr este produsul a două numere prime, este uşor să aflaţi că acestea sunt 5 şi 7. Dar dacă vă spun acelaşi lucru pentru 1588522601 veţi petrece mult timp (sau cicluri de procesor) pentru a afla că este 49811*31891. Iar, dacă acest număr este foarte foarte mare, această operaţie devine "imposibilă". Deci, acum, dacă specific numărul mare că este produsul a două numere prime, ştiu ceva despre acel număr despre care nu mai ştie nimeni.

Aceasta este baza implementărilor Criptografiei pe bază de Cheie Publică (eng. Public Key Cryptography - PKC) din ziua de astăzi. Ca un exemplu (nerealist), îi dau cuiva un număr şi acel cineva îl utilizează pentru a cifra un mesaj pentru mine. Oricine poate vedea mesajul cifrat, deoarece eu sunt singurul ce cunoaşte o metodă scurtă de a citi mesajul, oricine altcineva va trebui să "impartă" acel număr mare pentru a putea citi mesajul, şi este un "fapt" că este imposibil ca această operaţie să se efectueze într-un timp scurt (cu metodele din zilele noastre şi cele mai rapide sisteme de calcul din lume ar dura mii de ani pentru aceasta). În acest context, cele două numere prime mari sunt denumite CHEIA PRIVATĂ, iar numărul mare neprim este CHEIA PUBLICĂ.

În practică, aceasta nu este 100% în concordanţă cu realitatea, dar va oferi o idee bună începătorilor. Pentru mai multe informaţii verficaţi site-ul Wikipedia despre protocolul Diffie-Hellman. Pentru şi mai multe informaţii, mergeţi la biblioteca publică şi luaţi o copie a "Manualului de Criptografie Aplicată" de Alfred J. Menezes, Paul C. van Oorschot şi Scott A. Vanstone, de asemenea această carte fiind disponibilă gratuit pe site-ul meţionat mai sus.

O consecinţă al faptului expus anterior este că dacă cifraţi un mesaj pentru mine şi pierdeţi mesajul original necifrat nu veţi mai putea să îl construiţi pe baza versiunii cifrate.

Semnături

Deja am văzut cum ne poate trimite cineva un mesaj cifrat dacă au cheia noastră publică. Dar cum ştim dacă autorul mesajului este chair cel care pretinde a fi? Sau, cu alte cuvinte: Dacă primesc un mesaj de la dvs., cum ştiu cu adevărat că acel mesaj este trimis de dvs. şi nu de altcineva care pretine de a fi dvs.?

Vă amintiţi menţiunea faptului că PKC nu este atât de simplă cum am spus? Ideea este că, atunci când cifraţi un mesaj către mine, îl semnaţi cu cheia privată pentru ca, atunci când îl primesc, să pot utiliza mai întâi cheia dvs. publică pentru a verifica vă semnătura şi apoi îmi utilizez cheia privată pentru a descifra mesajul. Aşa cum puteţi observa nu am fi putut efectua acest lucru în contextul descris anterior.

De asemenea foarte important, pentru a semna mesajele, nu aveţi nevoie să le cifraţi mai întâi. Aceasta pentru ca, atunci când dvs. creaţi mesaje ce pot fi citite de oricine, să vină cu "marca" dvs. Şi dacă orice caracter este modificat în mesaj să poată fi (şi va fi) detectat.

Server-ele de Chei şi Cheile Semnate

Dar să presupunând că nu am nici un contact anterior cu dvs. până când imi trimiteţi un mesaj, cum îmi descarc cheia dvs. publică şi cum ştiu cu adevărat că este a dvs.?

Pentru a rezolva această problemă, au fost create Server-ele de Chei publice. Când vă creaţi perechea de chei (cheia Publică şi cea Privată) vă transmiteţi cheia publică la un server de chei. După aceasta, oricine vă poate descărca cheia de acolo. Aceasta rezolvă problema cu găsirea cheii. Dar cum ştiu cu adevărat că cheia este chiar cea a autorului? Pentru aceasta, un alt concept trebuie introdus, şi acesta este semnarea de chei:

Semnarea cheilor înseamnă că, dacă am cheia publică a unei alte persoane şi ştiu sigur că este chiar cheia acelei persoane (este prietenul meu persinal, cineva pe care îl cunosc în viaţa reală, etc.) îi pot semna acea cheie publică şi o trimite la server-ele de chei, în acest fel specificând: "Această cheie într-adevă aparţine persoanei căreia pretinde că aparţine". În acest fel, persoanele ce au cheia mea publică şi au încredere în mine, pot utiliza acea încredere pentru a acorda încredere altor chei.

Aceasta poate fi uneori confuz, aşa că haideţi să luăm un exemplu din lumea reală

Să ne imaginăm o situaţie cu 3 persoane: John, Mary şi Lisa. John este un prieten un cu Mary, dar nu o cunoaşte pe Lisa; Lisa este o prietenă bună cu Mary, dar nu îl cunoaşte pe John. Într-o zi, Lisa îl trimite lui John un mesaj semnat. John va descărca cheia publică a lui Mary de pe server-ul de chei şi va testa mesajul, iar dacă totul va funcţiona corect, va observa că cine a scris mesajul a şi creat cheia. Dar cum ştiu cu siguranţă că a fost persoana ce pretinde a fi?

Apoi, observă că este semnat de Mary, pe care poate să o verifice pentru că deja are cheia lui Mary şi are încredere în acea cheie. Cu acest cerc de încredere, acesta ajunge la concluzia că mesajul recepţionat este într-adevăr scris de Lisa.

Acum sunteţi pregătiţi să utilizaţi acest ghid, puteţi să navigaţi înapoi la capitolul 1 şi să învăţaţi cum să utilizaţi gpg.

8.  Idei de Final şi Credite

Unele probleme

Am avut unele probleme cu fotografiile din chei. Verificaţi versiunea pe care o utilizaţi. Dacă aveţi GnuPG 1.2.1-r1 sau o versiune mai recentă, atunci este OK, versiunile mai vechi având probleme. De asemenea, server-ele de chei nu acceptă chei cu fotografii, deci mai bine nu adăugaţi fotografii.

Ultimile versiuni de gnupg se pare că nu funcţioneaza cu gpg --send-keys ce era utilizat pentru a trimite toate cheile din setul public keyring către server-ul public de chei.

Ce nu este acoperit aici

gpg este un utilitar foarte complex, ce vă permite mult mai multe funcţionalităţi decât cele acoperite aici. Acest document este pentru utilizatorul ce este nou în materie de GnuPG. Pentru mai multe informaţii, ar trebui să vizitaţi Site-ul GnuPG.

Nu am menţionat alte utilitare ca pgp4pine, gpgpine, evolution şi, poate, utilitare Windows, dar probabil că voi extinde acest document, în viitor.

Credite

Manualul GnuPG scris de John Michael Ashley este o carte foarte bună pentru începători.

Lui Swift (Sven Vermeulen) pentru că a insistat să rescriu acest document.

Tuturor din echipa #gentoo-doc care sunt chiar de treabă.

Lui Tiago Serra pentru că m-a readus în branşa privacy-ului.



Imprimare

Actualizat la 27 Mai 2006

Versiunea originală a acestui document a fost actualizată ultima dată la 29 Decembrie 2007

Sumar: Acest ghid mic vă va învăţa bazele utilizării GnuPG, un utilitar pentru comunicaţii securizate.

Gustavo Felisberto
Autor

John P. Davis
Editor

Sven Vermeulen
Editor

Alin Dobre
Translator

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.