Ghidul Utilizatorului GnuPG în Gentoo
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 |
 |
Î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 |
 |
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.
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|