Sunteți pe pagina 1din 145

Protocoale de securitate pentru sisteme distribuite

Horea Gavril Oros


Oradea, 2009

Cuprins
1 Introducere
1.1 Obiective ale securitatii informatiei . .
1.2 Protocoale si mecanisme . . . . . . . .
1.3 Esecul protocoalelor si al mecanismelor
1.4 Structura lucrarii . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

7
7
8
9
10

2 Protocoale de identificare si autentificare


2.1 Obiectivele si aplicatiile identificarii . . . . . . . . . . . . . . . . .
2.1.1 Obiective ale protocoalelor de identificare . . . . . . . . . .
2.1.2 Pe ce se bazeaza securitatea identificarii? . . . . . . . . . .
2.1.3 Aplicatii ale protocoalelor de identificare . . . . . . . . . .
2.1.4 Proprietati ale protocoalelor de identificare . . . . . . . . .
2.2 Autentificare slaba - parole . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Tehnici pentru schemele de parole fixe . . . . . . . . . . .
2.2.2 Atacuri asupra schemelor de parole fixe . . . . . . . . . . .
2.2.3 PIN si passkey . . . . . . . . . . . . . . . . . . . . . . . .
2.2.4 Parole one-time . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Autentificare puternica (provocare - raspuns) . . . . . . . . . . . .
2.3.1 Parametri variabili n timp . . . . . . . . . . . . . . . . . .
2.3.2 Provocare-raspuns prin tehnici simetrice . . . . . . . . . .
2.3.3 Provocare-raspuns prin tehnici asimetrice . . . . . . . . . .
2.4 Protocoale de identificare particularizate si cu informatie zero . .
2.4.1 Trecere n revista a conceptelor de informatie zero . . . . .
2.4.2 Protocolul de identificare Feige-Fiat-Shamir . . . . . . . .
2.4.3 Protocolul de identificare GQ . . . . . . . . . . . . . . . .
2.4.4 Protocolul de identificare Schnorr . . . . . . . . . . . . . .
2.4.5 Comparatie ntre protocoalele Fiat-Shamir, GQ si Schnorr

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

11
11
11
12
12
12
13
14
16
18
19
20
21
24
26
28
28
33
35
36
38

.
.
.
.
.

40
40
45
45
49
53

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

3 Protocoale pentru stabilirea cheilor


3.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Transport de chei bazat pe criptare simetrica . . . . . . . . . . . . . . . .
3.2.1 Transport si derivare de chei cu tehnici simetrice fara server . . .
3.2.2 Protocolul Kerberos si similare bazate pe server . . . . . . . . . .
3.3 Transport de chei bazat pe criptare asimetrica . . . . . . . . . . . . . . .
3.3.1 Transport de chei folosind criptare cu chei publice fara semnaturi
digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3

. 54

CUPRINS

3.4

3.5

3.3.2 Protocoale care combina semnaturi digitale si criptare cu chei publice


Acord asupra cheii bazat pe tehnici asimetrice . . . . . . . . . . . . . . . .
3.4.1 Protocoale pentru acord asupra cheii de tip Diffie-Hellman . . . . .
3.4.2 Chei publice certificate implicit . . . . . . . . . . . . . . . . . . . .
3.4.3 Protocoale Diffie-Hellman cu chei certificate implicit . . . . . . . . .
Chei de conferinta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Atacuri asupra protocoalelor


4.1 Atacuri asupra protocoalelor de identificare . . . . . . . . . . .
4.2 Analiza protocoalelor pentru stabilire de chei . . . . . . . . . . .
4.2.1 Ipotezele si adversarii n protocoalele pentru stabilirea de
4.2.2 Strategii de atac si deficiente clasice ale protocoalelor . .
4.2.3 Obiectivele analizei si metode de analiza . . . . . . . . .

. . .
. . .
chei
. . .
. . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

55
59
59
64
66
67
70
70
73
73
75
79

5 Infrastructuri de autentificare pentru chei publice


82
5.1 Infrastructura de autentificare bazata pe director . . . . . . . . . . . . . . 82
5.2 Infrastructura de autentificare fara director . . . . . . . . . . . . . . . . . . 87
6 Functii hash si integritatea datelor
6.1 Introducere . . . . . . . . . . . . . . . . . .
6.2 Clasificare . . . . . . . . . . . . . . . . . . .
6.3 Atacuri asupra functiilor hash . . . . . . . .
6.4 Constructia functiilor hash . . . . . . . . . .
6.5 Algoritmi hash fara cheie folositi n practica
6.6 Metode pentru asigurarea integritatii datelor

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

7 Semn
aturi digitale
7.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Un context pentru semnaturi digitale . . . . . . . . . . . . . .
7.2.1 Scheme de semnaturi digitale cu apendix . . . . . . . .
7.2.2 Scheme de semnaturi digitale cu recuperarea mesajului
7.3 Tipuri de atacuri asupra schemelor de semnatura digitala . . .
7.4 Cateva scheme de semnatura digitala . . . . . . . . . . . . . .
7.4.1 Schema de semnatura digitala RSA . . . . . . . . . . .
7.4.2 Schema de semnatura digitala Rabin . . . . . . . . . .
7.4.3 Schema de semnatura digitala ElGamal . . . . . . . . .
7.4.4 Schema de semnatura digitala DSA . . . . . . . . . . .
7.4.5 Schema de semnatura digitala Nyberg-Rueppel . . . .
7.5 Semnaturi digitale cu functionalitate suplimentara . . . . . . .
7.5.1 Semnaturi digitale oarbe . . . . . . . . . . . . . . . . .
7.5.2 Semnaturi digitale incontestabile . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

93
93
94
95
96
97
98

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

103
. 103
. 103
. 105
. 106
. 107
. 108
. 108
. 110
. 111
. 112
. 113
. 114
. 114
. 116

A Comunicarea la nivel IP

118

B Protocolul de login la distant


a Secure Shell (SSH)

124

C SSL si TLS

128

CUPRINS

Concluzii

133

List
a de tabele

134

Lista de figuri

135

Bibliografie

136

CUPRINS

Capitolul 1
Introducere
1.1

Obiective ale securit


atii informatiei

Securitatea informatiei se manifesta n multe moduri n functie de situatie si cerinte.


Indiferent cine este implicat, toate entitatile dintr-o tranzactie trebuie sa fie convinse de
faptul ca anumite obiective asociate cu securitatea informatiei sunt ndeplinite.
De-a lungul timpului, au fost elaborate o serie de protocoale si mecanisme care sa
rezolve probleme legate de securitatea informatiei atunci cand informatia este transmisa
prin documente fizice. De multe ori obiectivele securitatii informatiei nu pot fi asigurate
doar prin algoritmi matematici si prin protocoale ci este nevoie de proceduri tehnice si
respectarea unor legi pentru a asigura rezultatul dorit. De exemplu, confidentialitatea scrisorilor este asigurata de plicurile sigilate si de legile care fac din deschiderea neautorizata
a plicului o contraventie, securitatea oferita de un plic fiind limitata.
Exista situatii n care securitatea este realizata nu prin informatia propriu-zisa ci prin
documentul fizic pe care este nregistrata. De exemplu, bancnotele necesita cerneluri
speciale si materiale care sa mpiedice falsificarea.
Modul n care informatia este nregistrata nu s-a modificat n mod semnificativ dea lungul timpului. Daca mai demult informatia era stocata si transmisa pe hartie, n
ziua de astazi aceasta este stocata pe medii magnetice si este transmisa prin sisteme de
telecomunicatii. Ceea ce s-a schimbat n mod substantial este posibilitatea pe care o avem
n ziua de astazi de a copia si modifica informatia. Se pot face cu usurinta mii de copii ale
unei informatii stocate electronic, fiecare copie fiind identica cu originalul. Acest lucru
era mult mai dificil atunci cand informatia era stocata pe hartie. Prin urmare, este nevoie
de mijloace pentru asigurarea securitatii informatiei care sa fie independente de mediul
fizic pe care aceasta este nregistrata sau transmisa si pentru care obiectivele securitatii
informatiei sa se bazeze doar pe informatia digitala.
In lista de mai jos sunt enumerate cele patru obiective fundamentale ale securitatii
informatiei pe care se bazeaza toate celelalte:
1. confidentialitatea - asigura faptul ca informatia nu este accesibila pentru cei care
nu sunt autorizati sa o vada. Un termen sinonim este secret. Exista numeroase
abordari pentru realizarea confidentialitatii de la protectie fizica pana la algoritmi
matematici care fac datele neinteligibile.
7

Capitolul 1. Introducere
2. integritatea datelor - asigura faptul ca datele nu sunt modificate n mod neautorizat.
Pentru a asigura integritatea datelor, trebuie sa avem abilitatea de a detecta modificarea datelor de catre entitati neautorizate. Modificarea datelor include inserarea,
stergerea si substitutia.
3. autentificarea - este n stransa legatura cu identificarea. Acest obiectiv se aplica atat
la entitati cat si la informatie. Doua entitati care sunt implicate ntr-un protocol
ar trebui sa se identifice nainte de a face alte schimburi de mesaje. Informatia
transmisa printr-un canal ar trebui indentificata n legatura cu originea, data la
care a fost creata, continut si ora la care a fost trimisa. Din aceste motive acest
aspect al securitatii informatiei este mpartit n doua clase importante: autentificarea entitatilor si autentificarea originii datelor. Autentificarea originii datelor
asigura si integritatea datelor.
4. nerepudierea - este un obiectiv al securitatii informatiei care previne ca o entitate
sa nege actiuni anterioare. Atunci cand apar controverse n legatura cu anumite
actiuni trebuie sa existe mijloace prin care sa se rezolve acele situatii. De regula
intervine o a treia entitate (tertul de ncredere) care va rezolva disputa.

Pornind de la aceste patru obiective fundamentale ale securitatii informatiei se obtin


si alte obiective cum ar fi:
atura - reprezinta un mijloc de a lega o informatie de o entitate;
semn
autorizarea - transferul unei alte entitati a dreptului de a face ceva;
controlul accesului - restrictionarea accesului la resurse pentru autoritatile privilegiate;
certificarea - girarea informatiei de catre o entitate de ncredere;
confirmarea - furnizarii unui serviciu;
anonimatul - ascunderea identitatii unui entitati implicate ntr-un anumit proces.

1.2

Protocoale si mecanisme

Un protocol criptografic este un algoritm distribuit definit de o secventa de pasi care


specifica cu exactitate actiunile a doua sau mai multe entitati pentru a realiza un anumit
obiectiv de securitate. Spre deosebire de protocoale, mecanismul de securitate este un
concept mai general care cuprinde protocoale, algoritmi (specifica pasii pe care trebuie
sa-i parcurga o singura entitate) si tehnici non-criptografice (de ex. protectie hardware)
pentru a realiza anumite obiective de securitate.
Exemplu 1.2.1 (un protocol simplu pentru stabilirea unei chei) Alice si Bob aleg o
schem
a de criptare cu cheie simetrica pentru a o folosi n comunicarea printr-un canal
nesigur. Pentru criptarea informatiei ei au nevoie de o cheie. Protocolul de comunicatie
este urm
atorul:

1.3 Esecul protocoalelor si al mecanismelor

1. Bob alege un sistem de criptare cu chei publice, genereaz


a perechea de chei (privata
si publica) si i trimite lui Alice cheia publica.
2. Alice generez
a o cheie pentru schema de criptare simetrica.
3. Alice cripteaz
a cheia generata la pasul precedent cu cheia publica a lui Bob si i
trimite mesajul criptat.
4. Bob decripteaz
a mesajul primit folosind cheia lui privata si obtine cheia simetrica
(secret
a).
5. Alice si Bob ncep comunicatia securizat
a folosind criptosistemul cu cheie simetrica
ales initial si cheia secret
a.
De multe ori rolul criptarii cu cheie publica este exact cel prezentat n acest protocol
- criptarea cu cheie publica este folosita ca un mijloc de a face schimbul de chei ce vor
fi folosite ulterior ntr-o schema de criptare simetrica. Argumentul pentru aceasta este
diferenta de performanta ntre criptarea cu chei simetrice respectiv chei publice. Criptografia cu chei publice nu numai ca foloseste chei mult mai mari decat criptografia cu
chei simetrice, dar este si mult mai lenta, putand ajunge la viteze chiar de 10000 de ori
mai mici.

1.3

Esecul protocoalelor si al mecanismelor

Esecul unui protocol sau al unui mecanism are loc atunci cand mecanismul nu reuseste sa
asigure scopul pentru care a fost creat si un adversar obtine un avantaj nu prin spargerea
primitivelor criptografice pe care se bazeaza protocolul sau mecanismul (de ex. algoritmii
de criptare, functiile hash, schemele de semnatura digitala etc.) ci prin manipularea
protocolului sau al mecanismului.
Exemplu 1.3.1 (esecul unui mecanism) Alice si Bob comunic
a prin intermediul unui
cifru secvential (cifru stream). Se stie ca mesajele pe care le cripteaz
a au o forma special
a:
primii 20 de biti contin o informatie n leg
atur
a cu o suma de bani. Un adversar activ1
poate folosi o simpla operatie XOR ntre primii 20 de biti ai textului cifrat si o valoarea
aleas
a aleator pentru a modifica suma respectiv
a. Cu toate ca adversarul nu reuseste sa
descopere despre ce suma a fost vorba si la ce valoare s-a modificat, totusi a reusit sa
altereze transmisia. Criptarea nu a fost compromis
a si cu toate acestea protocolul nu a
reusit sa ruleze corect; presupunerea ca o schem
a de criptare asigura integritatea datelor
este evident gresit
a n acest caz.
a
Exemplu 1.3.2 (atac prin cautare nainte) Presupunem ca ntr-o tranzactie electronic
bancar
a campul de 32 de biti care contine valoarea tranzactiei este criptat folosind o
schem
a de criptare cu chei publice. Acest protocol simplu are scopul de a furniza confidentialitatea valorii din acel camp. Un adversar poate cripta cu usurint
a toate secventele
binare de 32 de biti, n numar de 232 , folosind cheia publica. Compar
and fiecare din
32
cele 2 valori calculate cu cea care este criptata ntr-o anumita instanta a protocolului,
adversarul poate determina valoarea transmis
a n instanta respectiv
a.
1

adversarul activ are puterea de a modifica mesajele transmise ntr-un protocol

10

Capitolul 1. Introducere

In exemplul precedent nu este compromisa schema de criptare cu chei publice ci modul


n care este folosita.
Protocoalele si mecanismele esueaza din diferite motive:
1. Slabiciuni ale unei primitive criptografice care pot fi accentuate de modul n care
sunt utilizate.
2. Presupunerea ca protocolul sau mecanismul de securitate ofera garantii de securitate
fara sa fie ntelese pe deplin toate aspectele acelui protocol sau mecanism.
3. Ignorarea unor principii ce se aplica la o clasa larga de primitive cum ar fi criptarea.

1.4

Structura lucr
arii

Capitolul 2
Protocoale de identificare si
autentificare
2.1

Obiectivele si aplicatiile identific


arii

In modelul general pentru protocoalele de identificare avem un pretendent (reclamant) A


si un verificator B. Verificatorul primeste identitatea pretinsa a reclamantului. Obiectivul este de a deduce ca identitatea reclamantului este ntr-adevar A, adica de a oferi
autentificarea entitatilor.
Definitie 2.1.1 Autentificarea entitatilor este procesul prin care o entitate este asigurat
a
(prin obtinerea de dovezi de confirmare) n leg
atur
a cu identitatea unei a doua entitati
implicate n protocol si ca aceast
a entitate a participat efectiv la proces (este activa n
momentul sau imediat naintea obtinerii dovezii).

2.1.1

Obiective ale protocoalelor de identificare

Din punctul de vedere al verificatorului, rezultatul unui protocol de autentificare a entitatilor este ori acceptarea identitatii reclamantului ca fiind autentica, sau respingerea
(terminarea fara acceptarea identitatii). Obiectivele unui protocol de identificare cuprind:
1. In cazul unor entitati oneste A si B, A este capabil sa se autentifice cu succes n
fata lui B. B va termina protocolul prin acceptarea identitatii lui A.
2. (transferabilitate) B nu poate refolosi mesajele schimbate cu A pentru a-l impersona
pe A n fata unui tert C.
3. (impersonare) Probabilitatea este neglijabila1 ca o entitate C diferita de A, care
urmeaza protocolul si joaca rolul lui A, sa-l determine pe B sa accepte identitatea
lui A.
4. Punctele precedente raman valabile si daca au fost observate/nregistrate un numar
polinomial de autentificari ntre A si B; adversarul C a participat nainte n executii
ale protocolului cu A si/sau B; si mai multe instante ale protocolului, ce pot fi
initiate de C, ruleaza simultan.
1

Prin neglijabil ntelegem ca probabilitatea este atat de mica ncat nu are importanta n practica.

11

12

Capitolul 2. Protocoale de identificare si autentificare

In protocoalele cu informatie zero, executia protocolului nu dezvaluie nici macar o


informatie partiala care sa usureze sarcina lui C.
Un protocol de identificare (sau autentificare de entitate) este un proces n timp real n
sensul ca ofera certitudinea ca entitatea autentificata este prezenta la momentul executiei
protocolului si a executat anumite operatii de la nceputul protocolului. Protocoalele de
identificare ofera garantii doar la momentul executiei cu succes a protocolului.

2.1.2

Pe ce se bazeaz
a securitatea identific
arii?

Tehnicile de autentificare a entitatilor pot fi mpartite n trei mari categorii, n functie de


elementele pe care se bazeaza securitatea:
1. ceva stiut. Exemple sunt parolele standard (folosite uneori pentru a genera o cheie
simetrica), numere de identificare (PIN) si parolele secrete sau private a caror
cunoastere este demonstrata n protocoalele provocare-raspuns.
2. ceva posedat. Aceasta e de obicei un accesoriu fizic. De exemplu, cartele magnetice,
chipcarduri (cartele de plastic similare cu cardurile de credit care contin si un microchip sau au un circuit integrat); dispozitive pentru generarea de parole ce depind
de timp.
3. ceva mostenit. Aceasta categorie include metode ce utilizeaza caracteristicile fizice
ale persoanelor (biometrie), cum ar fi semnatura de mana, amprentele, vocea, retina,
geometria mainii si dinamica folosirii tastaturii. Aceste tehnici nu sunt de natura
criptografica si nu vor fi prezentate n aceasta lucrare.

2.1.3

Aplicatii ale protocoalelor de identificare

Unul din scopurile principale ale identificarii este de a facilita controlul accesului la o
resursa, atunci cand un privilegiu de acces este legat de o anumita identitate (de ex. accesul local sau de la distanta la conturi de utilizator; retragerea de bani din automate
bancare; permisiuni de comunicare prin porturi de comunicatie; accesul fizic ntr-o zona
restrictionata etc.). O schema de parole folosita pentru a permite accesul la contul unui
utilizator poate fi privita ca fiind cea mai simpla forma de matrice pentru controlul accesului: fiecare resursa are o lista de identitati asociate cu ea si confirmarea cu succes a unei
identitati permite accesul la resursele autorizate. In multe aplicatii (de ex. telefonia mobila) motivatia pentru identificare este de a permite facturarea utilizarii resurselor catre
entitatile care le folosesc. Identificarea este de asemenea o cerinta inerenta n protocoalele
pentru stabilirea autentica a cheilor, protocoale ce vor fi discutate n capitolul 3.

2.1.4

Propriet
ati ale protocoalelor de identificare

Protocoalele de identificare au o serie de proprietati. Cele mai importante sunt:


1. reciprocitatea identificarii. Una sau ambele entitati pot sa-si demonstreze identitatea celeilalte, oferind identificare unilaterala, respectiv bilaterala. Unele tehnici,
cum ar fi schemele cu parole fixe, pot fi suspectate ca fiind folosite de o entitate

2.2 Autentificare slab


a - parole

13

adversar, ce joaca rolul de verificator, n scopul obtinerii parolelor utilizatorilor legitimi.


2. eficienta computationala. Numarul de operatii necesare pentru a executa un protocol.
3. eficienta comunicationala. Reprezinta numarul de mesaje interschimbate si latimea
de banda necesara (numarul total de octeti transferati).
4. implicarea n timp real a unui tert. Tertul poate fi un tert de ncredere on-line2 care
distribuie chei simetrice entitatilor implicate; un serviciu de directoare on-line care
nu e de ncredere si care distribuie certificate de chei publice, pe baza unei autoritati
de certificare off-line.
5. natura ncrederii n tert. Exemple sunt ncrederea ntr-un tert care autentifica si
leaga numele unei entitati de o cheie publica; si ncrederea ntr-un tert care cunoaste
cheia privata a unei entitati.
6. natura garantiilor de securitate. Exemplele includ securitatea demonstrabila si proprietatile de informatie zero.
7. stocarea secretelor. Acestea includ locul si metodele folosite (doar n software,
discuri locale, elemente hardware) pentru stocarea informatiilor critice pentru generarea cheilor.
Schemele de identificare si schemele de semnatura digitala sunt asemanatoare. De
obicei schemele de identificare sunt mai simple. Semnaturile digitale implica mesaje de
lungime variabila si de obicei ofera proprietatea de non-repudiere ceea ce permite ca disputele sa fie rezolvate ulterior de un tert. In schemele de identificare, semantica mesajelor
este fixata - o identitate pretinsa la un anumit moment. Pretinderea este ori confirmata
ori respinsa imediat, iar privilegiile asociate sau accesul sunt oferite sau respinse n timp
real. Identificarile nu au un timp de viata (sau perioada de valabilitate) asa cum au
semnaturile digitale. Ulterior identificarii nu trebuie rezolvate dispute iar atacurile ce pot
deveni ulterior fezabile nu afecteaza o identificare anterioara reusita.

2.2

Autentificare slab
a - parole

Schemele de parole conventionale implica parametri ce nu depind de timp, ceea ce ofera


asa numita autentificare slaba. O parola, asociata cu fiecare entitate (utilizator), este
de regula un sir de 6-10 caractere (sau mai multe) pe care utilizatorul este capabil sa
le memoreze. Parola reprezinta secretul partajat de utilizator si sistem. Schemele de
parole conventionale intra n categoria tehnicilor cu cheie simetrica si ofera autentificare
unilaterala. Pentru a obtine accesul la o resursa sistem (de ex. un cont de utilizator,
o imprimanta sau o aplicatie software), utilizatorul introduce o pereche (id utilizator,
parol
a) si specifica n mod implicit sau explicit o resursa. Aici id utilizator reprezinta
2
termenul on-line se refera la faptul ca entitatea respectiva participa activ n momentul rularii protocolului

14

Capitolul 2. Protocoale de identificare si autentificare

o pretindere a unei identitati iar parol


a este dovada pentru acea pretindere. Sistemul
verifica daca parola se potriveste cu datele pe care le are pentru acel id utilizator si ca
acea entitate poate accesa resursa. Demonstrarea cunoasterii parolei este acceptata de
sistem ca fiind o confirmare a identitatii entitatii respective.
Exista o serie de scheme de parole care se deosebesc prin modul n care este stocata n sistem informatia care permite verificarea parolei si prin metoda de verificare. In
sectiunile urmatoare vor fi prezentate o serie de idei care stau la baza schemelor de parole
tipice; este prezentata protectia pe care aceste scheme o prezinta n fata atacurilor standard. Amenintarile mpotriva carora schemele de parole trebuie sa ofere protectie sunt:
dezvaluirea parolei (n afara sistemului) si ascultarea liniilor de comunicatie (n cadrul
sistemului), ambele permitand atacuri ulterioare prin repetarea parolei, ghicirea parolei
si atacuri pe baza de dictionar.

2.2.1

Tehnici pentru schemele de parole fixe

Fisiere de parole stocate - cel mai simplu mod de a stoca parolele n sistem este
existenta unui fisier protejat la citire si scriere (prin privilegii de control al accesului
oferite de sistemul de operare) n care parolele sunt trecute n clar. In momentul n care
utilizatorul introduce parola, sistemul compara parola introdusa cu cea stocata n fisierul
de parole pentru acel utilizator. Avand n vedere ca aici nu se folosesc chei secrete sau alte
primitive criptografice (cum ar fi criptarea), aceasta tehnica este una non-criptografica.
Dezavantajul metodei este ca nu ofera protectie mpotriva unor utilizatori privilegiati
(administrator, root). Stocarea fisierului pe medii de backup reprezinta de asemenea o
problema de securitate.
Fisiere de parole criptate- n loc de a stoca parolele utilizatorilor n clar ntr-un
fisier protejat la citire si scriere, este de preferat a se folosi o functie greu inversabila
(one-way). O alternativa este criptarea parolei dar aceasta necesita existenta unei chei.
In ambele situatii (functie greu inversabila si functie de criptare) parola rezultata se spune
ca este criptata chiar daca acest lucru nu este valabil din punct de vedere formal pentru
functiile one-way. Pentru a verifica o parola introdusa de utilizator, sistemul calculeaza
functia one-way pentru parola introdusa si o compara cu valoarea stocata n sistem pentru
acel utilizator (figura 2.1). In aceasta schema fisierul de parole trebuie sa fie protejat doar
la scriere.
Reguli pentru parole - au fost publicate initial de catre Departamentul Apararii al
SUA [29]. Din moment ce atacurile pe baza de dictionar reusesc mpotriva parolelor slabe,
unele sisteme impun reguli pentru parole pentru a descuraja sau a preveni utilizatorii
n a folosi parole slabe. Printre aceste reguli amintim: o limita minima pentru lungimea
parolei (de regula 8 caractere); parola sa contina cel putin un caracter din fiecare categorie
(litere mari, litere mici, caractere numerice, non-alfanumerice); interzicerea utilizarii ca
parole a unor cuvinte ce se regasesc n anumite dictionare; interzicerea parolelor formate
din informatii legate de contul utilizatorului.
Cunoasterea regulilor folosite poate permite unui adversar sa foloseasca un atac pe
baza de dictionar modificat si tintind cea mai slaba forma de parola care satisface regulile.
Obiectivul regulilor pentru parole este de a creste entropia (nu doar lungimea) parolelor
utilizator.

2.2 Autentificare slab


a - parole

15

Figura 2.1: Folosirea unei functii one-way pentru verificarea parolei

O alta tehnica procedurala al carei scop este mbunatatirea securitatii parolelor este
mbatranirea parolelor. In acest caz se stabileste o perioada de viata pentru parola (30
de zile sau 90 de zile) dupa care parola trebuie schimbata.
Incetinirea procesului de criptare a parolei - pentru a ncetini atacurile care
implica testarea unui numar mare de parole, se poate realiza functia de verificare a parolei
(functia one-way) n asa fel ncat calcularea ei sa fie un proces mai intens din punct de
vedere computational, necesitand mai mult timp. O modalitate pentru a realiza aceasta
este de a itera o functie mai simpla de t > 1 ori, iar intrarea pentru iteratia i este
rezultatul calculat la iteratia precedenta. Numarul de iteratii trebuie restrictionat pentru
a nu reprezenta o ntarziere sesizabila pentru utilizatorii legitimi.
Parole cu salt - notiunea a fost introdusa pentru prima data de Morris si Thompson n
raportul lor asupra parolelor UNIX [83]. Pentru ca atacurile pe baza de dictionar sa nu
aiba un succes atat de mare, fiecare parola poate fi extinsa cu un sir de t biti aleatori, sir
care poarta numele de salt, iar functia one-way se aplica la parola astfel modificata. In
fisierul de parole se salveaza atat rezultatul functiei one-way cat si salt-ul pentru ca parola
introdusa ulterior de utilizator sa poata fi verificata. Dificultatea atacului prin cautare
exhaustiva asupra parolei unui utilizator nu se modifica prin salt (din moment ce salt-ul
este nregistrat n clar n fisierul de parole), totusi, prin salt creste complexitatea atacului
simultan pe baza de dictionar asupra unui numar mare de parole, ntrucat dictionarul
trebuie sa contina 2t variante pentru fiecare parola, ceea ce duce la necesitati de memorie
mult mai mari pentru stocarea unui dictionar cu parole criptate si la un timp mai mare
pentru realizarea acestui dictionar. Prin salt, doi utilizatori care au aceeasi parola si salt
diferit vor avea nregistrari diferite n fisierul de parole n campul care contine parola
criptata.
Fraze pentru parole - pentru a permite o entropie mai mare, fara a depasi limitele
de memorare ale unei persoane, parolele pot fi extinse la fraze de parole. In acest caz

16

Capitolul 2. Protocoale de identificare si autentificare

utilizatorul memoreaza o fraza scurta n locul unui cuvant. Fraza este transformata printro functie hash ntr-o valoare de lungime fixa, care joaca rolul parolei. Aici ideea este ca
utilizatorii pot memora mult mai simplu o fraza decat o secventa aleatoare de caractere
(rezultata n urma functiei hash).

2.2.2

Atacuri asupra schemelor de parole fixe

Reluarea unei parole fixate - o slabiciune a schemelor de parole fixe este aceea ca un
adversar poate obtine parola unui utilizator n momentul n care aceasta este tastata sau
prin alte metode. O alta problema de securitate este ca parola introdusa de utilizator
(sau criptarea acesteia) este transmisa n clar pe linia de comunicatie ntre utilizator
si sistem si este de asemenea disponibila n clar, temporar, n timpul verificarii de catre
sistem. Un adversar care asculta linia de comunicatie poate nregistra aceste date si le
poate folosi ulterior pentru impersonare.
Schemele de parole fixe sunt utile atunci cand parolele sunt transmise prin linii de
comunicatie sigure ce nu pot fi monitorizate si nu sunt utile atunci cand parolele sunt
transmise prin retele de comunicatie deschise. De exemplu, n figura 2.1 reclamantul A
poate fi un utilizator care se conecteaza de la distanta la un site B. In acest caz parola
este transmisa printr-un mediu de comunicatie nesigur.
In cazul n care se foloseste verificarea identitatii de la distanta pentru a permite
accesul la o resursa locala, raspunsul sistemului (acceptare/ respingere) trebuie de asemenea protejat si trebuie sa includa o variabilitate care sa previna reluarea triviala a unui
raspuns de acceptare.
C
autarea exhaustiv
a a parolei - un atac foarte naiv este acela n care un adversar
ncearca parole n mod aleator si sistematic, una cate una, n speranta ca va gasi parola
corecta. Acest atac poate fi prevenit prin asigurarea faptului ca parolele sunt alese dintr-un
spatiu suficient de mare, limitand numarul de ncercari invalide (on-line) ntr-un anumit
interval de timp si ncetinind operatia de criptare a parolei sau procesul de conectare
asa cum a fost prezentat n sectiunea 2.2.1. Atacurile off-line, care implica un numar mare
de calcule ce nu necesita interactiunea cu verificatorul efectiv decat n stadiul final, sunt
mult mai periculoase si vor fi tratate n continuare.
Dandu-se un fisier cu parolele criptate ale utilizatorilor, un adversar poate ncerca
sa nvinga sistemul prin testarea parolelor una cate una si comparand parola criptata
cu cele din fisier. Acest lucru este posibil din punct de vedere teoretic din moment ce
atat functia one-way cat si textul clar este cunoscut. (Se poate evita aceasta metoda
prin pastrarea secreta a functiei de criptare sau a fisierului de parole dar aceasta nu
este o metoda buna pe care sa ne putem baza securitatea ntrucat nu putem presupune
ca aceste detalii vor ramane secrete pentru totdeauna). Reusita atacului depinde de
numarul de parole care trebuie verificate nainte de a gasi o potrivire (ceea ce depinde de
numarul de parole posibile) si de timpul necesar pentru a testa fiecare parola (exemplul
2.2.1, tabelul 2.1 si tabelul 2.2 preluate din [77]). Acest timp depinde de functia folosita
pentru a cripta parolele, de implementarea acestei functii, de timpul de executie al
instructiunilor n sistem (viteza de executie a procesorului) si de numarul de procesoare
din sistem3 .
3

cautarea exhaustiva este paralelizabila

2.2 Autentificare slab


a - parole

17

Exemplu 2.2.1 (entropia parolelor) Presupunem ca parolele sunt formate din caractere
ASCII pe 7 biti. Fiecare caracter are o valoare numerica cuprinsa ntre 0 si 127. (Atunci
c
and se folosesc caractere pe 8 biti, valorile 128-255 formeaz
a setul de caractere extins,
care de regul
a nu este accesibil pe tastaturi standard). Codurile ASCII cuprinse ntre 0
si 31 sunt rezervate pentru caractere de control; 32 este caracterul spatiu; 33-126 sunt
caractere tiparibile accesibile pe tastatura iar 127 este un caracter special. Tabelul 2.1
ne da numarul de parole distincte formate din n caractere, parole formate din combinatii
obisnuite de caractere, indicand o limita superioar
a pentru securitatea oferita de astfel de
spatii de parole.
c
n
5
6
7
8
9
10

26
(litere mici)
23,5
28,2
32,9
37,6
42,3
47,0

36 (litere mici
alfanumerice)
25,9
31,0
36,2
41,4
46,5
51,7

62 (litere mici si
mari alfanumerice)
29,8
35,7
41,7
47,6
53,6
59,5

95 (caractere
tastatura)
32,9
39,4
46,0
52,6
59,1
65,7

Tabela 2.1: Dimensiunea n biti a spatiilor de parole pentru diferite combinatii de caractere. Numarul de parole de n caractere, cu c variante pentru un caracter este cn . In tabel
sunt date valorile logaritmului n baza 2 pentru acest numar de parole posibile
c
26
n (litere mici)
5
0,67 ore
6
17 ore
7
19 zile
8
1,3 ani
9
34 ani
10
890 ani

36 (litere mici
alfanumerice)
3,4 ore
120 ore
180 zile
18 ani
640 ani
23000 ani

62 (litere mici si
95 (caractere
mari alfanumerice)
tastatura)
51 ore
430 ore
130 zile
4,7 ani
22 ani
440 ani
1400 ani
42000 ani
86000 ani
4, 0 106 ani
5, 3 106 ani
3, 8 108 ani

Tabela 2.2: Timpul necesar pentru a cauta ntregul spatiu de parole. Tabelul indica
timpul necesar T n ore, zile sau ani pentru a cauta n tot spatiul specificat folosind un
singur procesor. T = cn ty, unde t este numarul de iterari ale functiei pentru criptarea
parolei, iar y este timpul necesar pentru o iteratie, pentru t = 25, y = 1/(125000) sec.
Ghicirea parolei si atacuri pe baz
a de dictionar
Pentru a mbunatati probabilitatea succesului unei cautari exhaustive, n loc de a cauta
n tot spatiul de parole posibile, un adversar poate cauta parolele n ordinea descrescatoare
a probabilitatii lor. La modul ideal sirurile de n caractere au o probabilitate egala de a
fi selectate ca parole, dar totusi utilizatorii si aleg parolele dintr-o submultime mica a
multimii parolelor (de ex. cuvinte scurte, cuvinte din dictionar, nume proprii, siruri de
caractere formate din litere mici). Astfel de parole slabe cu entropie mica sunt usor de
ghicit; diferite studii au aratat ca o mare din parte din parolele utilizator se regasesc n

18

Capitolul 2. Protocoale de identificare si autentificare

dictionare de doar 150000 de cuvinte, ceea ce reprezinta doar o foarte mica parte din toate
parolele posibile.

2.2.3

PIN si passkey

PIN - Personal Identification Number (numar personal de identificare) intra n categoria parolelor fixe (care nu variaza n timp). Acestea sunt folosite de cele mai multe ori
mpreuna cu un element fizic cum ar fi un card bancar de plastic cu banda magnetica
sau cu chipcard. Pentru a dovedi identitatea ca utilizator legitim al cardului si pentru
a obtine accesul la privilegiile asociate, este necesara introducerea numarului PIN corect
atunci cand este folosit cardul. Aceasta furnizeaza un al doilea nivel de securitate daca
se ntampla sa fie furat cardul. Numerele PIN pot reprezenta un al doilea nivel de securitate pentru intrarea n anumite cladiri care au si o securitate de prim nivel (o camera
video sau un paznic). Pentru usurarea activitatii utilizatorului si din motive istorice, numerele PIN sunt de regula scurte (relativ la schemele de parole fixe) si sunt formate din
4 pana la 8 cifre. Pentru a preveni ncercarea tuturor numerelor PIN posibile (sunt doar
10000 de numere PIN atunci cand avem 4 cifre la dispozitie) sunt impuse constrangeri
procedurale suplimentare, de exemplu confiscarea cardului de catre automatele bancare
atunci cand numarul PIN este introdus gresit de 3 ori consecutiv. In alte aplicatii (de
ex. cartele de telefonie mobila) introducerea gresita a numarului PIN poate determina
blocarea sau dezactivarea cartelei si necesitatea introducerii unui numar PIN mai lung
pentru reactivare.
Intr-un sistem on-line ce foloseste numere PIN sau parole reutilizabile, o identitate
pretinsa a unei entitati (mpreuna cu un PIN introdus de entitate) poate fi verificata prin
compararea PIN-ului introdus cu PIN-un stocat pentru acea entitate n baza de date a
sistemului.
Intr-un sistem off-line care nu are acces la baza de date centrala, informatia care
permite verificarea numarului PIN trebuie sa fie stocata pe card. Daca numarul PIN nu
este ales de utilizator, aceasta se poate face prin definirea numarului PIN ca functie de o
cheie secreta si de identitatea asociata cu cardul; n aceasta situatie numarul PIN poate
fi verificat de orice sistem de la distanta care cunoaste aceasta cheie.
Intr-un sistem off-line poate fi de dorit ca numarul PIN sa poata fi ales de utilizator,
pentru a usura memorarea lui. In acest caz, numarul PIN poate fi criptat cu o cheie
si salvat pe card, iar cheia este cunoscuta de toate terminalele off-line care trebuie sa
verifice cardul. Este de preferat ca sa fie salvat pe card valoarea hash a numarului PIN,
identitatea si cheia.
Autentificare n dou
a stagii si chei derivate din parole - oamenii au dificultati n a
memora chei secrete cu o entropie suficient de mare care sa asigure o securitate adecvata.
In continuare sunt descrise doua tehnici care rezolva aceasta problema.
Atunci cand se folosesc carduri cu verificarea off-line a numarului PIN, o tehnica
obisnuita este ca numarul PIN sa fie folosit pentru a verifica utilizatorul fata de card, iar
cardul contine o informatie suplimentara, independenta, ce permite realizarea autentificarii cardului fata de sistem (ca un card valid ce reprezinta un utilizator legitim). Astfel,
utilizatorul este autentificat n mod indirect n fata sistemului printr-un proces format
din doua stagii. Utilizatorul trebuie sa aiba n posesie cardul si sa memoreze un numar
PIN scurt, n timp ce o cheie mai lunga (ce contine o entropie adecvata) ofera securitate

2.2 Autentificare slab


a - parole

19

criptografica pentru autentificare printr-o legatura nesigura.


O a doua tehnica este ca o parola utilizator sa fie transformata de o functie hash
one-way ntr-o cheie criptografica (de ex. o cheie AES de 128 de biti). O astfel de cheie
derivata dintr-o parola poarta numele de passkey. Aceasta cheie este folosita ulterior
pentru securizarea liniei de comunicatie dintre utilizator si sistem. Trebuie asigurat faptul
ca entropia parolei utilizatorului este suficient de mare astfel ca sa nu fie mai eficienta
cautarea exhaustiva a spatiului parolelor decat a spatiului cheilor. Aceste passkey trebuie
vazute ca si chei pe termen lung, a caror utilizare este limitata la autentificare si gestiunea
cheilor (nu si pentru criptarea datelor utilizator). Un dezavantaj al folosirii cheilor derivate
din parole este acela ca stocarea parolei fiecarui utilizator n sistem necesita anumite
mecanisme de protejare a confidentialitatii parolelor stocate.

2.2.4

Parole one-time

O trecere de la schemele de parole fixe nspre protocoalele de identificare bazate pe


provocare-raspuns se poate observa n cazul schemelor de parole one-time. Una din problemele schemelor de parole fixe este descoperirea parolei si reluarea ei ulterior de catre
atacator. O solutie partiala este constituita de parolele one-time: fiecare parola este
folosita o singura data. Astfel de scheme ofera protectie fata de adversari pasivi care doar
intercepteaza parola si o refolosesc ulterior. Variante ale acestor scheme sunt:
1. liste partajate de parole one-time: utilizatorul si sistemul folosesc o secventa sau
o multime de t parole secrete, (fiecare fiind valida pentru o singura autentificare), distribuita ca o lista pre-partajata. Un neajuns este ntretinerea listei partajate. Daca
lista nu este folosita secvential, sistemul poate compara parola introdusa cu toate
parolele ramase nefolosite. O varianta este folosirea unui tabel provocare-raspuns,
n care utilizatorul si sistemul partajeaza un tabel cu perechi provocare-raspuns,
fiecare pereche fiind valida o singura data; aceasta tehnica non-criptografica este
diferita de schemele criptografice provocare-raspuns ce vor fi prezentate n sectiunea
2.3.
2. parole one-time actualizate secvential: initial este partajata o singura parola
secreta. In timpul autentificarii cu parola i, utilizatorul creeaza si trimite sistemului
o noua parola (parola i + 1) criptata cu o cheie derivata din parola i. Aceasta
metoda devine dificil de aplicat daca apar erori de comunicatie, datorita pierderii
sincronizarii.
3. secvente de parole one-time bazate pe functii one-way: schema de parole
one-time Lamport este descrisa mai jos. Aceasta metoda este mai eficienta (n ceea
ce priveste latimea de banda) decat parolele one-time actualizate secvential, si poate
fi privita ca un protocol provocare-raspuns unde provocarea este definita explicit de
pozitia curenta din secventa de parole. Aplicatii practice legate de aceste parole au
fost prezentate n RFC 1938 [57].
Parole one-time bazate pe functii one-way (Schema Lamport [68])
In schema de parole one-time Lamport, utilizatorul ncepe cu un secret w. O functie
one-way H este folosita pentru a defini secventa de parole: w, H(w), H(H(w)), . . .,H t (w).
Parola pentru sesiunea i, 1 i t, este wi = H ti (w).

20

Capitolul 2. Protocoale de identificare si autentificare

Protocol 2.2.2 (Schema Lamport) (parole one-time bazate pe functii one-way). A se


identific
a n fata lui B folosind parole one-time dintr-o secvent
a.
1. (Initializare)
(a) Utilizatorul A ncepe cu un secret w. Fie H o functie one-way.
(b) Se fixeaz
a o constant
a t (t = 100 sau t = 1000), care defineste numarul de
identificari permise. (Dupa epuizarea acestui numar sistemul este reinitializat
cu un alt w pentru a preveni atacurile prin reluare).
(c) A transfer
a lui B (secretul partajat initial w0 = H t (w)), ntr-un mod care
garanteaz
a autenticitatea. B initializeaz
a contorul pentru A la iA = 1.
2. (Mesajele protocolului) La identificarea numarul i, 1 i t, se procedeaz
a astfel:
A B : A, i, wi (= H ti (w))

(2.1)

Aici A B : X semnifica faptul ca A transmite lui B mesajul X.


3. (Actiunile protocolului) Pentru a se identifica n sesiunea i, A execut
a urmatoarele:
(a) A calculeaz
a wi = H ti (w) (ceea ce se poate face simplu pornind de la w sau
de la o valoarea intermediar
a salvata initial la calculul lui H t (w)) si transmite
mesajul (2.1) lui B.
(b) B verifica faptul ca i = iA , si ca parola primita wi satisface relatia: H(wi ) =
wi1 . Daca ambele verificari reusesc, B accept
a parola, incrementeaz
a pe iA
(iA iA + 1) si salveaz
a wi pentru urmatoarea sesiune de identificare.

2.3

Autentificare puternic
a (provocare - r
aspuns)

Ideea n protocoalele criptografice bazate pe provocare-raspuns este ca o entitate (reclamantul) si dovedeste identitatea unei alte entitati (verificatorul) prin demonstrarea
cunoasterii unui secret despre care se stie ca este asociat acelei entitati, fara a dezvalui
acel secret verificatorului n timpul rularii protocolului4 . Aceasta se face prin furnizarea
unui raspuns la o provocare ce variaza n functie de timp, iar raspunsul depinde de secretul
entitatii si de provocare. Provocarea este de regula un numar ales de o entitate (n mod
aleator si secret) la nceputul protocolului. Daca linia de comunicatie este monitorizata,
raspunsul de la o executie a protocolului de identificare nu ofera adversarului informatii
ce pot fi folosite la o identificare ulterioara, ntrucat provocarile ulterioare vor fi diferite.
Mare parte din munca n domeniul protocoalelor de identificare a fost initiata de Needham
si Schroeder [86].
4
In unele mecanisme secretul este cunoscut de verificator si este folosit pentru a verifica raspunsul; n
altele secretul nu trebuie sa fie cunoscut de verificator

2.3 Autentificare puternic


a (provocare - r
aspuns)

2.3.1

21

Parametri variabili n timp

Parametri variabili n timp pot fi folositi n protocoalele de identificare pentru a preveni


atacurile prin reluare si intercalare (vezi capitolul 4), pentru a oferi unicitate si ncadrare
ntr-o unitate de timp si pentru a preveni anumite atacuri bazate pe text ales. De asemenea, acesti parametri pot fi folositi n protocoalele pentru schimb autentificat de chei.
Gong [52] ofera o trecere n revista asupra parametrilor variabili n timp si asupra reluarii
mesajelor.
Paramentri variabili n timp care au rolul de a distinge o instanta a unui protocol de
alta se numesc uneori nonce (number once - numere care se folosesc o singura data).
Definitie 2.3.1 Un nonce este o valoare ce se foloseste cel mult o data pentru acelasi
scop. De regul
a rolul acestuia este de a preveni atacurile prin reluare nedectabile.
Termenul nonce este folosit adesea pentru a se referi la un numar aleator ntr-un
protocol provocare-raspuns. In continuare sunt prezentate cele trei clase de parametri
variabili n timp: numere aleatoare, numere de secventa si marci de timp. Adesea, pentru
a asigura securitatea protocolului, trebuie garantata integritatea acestor parametri (criptografic prin legarea lor cu alte date n secventele provocare-raspuns). Aceasta este valabil
n special la protocoalele n care singura cerinta pentru acesti parametri este unicitatea.
In continuare sunt enumerate cateva probleme n ceea ce priveste acesti parametri:
1. Verificabilitatea ncadrarii ntr-o secventa de timp poate fi furnizata prin folosirea
de numere aleatoare n mecanismele provocare-raspuns, marci de timp mpreuna cu
ceasuri distribuite sau numere de secventa cu mentinerea unor informatii de stare
sub forma de pereche (reclamant, verificator).
2. Pentru a oferi garantii n ceea ce priveste ncadrarea ntr-o secventa de timp sau
unicitatea, verificatorul protocolului controleaza parametri ce depind de timp, direct (prin alegerea unui numar aleator) sau indirect (prin informatie ntretinuta n
legatura cu o secventa partajata sau printr-un ceas).
3. Pentru a identifica n mod unic un mesaj sau o secventa de mesaje (o instanta a unui
protocol), pot fi folosite nonce-uri extrase dintr-o secventa monoton crescatoare (de
ex. numere de secventa sau numere seriale si marci de timp daca este garantat faptul
ca acestea sunt crescatoare si unice), sau numere aleatoare cu o dimensiune suficient
de mare. Unicitatea este necesara de regula doar pentru o anumita perioada de timp
sau pentru perioada de viata a unei chei.
4. Se pot folosi combinatii de parametri variabili n timp, de ex., numere aleatoare
combinate cu marci de timp sau numere de secventa. Aceasta poate garanta ca un
numar pseudo-aleator nu este repetat.
Numere aleatoare
Numerele aleatoare pot fi folosite n mecanismele provocare-raspuns, pentru a oferi asigurari n ceea ce priveste unicitatea si ncadrarea ntr-o secventa de timp, si pentru a preveni
anumite atacuri prin reluare si intercalare. Numerele aleatoare pot fi folosite si pentru a
oferi nepredictibilitate, de exemplu pentru a preveni atacurile prin text ales.

22

Capitolul 2. Protocoale de identificare si autentificare

Termenul numar aleator, atunci cand este folosit n contextul protocoalelor de identificare si autentificare, include numerele pseudoaleatoare care sunt nepredictibile pentru
un adversar; aceasta e diferit fata de conceptul de numar aleator n sens statistic. In
descrierea protocoalelor apare propozitia se alege un numar aleator care trebuie interpretata astfel: se alege un numar dintr-un spatiu cu distributie uniforma sau se alege
dintr-o distributie uniforma.
Numerele aleatoare sunt folosite n protocoalele provocare-raspuns n felul urmator:
o anumita entitate include un numar aleator (nou) ntr-un mesaj pe care l transmite.
Un mesaj primit ulterior (de exemplu, urmatorul mesaj al aceleiasi instante a protocolului), a carui constructie necesita cunoasterea numarului aleator si care este legat n mod
inseparabil de acest numar aleator, este considerat ca fiind recent pe baza faptului ca
numarul aleator leaga cele doua mesaje. Legatura inseparabila este necesara pentru a
preveni adaugarea unui nonce la un mesaj vechi.
Numerele aleatoare folosite n acest mod au rolul de a fixa un punct relativ n timp
pentru entitatile implicate, analog cu un ceas partajat. Timpul maxim permis ntre doua
mesaje ale protocolului este de regula limitat si este controlat de un cronometru local si
independent.
Remarca 2.3.2 Termenul recent folosit n contextul protocoalelor provocare-r
aspuns
trebuie nteles ca a fost creat ulterior nceperii instantei curente a protocolului. Aceasta
nu previne atacurile prin intercalare ce folosesc sesiuni paralele.
Remarca 2.3.3 (dezavantaje ale numerelor aleatoare) Multe protocoale ce implica numere aleatoare necesit
a generarea de numere aleatoare sigure din punct de vedere criptografic (nepredictibile). Daca se folosesc generatoare de numere pseudoaleatoare, e nevoie
de o valoare initial
a cu entropie suficient de mare. Atunci cand numerele aleatoare sunt
folosite n mecanismele provocare-raspuns n locul marcilor de timp, de regul
a protocolul
implic
a un mesaj suplimentar, iar cel ce lanseaz
a provocarea trebuie sa mentin
a temporar
informatie de stare, dar aceasta doar pan
a cand raspunsul este verificat.
Numere de de secvent
a
Un numar de secventa (numar serial sau valoare contor) are rolul unui numar unic de
identificare a unui mesaj si de regula este folosit pentru a detecta reluarea unui mesaj.
Pentru fisierele stocate, numerele de secventa au rolul de numere de versiune a fisierului
respectiv. Numerele de secventa sunt specifice unei anumite perechi de entitati si trebuie
asociate implicit sau explicit atat cu originatorul cat si cu receptorul unui mesaj; de regula,
e nevoie de secvente diferite pentru mesajele de la A la B, respectiv pentru mesajele de
la B la A.
Entitatile folosesc o anumita politica predefinita pentru numerotarea mesajelor. Un
mesaj este acceptat doar daca numarul de secventa pe care l contine nu a fost folosit
anterior (sau nu a fost folosit de o anumita perioada de timp) si satisface politica stabilita. Cea mai simpla politica este ca numerele de secventa sa nceapa de la zero si sa fie
incrementate secvential iar fiecare mesaj are numarul de secventa cu unu mai mare decat
mesajul precedent. O politica mai putin restrictiva stipuleaza ca mesajele sa fie numerotate crescator; aceasta permite posibilitatea ca anumite mesaje sa fie pierdute datorita

2.3 Autentificare puternic


a (provocare - r
aspuns)

23

unor erori de comunicatie, dar mpiedica detectarea unor mesaje pierdute ca urmare a
interventiei unor adversari.
Remarca 2.3.4 (dezavantaje ale numerelor de secvent
a) Folosirea numerelor de secvent
a
necesit
a nregistrarea si mentinerea unor informatii de stare pe termen lung pentru fiecare
verificator, informatii necesare pentru a valida mesajele primite. Pot fi necesare anumite proceduri pentru resetarea numerelor de secvent
a n anumite situatii anormale (de
arzierile fortate nu sunt de regul
exemplu, repornirea sistemelor). Int
a detectabile. Ca o
consecint
a a acestor dezavantaje si a sincroniz
arilor necesare, numerele de secvent
a sunt
aplicabile n grupuri mai mici, nchise.
M
arci de timp
Marcile de timp pot fi folosite pentru a oferi garantii pentru ncadrarea ntr-o secventa
de timp si unicitate, pentru a detecta reluarea mesajelor. Pot fi folosite si pentru a implementa privilegii de acces pe o perioada limitata si pentru a detecta ntarzierile fortate.
Marcile de timp functioneaza n modul urmator: entitatea care initiaza un mesaj
obtine o marca de timp de la ceasul local si o leaga n mod criptografic de mesaj. La
receptionarea unui mesaj ce contine o marca de timp, o a doua entitate obtine ora locala
de la ceasul sau sistem si o compara cu marca de timp primita. Mesajul este considerat
valid daca:
1. diferenta dintre cele doua marci de timp este ntr-un interval acceptat (interval a
carui dimensiune este de regula 10-20 milisecunde, stabilit n asa fel ncat sa fie egal
cu timpul maxim necesar pentru transferul si procesarea mesajului plus diferenta
de sincronizare dintre cele doua ceasuri).
2. (optional) nu a fost receptionat de la aceeasi sursa, pana n momentul respectiv, un
mesaj cu aceeasi marca de timp. Aceasta verificare se poate face daca verificatorul
are o lista cu toate marcile de timp receptionate de la fiecare entitate ntr-o anumita
perioada de timp. O alta metoda este de a nregistra ultima marca de timp valida
folosita de fiecare sursa (n acest caz verificatorul accepta doar marci de timp n
ordine strict crescatoare).
Securitatea verificarilor pe baza de marci de timp se bazeaza pe folosirea unor ceasuri
sincronizate ce nu pot fi modificate. Este important ca un adversar sa nu poata da
un ceas napoi pentru a face valide mesaje vechi sau sa dea un ceas nainte pentru a
pregati mesaje pe care le poate folosi ulterior.
Remarca 2.3.5 (dezavantaje ale marcilor de timp) Protocoalele bazate pe marci de timp
necesit
a ca ceasurile sa fie sincronizate si securizate. Prent
ampinarea modific
arii ceasurilor de catre adversari este greu de garantat n medii distribuite. Mentinerea unor
liste cu marcile de timp folosite are urmatoarele dezavantaje: poate necesita un spatiu de
stocare mare si poate necesita un timp de verificare mare. Cu toate ca exista solutii pentru
sincronizarea unor ceasuri distribuite, daca sincronizarea se face prin protocoale de retea,
aceste protocoale necesit
a la randul lor sa fie sigure, ceea ce implica autentificare. Aceasta
duce la o problem
a de securitate circular
a daca autentificarea este la randul ei bazat
a pe
m
arci de timp.

24

Capitolul 2. Protocoale de identificare si autentificare

Remarca 2.3.6 (comparatie a parametrilor variabili n timp) Folosirea marcilor de timp


n protocoale ofera avantajul ca e nevoie de mai putine mesaje (de regul
a mai putin cu
unul) si nu exista cerinta de a mentine informatie de stare pentru fiecare entitate (asa cum
era cazul la numerele de secvent
a) sau informatie de stare pe termen scurt pentru fiecare
conexiune (asa cum era cazul la numerele aleatoare). Minimizarea informatiei de stare
este o actiune important
a pentru aplicatiile client-server. Dezavantajul major al marcilor
de timp este necesitatea de a sincroniza si securiza ceasurile sistemelor distribuite. Marcile
de timp pot fi nlocuite de regul
a de provoc
ari cu numere aleatoare si un mesaj de raspuns
suplimentar.

2.3.2

Provocare-r
aspuns prin tehnici simetrice

Mecanismele provocare-raspuns bazate pe tehnici cu chei simetrice necesita ca reclamantul


si verificatorul sa detina n comun o cheie simetrica. In sisteme nchise cu un numar mic
de utilizatori, fiecare pereche de utilizatori poate partaja o cheie simterica; n schimb, n
sistemele mari ce folosesc tehnici cu chei simetrice, protocoalele de identificare implica
si utilizarea unui server on-line de ncredere cu care fiecare entitate partajeaza o cheie
simetrica. Serverul on-line ofera o cheie de sesiune comuna pentru fiecare pereche de
entitati care doresc sa se autentifice una n fata celeilalte.
Provocare-r
aspuns bazat pe criptare cu cheie simetric
a - Atat protocolul Kerberos
[63], [88], [121] cat si protocolul Needham-Schroeder [86], ofera autentificare de entitati
pe baza de criptare simetrica si implica folosirea unui tert on-line de ncredere. Aceste
protocoale sunt detaliate n capitolul 3, fiind protocoale care realizeaza si transport de
cheie.
In continuare sunt descrise trei tehnici simple bazate pe ISO/IEC 9798-2 [5]. Acestea
presupun existenta unei chei secrete (si n acest caz nu mai este nevoie de un server
on-line). In acest caz doua entitati pot efectua autentificare de entitati unilaterala printrun singur mesaj folosind marci de timp sau prin doua mesaje daca se folosesc numere
aleatoare sau numere de secventa. Autentificarea mutuala necesita un mesaj n plus fata
de autentificarea unilaterala. Reclamantul si dovedeste identitatea prin demonstarea
cunoasterii cheii secrete cu care cripteaza provocarea (si eventual date suplimentare).
Remarca 2.3.7 (integritatea datelor) Atunci cand n protocoalele de autentificare se
foloseste criptare, de regul
a trebuie garantat
a si integritatea datelor pentru a asigura securitatea. De exemplu, la mesajele care au o lungime mai mare de un bloc, rearanjarea
blocurilor cifrate nu poate fi detectat
a n modul de operarea ECB, chiar si criptarea n
modul de operarea CBC ofera doar o solutie partial
a.
Mecanisme 9798-2: In ceea ce priveste notatia, rA si tA denota un numar aleator,
respectiv o marca de timp generate de A. In aceste mecanisme, marca de timp tA poate
fi nlocuita de un numar de secventa nA ce ofera garantii putin diferite. EK reprezinta un
algoritm de criptare simetric cu cheia K partajata de A si B. Se pot folosi chei distincte
KAB , KBA pentru comunicatie unidirectionala. Se presupune ca ambele entitati cunosc
identitatea pretinsa a celeilalte, ori din context ori din folosirea unor campuri de date
aditionale transmise n clar. Mesajele optionale sunt marcate cu asterisc (*), iar virgula
denota concatenare (n contextul functiei de criptare EK ).

2.3 Autentificare puternic


a (provocare - r
aspuns)

25

1. autentificare unilaterala bazata pe marci de timp:


A B : EK (tA , B ) (1)
Dupa primirea si decriptara mesajului (1), B verifica daca marca de timp este
valida si (optional) verifica daca identificatorul primit corespunde cu identitatea sa.
Identificatorul B mpiedica un adversar sa retrimita mesajul ulterior lui A, atunci
cand se foloseste o singura cheie bidirectionala K.
2. autentificare unilaterala folosind numere aleatoare: Pentru a evita folosirea marcilor
de timp, se pot folosi numere aleatoare, costul fiind un mesaj suplimentar:
A B : rB
(1)

A B : EK (rB , B ) (2)
B decripteaza mesajul primit (2) si verifica daca numarul aleator este egal cu cel
transmis lui A n mesajul (1). Optional, B verifica daca identificatorul din mesajul
(2) este al sau (astfel este prevenit un atac prin reflexie n cazul folosirii unei chei
bidirectionale K). Pentru ca atacurile asupra schemei de criptare EK prin text ales
sa fie prevenite, A poate de asemenea sa includa n raspunsul sau un numar aleator
suplimentar sau forma provocarii ar putea fi restrictionata; cerinta importanta este
ca numerele folosite ca provocari sa nu se repete.
3. autentificare mutuala folosind numere aleatoare:
A B : rB
(1)

A B : EK (rA, rB , B ) (2)
A B : EK (rB , rA )
(3)
La primirea mesajului (2), B efectueaza aceleasi teste ca si la autentificarea unilaterala, iar provocarea rA o include n mesajul (3). La decriptarea mesajului (3), A
verifica daca ambele numere aleatoare corespund cu cele din mesajele precedente.
Al doilea numar aleator, cel ales de A, are doua roluri: provocare pentru B si mijloc
de prevenire ale atacurilor prin text ales.
Remarca 2.3.8 (dublarea autentificarii unilaterale) Cu toate ca putem obtine autentificare mutuala prin rularea de doua ori a fiec
aruia din protocoalele descrise mai sus (o data
pentru fiecare directie), o astfel de solutie are un neajuns important din moment ce cele
dou
a autentificari, nefiind legate una de alta, nu pot fi asociate logic cu o singura rulare
a protocolului.
Provocare-r
aspuns bazat pe functii one-way cu cheie - algoritmul de criptare din
mecanismele anterioare poate fi nlocuit cu o functie one-way sau o functie neinversabila,
functie care se aplica asupra cheii partajate si asupra provocarii. Aceasta solutie este de
preferat atunci cand nu pot fi folositi algoritmi de criptare. Modificarile ce trebuie efectuate asupra mecanismelor 9798-2 prezentate mai sus (vor rezulta mecanismele ISO/IEC
9798-4) sunt urmatoarele:

26

Capitolul 2. Protocoale de identificare si autentificare


1. functia de criptare EK este nlocuita de o functie MAC hK (functiile MAC sunt
definite n sectiunea 6.2).
2. n loc de a decripta si de a verifica daca sunt identice informatiile, de data aceasta
receptorul unui mesaj calculeaza valorile MAC avand la intrare valori cunoscute si
accepta autentificarea daca valoarea calculata corespunde cu valoarea primita.
3. pentru ca receptorul sa poata calcula independent valorile MAC, valoarea tA trebuie
transmisa n clar n mesajul (1) al mecanismului cu un singur mesaj. rA trebuie
transmis n clar n mesajul (2) al mecanismului cu trei mesaje.

Mecanismul revizuit provocare-raspuns format din trei mesaje bazat pe functia MAC
hK ofera autentificare mutuala. Protocolul, numit SKID3 [18], are urmatoarele mesaje:
A B : rB
(1)
A B : rA, hK (rA, rB , B) (2)
A B : hK (rB , rA , A)
(3)
Campul suplimentar A este inclus n mesajul (3). Protocolul SKID2, obtinut prin
eliminarea mesajului (3) ofera autentificare unilaterala.

2.3.3

Provocare-r
aspuns prin tehnici asimetrice

In identificarea bazata pe provocare-raspuns se pot folosi tehnici bazate pe chei publice, n


care reclamantul demonstreaza cunoasterea cheii private ntr-unul din urmatoarele doua
moduri:
1. reclamantul decripteaza o provocare criptata cu cheia lui publica;
2. reclamantul semneaza digital o provocare.
La modul ideal, perechea (cheie privat
a, cheie public
a) folosita n astfel de mecanisme
nu ar trebui folosita pentru alte scopuri, din moment ce utilizarea combinata poate compromite securitatea. De asemenea, sistemul cu chei publice nu ar trebui sa fie susceptibil
a fi vulnerabil la atacuri prin text cifrat ales, din moment ce un adversar ar putea ncerca
sa extraga informatie prin impersonarea unui verificator si alegand n mod strategic si nu
aleator numarul folosit drept provocare.
Provocare-r
aspuns bazat pe decriptare cu chei publice
Identificare bazata pe decriptare cu cheie publica si martor:
A B : h(r), B, PA (r, B) (1)
AB:r
(2)
B alege un numar aleator r, calculeaza martorul x = h(r) (x demonstreaza cunoasterea
lui r fara a-l dezvalui) si calculeaza provocarea e = PA (r, B). PA denota criptare cu cheia
publica a lui A, iar h reprezinta o functie hash one-way. B trimite mesajul (1) lui A.
A decripteaza valoarea receptionata e si recupereaza r0 si B 0 , calculeaza x0 = h(r0 ) si

2.3 Autentificare puternic


a (provocare - r
aspuns)

27

ncheie protocolul daca x0 6= x (ceea ce implica r0 6= r) sau daca B 0 nu este egal cu


identificatorul B. Altfel, A trimite r = r0 lui B. B reuseste autentificare unilaterala a
lui A dupa ce verifica faptul ca valoarea r primita este identica cu cea trimisa initial.
Folosirea martorului previne atacurile bazate pe text ales.
Protocolul Needham-Schroeder cu chei publice modificat pentru identificare: Protocolul
Needham-Schroeder [86] ofera transport de chei (k1 , k2 ) de la A la B, respectiv B la A,
precum si autentificare mutuala. Daca nu e nevoie sa se stabileasca chei atunci k1 si k2
pot fi omise. Mesajele protocolului de identificare modificat vor fi:
A B : PB (r1 , A) (1)
A B : PA (r1 , r2 ) (2)
A B : r2
(3)
A genereaza un numar aleator r1 si cripteaza cu cheia publica a lui B numarul generat
mpreuna cu identitatea sa, A, iar mesajul criptat este trimis lui B, care l decripteaza
cu cheia s-a privata, genereaza un alt numar aleator r2 pe care, mpreuna cu valoarea r1
obtinuta prin decriptare l cripteaza cu cheia publica a lui A si trimite mesajul criptat lui
A. A decripteaza mesajul primit, verifica daca valorea r1 coincide cu cea creata initial si
trimite napoi lui B numarul aleator r2 . In momentul acesta A stie ca comunica cu B. La
primirea mesajului (3) B stie ca comunica cu A (pentru ca doar A putea decripta valoare
din mesajul (2)), prin urmare autentificarea mutuala este realizata.
Provocare-r
aspuns bazat pe semn
aturi digitale
Mecanisme X.509 bazate pe semnaturi digitale. Protocoalele de autentificare puternica
ITU-T X.509 cu doua si trei mesaje specifica tehnici de identificare bazate pe semnaturi
digitale si pe marci de timp respectiv provocari cu numere aleatoare.
Mecanisme 9798-3. In continuare dam trei mecanisme de identificare provocare-raspuns
bazate pe semnaturi digitale, care sunt analoage cu cele bazate pe criptarea cu cheie
simetrica prezentate n sectiunea 2.3.2, dar acestea corespund tehnicilor din ISO/IEC
9798-3. In ceea ce priveste notatia, SA reprezinta mecanismul de semnatura digitala al
lui A, certA reprezinta certificatul de cheie publica ce contine cheia publica semnata a lui
A. (In aceste mecanisme, daca verificatorul are cheia publica autentica a reclamantului,
certificatele pot fi omise, altfel se presupune ca verificatorul poseda informatia necesara
pentru a verifica validitatea cheii publice continute n certificatul primit).
1. autentificare unilaterala cu marci de timp:
A B : certA , tA , B, SA (tA , B) (1)
La primirea mesajului (1), B verifica daca marca de timp este valida, daca identificatorul primit B este al lui, si verifica daca semnatura este corecta (folosind cheia
publica a lui A extrasa din certificatul primit).
2. autentificare unilaterala cu numere aleatoare: Marcile de timp pot fi nlocuite cu
numere aleatoare, costul fiind un mesaj suplimentar:
A B : rB
(1)
A B : certA , rA , B, SA (rA , rB , B) (2)

28

Capitolul 2. Protocoale de identificare si autentificare


B verifica daca identificatorul primit este al lui si folosind cheia publica autentica a
lui A extrasa din certificatul primit, verifica validitatea semnaturii digitale. Numarul
aleator rA facand parte din semnatura sunt prevenite atacurile prin text ales.
3. autentificare mutuala cu numere aleatoare:
A B : rB
(1)
A B : certA , rA , B, SA (rA , rB , B) (2)
A B : certB , A, SB (rB , rA , A)
(3)
Procesarea mesajelor (1) si (2) este la fel ca mai sus. Mesajul (3) este procesat
analog cu mesajul (2).

2.4

Protocoale de identificare particularizate si cu


informatie zero

In aceasta sectiune sunt prezentate, discutate si analizate cateva protocoale create special
pentru a realiza identificare, protocoale ce folosesc tehnici asimetrice fara sa se bazeze pe
semnaturi digitale sau criptare cu chei publice si care evita folosirea criptosistemelor bloc,
a numerelor de secventa si a marcilor de timp. Aceste protocoale sunt oarecum similare
cu protocoalele bazate pe provocare-raspuns prezentate n sectiunea 2.3 dar se bazeaza
pe ideile sistemelor de demonstratii interactive si pe demonstratiile cu informatie zero,
implicand numere aleatoare nu numai ca provocari dar si ca angajament pentru a preveni
atacurile. O introducere non-matematica n demonstratiile cu informatie zero este data de
Quisquater, Guillou si Berson [105]. Mitropoulos si Meijer [82] fac o importanta trecere
n revista a demonstratiilor interactive si cu informatie zero cu accent pe identificare.
Sistemele de demonstratii interactive si notiunea de informatie zero a fost formalizata n
1985 de Goldwasser, Micali si Rackoff [51]. O descriere detaliata a demonstratiilor cu
informatie zero si o prezentare a rezultatelor importante din acest domeniu este facuta de
Oded Goldreich n [49].

2.4.1

Trecere n revist
a a conceptelor de informatie zero

Un dezavantaj al protocoalelor cu parole simple este acela ca atunci cand un reclamant


A (numit demonstrator n contextul protocoalelor cu informatie zero) transmite lui B
parola, B poate sa joace ulterior rolul lui A, l poate impersona pe A. Protocoalele
provocare-raspuns rezolva partial aceasta problema: A raspunde la provocarea primita
de la B pentru a demonstra cunoasterea unui secret ntr-o maniera ce depinde de timp,
oferind o informatie ce nu poate fi folosita n mod direct de B. Totusi, anumite informatii
partiale pot fi dezvaluite n legatura cu secretul reclamantului; un adversar ce joaca rolul
de verificator poate selecta n mod strategic anumite valori pe post de provocari pentru a
primi raspunsuri ce ofera acele informatii.
Protocoalele cu informatie zero (IZ) sunt proiectate pentru a rezolva aceste probleme,
prin permiterea unui demonstrator de a demonstra cunoasterea unui secret fara a dezvalui
nici o informatie (n afara de informatia pe care verificatorul o poate deduce nainte de
rularea protocolului) care poate fi transmisa mai departe de verificator altora n fata

2.4 Protocoale de identificare particularizate si cu informatie zero

29

carora doreste sa-l impersoneze pe demonstrator. Ideea este ca trebuie transmisa o singura
informatie si anume ca demonstratorul cunoaste secretul.
La modul general, un protocol IZ permite demonstrarea valorii de adevar a unei
asertiuni, fara a transmite nici o informatie despre asertiune n sine n afara valorii de
adevar. In acest sens, o demonstratie IZ este similara cu raspunsul primit de la un oracol
de ncredere.
Sisteme de demonstratii interactive si protocoale IZ
Protocoalele IZ prezentate sunt instante ale unor sisteme de demonstratii interactive, n
care un demonstrator si un verificator schimba mai multe mesaje (provocari si raspunsuri),
de regula mesajele depind de numere aleatoare, numere ce pot fi tinute secrete. Obiectivul
demonstratorului este de a convinge (a-i demonstra) verificatorul n legatura cu valoarea
de adevar a unei asertiuni, de exemplu, presupusa cunoastere a unui secret. Verificatorul
poate accepta sau respinge demonstratia. Notiunea traditionala, matematica, pentru
cuvantul demonstratie este modificata ntr-un joc interactiv n care demonstratiile sunt
probabilistice si nu absolute; n acest context, demonstratiile trebuie sa fie corecte doar
cu o anumita eroare de probabilitate, eroare care poate fi oricat de mica. Din acest motiv,
o demonstratie interactiva este numita uneori demonstratie prin protocol.
Demonstratiile interactive folosite pentru identificare pot fi formulate ca demonstratii
de cunoastere. A are n posesie un secret s, si ncearca sa l convinga pe B ca cunoaste
acel secret raspunzand n mod corect la interogari (ce implica valori cunoscute n mod
public si functii prestabilite), raspunsuri ce necesita cunoasterea secretului s. Trebuie
mentionat ca demonstrarea cunoasterii lui s difera de a demonstra ca astfel de valori s
exista - de exemplu, demonstrarea cunoasterii factorilor primi ai unui numar n, difera de
demonstrarea faptului ca n este compus.
O demonstratie interactiva se numeste demonstrare a cunoasterii daca are proprietatile
de completitudine si consistenta. Completitudinea poate fi privita ca o cerinta obisnuita
ca un protocol sa functioneze corespunzator n prezenta unor participanti onesti.
Definitie 2.4.1 (completitudine) O demonstratie interactiv
a este complet
a daca, n prezenta unor demonstratori si verificatori onesti, protocolul reuseste cu probabilitate cov
arsitoare (verificatorul accept
a asertiunea demonstratorului). Definitia cuvantului cov
arsitor depinde de aplicatie, de regul
a nseamn
a ca probabilitatea de a gresi este atat de
mic
a nc
at nu are relevant
a n practic
a.
Definitie 2.4.2 (consistent
a) O demonstratie interactiv
a este consistent
a daca exista un
algoritm polinomial M , cu urmatoarea proprietate: daca un demonstrator care-l impersoneaz
a pe A reuseste cu o probabilitate non-neglijabil
a sa execute protocolul cu B, atunci
M poate fi folosit pentru a extrage informatie de la acest demonstrator (informatie echivalent
a cu secretul lui A) ceea ce permite cu o probabilitate cov
arsitoare executia ulterioar
a
cu succes a protocolului.
O explicatie alternativa a definitiei 2.4.2 este: secretul demonstratorului s mpreuna cu
datele publice satisfac un anumit predicat polinomial, iar o alta solutie a acestui predicat
(sau aceeasi solutie) poate fi extrasa, ceea ce permite executia ulterior cu succes a unor
instante ale protocolului.

30

Capitolul 2. Protocoale de identificare si autentificare

Din moment ce orice entitate capabila de a-l impersona pe A trebuie sa cunoasca


echivalentul secretului lui A (M poate fi folosit pentru a extrage acel secret n timp polinomial), consistenta garanteaza ca protocolul ofera ntr-adevar demonstrarea cunoasterii
informatiei - pentru reusita este nevoie de informatie echivalenta cu cea pentru care se
face interogarea. Consistenta mpiedica un atacator, care joaca rolul de demonstrator,
sa convinga un verificator onest. O metoda standard pentru demonstrarea consistentei
unui protocol este de a presupune ca exista un demonstrator care nu e onest, capabil de
a executa cu succes protocolul, si a arata cum poate permite aceasta calculul secretului
demonstratorului real.
Din moment ce o demonstratie interactiva a cunoasterii trebuie sa fie consistenta
pentru a fi utila din punct de vedere criptografic, proprietatea principala a protocoalelor
IZ este efectiv aspectul de informatie zero.
Definitie 2.4.3 (proprietatea informatie zero) Un protocol care este o demonstratie a
cunoasterii are proprietatea informatie zero daca este simulabil astfel: exista un algoritm
polinomial (simulatorul) care poate produce, la introducerea asertiunii ce trebuie demonstrat
a dar far
a a interactiona cu demonstratorul real, transcripturi ce nu se deosebesc cu
nimic fat
a de cele care rezult
a din interactiunea cu un demonstrator real.
Definitia 2.4.3 implica faptul ca un demonstrator care executa protocolul (chiar si
atunci cand interactioneaza cu un adversar) nu releva nici o informatie (despre secretul
sau, alta decat aceea ca asertiunea este adevarata) n afara de cele ce pot fi calculate n
timp polinomial doar din informatia disponibila public. Astfel, participarea nu mareste
sansa impersonarii ulterioare.
Remarca 2.4.4 (protocoale IZ simulate si observatori ai protocolului) Sa consideram
un observator C care este martorul unei demonstratii interactive cu informatie zero,
demonstratie ce implica demonstratorul A care trebuie sa conving
a verificatorul B (B 6=
C) ca detine o informatie. Demonstratia nu i ofera nici o garantie lui C. (A si B pot
avea o ntelegere de a conspira mpotriva lui C, asupra provoc
arilor ce vor fi folosite).
Analog, o demonstratie interactiv
a cu informatie zero nu ofera nici o garantie daca este
reluat
a. Acest aspect este fundamental n ceea ce priveste proprietatea informatie zero
si n ceea ce priveste conditia ca demonstratiile sunt simulabile doar de catre verificator. Demonstratiile interactive transmit informatie doar verificatorilor interactivi care
pot alege propriile provoc
ari aleatoare.
Definitie 2.4.5 (informatie zero computational
a sau perfect
a) Un protocol este de tip
informatie zero computational daca un observator restrictionat la teste probabilistice polinomiale nu poate face distinctia ntre transcripturi reale respectiv simulate. Pentru ca un
protocol sa fie de tip informatie zero perfect, distributia de probabilitate a transcripturilor
trebuie s
a fie identic
a.
In cazul protocoalelor de informatie zero computationale, transcripturile reale si cele
simulate sunt de nediferentiat cu algoritmi polinomial. Orice informatie extrasa de verificator prin interactiunea cu un demonstrator nu ofera nici un avantaj verificatorului n
timp polinomial.

2.4 Protocoale de identificare particularizate si cu informatie zero

31

Remarca 2.4.6 (securitatea garantat


a de proprietatea IZ si consistent
a) Nici proprietatea IZ (definitia 2.4.3) si nici proprietatea de consistent
a (definitia 2.4.2) nu garanteaz
a ca protocolul este sigur. Nici una din cele doua propriet
ati nu are o valoarea mare
dec
at daca problema cu care este confruntat adversarul este dificila din punct de vedere
computational.
Comentarii asupra protocoalelor IZ si asupra altor protocoale asimetrice
1. nu se degradeaza prin utilizare: securitatea protocoalelor IZ nu se degaradeaza n
timp prin utilizare si rezista la atacurile prin text ales. Aceasta este cea mai atractiva
proprietate practica a acestor protocoale.
2. criptarea evitata: multe tehnici IZ evita folosirea algoritmilor de criptare, ceea ce
poate reprezenta un avantaj n anumite situatii.
3. eficienta: cu toate ca unele protocoale IZ sunt foarte eficiente, de regula acestea
necesita o latime de banda mai mare si calcule mai laborioase decat protocoalele
bazate pe chei publice.
4. presupuneri nedemonstrate: multe protocoale IZ se bazeaza pe presupuneri nedemonstrate (la fel ca si tehnicile cu chei publice) cum ar fi dificultatea de a factoriza
ntregi sau problema rezidurilor cuadratice.
Exemple de protocoale IZ: protocolul de identificare Fiat-Shamir
Ideea generala a protocoalelor IZ este ilustrata de versiunea de baza a protocolului FiatShamir, protocol introdus pentru prima data n lucrarea [42]. Este prezentata versiunea
de baza a acestui protocol (protocolul 2.4.7), versiune care la ora actuala are doar o
importanta istorica iar mai apoi este prezentata versiunea mult mai eficienta, folosita n
practica (protocolul Feige-Fiat-Shamir 2.4.9 publicat prima data n [41]), care are mai
multe ntrebari pe iteratie fata de versiunea de baza n care B face o singura provocare
de un bit pe iteratie.
Obiectivul este ca A sa se identifice prin demonstrarea cunoasterii secretului s (asociat
cu A prin date publice autentice) oricarui verificator B, fara a dezvalui nici o informatie
despre s, informatie ce nu poate fi calculata de B naintea rularii protocolului. Securitatea
se bazeaza pe dificultatea extragerii radacinilor patrate modulo numere ntregi compuse
mari n a caror descompunere n factori primi nu este cunoscuta, ceea ce este echivalent
cu factorizarea lui n.
a) A i dovedeste
Protocol 2.4.7 (Protocolul de identificare Fiat-Shamir versiunea de baz
lui B cunoasterea secretului s prin executarea a t runde a protocolului format din 3
mesaje).
1. (Initializare)
(a) Un tert de ncredere T selecteaz
a si publica un numar n = pq de tip RSA [111]
pastr
and p si q secrete.

32

Capitolul 2. Protocoale de identificare si autentificare


(b) Fiecare demonstrator A selecteaz
a un numar secret s relativ prim cu n, 1
2
s n 1, calculeaz
a v = s mod n, si nregistreaz
a la T valoarea v ca fiind
cheia sa publica5 .
2. (Mesajele protocolului) Fiecare din cele t runde are trei mesaje de forma:
A B : x = r2 mod n
(1)
A B : e {0, 1}
(2)
A B : y = r se mod n (3)
3. (Actiunile protocolului) Urmatorii pasi sunt iterati de t ori (secvential si independent). B accept
a demonstratia daca toate cele t iteratii se ncheie cu succes.
(a) A alege un numar aleator (angajamentul) r, 1 r n 1, si trimite martorul
x = r2 mod n lui B.
(b) B alege aleator provocarea ca fiind bitul e = 0 sau e = 1 si o trimite lui A (n
mesajul 2).
(c) A calculeaz
a si trimite lui B raspunsul y, care este y = r (daca e = 0) sau
y = r s mod n (dac
a e = 1).
(d) B respinge demonstratia daca y = 0 si o accept
a daca y 2 x v e mod n.
functie de e, y 2 = x sau y 2 = xv mod n, din moment ce v = s2 mod n.
(In
Verificarea y = 0 previne cazul r = 0).

Protocolul 2.4.7 poate fi explicat si justificat informal astfel: provocarea e necesita


ca A sa fie capabil sa raspunda la doua ntrebari, una din ele demonstrand cunoasterea
secretului s, iar cealalta, care este o ntrebare simpla (pentru demonstratorii onesti),
mpiedica trisarea. Un adversar care-l impersoneaza pe A poate ncerca sa triseze prin
selectarea lui r aleator si prin stabilirea lui x = r2 /v, astfel putand raspunde corect la
provocarea e = 1, cu raspunsul y = r dar nu poate raspunde la provocarea e = 0, care
necesita cunoasterea radacinii patrate a lui x mod n. Un demonstrator A care cunoaste
s poate raspunde la ambele provocari. Necunoasterea lui s nu permite decat raspunsul
la cel mult una din cele doua provocari, astfel ca probabilitatea de a nu fi detectat un
adversar este 1/2. Pentru a scadea probabilitatea de succes a unui adversar la o valoare
mica, de exemplu 2t (unde t = 20 sau t = 40), protocolul este iterat de t ori, iar B
accepta identitatea lui A numai daca toate cele t provocari primesc raspuns corect.
Remarca 2.4.8 (informatia secret
a dezvaluit
a de A) Raspunsul y = r este independent
de secretul s al lui A, iar raspunsul y = r s mod n nu ofera nici o informatie despre s
ntruc
at numarul aleator r nu este cunoscut de B. Perechile de informatii (x, y) extrase
de la A, pot fi simulate de un verificator B prin alegerea aleatoare a valorii y si prin
definirea lui x = y 2 sau y 2 /v mod n. Cu toate ca nu aceasta este modalitatea prin care
A construieste perechile (x, y), astfel de perechi au o distributie de probabilitate care nu
se deosebeste de perechile create de A; aceasta stabileste proprietatea de informatie zero.
ciuda abilitatii de a simula demonstratii, B nu l poate impersona pe A deoarece B nu
In
poate anticipa provoc
arile n timp real.
5
T ar trebui sa verifice conditia cmmdc(s, n) = 1 sau echivalent cmmdc(v, n) = 1, pentru ca
demonstratia sa fie consistenta; B trebuie sa opreasca protocolul daca cmmdc(y, n) 6= 1, unde y este
raspunsul lui A din al treilea mesaj.

2.4 Protocoale de identificare particularizate si cu informatie zero

33

Structura general
a a protocoalelor IZ
Protocolul 2.4.7 ilustreaza structura generala a unei clase de protocoale IZ cu trei mesaje:
A B martor
A B provocare
A B r
aspuns
Demonstratorul care pretinde ca este A selecteaza un numar aleator dintr-o multime
predefinita, numar care reprezinta angajamentul sau secret iar pe baza acestui numar
aleator calculeaza un martor asociat care este facut public. Aceasta ofera o entropie
initiala pentru ca sa difere de alte executii ale protocolului, si defineste o multime de
ntrebari pentru care demonstratorul pretinde ca stie sa raspunda, prin urmare si raspunsurile sunt fixate a priori. Prin modul n care este proiectat protocolul, doar entitatea
legitima A, care cunoaste secretul, este capabila sa raspunda la toate ntrebarile, iar
raspunsul la oricare din aceste ntrebari nu ofera nici o informatie despre secretul lui A.
Provocarea ulterioara a lui B consta n a alege una din aceste ntrebari. A ofera raspunsul
si B verifica daca este corect. Protocolul este iterat, daca e necesar, pentru a micsora
probabilitatea de reusita a adversarilor.

2.4.2

Protocolul de identificare Feige-Fiat-Shamir

Protocolul Fiat-Shamir [42] - versiunea de baza (protocolul 2.4.7) poate fi generalizat iar
protocolul Feige-Fiat-Shamir (FFS) [41] (protocolul 2.4.9) este o astfel de generalizare.
Protocolul FFS implica o entitate care se identifica prin demonstrarea cunoasterii unui
secret folosind o demonstratie cu informatie zero. Protocolul nu dezvaluie nici o informatie
partiala n legatura cu valoare secreta de identificare a lui A. Protocolul necesita putine
calcule, ceea ce l face potrivit a fi implementat n dispozititve cu putere de calcul redusa.
Protocol 2.4.9 (Protocolul de identificare Feige-Fiat-Shamir) A si demonstreaz
a identitatea n fata lui B prin executia unui protocol cu 3 mesaje.
1. (Alegerea parametrilor sistemului) Un tert de ncredere T alege si publica numarul
natural n = pq pentru toti utilizatorii, dupa ce a ales cele doua numere prime secrete
p si q ambele congruente cu 3 mod 4, si astfel nc
at factorizarea lui n sa fie nefezabila
computational6 . (n este un ntreg Blum si 1 este un nonreziduu cuadratic mod n
av
and simbolul lui Jacobi +1). Doua numere ntregi t si k sunt definite ca parametri
de securitate.
a urmatoarele:
2. (Alegerea secretelor entitatilor) Fiecare entitate A execut
(a) Alege k numere aleatoare ntregi s1 , s2 , . . . , sk astfel nc
at 1 si n 1, si k
biti aleatori b1 , . . . , bk . (cmmdc(si , n) = 1)
(b) Calculeaz
a vi = (1)bi (s2i )1 mod n pentru 1 i k. (Aceasta permite ca vi
sa ia valori ntregi care sunt relativ prime cu n si au simbolul lui Jacobi +1)
6
Prin nefezabil computational trebuie nteles ca oricata putere de calcul am avea la dispozitie, va
trece foarte mult timp pana cand se va gasi o solutie

34

Capitolul 2. Protocoale de identificare si autentificare


(c) A se identifica n mod non-criptografic (printr-un act de identitate sau printro fotografie) n fata lui T , care nregistreaz
a cheia publica a lui A ca fiind
(v1 , . . . , vk ; n), cheia privata (s1 , . . . , sk ) si n fiind cunoscuta doar de A.
3. (Mesajele protocolului) Fiecare din cele t iteratii are
form
a:
A B : x(= r2 mod n)
A B : (e1 , . . . ,Q
ek ), ei {0, 1}
A B : y(= r ej =1 sj mod n)

trei mesaje cu urmatoarea


(1)
(2)
(3)

4. (Actiunile protocolului) Pasii de mai jos sunt executati de t ori; B accept


a identitatea
lui A dac
a toate cele t iteratii se ncheie cu succes. Presupunem ca B are cheia
public
a autentica a lui A (v1 , . . . , vk ; n); altfel, se poate transmite un certificat n
mesajul (1).
(a) A alege un numar aleator r, 1 r n 1, si un bit aleator b; calculeaz
a
b
2
martorul x = (1) r mod n si l trimite lui B.
(b) B trimite lui A ca provocare un vector de k biti aleatori: (e1 , . . . , ek ).
Q
(c) A calculeaz
a si trimite lui B (raspunsul): y = r ej =1 sj mod n reprezint
a
produsul modulo n dintre r si acele valori sj specificate n provocare.
Q
e
a z = y 2 kj=1 vj j mod n, si verifica faptul ca z = x si z 6= 0.
(d) B calculeaz
(De ultimul test este nevoie pentru a preveni ca adversarul sa aiba succes prin
alegerea triviala a lui r = 0).
Remarca 2.4.10 (securitatea protocolului de identificare FFS)
1. (probabilitatea de falsificare) Securitatea protocolului FFS mpotriva atacurilor cu
mesaje alese este demonstrabil
a n urmatorul sens: daca se consider
a ca factorizarea
kt
lui n este dificila, cel mai bun atac are o probabilitata egal
a cu 2
de a realiza cu
succes impersonare.
2. (presupunerile de securitate necesare) Securitatea se bazeaz
a pe dificultatea de a
extrage rad
acina patrat
a modulo n, pentru numere compuse n a caror factorizare
nu este cunoscuta.
3. (informatie zero si consistent
a) Protocolul este (relativ la un tert de ncredere) o
demonstratie a cunoasterii cu informatie zero consistent
a daca k = O(log log n)
si t = (log n). O privire simplista asupra unui k fixat este aceea ca verificatorul
(interesat de consistent
a) doreste un t mai mare (mai multe iteratii) pentru ca probabilitatea de frauda sa scad
a, pe cand demonstratorul doreste un t mai mic fiind
interesat de aspectul de informatie zero.
at kt = 20 permite o sans
a
4. (alegerea parametrilor) Alegerea lui k si t astfel nc
de impersonare de 1 la un milion, ceea ce e suficient atunci cand o ncercare de
identificare necesit
a prezent
a fizica. Se pot face compromisuri ntre numarul de
operatii (calcule), memorie si latimea de band
a; valori ce se pot folosi ar fi: k =
5, t = 4 pentru securitate 220 sau k = 6, t = 5 pentru securitate 230 .

2.4 Protocoale de identificare particularizate si cu informatie zero

35

5. (compromisuri de securitate) At
at calculele cat si latimea de band
a pot fi reduse
prin compromisuri asupra parametrilor de securitate pentru a avea o singura iteratie
(t = 1), pastr
and produsul kt constant, marind k si micsor
and t; totusi, n acest
caz protocolul nu mai este o demonstratie a cunoasterii cu informatie zero.

2.4.3

Protocolul de identificare GQ

Schema de identificare Guillou-Quisquater (GQ) [54] (protocolul 2.4.11) este o extensie a


protocolului Fiat-Shamir (protocolul 2.4.7). Aceasta permite o reducere atat a numarului
de mesaje transmise cat si a memoriei necesare pentru pastrarea secretelor utilizator. Si
acest protocol este util pentru aplicatii n care demonstratorul are capacitati de calcul si
memorare limitate.
Protocol 2.4.11 (Protocolul de identificare GQ [54]) A si demonstreaz
a identitatea (cu
ajutorului secretului sau sA ) lui B printr-un protocol format din trei mesaje.
1. (Alegerea parametrilor sistemului)
(a) Un tert T, n care toti participantii au ncredere n ceea ce priveste legarea
identitatilor de chei publice, alege doua numere prime de tip RSA[111] p si q
si calculeaz
a produsul n = pq. (La fel ca si la RSA factorizarea lui n trebuie sa
fie nefezabila computational).
(b) T defineste un exponent public v 3 cu cmmdc(v, ) = 1 unde = (p 1)(q
1), si calculeaz
a exponentul privat s = v 1 mod .
(c) Parametrii sistemului (v, n) sunt pusi la dispozitia tuturor utilizatorilor (cu
garantia autenticitatii).
2. (Alegerea parametrilor utilizatorilor)
(a) Fiecare entitate A primeste o identitate unica IA , din care se calculeaz
a identitatea redundant
a folosind o functie de redundat
a cunoscuta f . Identitatea
ipoteza ca
redundant
a este JA = f (IA ), care satisface relatia 1 < JA < n. In
factorizarea este dificila are loc relatia cmmdc(JA , ) = 1.
(b) A primeste de la T secretul (datele de acreditare) sA = (JA )s mod n.
3. (Mesajele protocolului) Fiecare din cele t iteratii ale
(adesea t = 1)
A B : IA , x = rv mod n
A B : e (unde 1 e v)
A B : y = r seA mod n

protocolului are trei mesaje


(1)
(2)
(3)

a identitatea lui B prin executarea de t


4. (Actiunile protocolului) A si demonstreaz
ori a actiunilor de mai jos; B accept
a identitatea doar daca toate cele t iteratii se
termin
a cu succes.
a
(a) A alege un numar aleator secret r (angajamentul), 1 r n 1 si calculeaz
martorul x = rv mod n.

36

Capitolul 2. Protocoale de identificare si autentificare


(b) A i trimite lui B perechea de ntregi (IA , x).
(c) B alege si i trimite lui A un numar ntreg e (provocarea), 1 e v.
(d) A calculeaz
a si i trimite lui B r
aspunsul y = r seA mod n.
(e) B primeste y, construieste JA folosind functia f , calculeaz
a z = JAe y v mod n
si accept
a demonstratia asupra identitatii lui A daca z = x si z 6= 0. (Ultima
conditie previne ca adversarul sa reuseasc
a folosind valoarea triviala r = 0).

Remarca 2.4.12 (securitatea protocolului de identificare GQ)


protocolul GQ, v determin
1. (probabilitatea de falsificare) In
a nivelul de securitate.
16
Anumite valori cum ar fi v = 2 + 1 ofer
a anumite avantaje computationale. Un
adversar poate avea succes cu probabilitatea 1/v, prin ghicirea corect
a a priori a lui
v
e
e iar mai apoi calcul
and x = JA y exact la fel cum face verificatorul. Dimensiunea
n biti recomandata pentru v depinde de mediul n care atacurile pot fi efectuate.
2. (ipotezele de securitate necesare) Extragerea rad
acinilor de ordin v modulo n - numar
ntreg compus - (rezolvarea problemei RSA) pare a fi necesar pentru a nvinge protocolul; aceast
a problem
a nu este mai dificila dec
at factorizarea lui n, si este nefezabila
computational daca nu se cunosc factorii lui n.
practic
3. (consistenta) In
a se foloseste GQ cu t = 1 si un numar prim v pe k biti.
Pentru parametri generalizati (n, v, t) probabilitatea de falsificare este v t . Daca v
este constant atunci, pentru consistent
a, t trebuie sa creasc
a asimptotic mai repede
t
dec
at log log n. Daca pentru o constant
a c, v = O((log n)c ) atunci avem doar
securitate polinomial
a.
4. (proprietatea IZ) Spre deosebire de consistent
a, pentru proprietatea IZ n protocolul
GQ e nevoie ca tv = O((log n)c ) pentru constanta c ceea ce impune o limita superioara asimptotica asupra lui t: pentru v constant, t nu poate fi mai mare polinomial
dec
at log n.

2.4.4

Protocolul de identificare Schnorr

Protocolul Schnorr [117], [118] este o alternativa la protocoalele Fiat-Shamir si GQ. La


baza acestuia a stat protocolul interactiv cu informatie zero al lui Chaum [25]. Securitatea
acestuia se bazeaza pe problema logaritmului discret. Modul n care este proiectat permite
realizarea unor calcule n avans, reducand calculele ce trebuie facute n timp real de catre
demonstrator la o singura nmultire modulo un numar prim q; asadar este foarte util
pentru demonstratori cu putere de calcul redusa. O alta sursa de eficienta computationala vine din folosirea unui subgrup de ordin q al grupului multiplicativ modulo p,
unde q | (p 1); aceasta reduce numarul de biti ce trebuie transmisi. Protocolul a fost
proiectat pentru a necesita doar trei mesaje si o latime de banda redusa (n comparatie
cu protocolul Fiat-Shamir).
Ideea de baza a protocolului este ca A demonstreaza cunoasterea unui secret a (fara a-l
dezvalui) ntr-un mod ce depinde de timp (n functie de provocarea e), A fiind identificat
prin asocierea lui a cu cheia publica v a lui A (prin certificatul autentificat al lui A).

2.4 Protocoale de identificare particularizate si cu informatie zero

37

Protocol 2.4.13 (Protocolul de identificare Schnorr) - A si demonstreaz


a identitatea lui
B printr-un protocol format din trei mesaje.
1. (Alegerea parametrilor sistemului)
at p 1 este divizibil cu un alt numar prim
(a) Se alege un numar prim p astfel nc
q. (Problema logaritmilor discreti modulo p trebuie sa fie nefezabila computational; p 21024 , q 2160 ).
(b) Se alege un element , astfel nc
at 1 p1, av
and ordinul de multiplicitate
q. (De exemplu, daca este un generator modulo p, = (p1)/q mod p).
(c) Fiecare entitate obtine o copie autentica a parametrilor sistemului (p, q, ) si a
functiei de verificare a tertului de ncredere T (cheia publica a acestuia), ceea ce
permite verificarea semnaturii lui T , ST (m) asupra mesajului m. (ST implic
a
utilizarea unei functii hash nainte de semnare iar mecanismul de semnare poate
fi oricare).
(d) Se alege un parametru t (care defineste nivelul de securitate 2t ), De exemplu,
t 40, 2t < q.
2. (Alegerea parametrilor utilizatorilor)
(a) Fiecare demonstrator A primeste o identitate unica IA .
(b) A alege cheia privata a, 0 a q 1, si calculeaz
a v = a mod p.
(c) A se identifica prin mijloace conventionale n fata lui T si transfer
a valoarea
v lui T obtin
and un certificat certA = (IA , v, ST (IA , v)) de la T , certificat care
leag
a identitatea IA de cheia publica v.
3. (Mesajele protocolului)
A B : certA , x = r mod p (1)
A B : e (1 e 2t < q) (2)
A B : y = ae + r mod q
(3)
4. (Actiunile protocolului)
(a) A alege un numar aleator r (angajamentul), 1 r q 1, si calculeaz
a
r
martorul x = mod p iar mai apoi trimite mesajul (1) lui B.
(b) B autentifica cheia publica v a lui A verific
and semnatura lui T asupra certificatului certA , dupa care i trimite lui A o provocare aleatoare e (care nu a mai
fost folosita pan
a atunci), 1 e 2t .
a daca 1 e 2t si i trimite lui B raspunsul y = ae + r mod q
(c) A verific
(d) B calculeaz
a z = y v e mod p si accept
a identitatea lui A daca z = x.
Remarca 2.4.14 (securitatea protocolului de identificare Schnorr)

38

Capitolul 2. Protocoale de identificare si autentificare


acest protocol, t trebuie sa fie suficient de mare pen1. (probabilitatea de falsificare) In
tru ca probabilitatea de a ghici corect provocarea e sa fie neglijabil
a (aceast
a probabilitate este 2t ). Ghicirea corecta a lui e permite unui adversar sa-l impersoneze pe A,
prin alegerea oricarui y, si trimit
and lui B n mesajul (1) valoarea x = y v e mod p
iar mai apoi valoarea y n mesajul (3).
2. (consistenta) Se poate demonstra ca protocolul este o demonstratie a cunoasterii lui
a, adica orice entitate care execut
a protocolul ca fiind A trebuie sa cunoasc
a valoarea
a. Protocolul nu dezvaluie nici o informatie n leg
atur
a cu a pentru ca x este un
num
ar aleator iar valoarea lui y depinde de valoarea lui r.
3. (proprietatea IZ) Protocolul nu este IZ pentru valori mari ale lui e deoarece, B poate
obtine prin interactiune solutia (x, y, e) a ecuatiei x = y v e mod p, solutie pe care B
nu ar putea-o gasi altfel.

Remarca 2.4.15 (reducerea latimii de band


a utilizate) Numarul de biti transmisi n protocolul Schnorr poate fi redus prin nlocuirea lui x din mesajul (1) cu t biti prestabiliti ai
lui x, (de exemplu, cei mai putin t semnificativi biti), biti care vor fi comparati de catre
B cu cei t biti corespunzatori ai lui z.

2.4.5

Comparatie ntre protocoalele Fiat-Shamir, GQ si Schnorr

Fiecare din protocoalele Fiat-Shamir, Guillou-Quisquater si Schnorr ofera solutii la problema identificarii. Fiecare are anumite avantaje si dezavantaje pentru diferite criterii de
performanta si pentru diferite aplicatii [42], [118], [90]. Pentru a compara protocoalele,
trebuie alesi anumiti parametri fiecare din acestia oferind niveluri comparabile de securitate estimata. Protocoalele pot fi comparate relativ la urmatoarele criterii:
1. comunicatie - numarul de mesaje transmise si numarul total de biti transferati;
2. calcule - numarul de nmultiri modulare atat pentru demonstrator cat si pentru
verificator (evidentiind calculele on-line si off-line);
3. memorie - necesitatile de stocare pentru cheile secrete (si pentru dimensiunea semnaturii, n cazul schemelor de semnatura digitala);
4. garantii de securitate - comparatia ar trebui sa tina cont de securitate n fata falsificarii prin ghicire, posibila dezvaluire a informatiilor secrete (proprietatea IZ) si
starea n ceea ce priveste securitatea demonstrabila;
5. ncrederea n tert - variante ale protocoalelor pot necesita ipoteze de securitate
diferite n legatura cu tertul implicat.
Numarul de criterii si multitudinea de posibilitati de alegere a parametrilor mpiedica
realizarea unei comparatii exacte. Putem face urmatoarele comentarii generale.
1. eficienta computationala. Protocolul Fiat-Shamir necesita mult mai putine nmultiri
modulare din partea demonstratorului fata de operatiile cu o cheie privata RSA.
Atunci cand kt = 20 si n este 512 biti, protocolul Fiat-Shamir foloseste ntre 11 si

2.4 Protocoale de identificare particularizate si cu informatie zero

39

30 de pasi (k = 20, t = 1 si k = 1, t = 20); GQ necesita aproximativ 60 de pasi


(pentru t = 1, m = 20 = log2 (v)) sau mai putini daca v are greutatea Hamming
mica.
2. calcule off-line. Protocolul Schnorr are avantajul ca necesita o singura nmultire
modulara din partea demonstratorului, cu conditia ca exponentierea sa se poate
realiza ca un precalcul. (Astfel de compromisuri ntre calcule off-line respectiv online sunt posibile n anumite aplicatii; n alte aplicatii trebuie luate n considerare
toate calculele).
3. latimea de banda si memoria necesara pentru informatiile secrete. GQ permite
reducerea atat a memoriei necesare (parametrul k) cat si a latimii de banda (parametrul t) cu k = t = 1, prin introducerea exponentului public v > 2 cu scopul ca
un atacator sa aiba probabilitatea de succes v kt . Aceasta reducere simultana nu
este posibila la protocolul Fiat-Shamir, care necesita k secrete utilizator si t iteratii
pentru o securitate estimata de 2kt .
4. ipotezele de securitate. Fiecare protocol trebuie sa aiba ca ipoteza faptul ca rezolvarea problemei pe care se bazeaza este nefezabila computational. Pentru un
ntreg compus (de tip RSA): la Fiat-Shamir extragerea radacinii patrate mod n, la
GQ extragerea radacinii de ordin v mod n iar la Schnorr calculul logaritmului discret
modulo un numar prim p.

Capitolul 3
Protocoale pentru stabilirea cheilor
3.1

Introducere

In acest capitol sunt prezentate si analizate protocoale pentru stabilirea de chei si tehnicile
criptografice asociate care permit stabilirea unui secret partajat ntre doua entitati, secret
ce poate fi folosit ulterior ca si cheie simetrica pentru diverse operatii criptografice, cum
ar fi criptare, autentificare de mesaje sau autentificare de entitati. Accentul va fi pus pe
stabilirea de chei ntre doua entitati (cu ajutorul unui tert de ncredere n unele situatii),
stabilirea de chei ntre mai mult de doua entitati fiind tratata n sectiunea 3.5.
In aceasta sectiune introductiva a capitolului se va face o clasificare generala a protocoalelor pentru stabilire de chei, se vor da definitiile si conceptele importante si vor
fi discutate obiectivele acestor protocoale. Mare parte din acest capitol se bazeaza pe
lucrarile monografice ale lui Rueppel si van Orschot [114]. Proprietatile si principiile pentru protocoalele de stabilire de chei sunt discutate de Fumy si Munzert n [44]. Tehnicile
pentru stabilirea de chei, cunoscute sub numele de mecanisme pentru transport de chei,
implica n mod direct tehnicile de criptare simetrica sau asimetrica. Transportul de chei
autentificat poate fi considerat un caz special de autentificare de mesaje cu confidentialitate, n care mesajul include o cheie criptografica. O serie de protocoale pentru stabilirea
de chei bazate pe tehnici cu chei publice implica semnaturi digitale pentru autentificare.
Definitie 3.1.1 Stabilirea de chei este un proces sau un protocol n care un secret
partajat devine disponibil la doua sau mai multe entitati, pentru a fi folosit ulterior n
scopuri criptografice.
Cu toate ca definitia de mai sus acopera majoritatea protocoalelor pentru stabilire de
chei folosite la ora actuala n practica, sunt unele protocoale care sunt excluse de aceasta
definitie. La modul mai general, stabilirea de chei poate fi definita ca fiind procesul sau
mecanismul prin care se ofera unei multimi de participanti o capabilitate partajata (si nu
doar un simplu secret partajat), capabilitate care permite anumite operatii cu intentia
ca aceste operatii sa nu poata fi executate de alti participanti. In aceasta categorie mai
generala intra criptografia cu prag, introdusa independent de catre Desmedt [30], Boyd
[19] si Croft si Harris [27]. Stabilirea de chei poate fi clasificata la modul general n:
transport de chei si acord asupra cheii.

40

3.1 Introducere

41

Definitie 3.1.2 Un protocol sau mecanism pentru transport de chei este o tehnica
pentru stabilirea de chei n care o entitate creeaza sau obtine o valoare secret
a pe care o
transfer
a n mod sigur celeilate entitati.
Definitie 3.1.3 Un protocol sau mecanism pentru acord asupra cheii este o tehnica
pentru stabilirea de chei n care secretul partajat este creat de doua sau mai multe entitati
cu ajutorul unei functii ce are ca si date de intrare informatii furnizate de toate entitatile
(sau informatii asociate cu aceste entitati), n asa fel nc
at nici una din entitati nu este
capabil
a sa determine apriori valoarea ce va rezulta.
Protocoalele pentru stabilirea de chei ce implica autentificare necesita de regula un
pas de initializare n care se distribuie informatii initiale autentice si de regula secrete.
Majoritatea protocoalelor au ca si obiectiv crearea de chei distincte la fiecare executie.
Totusi, exista si protocoale pentru care informatiile initiale raman nemodificate si prin
urmare la fiecare rulare a protocolului ntre aceleasi doua entitati vor rezulta aceleasi chei,
aceste sisteme nefiind sigure n fata unor atacuri.
Definitie 3.1.4 Schemele pentru pre-distribuirea cheii sunt protocoale pentru stabilirea de chei n care cheile ce rezult
a sunt toate determinate apriori din informatiile
initiale. Spre deosebire de acestea, avem schemele de stabilire dinamic
a a cheii, n
care cheile vor fi diferite la fiecare rulare a protocolului si se vor numi chei de sesiune.
O serie de protocoale pentru stabilirea de chei implica folosirea unui tert de ncredere
centralizat pentru pasul de initializare si/sau actiunile propriu-zise ale protocolului. Acest
tert are o serie de nume n literatura de specialitate cum ar fi: server de ncredere, server
de autentificare, centru pentru distributia cheilor, centru pentru transferul cheilor sau
autoritate de certificare.
Este de dorit ca fiecare entitate care participa la un protocol pentru stabilirea de
chei sa poata determina identitatea reala a celorlalte entitati care ar putea obtine cheia
rezultat, ceea ce implica faptul ca alte entitati neautorizate nu pot obtine aceeasi cheie.
In acest caz spunem ca tehnica ofera stabilire sigura de chei. Acest fapt implica atat
confidentialitatea cheii cat si identificarea entitatilor care au acces la cheie. Cerintele de
identificare difera ntr-un mod subtil fata de identificarea entitatilor si anume aici trebuie
cunoscuta identitatea entitatilor care pot obtine acces la cheie si nu faptul ca s-a stabilit
un canal de comunicatie cu acele entitati. Tabelul 3.1 prezinta o clasificare a diverselor
concepte ce sunt definite n continuare.
Autentificarea poate fi definita informal ca fiind procesul prin care se verifica faptul
ca o entitate este cine se pretinde. Aici se pot lua n considerare multe alte aspecte.
Autentificarea entitatilor, pe care am definit-o n capitolul 2, se ocupa cu protocoale
care ofera doar autentificare de entitati. Autentificarea originii datelor difera n mod
semnificativ de autentificarea de entitati, si consta n esenta n stabilirea dovezilor n
legatura cu faptul ca o entitate este sursa unor date create anterior si ca acele date sunt
integre.
Definitie 3.1.5 Autentificarea cheilor este proprietatea prin care o entitate are certitudinea ca nici o alta entitate, n afara uneia identificat
a special, nu poate obtine o
anumit
a cheie secret
a.

42

Capitolul 3. Protocoale pentru stabilirea cheilor


Notiune
autentificare
autentificare de entitati
autentificarea
originii
datelor
autentificare (implicita) de
chei
confirmare de chei
autentificare de chei explicita

Pe ce se concentreaz
a
depinde de contextul n care este folosit
identitatea unei entitati si prezenta sa la un moment dat
identitatea sursei datelor
identitatea unei entitati care poate avea o cheie
dovada ca o cheie este n posesia unei entitati
dovada ca o entitate poseda o anumita cheie

Tabela 3.1: Notiuni relevante n protocoalele pentru stabilirea de chei


Autentificarea cheilor este independenta de posesia efectiva a cheii de catre cea de-a
doua entitate sau de faptul ca prima entitate stie (sau nu) faptul ca respectiva cheie este
n posesia celei de-a doua entitati. Prin urmare, acest tip de autentificare se numeste
autentificare de chei implicita.
Definitie 3.1.6 Confirmare de chei este proprietatea prin care o entitate are certitudinea c
a o a doua entitate este n posesie unei anumite chei secrete.
Definitie 3.1.7 Autentificare de chei explicit
a este proprietatea obtinut
a atunci
c
and avem at
at autentificare implicita de chei cat si confirmare de chei.
In cazul autentificarii explicite de chei, se stie ca o entitate identificata este n posesia
unei anumite chei, concluzie ce nu poate fi trasa altfel. Aplicatiile de criptare ce folosesc
protocoale pentru stabilirea de chei ce ofera doar autentificare de chei implicita ncep
adesea criptarea cu o valoarea initiala cunoscuta al carei rol este acela de verificare a
integritatii, mutand astfel problema confirmarii cheii de la mecanismul de stabilirea a
cheii la aplicatie.
In autentificarea cheilor accentul se pune pe identitatea celei de-a doua entitati si nu pe
valoarea cheii, pe cand la confirmarea cheii este invers. Confirmarea cheii implica de regula
o entitate care primeste un mesaj de la alta entitate, mesaj ce contine dovada faptului
ca cheia este cunoscuta de entitatea care a creat mesajul. In practica, cunoasterea unei
chei poate fi demonstrata n diverse moduri, de exemplu calculand valoarea hash a cheii,
folosirea cheii ntr-o functie hash cu cheie sau criptarea unei valori cunoscute cu cheia
respectiva. Aceste tehnici pot dezvalui anumite informatii (chiar daca nu sunt foarte
utile) n legatura cu valoarea cheii; pentru a nu se dezvalui nici o informatie n legatura
cu valoarea cheii se pot folosi tehnici cu informatie zero, tehnici pe care le-am trecut n
revista n sectiunea 2.4 n contextul protocoalelor de identificare.
Autentificarea entitatilor nu este o cerinta n orice protocol. Anumite protocoale
pentru stabilirea de chei (cum ar protocolul pentru acord de chei neautentificat DiffieHellman) nu ofera nici una din proprietatile: autentificare de entitati, autentificare de
chei sau confirmare de chei.
Definitie 3.1.8 Un protocol pentru stabilire de chei autentificat este un protocol pentru
stabilirea de chei (definitia 3.1.1) care ofera autentificare de chei (definitia 3.1.5).

3.1 Introducere

43

Remarca 3.1.9 (combinarea autentificarii de entitati cu stabilirea de chei) Intr-un


protocol pentru stabilirea de chei care implica autentificare de entitati, este important ca
protocolul sa fie construit n asa fel nc
at entitatea a carei identitate este demonstrat
a sa
fie aceeasi cu entitatea cu care se stabileste cheia. Daca nu se nt
ampl
a asa, atunci un
adversar poate determina un utilizator legitim sa ruleze partea de autentificare si mai apoi
s
a impersoneze acest utilizator n partea de stabilire de chei.
Definitie 3.1.10 Spunem ca un protocol pentru stabilirea de chei este bazat pe identitate daca informatiile de identificare (de ex. numele, adresa etc.) ale entitatilor implicate
sunt folosite ca si chei publice ale acelor entitati.
Definitie 3.1.11 Spunem ca un protocol pentru stabilirea de chei, rulat ntre doua entit
ati, este independent de mesaje dac
a mesajele trimise de cele doua entitati sunt
independente de orice date de nivel sesiune ce variaza n timp (date dinamice) primite de
la cealalt
a entitate.
Protocoalele independente de mesaje care nu implica date dinamice n calcularea cheii
sunt doar simple scheme de pre-distribuire a cheii (definitia 3.1.4). De regula, chiar si
n protocoalele independente de mesaje, se folosesc date dinamice (primite de la cealalta
entitate) pentru a calcula cheia.
Remarca 3.1.12 (independenta de mesaje - non-interactivitate) Protocoalele independente de mesaje includ si protocoalele non-interactive (far
a mesaje sau cu un singur mesaj
ceea ce priveste comunicatia
dar far
a raspuns) si anumite protocoale cu doua mesaje. In
dintre entitati, trebuie sa existe anumite specificatii (explicite sau implicite) ale entitatilor
protocoalele cu t entitati, identificate
implicate chiar si n protocoalele far
a mesaje. In
alte protode un vector (i1 , . . . , it ), ordinea indicilor poate determina chei diferite. In
coale (cum ar fi protocolul pentru acord de chei Diffie-Hellman), datele criptografice din
mesajele unei entitati sunt independente atat de datele dinamice din mesajele celeilalte
entit
ati cat si de orice date specifice tuturor entitatilor implicate, inclusiv cheile publice
sau informatiile de identitate.
Protocoalele criptografice ce implica un schimb de mesaje necesita definirea cu exactitate a mesajelor ce sunt transmise si a actiunilor efectuate de fiecare entitate. Astfel,
putem identifica urmatoarele tipuri de protocoale pe baza obiectivelor indicate:
1. protocoale de autentificare - care ofera unei entitati un anumit grad de siguranta n
legatura cu identitatea altei entitati cu care comunica.
2. protocoale pentru stabilirea de chei - care stabilesc un secret partajat.
3. protocoale pentru stabilirea de chei n mod autentificat - care stabilesc un secret
partajat cu o entitate a carei identitate a fost demonstrata.
Rezultatul protocoalelor pentru stabilirea de chei este un secret partajat care de regula
poarta numele de cheie de sesiune, sau este folosit pentru a calcula o astfel de cheie. La
modul ideal, o astfel de cheie este un secret efemer, unul care este restrictionat la o
perioada scurta de timp, cum ar fi o singura sesiune de comunicatie, dupa care orice
urma a existentei sale este eliminata. Argumente pentru necesitatea ca aceste chei sa fie
efemere sunt:

44

Capitolul 3. Protocoale pentru stabilirea cheilor


1. pentru a limita textul cifrat disponibil (creat cu o singura cheie) atacurilor criptanalitice;
2. pentru a limita expunerea, n ceea ce priveste perioada de timp si cantitatea de date,
n cazul n care o cheie de sesiune este compromisa;
3. pentru a evita stocarea pe o perioada lunga a unui numar mare de chei secrete
distincte (n cazul n care un terminal comunica cu multi terti), prin crearea cheilor
doar n momentul n care este nevoie de ele;
4. pentru a crea o independenta ntre sesiuni de comunicatie sau aplicatii.

In practica este de dorit a se evita cerinta pastrarii informatiei de stare ntre sesiuni
diferite.
Atunci cand se proiecteaza sau se alege utilizarea unei tehnici pentru stabilirea cheilor,
este important de luat n calcul asigurarile si proprietatile pe care le cere aplicatia respectiva. Trebuie facuta distinctie ntre functionalitatea oferita utilizatorului si caracteristicile
tehnice care deosebesc mecanismele la nivel de implementare. (Mecanismele de la nivel
de implementare au de regula o importanta mica pentru utilizator. Vor fi doar implicatii
de cost si performanta). Caracteristicile care deosebesc tehnicile pentru stabilirea de chei
sunt:
1. natura autentificarii - poate fi oferita orice combinatie ntre: autentificare de entitati,
autentificare de cheie si confirmare de cheie.
2. reciprocitatea autentificarii - autentificarea de entitati, autentificarea de cheie, respectiv confirmarea de cheie poate fi unilateral
a sau mutuala.
3. noutatea cheii - o cheie este noua daca se poate garanta acest lucru, spre deosebire
de o cheie veche ce poate fi reutilizata ca urmare a actiunilor unui adversar sau ale
unei entitati legitime.
4. controlul cheii - n unele protocoale (transport de chei) o entitate alege cheia. In
altele (acord de chei), cheia este calculata din informatii furnizate de toate entitatile
implicate si este de dorit ca nici una dintre entitati sa nu poata controla sau sa nu
poata determina aprori cheia care va rezulta, nainte de a obtine informatiile de la
celelalte entitati.
5. eficienta - aici avem o serie de criterii:
(a) numarul de mesaje transmise de fiecare entitate;
(b) latimea de banda necesara mesajelor (numarul total de biti transmisi);
(c) complexitatea calculelor efectuate de fiecare entitate (ceea ce afecteaza timpul
de executie);
(d) posibilitatea de a realiza pre-calcule, reducand astfel complexitatea calculelor
realizate on-line.
6. existenta unui tert de ncredere - din nou avem cateva criterii:

3.2 Transport de chei bazat pe criptare simetric


a

45

(a) necesitatea unui tert de ncredere online (n timp real), off-line sau fara tert de
ncredere;
(b) gradul de ncredere necesar ntr-un astfel de tert (de ex. ncrederea ca certifica chei publice, respectiv ncrederea ca nu dezvaluie chei secrete utilizate pe
termen lung).
7. tipul de certificate folosite (daca sunt folosite) - se poate considera modul n care
sunt distribuite informatiile initiale pentru stabilirea de chei, informatii ce pot fi
legate de cerintele unui tert de ncredere. (Aceasta de regula nu este problema
directa a utilizatorului, fiind un detaliu de implementare care de regula nu ofera
functionalitate suplimentara).
8. non-repudiere - protocoalele pot oferi un anumit tip de garantie ca informatiile
pentru stabilirea de chei au fost transmise.
Remarca 3.1.13 (eficient
a - securitate) Eficienta si securitatea tehnicilor criptografice
sunt adesea legate una de alta. De exemplu, n unele protocoale un anumit pas de baz
a
este executat n mod repetat si securitatea creste pe masur
a ce creste numarul de repetari;
n acest caz, nivelul de securitate ce poate fi atins, ntr-o unitate de timp fixata, depinde
de eficienta pasului de baz
a.
In descrierea mesajelor protocolului, se presupune ca atunci cand identitatea sursei
(de ex. adresa de retea) nu este inclusa n mod explicit ntr-un camp al mesajelor, aceasta
se poate obtine din context sau este cunoscuta de cel care primeste mesajul.

3.2

Transport de chei bazat pe criptare simetric


a

In continuare sunt prezenta o serie de protocoale pentru stabilirea de chei bazate pe transportul cheii (cheia este aleasa de una din entitati), protocoale ce folosesc tehnici simetrice.
Sunt prezentate protocoale care folosesc servere de ncredere respectiv protocoale care nu
recurg la un astfel de server. Unele protocoale folosesc parametri variabili n timp cum ar
fi marci de timp, numere de secventa sau numere aleatoare.

3.2.1

Transport si derivare de chei cu tehnici simetrice f


ar
a
server

Protocoalele pentru transport de chei fara server bazate pe tehnici simetrice cer de regula
ca cele doua entitati din protocol sa partajeze initial un secret pe termen lung.
Actualizare de cheie punct-la-punct folosind criptarea simetric
a
Este o tehnica ce foloseste o cheie simetrica K partajata anterior de doua entitati A si B.
Aceasta cheie, care este distribuita initial printr-un canal sigur sau este obtinuta printr-o
schema de pre-distribuire a cheii, este folosita n mod repetat pentru a stabili noi chei de
sesiune. Sunt date n continuare doua exemple de tehnici care se ncadreaza n aceasta
categorie, exemple care n esenta sunt cele din ISO/IEC 11770-2 [1]: (In ceea ce priveste

46

Capitolul 3. Protocoale pentru stabilirea cheilor

notatia rA reprezinta un numar aleator, tA reprezinta o marca de timp, iar nA reprezinta


un numar de secventa)
1. transport de chei cu un singur mesaj:
(1) A B : EK (rA )
Cheia de sesiune transmisa n acest caz este rA iar atat A cat si B obtin autentificare implicita de chei. Alte campuri optionale ce pot fi transmise criptat sunt: o
marca de timp sau un numar de secventa care ofera garantii lui B n ceea ce priveste
actualitatea cheii; un camp ce contine redundanta, pentru a-i oferi lui B autentificare explicita a cheii sau pentru a-i permite detectarea modificarii mesajului si un
identificator tinta pentru a preveni reluarea nedectabila a mesajului napoi la A.
Astfel:
A B : EK (rA , tA , B ) (10 )
Daca se doreste ca ambele entitati sa contribuie la formarea cheii, B poate sa-i
transmita lui A un mesaj analog, cheia de sesiune calculandu-se cu o functie oneway f (rA , rB ) pentru a mpiedica posibilitatea ca valoarea cheii sa poata sa fie
precalculata/influentata de una din entitati.
2. transport de chei cu provocare raspuns:
(1) A B : nB
(2) A B : EK (rA , nB , B )
Daca se doresc garantii n ceea ce priveste actualitatea cheii fara a folosi marci de
timp, se poate folosi un numar aleator sau un numar de secventa (notat aici cu nB )
n locul marcii de timp folosita la tehnica cu un singur mesaj; costul va fi un mesaj
suplimentar. Cheia va din nou rA .
Din nou, daca se doreste ca sa avem o cheie secreta formata cu date furnizate de
ambele entitati, A poate insera un nonce nA n mesajul (2) si trebuie adaugat un
al treilea mesaj. (In protocolul de mai jos rA si rB sunt valori ce se folosesc pentru
calcularea cheii, iar nA si nB sunt nonce-uri folosite pentru asigurarea actualitatii
cheii).
(1) A B : nB
(2) A B : EK (rA , nA , nB , B )
(3) A B : EK (rB , nB , nA , A )
Remarca 3.2.1 Cele doua tehnici prezentate mai sus nu ofera protectie prefect
a nainte,
si vor esua daca este compromis
a cheia pe termen lung K. Din acest motiv multe aplicatii
nu vor putea folosi aceste tehnici.
Remarca 3.2.2 Multe protocoale de autentificare care folosesc criptare, inclusiv cele
dou
a tehnici de mai sus necesit
a, din motive de securitate, ca functia de criptare sa aiba
integrat si un mecanism de integritate pentru a detecta modificarea mesajelor.

3.2 Transport de chei bazat pe criptare simetric


a

47

Actualizare de cheie punct-la-punct folosind derivare de cheie si functii neinversabile


Actualizarea cheii se poate realiza prin transportul cheii (asa cum am prezentat mai sus)
sau prin derivarea cheii. La derivarea cheii, cheia se bazeaza pe o valoarea de intrare
aleatoare furnizata de o entitate. Si n acest caz avem un singur mesaj:
(1) A B : rA
Cheia de sesiune este calculata prin criptarea valorii primite EK (rA ). Tehnica ofera
lui A si B autentificare implicita a cheii. Numarul aleator folosit rA poate fi nlocuit cu
o marca de timp, ce poate fi validata de cel care o primeste, oferindu-i astfel garantii
implicite n ceea ce priveste actualitatea cheii, cu conditia ca cheia de termen lung K sa
nu fie compromisa.
In aceasta tehnica, A poate controla valoarea cheii de sesiune sa fie x, alegand rA =
DK (x). Din moment ce tehnica nu necesita decriptare, functia E poate fi nlocuita cu o
functie pseudo-aleatoare cu cheie hK .
Protocol 3.2.3 (AKEP2 - Authenticated Key Exchange Protocol 2 [14])
A si B transmit 3 mesaje pentru a obtine o cheie de sesiune W . Se obtine autentificare
mutual
a de entit
ati si autentificare implicit
a a cheii W .
1. Initializare: A si B partajeaz
a doua chei simetrice pe termen lung K si K 0 . hK
este o functie MAC (functie hash cu cheie) folosita pentru autentificare de entitati.
h0K 0 este permutare pseudo-aleatoare sau o functie one-way cu cheie folosita pentru
obtinerea cheii.
2. Mesajele protocolului: Definim T = (B, A, rA , rB )
(1) A B : rA
(2) A B : T, hK (T )
(3) A B : (A, rB ), hK (A, rB )
3. Actiunile protocolului:
(a) A alege un numar aleator rA si l trimite lui B
(b) B alege un numar aleator rB si i trimite lui A valoarea (B, A, rA , rB ), mpreun
a
cu MAC-ul acestei valori, MAC generat cu functia hK
(c) La primirea mesajului (2), A verifica: corectitudinea identitatilor, valoare lui
rA trimis la pasul (1) si MAC-ul
(d) A trimite lui B valoarea (A, rB ) si MAC-ul acestei valori
(e) La primirea mesajului (3), B verific
a corectitudinea MAC-ului si daca valoarea
rB primit
a coincide cu cea trimisa la pasul (2)
a cheia de sesiune h0K 0 (rB )
(f ) A si B calculeaz

48

Capitolul 3. Protocoale pentru stabilirea cheilor

Transport de chei f
ar
a chei secrete partajate apriori
Algoritmul fara cheie al lui Shamir (protocolul 3.2.4) este un protocol pentru transport
de cheie care foloseste doar tehnici simetrice (cu toate ca se efectueaza si exponentiere
modulara) si permite stabilirea de chei printr-un canal deschis fara a fi nevoie ca cele doua
entitati care ruleaza protocolul sa partajeze o cheie secreta sau sa aiba o cheie publica.
Protocolul i este atribuit lui Shamir de catre Konheim [66]. Fiecare entitate are doar
cheia sa simetrica locala. Protocolul ofera protectie doar mpotriva adversarilor pasivi si
nu ofera autentificare. Astfel, rezolva aceeasi problema ca si protocolul de baza DiffieHellman (protocolul 3.4.1 de la pagina 60) - doua entitati care nu au o cheie partajata
ajung sa obtina o cheie secreta partajata. Protocolul este sigur fata de adversari pasivi cu toate ca aici se folosesc trei mesaje si avem si transport de cheie.
Protocol 3.2.4 Protocolul far
a cheie Shamir
A si B transmit trei mesaje printr-un canal deschis rezult
and cheia secret
a K care este
transmis
a cu confidentialitate (dar far
a autentificare) de la A la B.
1. Initializare (definirea si publicarea parametrilor sistemului)
(a) Alegerea si publicarea numarului prim p care are proprietatea ca este nefezabil
computational a se calcula logaritmul discret modulo p
(b) A si B aleg cate un numar secret aleator a, b cu 1 a, b p 2, relativ prim
cu p 1, dupa care calculeaz
a a1 si b1 mod(p 1).
2. Mesajele protocolului
(1) A B : K a mod p
(2) A B : (K a )b mod p
(3) A B : (K ab )a

mod p

3. Actiunile protocolului
(a) A alege o cheie aleatoare K pentru a fi transportat
a lui B, 1 K p 1. A
a
calculeaz
a K mod p si trimite aceast
a valoare lui B n mesajul (1).
(b) B exponentiaz
a mod p valoarea primita cu exponentul b si trimite valoarea rezultata lui A n mesajul (2)
(c) A exponentiaz
a mod p valoarea primita cu exponentul a1 anuland astfel exponentierea initial
a si obtin
and K b mod p, valoare ce este trimisa lui B n mesajul
(3)
a mod p valoarea primita cu exponentul b1 obtin
and astfel cheia
(d) B exponentiaz
K.
Remarca 3.2.5 Cu toate ca, n protocolul Shamir, la prima vedere s-ar putea folosi orice
cifru comutativ (un cifru n care ordinea criptarii si a decript
arii poate fi inversata) n
locul exponentierii modulare, trebuie ales cu grija acest cifru ntruc
at utilizarea de exemplu
a cifrului Vernam, ar fi total nesigura, ntruc
at aplicarea operatorului XOR la cele trei
mesaje transmise ar duce la obtinerea cheii K.

3.2 Transport de chei bazat pe criptare simetric


a

3.2.2

49

Protocolul Kerberos si similare bazate pe server

Protocoalele discutate n continuare sunt bazate pe criptare simetrica si implica doua


entitati, A si B, si un server de ncredere cu care cele doua entitati partajeaza cate o
cheie secreta stabilita anterior ntr-un mod sigur. In astfel de protocoale, serverul poate
juca rolul de centru pentru distributie de chei, caz n care el este cel care genereaza cheia
de sesiune, sau rolul de centru pentru transmiterea cheii, caz n care cheia este aleasa de
una din cele doua entitati, este transmisa serverului, iar serverul o transmite n siguranta
celeilalte entitati1 . Dezvoltarea versiunii 5 a protocolului Kerberos a nceput n 1989
iar specificatiile acestuia au fost date de Kohl si Neuman n [64]. Proiectul original al
Kerberos V4 a fost publicat n [79]. Protocolul simplificat se bazeaza pe protocolul cu
chei secrete al lui Needham si Schroeder [87] si foloseste marci de timp.
Protocolul de autentificare Kerberos
Kerberos este numele pentru urmatoarele componente: serviciul de autentificare distribuit
creat initial n cadrul Proiectului Athena al MIT2 care include specificatii pentru integritatea datelor si criptare; softul care implementeaza acest serviciu, procesele care executa
serviciul si protocolul de autentificare folosit. Aici, accentul se va pune pe protocol, care
ofera atat autentificare de entitati cat si stabilire de chei prin tehnici simetrice si un tert
de ncredere.
Versiunea de baza a protocolului Kerberos implica clientul A, serverul sau verificatorul B si un server de ncredere T (serverul de autentificare Kerberos). Initial A si B nu
partajeaza nici o cheie secreta, n timp ce T partajeaza cate o cheie secreta atat cu A cat
si cu B. Obiectivul principal este ca B sa verifice identitatea lui A, iar efectul secundar
este stabilirea unei chei secrete. Optional, se poate transmite si un ultim mesaj care ofera
autentificare de entitati mutuala si stabilirea unui secret suplimentar partajat de A si B
(o cheie de subsesiune care nu este aleasa de T ).
Protocol 3.2.6 (versiunea simplificat
a a protocolului de autentificare Kerberos)
A interactioneaz
a cu serverul de ncredere T si cu enitatea B pentru a obtine autentificare n fata entitatii B (optional autentificare mutuala) si stabilirea unei chei de
sesiune.
1. Notatie. Elementele optionale sunt marcate cu asterisc (*). E este o functie de
criptare simterica. nA este un nonce ales de A, iar tA este o marc
a de timp obtinut
a
de la ceasul local al lui A. k este cheia de sesiune aleas
a de T pentru a fi partajat
a
de A si B. L indica perioada de valabilitate a mesajului.
a cheia pe termen lung KAT , iar B si T partajeaz
a
2. Initializare. A si T partajeaz
def
cheia pe termen lung KBT ; tichetB = EKBT (k, A, L);
def

autentif icator = Ek (A, tA , Asubcheie ).


1
2

folosind cheia secreta pe care o partajeaza cu aceasta


MIT = Massachusetts Institute of Technology

50

Capitolul 3. Protocoale pentru stabilirea cheilor


3. Mesajele protocolului.
(1)
(2)
(3)
(4)

A T : A, B, nA
A T : tichetB , EKAT (k, nA , L, B)
A B : tichetB , autentif icator

A B : Ek (tA , Bsubcheie
)

4. Actiunile protocolului.
(a) A genereaz
a un nonce nA si i trimite lui T mesajul (1).
(b) T genereaz
a o cheie de sesiune k si defineste perioada de valabilitate L a
tichetului formata din ora la care expira si optional ora cre
arii. T cripteaz
a
k, nA , L si identificatorul primit B folosind cheia lui A. T creeaz
a un tichet
securizat folosind cheia lui B care contine cheia de sesiune k, identificatorul
primit A si perioada de valabilitate L. T trimite lui A mesajul (2).
(c) A decripteaz
a partea a doua a mesajului primit la pasul (2) (far
a tichetul destinat lui B), folosind cheia KAT pentru a recupera k, nA , perioada de valabilitate
L si identificatorul entitatii pentru care a fost creat tichetul. A verifica daca
identificatorul nA coincide cu cel creat si trimis de el la pasul (1) si salveaz
a L.
A cripteaz
a identitatea lui, o marc
a de timp tA si optional o subcheie Asubcheie ,
folosind k pentru a forma autentificatorul. A i trimite lui B mesajul (3).
(d) B primeste mesajul (3), decripteaz
a tichetul folosind KBT , obtine cheia k pentru a putea decripta autentificatorul. B verifica: daca campul de identificare A
din tichet si din autentificator coincid; daca tA din autentificator este valid si
daca ora local
a a lui B se ncadreaz
a n perioada de valabilitate L. Daca toate
aceste verificari reusesc atunci autentificarea lui A se ncheie cu succes.
(e) (Optional pentru autentificare mutuala:) B creeaz
a si trimite lui A mesajul (4)
care contine marca de timp a lui A din autentificator (identitatea lui A este
eliminata pentru ca acest mesaj sa difere de autentificator), criptat cu cheia
de sesiune k (B poate adauga optional o subcheie pentru a permite negocierea
unor chei de subsesiune).
(f ) (Optional pentru autentificare mutuala:) A decripteaz
a mesajul (4). Daca
marca de timp coincide cu cea trimisa n mesajul (3), atunci A poate considera
ca autentificarea lui B s-a ncheiat cu succes.
Remarca 3.2.7 (securitatea si optiunile protocolului Kerberos)
1. Din moment ce folosim marci de timp, sistemele care ruleaz
a protocolul trebuie sa
ofere ceasuri sistem sigure si sincronizate.
a cheile partajate initial sunt derivate din parole, atunci protocolul nu ofera o
2. Dac
securitate mai mare fat
a de securitatea acelor parole sau fat
a de rezistenta acestora
la atacuri asupra parolelor.

3.2 Transport de chei bazat pe criptare simetric


a

51

3. Parametrii optionali Asubcheie si Bsubcheie permit transferul unei chei (diferita de


k) de la A la B sau invers, sau calculul unei chei combinate folosind o functie
f (Asubcheie , Bsubcheie ).
4. Scopul perioadei de valabilitate din tichet este de a permite lui A sa reutilizeze
tichetul o perioad
a limitata de timp pentru mai multe autentificari cu B far
a sa
astfel de situatii, A creeaz
mai fie nevoie de interactiuni suplimentare cu T . In
a un
nou autentificator cu o noua marc
a de timp si cu aceeasi cheie de sesiune k.
Protocolul Needham-Schroeder
La ora actuala acest protocol are doar o importanta istorica. Acesta a fost creat n 1978
[87] si sta la baza multor protocoale de autentificare si distributie de chei bazate pe server
printre care Kerberos si Otway-Rees. Este un protocol care nu depinde de marci de timp,
si ofera atat autentificare de entitati cat si stabilirea de chei cu confirmarea cheii. Cu
toate acestea protocolul nu se foloseste pentru ca au fost descoperite o serie de atacuri
mpotriva lui.
Protocol 3.2.8 (Needham-Schroeder cu cheie partajat
a)
A interactioneaz
a cu serverul de ncredere T si cu B pentru a obtine autentificare de
entit
ati (A cu B) si stabilirea unei chei cu confirmarea acesteia.
1. Notatie. E este un algoritm de criptare simetric. nA si nB sunt nonce-uri alese de
A respectiv B. k este cheia de sesiune aleas
a de serverul de ncredere T pentru a fi
folosit
a de A si B.
2. Initializare. A si T partajeaz
a cheia pe termen lung KAT , iar B si T partajeaz
a
cheia pe termen lung KBT
3. Mesajele protocolului.
(1)
(2)
(3)
(4)
(5)

A T : A, B, nA
A T : EKAT (nA , B, k, EKBT (k, A))
A B : EKBT (k, A)
A B : Ek (nB )
A B : Ek (nB 1)

4. Actiunile protocolului - sunt aproape similare cu cele de la protocolul Kerberos (protocolul 3.2.6).
Remarca 3.2.9 (functionalitatea si optiunile protocolului Needham-Schroeder)
1. Protocolul ofera pentru A si B o cheie partajat
a k cu autentificarea acesteia (datorita
serverului de ncredere).
a
2. Mesajele (4) si (5) ofera autentificarea entitatilor A si B; autentificarea lui B fat
de A se poate obtine daca A poate efectua anumite verificari asupra redundantei
valorii nB obtinut
a prin decriptarea mesajului (4).

52

Capitolul 3. Protocoale pentru stabilirea cheilor


3. Dac
a A poate sa refoloseasc
a o cheie k cu B, atunci A poate stoca n mod sigur datele
transmise n mesajul (3) mpreun
a cu cheia k. La refolosirile ulterioare, mesajele
(1) si (2) pot fi omise, dar acum pentru a preveni reluarea mesajelor vechi (4), un
0
nonce criptat Ek (nA ) trebuie adaugat mesajului (3), iar mesajul (4) trebuie nlocuit
0
cu Ek (nA 1, nB ) ceea ce permite lui A sa verifice daca B cunoaste cheia curent
a
k (oferind astfel autentificare de entitati).

Remarca 3.2.10 Diferentele dintre protocolul Needham-Schroeder si protocolul Kerberos


sunt urmatoarele: parametrul L, care indica perioada de valabilitate n Kerberos, nu este
prezent; datele din mesajul (3), care corespund tichetului n Kerberos, sunt criptate n
mod redundant de doua ori; autentificarea foloseste nonce-uri si nu marci de timp. O
sl
abiciune a protocolului Needham-Schroeder este aceea ca din moment ce B nu are cum
s
a stie daca cheia k este recent
a, n situatia n care o cheie de sesiune este compromis
a,
orice entitate care cunoaste acea cheie poate sa retrimit
a mesajul (3) si sa calculeze n
mod corect mesajul (5) imperson
andu-l pe A n fata lui B. Aceast
a situatie este rezolvat
a
ntr-o oarecare masur
a n protocolul Kerberos prin folosirea parametrului L (perioada de
valabilitate) care limiteaz
a expunerea pentru un interval de timp fixat.
Protocolul Otway-Rees
Introdus n [103] acesta este un protocol bazat pe tert de ncredere care ofera transport
de chei autentificat (cu autentificarea cheii si asigurari n ceea ce priveste actualitatea
acesteia). Protocolul are doar patru mesaje fara a necesita marci de timp asa cum se
ntampla la protocolul Kerberos. Totusi, acest protocol nu ofera autentificare de entitati
sau confirmarea cheii.
In continuare este prezentat protocolul Otway-Rees n notatie informala.
Protocol 3.2.11 Otway-Rees:
B interactioneaz
a cu serverul de ncredere T si cu entitatea A si se stabileste o cheie
partajat
a secret
a K (o cheie noua) ntre A si B.
1. Notatie. EK (m) Criptarea mesajului m cu cheia K folosind un algoritm de criptare
simetric. Din motive de securitate functia de criptare are integrat un mecanism de
integritate a datelor pentru a detecta modific
ari ale mesajelor. KAB este o cheie de
sesiune generat
a de T pentru A si B. nA si nB sunt nonce-uri alese de A respectiv
B pentru a permite verificarea actualitatii cheii (ceea ce permite detectarea reluarii
mesajelor). M este al doilea nonce ales de A al carui rol este acela de identificator
de tranzactie.
a cheile secrete KAT si KBT cu A respectiv B.
2. Initializarea sistemului. T partajeaz
3. Mesajele protocolului.
(1) : A B :M, A, B, EKAT (nA , M, A, B)
(2) : B T :M, A, B, EKAT (nA , M, A, B), EKBT (nB , M, A, B)
(3) : T B :M, EKAT (nA , KAB ), EKBT (nB , KAB )
(4) : B A :M, EKAT (nA , KAB )

3.3 Transport de chei bazat pe criptare asimetric


a

53

4. Actiunile protocolului. Urmatorii pasi sunt efectuati de fiecare data cand este nevoie
de o noua cheie partajat
a.
(a) A cripteaz
a date pentru server, date ce constau din doua nonce-uri, nA si M ,
si identitatea sa si a entitatii B c
areia doreste ca serverul sa-i distribuie cheia.
A trimite aceste informati criptate pe lang
a alte informatii trimise n clar lui
B n mesajul (1).
(b) B creeaz
a propriul nonce nB si un mesaj analog criptat (cu acelasi M ), si le
trimite lui T , mpreun
a cu mesajul primit de la A, n mesajul (2).
(c) T foloseste identificatorii primiti n clar din mesajul (2) pentru a obtine KAT
si KBT , iar mai apoi verifica daca textul clar (M, A, B) coincide cu cel obtinut
prin decritparea ambelor parti din mesajul (2). (Daca M este acelasi se obtine
o confirmare ca cele doua parti sunt legate una de alta.) Daca verificarile
reusesc, T insereaz
a o noua cheie KAB si nonce-urile create de A, respectiv
B, n mesaje distincte criptate pentru A si B, si le trimite ambele lui B n
mesajul (3).
(d) B decripteaz
a a treia parte a mesajului (3), verifica daca nB coincide cu cel
trimis de el n mesajul (2), si daca coincide atunci transmite lui A mesajul (4)
(prima parte a mesajului (3)).
(e) A decripteaz
a mesajul (4) si verifica daca nA conincide cu cel trimis de el n
mesajul (1).
Dac
a toate verificarile reusesc, ambele entitati A si B sunt asigurate de faptul ca
KAB este o cheie noua (datorita nonce-urilor folosite). A stie ca B este activ datorit
a faptului ca verificarea mesajului (4) implica faptul ca B a trimis mesajul (2)
recent; totusi B nu are asigurarea ca A este activ dec
at dupa ce cheia KAB este
folosit
a ulterior de A, din moment ce B nu poate determina actualitatea mesajului (1).
Remarca 3.2.12 (nonce-urile n protocolul Otway-Rees) Folosirea a doua nonce-uri generate de A este redundant
a (nA poate fi eliminat n mesajul (1) si mesajul (2), si nlocuit
de M n mesajul (3) si (4)), dar cu toate astea permite lui M s
a aiba doar rolul de identificator administrativ de tranzactie, formatul mesajului criptat de ambele entitati ram
anand
identic. (Ultima propozitie este considerat
a n general o proprietate de dorit din punctul
de vedere al implementarii, dar nu si din punctul de vedere al securit
atii).

3.3

Transport de chei bazat pe criptare asimetric


a

Transportul de chei prin tehnici asimetrice consta n alegerea unei chei simetrice de catre
o entitate, si transmiterea ei catre cealalta entitate, folosind cheia publica a acesteia.
Aceasta ofera autentificare orginatorului (doar destinatarul are cheia privata care i permite sa decripteze mesajul), dar originatorul nu obtine nici autentificare de entitati si nici
confirmarea cheii. A doua entitate nu obtine autentificarea sursei. Astfel de asigurari pot
fi obtinute prin tehnici suplimentare cum ar fi: semnaturi digitale, criptare simetrica.
Asigurari n ceea ce priveste autentificarea pot fi oferite cu sau fara utilizarea semnaturilor digitale n felul urmator:

54

Capitolul 3. Protocoale pentru stabilirea cheilor


1. autentificare de entitati prin decriptare cu cheie publica. Destinatarul se autentifica
prin ntoarcerea unei valori care depinde de timp, valoare pe care doar el o poate
genera sau recupera. Aceasta ar putea oferi atat autentificarea entitatii cat si a cheii
transferate.
2. autentificarea originii datelor prin semnaturi digitale. Criptarea cu chei publice este
combinata cu o semnatura digitala, oferind transport de chei cu asigurari n ceea ce
priveste identitatea sursei.

Distinctia dintre autentificare de entitati si autentificarea originii datelor este aceea ca


prima ofera asigurari n ceea ce priveste faptul ca mesajele sunt recente pe cand a doua
nu ofera asa ceva.

3.3.1

Transport de chei folosind criptare cu chei publice f


ar
a
semn
aturi digitale

Transport de chei cu un singur mesaj prin criptare cu chei publice


Protocoalele cu un singur mesaj sunt potrivite pentru comunicatiile ntr-un singur
sens si n aplicatile de tip stocare-naintare (cum este posta electronica). Transportul de
chei elementar poate fi realizat prin protocoale cu un singur mesaj ce folosesc criptare
cu chei publice, n ipoteza ca originatorul (A) detine o copie autentica a cheii publice a
destinatarului B. Folosind cheia publica a lui B, A cripteaza un numar generat aleatoriu
k, si trimite rezultatul lui B. Schemele de criptare care se pot folosi n aceste situatii n
practica sunt RSA, Rabin, ElGamal.
Originatorul A, nu va obtine autentificarea entitatii destinatarului B, (nici macar nu
stie daca mesajul ajunge la B), dar are siguranta autentificarii implicite a cheii - nimeni,
n afara de B, nu poate recupera cheia. Pe de alta parte, B nu are asigurari n ceea ce
priveste sursa cheii, ceea ce ramane adevarat chiar si n cazul n care A i transmite lui
B, n mod criptat, mpreuna cu cheia k, identitatea sa (A B : PB (k, A)). Garantiile
n ceea ce priveste faptul ca mesajele sunt recente se pot oferi prin folosirea marcilor de
timp (A B : PB (k, tA )). Aceasta este obligatoriu atunci cand trebuie oferita securitate
mpotriva atacurilor prin cheie cunoscuta, pentru ca altfel tehnica este vulnerabila la
atacurile prin reluarea mesajelor.
Mentinand restrictia de a se folosi doar criptare cu chei publice (fara semnatura digitala), putem obtine asigurari suplimentare fata de autentificarea unilaterala a cheii (cum
ar fi: autentificare mutuala de entitati, autentificare mutuala de chei) prin folosirea de
mesaje suplimentare asa cum este ilustrat n protocolul 3.3.1 introdus n [87].
Protocol 3.3.1 (Needham-Schroeder cu chei publice)
A si B transmit trei mesaje n urma carora se obtine autentificare de entitati, autentificare
de chei si transport de chei (toate trei mutuale)
1. Notatie.PX (Y ) criptare cu cheia publica a entitatii X, a datelor Y ; PX (Y1 , Y2 )
reprezint
a criptare cu cheia publica a entitatii X, a datelor obtinute prin concatenarea lui Y1 cu Y2 . k1 si k2 sunt chei de sesiune simetrice, secrete, alese de
A, respectiv B.

3.3 Transport de chei bazat pe criptare asimetric


a

55

2. Initializare. Se presupune ca A si B detin cheia publica autentica a celuilalt. (Daca


nu este asa, atunci trebuie transmis initial un mesaj suplimentar cu certificatul
digital - certificat ce contine cheia publica autentica).
3. Mesajele protocolului.
(1) : A B : PB (k1 , A)
(2) : A B : PA (k1 , k2 )
(3) : A B : PB (k2 )
4. Actiunile protocolului.
(a) A i trimite lui B mesajul (1).
(b) B recupereaz
a k1 la primirea mesajului (1) si i trimite lui A mesajul (2).
(c) Dupa decriptarea mesajului (2), A verifica daca cheia k1 este identica cu cea
trimisa de el n mesajul (1). (Daca k1 nu a fost folosita nainte, A obtine
autentificarea entitatii B si asigurarea ca cunoaste aceast
a cheie.) A i trimite
lui B mesajul (3).
(d) La decriptarea mesajului (3), B verifica daca cheia k2 coincide cu cea trimisa
de el n mesajul (2). Cheia de sesiune poate fi calculat
a folosind o functie greu
inversabila f (k1 , k2 ), functie ce este disponibil
a n mod public.
Remarca 3.3.2 (modificare a protocolului Needham-Schroeder)
Protocolul 3.3.1 poate fi modificat pentru a elimina criptarea din mesajul (3). Fie
r1 si r2 dou
a numere aleatoare generate de A, respectiv B. Mesajele protocolului pot fi
modificate n felul urmator (verificarile vor fi analoage cu cele din versiunea originala a
protocolului):
(10 ) : A B : PB (k1 , A, r1 )
(20 ) : A B : PA (k2 , r1 , r2 )
(30 ) : A B : r2

3.3.2

Protocoale care combin


a semn
aturi digitale si criptare cu
chei publice

In protocoalele pentru transport de chei este necesara pastrarea confidentialitatii datelor


care formeaza cheia (k1 , k2 ). De asemenea, este de dorit ca sa avem si autentificare a
sursei. Primitivele de criptare si de semnare pot fi folosite pentru a oferi aceste proprietati.
Protocoalele pentru transport de chei care implica atat criptare cu chei publice cat si
semnatura digitala pot fi grupate astfel:
1. cele care semneaza cheia si dupa aceea cripteaza cu cheia publica cheia semnata;
2. cele care semneaza cheia si separat cripteaza cu cheia publica cheia (nesemnata);
3. cele care cripteaza cu cheia publica cheia si semneaza cheia criptata;

56

Capitolul 3. Protocoale pentru stabilirea cheilor


4. cele care folosesc criptare simetrica pe langa criptare cu chei publice si semnaturi
digitale.

Semnaturile digitale (notatie SA ) si schemele de criptare cu chei publice cele mai des
utilizate n practica sunt RSA, Rabin si familia ElGamal. In mod implicit presupunem
ca schemele de semnatura digitala nu ofera recuperarea mesajului si ca mesajul trebuie
transmis explicit mpreuna cu semnatura pentru a permite verificarea. Cand criptarea
si semnatura digitala se efectueaza separat orice date confidentiale trebuie sa ramana
secrete.
Criptarea cheilor semnate
O optiune pentru combinarea semnaturilor digitale cu criptarea cu chei publice este
de a cripta blocuri semnate:
A B : PB (k, tA , SA (B, k, tA ))
Marca de timp este optionala; includerea ei permite autentificarea lui A fata de B si
ofera proprietatea de actualitate a mesajului. Identificatorul B, n cadrul semnaturii digitale, previne ca B sa trimita mai departe cheia semnata unei alte entitati, impersonandu-l
astfel pe A. Un dezavantaj al acestei metode fata de semnarea cheilor criptate (prezentata mai jos) este ca aici trebuie criptate cu cheia publica mai multe date, ceea ce poate
duce la cerinta de a ajusta dimensiunea blocului pentru schema de criptare cu chei publice
sau la folosirea unor tehnici cum ar fi CBC (Cipher Block Chaining). In cazul schemelor
de semnatura digitala cu recuperarea mesajului (de ex. RSA), se poate simplifica relatia
de mai sus astfel:
A B : PB (SA (B, k, tA ))
Separarea criptarii de semnare
Pentru schemele de sematura digitala fara recuperarea mesajului, o varianta a optiunii
de mai sus este de a semna cheia si de a cripta cheia, fara a cripta semnatura. Acest lucru
este acceptabil doar daca schema de semnatura digitala nu permite deducerea a nici unei
informatii n legatura cu textul clar din semnatura (asta se ntampla atunci cand operatia
de semnare se face asupra unei valori hash). Acest lucru este important deaoarece, de
regula, datele pot fi recuperate dintr-o semnatura. Aceasta varianta poate fi exprimata
astfel:
A B : PB (k, tA ), SA (B, k, tA )
Daca cheia k este folosita doar pentru a cripta un fisier de date y, atunci semnatura
SA poate fi asupra lui y si nu asupra lui k. Acest lucru este potrivit ntr-un mediu de
tip stocare-naintare. Fisierul criptat poate fi transferat mpreuna cu informatia necesara
pentru stabilirea cheii, caz n care prima data este recuperat y prin decriptare cu cheia k,
iar semnatura digitala asupra lui y este verificata ulterior.
Semnarea cheilor criptate
In contrast cu criptarea cheilor semnate, putem semna chei criptate:
A B : tA , PB (A, k), SA (B, tA , PB (A, k))
Marca de timp tA este optionala; includerea ei permite autentificarea entitatii lui A
fata de B. Parametrul A, n criptarea cu cheia publica, mpiedica un tert C sa semneze

3.3 Transport de chei bazat pe criptare asimetric


a

57

valoarea criptata PB (k) cu cheia sa privata. Mecanismul de criptare trebuie sa asigure


faptul ca un adversar C fara acces la k, nu poate schimba PB (A, k) cu PB (C, k). Este
de dorit si se presupune ca lungimea parametrilor A si k nu depasesc lungimea blocului
pentru schema de criptare cu chei publice, pentru a limita calculele de criptare la un
singur bloc.
Formatul de mesaj de mai sus poate fi folosit pentru stabilirea de chei ntr-un protocol
cu un singur mesaj, cu toate ca aceasta nu ofera autentificarea entitatii lui B fata de A.
Pentru autentificare mutuala, pot fi folosite doua mesaje de aceasta forma, ceea ce duce
la protocolul de autentificare puternica bilaterala X.509 (protocolul 3.3.3).
Protocolul pentru transport de chei cu doua mesaje, discutat n paragraful precedent,
necesita utilizarea marcilor de timp, caz n care securitatea se bazeaza pe presupunerea ca
exista ceasuri sigure, sincronizate. Aceasta cerinta poate fi eliminata prin folosirea unui
protocol cu trei mesaje, introdus n [6], ce foloseste numere aleatoare pentru provocareraspuns (care n esenta este protocolul de autentificare puternica cu trei mesaje X.509):
(1) : A B : rA
(2) : A B : rB , PA (B, k1 ), SB (rB , rA , A, PA (B, k1 ))
(3) : A B : PB (A, k2 ), SA (rA , rB , B, PB (A, k2 ))
A si B pot calcula mpreuna cheia k cu ajutorul unei functii care se aplica la k1 si
k2 . Ca o alternativa, unul din mesajele PA (B, k1 ) sau PB (A, k2 ) pot fi omise din mesajul
(2) sau (3). Identificatorii criptati cu cheia publica (A, B) sunt necesari din aceleasi
motive care au fost expuse mai sus. Identificatorii folositi doar n cadrul semnaturii sunt
redundanti, atat aici cat si atunci cand semnam cheile criptate.
Protocoale de autentificare puternica X.509
Recomandarea X.509 [4] defineste atat un protocol de autentificare puternica cu doua
mesaje cat si unul cu trei mesaje care folosesc marci de timp si provocare-raspuns bazat
pe numere aleatoare, care ofera autentificare mutuala de entitati cu transport optional de
chei. Termenul puternic face distinctia ntre aceste protocoale si metodele mai simple
bazate pe parole.
Ambele protocoale au fost proiectate pentru a oferi lui B (destinatarul) garantiile
enumerate mai jos (si asigurari reciproce lui A care este originatorul).
1. identitatea lui A, si datele (protejate n mod criptografic) primite de B au fost
construite de A (si nu au fost modificate ulterior);
2. datele primite de B au fost create special pentru B;
3. datele primite de B sunt recente (nu au fost folosite anterior, si au fost create cu
putin timp n urma).
4. confidentialitatea mutuala a cheii transferate.
Protocol 3.3.3 (X.509 autentificare puternica cu doua mesaje)
A i trimite lui B un mesaj, B r
aspunde cu alt mesaj obtin
andu-se autentificare de entitati
mutual
a si transport de chei cu autentificarea cheii.

58

Capitolul 3. Protocoale pentru stabilirea cheilor


1. Notatie. PX (y) - datele y sunt criptate cu cheia publica a lui X; SX (y) semn
atura
digital
a cu cheia privata a lui X asupra datelor y; rA , rB numere care nu au fost
folosite anterior (pentru a detecta relu
ari si impersonare); certX un certificat care
leag
a entitatea X de cheia publica ce poate fi folosita atat pentru criptare cat si
pentru verificarea semnaturii.
2. Initializarea sistemului.
(a) Fiecare entitate are o pereche de chei (publica, privata) pentru criptare si
semnare.
(b) A trebuie sa obtin
a cheia publica autentica a lui B. Acest pas poate necesita
mesaje si calcule suplimentare.
3. Mesajele protocolului.

(1) : A B : certA , DA , SA (DA )


(2) : A B : certB , DB , SB (DB )
unde DA = (tA , rA , B, date1 , PB (k1 ) ), DB = (tB , rB , A, rA , date2 , PA (k2 ) )
4. Actiunile protocolului.
(a) A obtine o marc
a de timp tA care indica timpul de expirare, genereaz
a rA ,
optional creeaz
a o cheie simetrica k1 si trimite lui B mesajul (1), (date1
reprezint
a date optionale necesare atunci cand trebuie sa se realizeze si autentificarea originii datelor).
(b) B verifica autenticitatea certificatului digital certA (verific
and semnatura, data
expirarii etc.), extrage cheia publica a lui A si verifica semnatura lui A asupra
blocului DA . B verific
a daca identificatorul din mesajul (1) coincide cu identitatea sa, verifica validitatea marcii de timp si verifica daca rA nu a fost reluat.
(rA include o component
a secvential
a pe care B o poate verifica cu ajutorul
unor informatii de stare ntretinute local de B, pentru unicitate n perioada de
valabilitate definita de tA )
(c) Daca reusesc toate verificarile, A este autentificat n fata lui B, si B poate
decripta k1 folosind cheia sa privata. (Acest pas termina protocolul n situatia
n care se doreste doar autentificare unilateral
a). Apoi, B obtine o marc
a de
timp tB , genereaz
a rB , si i trimite lui A mesajul (2). (data2 este optional si
k2 este o cheie simetrica optional
a oferita lui A).
(d) A va efectua actiuni de verificare a mesajului primit similare cu cele efectuate
acest
de B. Daca toate verificarile reusesc, B este autentificat n fata lui A. In
moment, A si B partajeaz
a secrete mutuale k1 si k2 .
Remarca 3.3.4 Standardul X.509 presupune ca se foloseste o schema de criptare cu
chei publice cum ar fi RSA, n care aceeasi pereche de chei poate fi folosita atat pentru

3.4 Acord asupra cheii bazat pe tehnici asimetrice

59

criptare cat si pentru semnatura digitala. Totusi, protocolul poate fi adaptat cu usurint
a
pentru a folosi perechi de chei de criptare/decriptare, respectiv sematur
a digitala/verificare
semn
atur
a, separate. Este chiar indicat sa se foloseasc
a chei separate pentru cele doua
operatii.
Protocol 3.3.5 (X.509 autentificare puternica cu trei mesaje)
A si B transmit trei mesaje si rezult
a autentificare de entitati mutuala si transport de
chei cu autentificarea cheii (la fel ca si n protocolul 3.3.3), far
a a necesita marci de timp.
Protocolul difera de protocolul 3.3.3 n felul urmator:
1. M
arcile de timp tA si tB pot fi zero, si nu trebuie verificate.
2. La primirea mesajului (2), A verifica daca valoarea primita rA coincide cu cea
trimis
a n mesajul (1).
3. Se trimite un al treilea mesaj de la A la B:
(3) A B : (rB , B), SA (rB , B)
4. La primirea mesajului (3), B verifica daca semnatura asupra textului clar este
corect
a, daca identificatorul B este corect si daca textul clar primit rB coincide
cu cel trimis n mesajul (2).

3.4

Acord asupra cheii bazat pe tehnici asimetrice

Protocolul pentru acord asupra cheii Diffie-Hellman (numit si schimb de chei exponential)
este o tehnica fundamentala care ofera acord asupra cheii fara autentificare. Ideea a aparut
pentru prima data n lucrarea [34], lucrare care a marcat nceputul criptografiei moderne,
criptografia cu chei publice. In aceasta sectiune sunt discutate protocoale pentru stabilire
de chei bazate pe schimb de chei exponential si, de asemenea, conceptul de chei publice
certificate implicit si utilizarea lor n protocoalele Diffie-Hellman.

3.4.1

Protocoale pentru acord asupra cheii de tip Diffie-Hellman

Protocolul Diffie-Hellman a fost prima solutie practica la problema distributiei cheilor,


care permite unor entitati care nu au schimbat anterior mesaje, sa stabileasca un secret
partajat prin transmiterea unor mesaje pe un canal de comunicatie deschis. Securitatea
protocolului se bazeaza pe imposibilitatea de a rezolva n practica problema Diffie-Hellman
si problema asociata a calculului logaritmului discret. Versiunea de baza a protocolului
(protocolul 3.4.1) ofera protectie sub forma confidentialitatii cheii care rezulta fata de
adversari pasivi (care doar monitorizeaza canalul de comunicatie), dar nu si fata de adversari activi care au capacitatea de a intercepta, modifica si de a injecta mesaje. Nici
una din cele doua entitati implicate n protocol nu obtine asigurari n ceea ce priveste
identitatea sursei mesajului primit sau n ceea ce priveste identitatea entitatii care poate
cunoaste cheia rezultata (asadar nu obtinem autentificare de entitati si nici autentificare
de cheie).

60

Capitolul 3. Protocoale pentru stabilirea cheilor

Protocol 3.4.1 (Acord de chei Diffie-Hellman - versiunea de baz


a)
A si B si transmit unul altuia cate un mesaj printr-un canal de comunicatie deschis si
rezult
a un secret K cunoscut de A si B.
1. Initializare. Se stabileste si se publica un numar prim p si un generator al grupului
multiplicativ al claselor de resturi mod p, Zp (2 p 2).
2. Mesajele protocolului.
(1) A B : x mod p
(2) A B : y mod p
3. Actiunile protocolului.
(a) A alege un numar aleator secret x, 1 x p 2, si trimite lui B mesajul (1)
(b) B alege un numar aleator secret y, 1 y p 2, si trimite lui A mesajul (2)
(c) B primeste x si calculeaz
a cheia secret
a K = (x )y mod p
a cheia secret
a K = (y )x mod p
(d) A primeste y si calculeaz
Remarca 3.4.2 (Diffie-Hellman cu exponentierile fixate) O varianta a protocolului 3.4.1
ofer
a autentificare mutuala a cheii. Daca x mod p si y mod p sunt fixate ca si chei
publice pe termen lung pentru entitatile A, respectiv B, si aceste chei sunt distribuite prin
intermediul unor certificate semnate atunci se fixeaz
a n felul acesta o cheie partajat
a
pe termen lung pentru aceast
a pereche de entitati, K = xy . Daca aceste certificate
sunt disponibile, protocolul pentru acord asupra cheii devine unul far
a mesaje (nu trebuie
transmis nici un mesaj). Totusi, faptul ca valoarea cheii K nu se modific
a n timp, este
un dezavantaj important al protocolului.
Remarca 3.4.3 (Diffie-Hellman n alte grupuri) Protocolul Diffie-Hellman, si protocoalele care se bazeaz
a pe el, pot fi rulate n orice grup n care problema logaritmului
discret este dificila si exponentierea este eficienta. Cele mai obisnuite grupuri care se
folosesc n practic
a sunt grupurile multiplicative Zp , grupul multiplicativ F2m , si grupul
punctelor definite de o curba eliptica peste un camp finit.
O varianta a protocolului Diffie-Hellman este protocolul ElGamal pentru acord asupra
cheii, care este un protocol cu un singur mesaj si care ofera autentificare unilaterala a cheii
(a destinatarului n fata originatorului), cu conditia ca cheia publica a destinatarului sa fie
cunoscuta de originator a priori. Protocolul a fost introdus de catre ElGamal n lucrarea
[45]. Protocolul este similar cu protocolul Diffie-Hellman, diferenta fiind ca exponentul
public al destinatarului este fixat si autenticitatea acestui exponent este verificabila, fiind
inclus ntr-un certificat.
Protocol 3.4.4 Acord de chei ElGamal (Diffie-Hellman certificat pe jumatate)
A i trimite lui B un mesaj si se realizeaz
a acord asupra unei chei K, cunoscuta de A si
B.

3.4 Acord asupra cheii bazat pe tehnici asimetrice

61

1. Initializare. Fiecare utilizator B alege un numar prim p si un generator al lui Zp .


Alege un numar aleator b, 1 b p 2, si calculeaz
a b mod p. B pune la dispozitia
tuturor cheia sa publica (p, , b ), iar cheia privata b, o pastreaz
a secret
a.
2. Mesajele protocolului.
(1) A B : x mod p
3. Actiunile protocolului. Se efectueaz
a pasi de mai jos de fiecare data cand este nevoie
de o cheie partajat
a.
(a) A obtine o copie autentica a cheii publice a lui B, (p, , b ). A alege un numar
aleator x, 1 x p 2, si trimite lui B mesajul (1). A calculeaz
a cheia
b x
K = ( ) mod p.
(b) B calculeaz
a aceeasi cheie la primirea mesajului (1), K = (x )b mod p.
Remarca 3.4.5 (asigurarile n cazul protocolului ElGamal pentru acord asupra cheii)
protocolul 3.4.4, B nu are nici o dovada n leg
In
atur
a cu identitatea entitatii cu care
partajeaz
a cheia secret
a si nu are garantii nici n ceea ce priveste faptul ca cheia este una
nou
a. Nici una din cele doua entitati nu obtine autentificare de entitati sau confirmarea
cheii.
O alta varianta a protocolului pentru acord asupra cheii Diffie-Hellman este protocolul
MTI/A0 cu doua mesaje (care nu necesita semnaturi digitale). Protocolul i se datoreaza
lui Matsumoto, Takashima si Imai care au prezentat ideile n lucrarea [73]. In urma rularii
protocolului se obtine o cheie de sesiune care depinde de timp si care este autentificata
mutual n mod implicit mpotriva atacurilor pasive. La fel ca si n protocolul ElGamal
(protocolul 3.4.4), A trimite lui B un singur mesaj, rezultand o cheie partajata K. B
initiaza, n mod independent, un protocol analog cu A, rezultand cheia partajata K 0 .
Dupa rularea celor doua instante ale protocolului A si B calculeaza k = KK 0 mod p (p si
sunt parametri globali n acest protocol). Protocolul nu ofera autentificare de entitati
sau confirmare a cheii. Cu toate ca protocolul este potrivit pentru aplicatii n care sunt
posibile doar atacuri pasive, protocolul este vulnerabil fata de anumite atacuri active.
Protocol 3.4.6 (acord asupra cheii MTI/A0)
Acord asupra cheii Diffie-Hellman cu doua mesaje, sigur mpotriva atacurilor pasive.
Rezult
a cheia secret
a K, cunoscuta de A si B.
a autenticitatea) un
1. Initializare. Se alege si se publica (ntr-un mod care garanteaz

num
ar prim corespunz
ator p, si un generator al grupului Zp , 2 p 2. A
alege, ca si cheie privata pe termen lung, un numar aleator a, 1 a p 2 si
calculeaz
a cheia publica pe termen lung zA = a mod p. (B detine cheile analoage
b, zB ). A are acces la copia autentificat
a a cheii publice a lui B si reciproc.
2. Mesajele protocolului.
(1) A B : x mod p
(2) A B : y mod p

62

Capitolul 3. Protocoale pentru stabilirea cheilor


3. Actiunile protocolului. De fiecare data cand este nevoie de o cheie partajat
a se
efectueaz
a urmatoarele operatii.
(a) A alege un secret aleator x, 1 x p 2 si i trimite lui B mesajul (1).
(b) B alege un secret aleator y, 1 y p 2 si i trimite lui A mesajul (2).
(c) A calculeaz
a cheia K = (y )a zBx mod p.
(d) B calculeaz
a cheia K = (x )b zAy mod p. (Ambele entitati vor partaja cheia K =
ay+bx ).

Tabelul 3.2 prezinta protocolul MTI/A0 si nca trei protocoale asociate acestuia, toate
cu doua mesaje. Toate aceste patru protocoale ofera autentificare mutuala a cheii fara confirmare de cheie sau autentificare de entitati si sunt simetrice n ceea ce priveste rolurile:
fiecare entitate executa direct actiuni analoage. Protocoalele sunt de asemenea si independente de mesaje, n sensul ca nici o entitate nu trebuie sa primeasca un mesaj
nainte de a trimite mesajul ei, cu toate ca trei din cele patru variante necesita acces la
cheia publica autentica a celeilalte entitati, nainte de a ncepe protocolul. Cheile publice
pot fi transmise prin certificate care sunt incluse n mesajele protocolului. In protocolul
MTI/A0, continutul ambelor mesaje este independent de identitatea si cheia publica a
destinatarului.
Protocol
MTI/A0
MTI/B0
MTI/C0
MTI/C1

mAB
x
zBx
zBx
zBxa

mBA
y
zAy
zAy
zAyb

KA
mBA zBx
1
maBA x
1
maBA x
mxBA

KB
mAB zAy
1
mbAB y
1
mbAB y
myAB

cheia K
ay+bx
x+y
xy
abxy

Tabela 3.2: Protocoale pentru acord asupra cheii MTI. A si B au secrete pe termen lung
a, respectiv b. Cheile publice pe termen lung a caror autenticitate este verificabila sunt
zA = a , respectiv zB = b . Secretele aleatoare alese pentru sesiune, de catre A si B,
sunt x, respectiv y. mAB reprezinta mesajul transmis de de A lui B iar mBA reprezinta
mesajul transmis de de B lui A. KA , respectiv KB reprezinta cheile finale K asa cum
sunt calculate de A, respectiv B.
Remarca 3.4.7 (atac prin substitutia sursei asupra MTI/A0) Ca o regul
a general
a, n
toate protocoalele ce folosesc chei publice, nainte de a accepta cheia publica autentica a
entit
atii A, entitatea B ar trebui sa aiba garantia (direct sau printr-un tert de ncredere)
c
a A ntradev
ar cunoaste cheia privata corespunz
atoare. Altfel, un adversar C, poate
pretinde ca el este proprietarul cheii publice a lui A, ceea ce i permite o serie de atacuri,
cum ar fi cel descris n continuare.
Presupunem ca ntr-o anumita implementare, A trimite lui B n mesajul (1) cheia
public
a certificat
a. C nregistreaz
a cheia publica a lui A ca fiind a lui (dovedindu-si n
mod legitim identitatea n fata autoritatii de certificare). Atunci cand A trimite lui B
mesajul (1), C nlocuieste certificatul lui A cu al sau, schimband indicarea sursei (dar
las
a valoarea x , trimisa de A lui B, nemodificat
a). C transmite raspunsul lui B (y )
lui A. B deduce ca mesajele primite ulterior criptate cu cheia K = ay+bx vin de la C,

3.4 Acord asupra cheii bazat pe tehnici asimetrice

63

pe cand, n realitate, doar A este cel care cunoaste cheia K si poate fi originatorul unor
astfel de mesaje.
Un atac mai complicat realizeaz
a acelasi efet, cu cheia publica a lui C diferind de
cheia publica a lui A - zA . C alege un ntreg e si calculeaz
a (zA )e = ae , nregistr
and
ae
y
cheia publica . C modific
a ulterior valoarea trimisa de B n mesajul (2) n (y )e .
A si B calculeaz
a cheia K = aey xb , despre care A crede ca o partajeaz
a cu B (ceea ce
este adev
arat), n schimb B crede ca o partajeaz
a cu C.
ambele variante, C nu poate calcula cheia K, dar l determina pe B sa ajunga la
In
concluzii gresite. Astfel de atacuri pot fi evitate prin modificarea protocolului n asa fel
nc
at valorile obtinute prin exponentiere sa fie autentificate, si prin legarea dovezilor de
confirmare a cheii cu o indicare autentificat
a a sursei, printr-o semnatur
a digitala.
Remarca 3.4.8 (independenta de mesaj) Protocoale de tip MTI/A0 nu dezvaluie nici
o informatie n leg
atur
a cu secretele pe termen lung, din moment ce mesajele transmise
sunt independente. Totusi, astfel de protocoale, n care mesajele fiec
arei entitati sunt
independente de mesajele celorlalte entitati, si cu toate astea cheia depinde de informatii
recente furnizate de fiecare entitate, nu pot oferi autentificare explicita mutuala a cheii.
Protocolul STS (Station-to-Station) este o varianta a protocolului Diffie-Hellman care
permite stabilirea unei chei secrete partajate ntre doua entitati cu autentificare mutuala
de entitati si autentificare mutuala explicita. Protocolul a evoluat n urma unor rezultate
anterioare asupra securitatii telefoniei ISDN, asa cum remarca Diffie n [32]. Variante ale
protocolului STS si un model informal pentru autentificare si stabilire autentica de chei
sunt prezentate n [35]. Protocolul permite si anonimat - identitatile A si B sunt protejate de atacatori care intercepteaza mesajele. Metoda se bazeaza pe semnaturi digitale,
descrierea de mai jos este data n cadrul semnaturii digitale RSA.
Protocol 3.4.9 STS - (Station-to-Station)
A si B transmit trei mesaje n urma carora se obtine acord asupra unei chei, autentificare
mutual
a de entit
ati si autentificare explicit
a a cheii.
1. Notatie. E este un algoritm de criptare simetric. SA (m) este semnatura digitala a
lui A asupra mesajului m, definita astfel: SA (m) = (H(m))dA mod nA . (Semnatura
RSA, precedat
a de aplicarea unei functii hash, H(m) < nA ).
2. Initializare.
(a) Se alege si se publica un numar prim p si un generator al grupului Zp ,
2 p 2. (Pentru securitate sporit
a, fiecare entitate poate avea proprii
sai astfel de parametri ca parte a cheii sale publice).
(b) Fiecare entitate A, alege cheile publica si privata, pentru semnatura digitala
RSA, (eA , nA ), respectiv dA . (B are de asemenea aceast
a pereche de chei).
Presupunem ca fiecare entitate are acces la cheia publica autentica a celeilalte
(daca nu este asa, atunci n mesajele (2) si (3) se pot include certificatele
digitale corespunz
atoare).

64

Capitolul 3. Protocoale pentru stabilirea cheilor


3. Mesajele protocolului.
(1) A B : x mod p
(2) A B : y mod p, Ek (SB (y , x ))
(3) A B : Ek (SA (x , y ))
4. Actiunile protocolului. De fiecare data cand este nevoie de o cheie de sesiune partajata se efectueaza pasi de mai jos. Daca verificarea unei semnaturi esueaz
a, protocolul este imediat oprit.
(a) A genereaz
a un numar secret aleator x, 1 x p 2, si i trimite lui B
mesajul (1).
(b) B genereaz
a un numar secret aleator y, 1 y p 2, si calculeaz
a cheia de
sesiune k = (x )y mod p. B semneaz
a ambele valori obtinute prin exponentiere,
n ordinea din mesajul (2), cripteaz
a aceast
a semnatur
a cu ajutorul cheii calculate si i trimite lui A mesajul (2).
(c) A calculeaz
a cheia de sesiune k = (y )x mod p, decripteaz
a mesajul criptat
si, folosind cheia publica a lui B, verifica semnatura digitala obtinut
a prin
decriptare. Daca verificarea semnaturii reuseste, A accept
a cheia k ca fiind
partajat
a cu B, si i trimite lui B un mesaj similar (mesajul (3)).
(d) B verific
a semnatura primita si, daca verificarea reuseste, B accept
a cheia k
ca fiind partajat
a cu A.

Remarca 3.4.10 (confirmarea cheii n protocolul STS) Criptarea prin cheia k ofera confirmare mutuala a cheii si, n plus, confirmarea ca entitatea care cunoaste cheia este cea
care a semnat valoarea obtinut
a prin exponentiere. Utilizarea optima a acestui protocol
are loc atunci cand mesajele ulterioare sunt criptate cu cheia k; daca nu se nt
ampl
a asa,
sunt de preferat mijloace alternative de confirmare a cheii, care evita criptarea. O alternativ
a este folosirea unui MAC n mesajele (2) si (3), de exemplu, pentru s = SA (x , y ),
A B : (s, M ACk (s)). O alta alternativa este includerea unei valori hash a lui k n
mesajul semnat, de exemplu A B : SA (x , y , h(k)) unde h(k) poate fi nlocuit cu k
dac
a procesul de semnare implica aplicarea unei functii hash.

3.4.2

Chei publice certificate implicit

Spre deosebire de sistemele care folosesc certificate de chei publice si de sistemele bazate
pe identitate (care sunt tratate si n sectiunea 5.2), o alternativa pentru distribuirea
cheilor publice o reprezinta cheile publice certificate n mod implicit. In continuare sunt
prezentate o serie de tehnici care implica cheile publice certificate implicit. Primul care a
propus un protocol pentru stabilire de chei bazat pe identitate a fost Blom n [16]. Shamir
[120] a fost cel care a propus ideea mai generala a sistemelor bazate pe identitate, n care
cheia publica a unui utilizator poate sa fie un nume obisnuit sau o adresa.
Cheile publice G
unther certificate implicit
Mecanismul 3.4.11 ofera o metoda prin care un tert de ncredere poate crea o cheie
publica Diffie-Hellman (rs mod p) pentru o entitate, cheia fiind certificata n mod implicit.

3.4 Acord asupra cheii bazat pe tehnici asimetrice

65

Astfel de chei publice, care pot fi reconstruite din date disponibile n mod public, pot fi
folosite n protocoale pentru acord asupra cheii, care necesita chei publice de tip DiffieHellman certificate, ca o alternativa la transportul acestor chei prin certificate de chei
publice sau n anumite protocoale speciale, asa cum este protocolul 3.4.14. Mecanismul
3.4.11 a fost introdus de G
unther n lucrarea [55].
Mecanism 3.4.11 (Chei publice G
unther certificate implicit (bazate pe identitate))
Un tert de ncredere T creeaz
a o cheie publica de tip Diffie-Hellman certificat
a implicit,
recuperabil
a n mod public, pentru o entitate A si transfer
a lui A cheia privata corespunz
atoare.
1. Un tert de ncredere T , alege un numar prim p si un generator al grupului Zp , pe
care le face publice. T alege ca si cheie privata, n mod aleatoriu, un numar ntreg t,
cu 1 t p 2 si cmmdc(t, p 1) = 1, iar cheia publica va fi (p, , u = t mod p).
2. T atribuie fiec
arei entitati A un nume unic sau un sir de caractere pentru identificare
IA (de exemplu, numele si/sau adresa), si un numar aleatoriu kA cu cmmdc(kA , p
1) = 1. T calculeaz
a PA = kA mod p. (PA reprezint
a datele pentru reconstructia
cheii publice a lui A, care permite altor entitati sa calculeze (PA )a ). Conditia
cmmdc(kA , p 1) = 1 este necesar
a pentru ca PA s
a fie generator.
3. Folosind o functie hash h, T rezolv
a urmatoarea ecuatie cu necunoscuta a (repornind
cu un nou kA , daca a = 0):
h(IA ) t PA + kA a(mod p 1)

(1)

4. T transmite n sigurant
a lui A perechea (r, s) = (PA , a), care reprezint
a semnatura
digital
a ElGamal a lui T asupra valorii IA . (a este cheia privata a lui A pentru acord
de chei Diffie-Hellman).
5. Orice entitate poate reconstrui cheia publica Diffie-Hellman a lui A - PAa (= kA a ),
folosind informatii disponibile n mod public (, IA , u, PA , p) calcul
and:
PAa h(IA ) uPA mod p
h(IA ) uPA PAa

(2)
(3)

Mecanismul 3.4.11 poate fi generalizat pentru a fi independent de semnatura digitala


ElGamal, folosind orice alta metoda alternativa potrivita pentru a genera perechea (r, s)
unde r este folosit ca si date pentru reconstruirea cheii publice, iar s este folosit ca si
cheie privata (pentru acord asupra cheii), iar cheia publica reconstruita rs mod p poate fi
calculata doar din informatia publica.
Remarca 3.4.12 (Optimizarea semnaturii ElGamal [12]) Ecuatia (1) din mecanismul
3.4.11 poate fi nlocuit
a cu urmatoarea optimizare a schemei ElGamal de semnatur
a digital
a, n care cmmdc(t, p 1) = 1:
h(IA ) t a + kA PA (mod p 1)

66

Capitolul 3. Protocoale pentru stabilirea cheilor

Pentru a rezolva ecuatia n necunoscuta a, trebuie calculat o singura data inversul


t mod(p1), far
a a mai fi nevoie de a calcula, pentru fiecare semnatur
a digitala, inversul
(kA )1 mod(p 1), asa cum se ntampl
a la schema de sematur
a digitala originala. Cu
aceast
a modificare, cheia publica a lui A pentru acord asupra cheii este ua (= ta ) (si nu
a
PA (= kA a )), cheie care se recupereaz
a prin urmatorul calcul:
1

h(IA ) PAPA mod p(= ta mod p)


Chei publice Girault auto-certificate
Mecanismul 3.4.13, care este folosit n multe protocoale, prezinta o tehnica pentru
crearea cheilor publice certificate n mod implicit. Diferenta fata de mecanismul 3.4.11
este aceea ca permite utilizatorilor sa-si certifice propriile chei fara ca tertul implicat sa
cunoasca cheia privata, utilizatorul fiind singurul care cunoaste aceasta cheie. Mecanismul
3.4.13 a fost introdus de Girault n [47].
Mecanism 3.4.13 (Chei publice Girault auto-certificate)
Un tert de ncredere T creeaz
a cheia publica Diffie-Hellman, certificat
a n mod implicit,
recuperabil
a n mod public, pentru entitatea A, far
a a cunoaste cheia privata corespunz
atoare.
1. Un tert de ncredere T alege numerele prime p si q pentru un ntreg RSA n = pq,
un element de ordin maximal din Zn si ntregii e si d ca pereche de chei RSA
(public
a, privata).
arei entitati A un nume unic sau un sir de caractere de identificare
2. T atribuie fiec
IA (de exemplu numele si/sau adresa).
3. A alege cheia privata a si transmite lui T , ntr-un mod ce poate fi autentificat, cheia
plus, A ofera
public
a a mod n (cheia publica pentru acord de chei a lui A). In
lui T o dovada a faptului ca cunoaste cheia privata (acest pas este necesar pentru
a preveni anumite atacuri prin falsificare de catre A si se poate face prin crearea
de catre A a unei chei Diffie-Hellman bazat
a pe a si pe o expresie obtinut
a prin
exponentiere de catre T, cheie care este transmis
a lui T ).
a datele pentru reconstructia cheii publice a lui A astfel: PA = (a
4. T calculeaz
d
IA ) mod n. (Astfel, (PAe + IA ) mod n = a mod n si folosind doar informatii publice,
orice entitate poate calcula cheia publica a lui A, care este a mod n).

3.4.3

Protocoale Diffie-Hellman cu chei certificate implicit

Autenticitatea valorilor Diffie-Hellman obtinute prin exponentiere si folosite ca si chei


publice, n protocoalele pentru acord asupra cheii autentificat, poate fi stabilita prin
distribuirea lor cu ajutorul certificatelor de cheie publica sau prin reconstruirea lor ca
si chei publice certificate implicit (de exemplu, folosind mecanismele 3.4.11 sau 3.4.13)
folosind parametri care sunt disponibili n mod public. Protocolul 3.4.14 este un exemplu
de astfel de reconstruire a cheii publice.

3.5 Chei de conferint


a

67

Protocol 3.4.14 G
unther (pentru acord asupra cheii)
Este un protocol pentru acord asupra cheii ntre A si B, bazat pe Diffie-Hellman. A si B
stabilesc o cheie secret
a K cu autentificarea cheii.
1. Initializare. Folosind mecanismul 3.4.11, un tert de ncredere T constuieste semn
aturile ElGamal (PA , a), (PB , b) asupra identitatilor IA si IB , ale lui A, respectiv
B. Semnaturile sunt transmise lui A si B, n mod secret, mpreun
a cu parametri
publici, autentificati ai sistemului: numarul prim p, generatorul al grupului Zp si
cheia publica a lui T , notata cu u.
2. Mesajele protocolului.
(1) A B : IA , PA
(2) A B : IB , PB , (PA )y mod p
(2) A B : (PB )x mod p
3. Actiunile protocolului.
(a) A trimite lui B mesajul (1).
(b) B genereaz
a un ntreg aleator y, 1 y p 2, si trimite lui A mesajul (2).
(c) A genereaz
a un ntreg aleator x, 1 x p 2, si trimite lui B mesajul (3).
(d) Calculul cheii. Conform mecanismului 3.4.11, A si B construiesc cheia publica
bazat
a pe identitate a celuilalt ((PB )b si (PA )a mod p). Cheia obtinut
a prin
kA ya+kB bx
acord va fi K =
, si va fi obtinut
a de catre A prin calcului, K =
(PAy )a (PBb )x , respectiv de B prin calculul K = (PAa )y (PBx )b mod p.
protocolul 3.4.14, informatia de
unther cu doua mesaje) In
Remarca 3.4.15 (protocol G
identificare a unei entitati si cheia publica pe termen lung (IA , respectiv PA ) sunt parametri
pe termen lung. Daca acestia sunt cunoscuti a priori, atunci protocolul se poate reduce
la unul cu doua mesaje. Protocolul redus ofera aceleasi garantii, si anume, acord asupra
cheii cu autentificare a cheii.

3.5

Chei de conferint
a

Definitie 3.5.1 Un protocol pentru chei de conferint


a este o generalizare a protocoalelor
pentru stabilire de chei ntre doua entitati care ofera pentru trei sau mai multi participanti
o cheie partajat
a secret
a.
Cateva din cerintele protocoalelor pentru chei de conferinta sunt:
grupuri distincte obtin chei de sesiune distincte;
cheile de sesiune sunt dinamice (cu exceptia schemelor pentru predistributie de chei);
informatia transmisa ntre entitati nu este secreta si este transferata prin canale de
comunicatie deschise;

68

Capitolul 3. Protocoale pentru stabilirea cheilor


fiecare entitate calculeaza individual cheia de sesiune.

O aplicatie pentru aceste protocoale ar putea fi n cazul apelurilor telefonice n conferinta. Grupul care poate calcula cheia de sesiune se numeste submultime privilegiat
a.
O metoda evidenta de a stabili o cheie de conferinta K pentru o multime de t 3
entitati este de a face n asa fel ncat fiecare entitate sa partajeze o cheie simetrica secreta
cu un tert de ncredere comun. Tertul de ncredere alege cheia secreta n mod aleator si o
distribuie fiecarui membru al grupului de conferinta, folosind un protocol pentru transport
de chei. Dezavantajele acestei abordari sunt: necesitatea existentei un tert de ncredere
on-line si operatiile de comunicatie si de calcul ale fiecarei entitati.
O alta abordare, care nu implica utilizarea unui tert de ncredere, poate fi aceea n
care un anumit membru al grupului (moderatorul ) alege cheia K, calculeaza chei DiffieHellman cu toti ceilalti membri ai grupului si, folosind aceste chei, transmite n siguranta
cheia K fiecarui membru al grupului. Dezavantajul acestei metode este dat de faptul ca
moderatorul trebuie sa transmita multe mesaje si sa faca multe calcule. Un alt deazvantaj
este lipsa de simetrie a protocolului (nu este echilibrat din punctul de vedere al entitatilor).
Protocolul 3.5.2, prezentat n [21], ne ofera cea mai eficienta alternativa din cele propuse,
cu toate ca are un grad de complexitate mai ridicat.
Pentru ntelegerea protocolului 3.5.2 sunt necesare urmatoarele precizari: t utilizatori,
notati U0, . . . , Ut1 cu chei publice Diffie-Hellman zi = ri vor crea cheia de conferinta
K = r0 r1 +r1 r2 +r1 r2 ++rt1 r0 . Definim Aj = rj rj+1 si Xj = rj+1 rj rj rj1 . Observand ca
Aj = Aj1 Xj , K poate fi scris, n mod echivalent, (indicii sunt considerati mod t) n felul
urmator:
Ki = A0 A1 At1 = Ai1 Ai Ai+1 Ai+(t2)
= Ai1 (Ai1 Xi ) (Ai1 Xi Xi+1 ) (Ai1 Xi Xi+1 Xi+(t2) )
Notand Ati1 = (zi1 )tri ecuatia este echivalenta cu Ki din protocolul 3.5.2.
Protocol 3.5.2 (Chei de conferint
a Burmester-Desmedt)
Un grup de t 2 entit
ati creeaz
a o cheie de conferint
a K sigur
a n fata unor atacuri
pasive.
1. Initializare. Se alege un numar prim p si un generator al grupului Zp , si aceste
dou
a valori sunt puse la dispozitia fiec
arui membru al sistemului n mod autentic
(num
arul membrilor poate fi maxim n).
a t este
2. Generarea cheii de conferinta. Orice grup de t n utilizatori (de regul
mult mai mic dec
at n), genereaz
a o cheie de conferint
a K astfel: (utilizatorii sunt
indicati prin U0 , . . . , Ut1 , si toti indicii folositi n expresii se consider
a mod t).
(a) Fiecare utilizator Ui alege un numar ntreg aleator ri , 1 ri p 2, si calculeaz
a zi = ri mod p, valoare ce este transmis
a tuturor celorlalti t 1 membri
ai grupului. (se presupune ca Ui cunoaste identificatorii celorlalti membri ai
grupului).
(b) Dupa primirea valorilor zi1 si zi+1 , Ui calculeaz
a Xi = (zi+1 /zi1 )ri mod p
ri+1 ri ri1 ri
(Xi =
), si trimite Xi tuturor celorlalti membri ai grupului.

3.5 Chei de conferint


a

69

(c) La primirea valorilor Xj , 1 j t (cu exceptia lui j = i), fiecare entitate Ui


calculeaz
a cheia K = Ki n felul urmator
t2
2
1
Ki = (zi1 )tri Xit1 Xi+1
Xi+(t3)
Xi+(t2)
mod p

(1)

Pentru numar mic de participanti la conferinta (valori mici ale lui t), calculele efectuate
de fiecare entitate sunt relativ putine, din moment ce toti factorii ecuatiei (1) (cu exceptia
primului) implica o exponentiere cu un exponent cuprins ntre 1 si t. Protocolul necesita
stabilirea unei ordini ntre utilizatorii grupului privilegiat. Pentru t = 2, cheia care rezulta
este K = (r1 r2 )2 , ceea ce este patratul cheii Diffie-Hellman standard. Se poate demonstra
ca deducerea cheii de conferinta K, pentru un adversar pasiv, este la fel de dificila ca si
rezolvarea problemei Diffie-Hellman.

Capitolul 4
Atacuri asupra protocoalelor
4.1

Atacuri asupra protocoalelor de identificare

Aceasta sectiune ncepe cu cateva definitii:


1. impersonare: un atac n care o entitate se da drept alta.
2. atac prin reluare: o impersonare sau un alt tip de nselare n care se foloseste
informatie dintr-o executie precedenta a protocolului cu acelasi verificator sau cu
altul. O clasificare a atacurilor de acest tip este realizata n [122]. Pentru fisiere,
analogul este atacul prin restaurare, n care se nlocuieste un fisier cu o versiune mai
veche.
3. atac prin intercalare: o impersonare sau alta nselare n care se foloseste informatie
combinata selectiv din una sau mai multe executii precedente sau actuale ale protocolului (sesiuni paralele), inclusiv posibilitatea ca una sau mai multe executii ale
protocolului sa fie initiate de atacator.
4. atac prin reflexie: un atac prin intercalare n care se trimite informatia dintr-o
instanta a protocolului napoi la sursa.
5. ntarziere fortata: are loc atunci cand un adversar intercepteaza un mesaj (ce contine
de regula un numar de secventa) si l transmite mai tarziu. Mesajele ntarziate nu
sunt reflexii.
6. atac prin text ales: un atac asupra unui protocol provocare-raspuns n care un
adversar alege n mod strategic provocarile cu scopul de a extrage informatii n
legatura cu cheia pe termen lung a demonstratorului. Atacurile prin text ales se
mai numesc atacuri n care se foloseste demonstratorul ca un oracol, pentru a obtine
de la el informatie care nu poate fi calculata cunoscand doar cheia publica.
Amenintari potentiale la adresa protocoalelor de securitate includ impersonarea prin
unul din urmatoarele atacuri: reluare, intercalare, reflexie, ntarziere fortata. Impersonarea este triviala daca adversarul descopera cheia privata a unei entitati. Aceasta poate fi
posibil n protocoalele care nu sunt cu informatie zero, deoarece pretendentul si foloseste
cheia privata pentru a calcula raspunsul si, astfel un raspuns poate dezvalui informatie
70

4.1 Atacuri asupra protocoalelor de identificare

71

partiala. In cazul unui adversar activ, atacurile pot implica initierea de catre adversar
a uneia sau a mai multor instante ale protocolului si crearea, injectarea sau modificarea
unor mesaje noi sau vechi. In tabelul 4.1 avem un sumar al atacurilor si al masurilor de
prevenire ale acestora.
Tipul atacului
reluare
intercalare
reflexie

text ales
ntarziere fortata

Principii pentru evitarea atacului


folosirea tehnicilor provocare-raspuns; folosirea de
nonce; includerea identitatii tinta n raspuns
legarea tuturor mesajelor dintr-o executie a unui
protocol (prin folosirea de nonce-uri nlantuite)
includerea identificatorului entitatii tinta n raspunsurile la provocari; construirea protocoalelor
astfel ncat fiecare mesaj sa aiba o forma diferita
(evitarea simetriilor ntre mesaje); folosirea de chei
unidirectionale
folosirea de tehnici IZ; includerea n fiecare raspuns
la o provocare a unui numar aleator
utilizarea combinata de numere aleatoare cu timpi
scurti de raspuns; marci de timp si tehnici
aditionale

Tabela 4.1: Atacuri asupra protocoalelor de identificare si contramasuri


Remarca 4.1.1 (folosirea unei chei pentru mai multe scopuri) Trebuie avut grija atunci
c
and o cheie criptografic
a este folosita pentru mai multe scopuri. De exemplu, utilizarea
unei chei RSA atat pentru autentificarea entitatilor cat si pentru semnatur
a digitala poate
compromite securitatea permit
and un atac prin text ales. Presupunem ca autentificarea
const
a din provocarea lui A de catre B cu un numar aleator rB criptat cu cheia publica
RSA a lui A, iar A trebuie sa raspund
a cu numarul aleator decriptat. Daca provocarea
lui B pentru A const
a din rB = h(x), raspunsul lui A la aceast
a provocare va fi semnatura
digital
a a lui A asupra valorii hash a mesajului x.
Detalii de implementare pentru scheme de identificare, cum ar fi protocolul FiatShamir, sunt tratate n lucrarile [13], [15]. Tot aici este discutata remarca 4.1.2.
a) Protocoalele de idenRemarca 4.1.2 (problema maiestrului la jocul de sah prin post
tificare nu ofera garantii n leg
atur
a cu locatia entitatilor. Prin urmare, uneori poate sa
apar
a urmatoarea situatie: un adversar C care ncearc
a sa-l impersoneze pe B, este provocat de catre A sa demonstreze ca este B si este capabil sa transmit
a provocarea primita
de la A adevaratului B (n timp real, far
a sa fie detectat
a tentativa si far
a o nt
arziere
observabil
a), sa primeasc
a raspunsul corect de la B si sa transmit
a acest raspuns mai de acest caz este nevoie de masuri suplimentare pentru a preveni o entitate n
parte lui A. In
a reusi sa obtin
a ajutor n calculul raspunsului. Aceast
a problem
a este legat
a de problema
maiestrului sahist prin post
a, n care un sahist amator si poate mbun
at
ati punctajul n
mod necinstit prin implicarea sa simultana n doua jocuri de sah cu doi maiestri, jucand
cu piesele albe cu unul din ei si cu cele negre cu cel
alalt si folosind mutarile maiestrilor

72

Capitolul 4. Atacuri asupra protocoalelor

dintr-un joc ca raspuns la cel


alalt. Variantele jucatorului amator sunt: doua jocuri terminate remiz
a sau o victorie si o nfr
angere, ambele variante mbun
at
atind punctajul sau.
Mentinerea autenticit
atii
Protocoalele de identificare ofera garantii ce confirma identitatea unei entitati doar la
un anumit moment n timp. Daca e nevoie ca aceasta garantie sa fie continua, e nevoie
de tehnici suplimentare care sa previna atacurile din partea unor adversari activi. De
exemplu, daca identificarea are loc la nceputul unei sesiuni de comunicatii pentru a da
permisiuni de comunicatie, o amenintare potentiala poate fi din partea unui adversar care
intra pe linia de comunicatie imediat dupa identificarea entitatii legitime. Modalitati de
prevenire a acestei situatii sunt:
1. efectuarea re-autentificarii n mod periodic sau la fiecare utilizare a unei resurse. O
amenintare apare aici n momentul n care un adversar iese de pe linia de comunicatie
de fiecare data cand are loc re-autentificarea, ceea ce permite entitatii legitime sa
efectueze acest pas.
2. legarea procesului de identificare de un serviciu de integritate permanent. In acest
caz, procesul de identificare ar trebui sa fie integrat cu un mecanism pentru stabilirea
de chei, un rezultat suplimentar al procesului de identificare fiind o cheie de sesiune
care este folosita ulterior ntr-un mecanism de integritate.
Nivelul de securitate necesar pentru atacuri on-line respectiv off-line
Nivelul de securitate necesar pentru protocoalele de identificare depinde de mediul n
care sunt rulate si de aplicatie. Trebuie luata n calcul probabilitatea de reusita a unui
atac prin ghicire si facuta distinctie ntre numarul de calcule necesare pentru a efectua
atacuri on-line, respectiv off-line (folosind cele mai bune tehnici).
1. Atacuri locale. Selectarea parametrilor de securitate care limiteaza probabilitatea
unei impersonari reusite printr-un atac prin ghicire (n care o entitate doar ghiceste
secretul entitatii legitime) la 1/220 . Aceasta probabilitate e suficient de buna daca
pentru fiecare tentativa de impersonare e nevoie de prezenta locala si la fiecare
identificare esuata avem o penalizare (de regula de timp).
2. Atacuri de la distanta. In sisteme n care se poate face un numar nelimitat de
tentative de identificare (fiecare tentativa implicand un efort minim de calcul si
lipsa penalizarilor pentru demonstratori anonimi) e nevoie de un nivel mai mare de
securitate.
3. Atacuri off-line sau non-interactive. Alegerea parametrilor de securitate astfel ncat
un atac sa necesite 240 operatii executate n timp real (n timpul executiei protocolului) poate fi acceptabil, dar o limita mai mare (280 ) trebuie impusa atunci cand
calculele pot fi efectuate off-line si atacul este verificabil (adversarul poate confirma,
nainte de a interactiona cu sistemul on-line, ca probabilitatea sa de succes n impersonare este apropiata de 1; sau poate recupera o cheie secreta prin calcule off-line
dupa interactiune).

4.2 Analiza protocoalelor pentru stabilire de chei

4.2

73

Analiza protocoalelor pentru stabilire de chei

In aceasta sectiune este evidentiata natura delicata a protocoalelor pentru stabilirea de


chei autentificate si subtilitatea greselilor de proiectare. Sunt prezentate cinci exemple de
protocoalelor cu greseli de proiectare si sunt ilustrate cateva strategii de atac.

4.2.1

Ipotezele si adversarii n protocoalele pentru stabilirea de


chei

In protocoalele pentru stabilirea de chei avem nevoie de un model informal care sa ne ajute
sa clarificam amenintarile la adresa acestora si pentru a motiva diversele caracteristici ale
protocoalelor. Protocoale prezentate n continuare implica doar doua entitati, cu toate ca
definitiile si modelele pot fi generalizate.
In protocoalele pentru stabilirea de chei avem entitati legitime cu nume unic, cele
care comunica pentru a obtine un obiectiv, si avem terti neautorizati cu diverse nume
n diverse circumstante: adeversar, intrus, oponent, inamic, atacator, cel ce trage cu
urechea, impersonator.
Atunci cand analizam protocoalele de securitate, se presupune ca mecanismele criptografice pe care se bazeaza, cum ar fi algoritmii de criptare sau schemele de semnaturi
digitale, sunt sigure. Daca aceste mecanisme nu sunt sigure nici protocolul nu va oferi
siguranta. Un adversar al protocolului nu va fi un criptanalist care ataca n mod direct mecanismele pe care se bazeaza, ci va fi unul care va ncerca sa schimbe obiectivele
protocolului prin nfrangerea modului n care aceste mecanisme sunt combinate, atacand
protocolul.
Definitie 4.2.1 Un atac pasiv implic
a un adversar care ncearc
a sa nfr
ang
a o tehnica
criptografic
a prin simpla nregistrare a datelor si prin analiza lor ulterioar
a (de ex. n
stabilirea de chei, pentru a determina cheia de sesiune). Un atac activ implic
a un
adversar care modific
a sau injecteaz
a mesaje.
Se presupune ca mesajele protocolului sunt transmise prin retele deschise, neprotejate,
modelate printr-un adversar care poate controla toate datele, avand posibilitatea de a
nregistra, modifica, insera, redirecta si refolosi mesaje vechi sau mesajele curente, si
poate injecta mesaje noi. Entitatile legitime sunt modelate ca primind mesaje n mod
exclusiv de la astfel de adversari (pe orice cale de comunicatie), adversari care pot doar sa
transmita mai departe anumite mesaje, sau pot efectua oricare din posibilitatile enuntate
mai sus, fara o ntarziere sesizabila. Un adversar poate de asemenea sa determine anumite
entitati legitime (care nu suspecteaza nimic) sa initieze noi instante de protocol.
Exista o serie de strategii pe care le poate folosi un adversar:
1. sa deduca cheia de sesiune folosind informatia obtinuta prin ascultarea liniilor de
comunicatie.
2. sa participe n mod ascuns la un protocol initiat de o entitate cu o alta entitate, si
sa influenteze acel protocol, de ex. prin modificarea mesajelor astfel ncat sa poata
deduce cheia.

74

Capitolul 4. Atacuri asupra protocoalelor


3. sa initieze una sau mai multe executii ale protocolului (chiar si simultane) si sa
combine1 mesaje dintr-o instanta a protocolului cu mesaje din alta instanta a protocolului, astfel ncat sa se poata da drept o alta entitate sau pentru a efectua unul
din atacurile enumerate mai sus.

In protocoalele pentru schimb de chei neautentificat, impersonarea este posibila prin


definitie. In autentificarea de entitati, unde nu exista o cheie de sesiune ce poate fi atacata,
obiectivul unui adversar este de a face n asa fel ncat o entitate sa primeasca anumite
mesaje care sa o conviga ca protocolul a fost rulat cu succes cu o entitate legitima diferita
de cea a adversarului.
Adesea se face distinctie ntre adversari pe baza tipului de informatie care le este
disponibila. Un outsider este un adversar care nu stie mai mult decat ceea ce este disponibil n mod public (sau ceea ce se poate afla prin interceptarea mesajelor protocolului prin
liniile de comunicatie). Un insider este un adversar care are acces la informatii suplimentare cum ar fi o cheie de sesiune sau informatie partiala secreta, obtinuta ntr-un mod
privilegiat (de ex. acces fizic la resurse de calcul private). Un insider one-time obtine
informatii suplimentare la un moment dat pentru a fi folosite ulterior, pe cand un insider
permanent are acces nentrerupt la informatie privilegiata.
In analiza protocoalelor pentru stabilirea de chei, trebuie considerat impactul potential
pe care l are compromisul diferitelor tipuri de chei, chiar daca un astfel de compromis
este putin probabil sa aiba loc. Asadar, ar trebui considerat compromisul cheilor secrete
pe termen lung si compromisul unor chei de sesiune vechi.
Definitie 4.2.2 Spunem ca un protocol are securitate perfect
a nainte daca compromiterea unei chei secrete folosita pe termen lung nu afecteaz
a cheile de sesiune vechi.
Termenul de securitate perfect
a nainte a fost stabilit de G
unther [56]. Termenul
perfect nu se refera la securitate din punctul de vedere al teoriei informatiei. Ideea
securitatii perfecte nainte este aceea ca datele transmise anterior raman n siguranta.
Acest lucru se poate realiza prin generarea cheilor de sesiune prin protocolul pentru acord
de chei Diffie-Hellman, n care exponentii Diffie-Hellman sunt bazati pe chei pe termen
scurt. Daca cheile pe termen lung sunt compromise, cheile de sesiune ulterioare pot fi
subiectul impersonarii de catre un adversar activ.
Definitie 4.2.3 Spunem ca un protocol este vulnerabil la un atac prin cheie cunoscut
a, daca compromiterea cheilor de sesiune vechi permite unui adversar pasiv sa compromit
a chei de sesiune ulterioare sau permite unui adversar activ sa realizeze ulterior
imperson
ari.
Conceptul de atac prin cheie cunoscuta a fost creat de Yacobi si Shmuely [126] si este
strans legat de conceptul introdus de Denning si Sacco [28] n ceea ce priveste utilizarea
marcilor de timp pentru a preveni reluarea mesajelor. Atacurile prin cheie cunoscuta
asupra protocoalelor pentru schimb de chei sunt analoage cu atacurile prin text clar asupra
algoritmilor de criptare. O motivatie pentru discutarea lor este aceea ca n unele medii
(de ex. datorita unor decizii de implementare sau decizii ingineresti), probabilitatea compromiterii cheii de sesiune sa fie mai mare decat probabilitatea compromiterii cheilor pe
1

engl. interleave

4.2 Analiza protocoalelor pentru stabilire de chei

75

termen lung. O a doua motivatie este aceea ca atunci cand se folosesc tehnici criptografice
cu putere moderata, exista posibilitatea ca un efort criptanalitic intens sa descopere chei
de sesiune vechi. O ultima motivatie este aceea ca, n unele sisteme, cheile de sesiune vechi
pot fi relevate n mod deliberat din diverse motive (de ex., dupa autentificare, pentru a
detecta o posibila utilizare a canalului de autentificare ca un canal secret sau ascuns).

4.2.2

Strategii de atac si deficiente clasice ale protocoalelor

Studiul atacurilor reusite care au relevat deficiente ale protocoalelor ne permit sa nvatam
din erorile de proiectare anterioare, sa ntelegem metodele si strategiile generale de atac si
sa formulam principii de proiectare. Aceasta permite ntelegerea rolului diferitelor operatii
din cadrul protocoalelor. Strategiile generale de atac au fost discutate n sectiunea 4.2.1.
In exemplele date mai jos, A si B sunt entitati legitime, iar E este adversarul. Doua din
protocoalele prezentate sunt protocoale care ofera doar autentificare, dar sunt incluse aici
pentru ca principiile generale raman valabile.
Atacul 1. Intrusul la mijloc
Clasicul atac intrusul-la-mijloc2 , prezentat n lucrarea [107], asupra protocolului
pentru acord asupra cheii Diffie-Hellman neautentificat poate fi redat n felul urmator:
A
E
B
x
x0

0
y y
A si B au ca si chei private valorile x si y. E creeaza cheile x0 si y 0 . E intercepteaza
0
valoarea trimisa de A si o nlocuieste cu x ; valoarea trimisa de B de asemenea o in0
0
tercepteaza si o nlocuieste cu y . A va crea cheia de sesiune KA = xy , iar B va crea
0
cheia de sesiune KB = x y . E poate calcula ambele chei. Cand A trimite lui B un mesaj
criptat cu cheia KA , mesajul este interceptat de E, decriptat, re-criptat cu cheia KB si
trimis lui B. (In mod similar, E va face aceleasi operatii cu mesajele trimise de B catre
A). A si B au convigerea ca sunt ntr-un proces de comunicatie sigur, dar E citeste tot
traficul.
Atacul 2. Reflexie
Presupunem ca A si B partajeaza o cheie simetrica K, si se autentifica unul n fata altuia pe baza demonstrarii cunoasterii acestei chei prin criptarea/decriptarea unei provocari
astfel:
A
B

rA
(1)
EK (rA , rB ) (2)

rB
(3)
Un adversar E l poate impersona pe B n felul urmator. La trimiterea mesajului (1)
de catre A, E l intercepteaza si initiaza un nou protocol cu A, trimitandu-i napoi aceeasi
0
valoare rA , ca si cum ar veni de la B. A raspunde cu mesajul EK (rA , rA
), mesaj care
este din nou interceptat de E si este transmis napoi lui A ca raspuns la provocarea rA
din prima instanta a protocolului. In momentul acesta, A ncheie primul protocol si are
2

engl. man-in-the-middle

76

Capitolul 4. Atacuri asupra protocoalelor

convingerea ca B s-a autentificat n fata lui, n realitatea B nici macar nu a fost implicat
n protocol. Atacul este prezentat si discutat n lucrarea [81].
A

E
rA
(1)
rA
(10 )
0

EK (rA , rA )
(20 )
0
EK (rA , rB = rA
) (2)

rB
(3)

Atacul poate fi prevenit prin folosirea unor chei distincte (K si K 0 ) pentru mesajele
criptate de la A la B, respectiv pentru cele de la B la A. O alta modalitate de prevenire
a atacului este de a evita simetriile mesajelor, de exemplu, prin adaugarea identitatii
originatorului unui mesaj la datele ce se cripteaza.
Atacul 3. Intercalare
Protocolul de autentificare de mai jos este gresit. SX este semnatura digitala a lui
X si se presupune ca fiecare entitate detine o copie autentica a cheii publice a tuturor
celorlalte entitati.
A

rA
(1)
rB , SB (rB , rA , A) (2)
0
0
rA
, SA (rA
, rB , B)
(3)

Intentia este ca numerele aleatoare alese de A si B, mpreuna cu semnaturile digitale


sa ofere o garantie a faptului ca mesajele sunt recente si autentificare de entitati. Totusi,
un atacator E poate initia un protocol cu B (pretinzand ca este A) si un alt protocol
cu A (pretinzand ca este B), asa cum este prezentat mai jos, si sa foloseasca mesaje din
al doilea protocol pentru a-l rula cu succes pe primul, rezultatul final fiind acela ca B
crede ca E este A (si ca A a initiat protocolul). Atacul i se datoreaza lui Wiener (ntr-un
document ISO/IEC JTC1/SC27 N313) si este discutat n lucrarea [35].
A

rA
(1)
rB , SB (rB , rA , A) (2)
rB

(10 )
0
0
rA
, SA (rA
, rB , B)
(20 )
0
0
rA , SA (rA , rB , B)
(3)
Atacul este posibil datorita simetriei mesajelor (2) si (3), si poate fi prevenit prin
schimbarea structurii acestora, de exemplu prin legarea n siguranta a unui identificator
n fiecare mesaj, identificator care poate reprezenta numarul mesajului, sau nlocuirea lui
0
rA
cu rA n mesajul (3).

Atacul 4. Incredere
eronat
a ntr-un server
Protocolul Otway-Rees are urmatoarele mesaje:

4.2 Analiza protocoalelor pentru stabilire de chei

77

(1) A B :M, A, B, EKAT (nA , M, A, B)


(2) B T :M, A, B, EKAT (nA , M, A, B), EKBT (nB , M, A, B)
(3) T B :M, EKAT (nA , k), EKBT (nB , k)
(4) B A :M, EKAT (nA , k)
Atacul de mai jos este discutat de Boyd si Mao in [20] si de asemenea de van Oorschot
n [124].
La primirea mesajului (2), serverul trebuie sa verifice faptul ca informatiile (M, A, B)
din cele doua parti criptate, coincid si n plus, coincid si cu informatiile transmise n
clar. Daca aceasta ultima verificare nu este efectuata, atunci un atacator E (care este
un alt utilizator legitim al sistemului) poate efectua urmatorul atac, impersonandu-l pe
B. E modifica mesajul (2), nlocuind textul clar B, cu E (dar lasand n ambele parti
criptate A si B nemodificate), nlocuieste nonce-ul nB cu nE , folosind cheia KET (pe care
o partajeaza cu serverul T ) n locul cheii KBT . Pe baza identificatorului din textul clar E,
T cripteaza o parte din mesajul (3) cu cheia KET ceea ce i permite lui E sa recupereze
cheia de sesiune k; A crede, la fel ca si n protocolul original, ca cheia k o partajeaza cu
B. Acest atac a fost prezentat de catre Boyd si Mao n [20] si de catre van Oorschot n
[124]. Atacul este redat mai jos:
(1) A B :M, A, B, EKAT (nA , M, A, B)
(2) B E :M, A, B, EKAT (nA , M, A, B), EKBT (nB , M, A, B)
(20 ) E T :M, A, E, EKAT (nA , M, A, B), EKET (nE , M, A, B)
(3) T E :M, EKAT (nA , k), EKET (nE , k)
(4) E A :M, EKAT (nA , k)
Atacul este posibil datorita modului subtil n care A deduce identitatea celeilalte
entitati careia i-a fost trimisa cheia k: n mesajul (4), A nu are o indicatie directa n
legatura cu identitatea entitatii careia T i-a transmis cheia k, ci se bazeaza pe nonceul nA si pe asocierea acestuia cu perechea (nA , B) din partea protejata a mesajului (1).
Astfel, A se bazeaza pe server pentru a pune cheia k la dispozitia entitatii cerute de A, iar
acest lucru poate fi garantat doar de catre T care foloseste campurile protejate (M, A, B).
Atacul 5. Atacul lui Lowe asupra protocolului Needham-Schroeder
In capitolul 3 am prezentat protocolul Needham-Schroeder (protocolul 3.3.1) cu chei
publice care realizeaza autentificare de entitati, autentificare de chei si transport de chei
(toate mutuale). La ora actuala acest protocol are doar o importanta teoretica datorita
faptului ca G.Lowe a demonstrat n lucrarea [69] un atac asupra acestui protocol, atac
care permite unui intrus sa impersoneze un participant onest la protocol.
Mesajele protocolului Needham-Schroeder cu chei publice sunt:
(1) A B : PB (ka , A)
(2) A B : PA (ka , kb )
(3) A B : PB (kb )

78

Capitolul 4. Atacuri asupra protocoalelor

A trimite lui B mesajul (1), care contine un nonce ka si identitatea sa, ambele criptate
cu cheia publica a lui B. Se presupune ca A si B detin cheia publica autentica a celuilalt.
La primirea mesajului (1), B l decripteaza cu cheia sa privata, genereaza un nonce kb si
trimite lui A mesajul (2). Dupa decriptarea mesajului (2), A este asigurat de faptul ca
discuta cu B pentru ca doar B putea sa decripteze mesajul (1), care continea nonce-ul ka .
A trimite mesajul (3) lui B. Dupa decriptarea acestui mesaj, cu cheia sa privata, B este
asigurat de faptul ca discuta cu A pentru ca doar A putea decripta mesajul (2) pentru a
obtine nonce-ul kb .
Consideram un intrus I care interactioneaza cu acest protocol, intrus care este un
utilizator al retelei, care poate initia sesiuni de autentificare cu alte entitati, si alte entitati
pot initia sesiuni de autentificare cu I. I poate intercepta orice mesaj din sistem si poate
modifica si injecta mesaje. Intrusul nu poate descoperi valoarea nonce-urilor criptate de
alte entitati. Prin urmare, I poate produce si injecta mesaje noi care contin doar nonceuri generate de el. Poate de asemenea, sa retransmita mesaje nregistrate anterior, chiar
daca nu stie ce contin.
Atacul permite unui intrus sa impersoneze o entitate A stabilind o sesiune falsa cu B
(B crede ca comunica cu A, dar n realitate comunica cu I). Atacul implica doua rulari
simultane ale protocolului etichetate cu 1, respectiv 2, n descrierea de mai jos. In prima
instanta a protocolului A stabileste o sesiune valida cu I, iar n a doua I l impersoneaza
pe A pentru a realiza o sesiune falsa cu B. In ceea ce priveste notatia I(A) semnifica
faptul ca intrusul I l impersoneaza pe A.

(1.1)
(2.1)
(2.2)
(1.2)
(1.3)
(2.3)

A I : PI (ka , A)
I(A) B : PB (ka , A)
B I(A) : PA (ka , kb )
I A : PA (ka , kb )
A I : PI (kb )
I(A) B : PB (kb )

La pasul (1.1) A ncepe stabilirea unei sesiuni normale cu I, trimitand noce-ul ka . La


pasul (2.1) intrusul, care-l impersoneaza pe A, ncearca sa stabileasca o sesiune falsa cu
B, trimitand nonce-ul obtinut de la A. B raspunde cu mesajul (2.2) prin generarea unui
nonce kb pe care ncearca sa-l transmita lui A, mpreuna cu ka . Intrusul intercepteaza
acest mesaj, dar nu l poate decripta pentru ca este criptat cu cheia publica a lui A. Prin
urmare I l foloseste pe A ca un oracol de decriptare pentru acest mesaj trimitandu-i
mesajul (1.2). Acest mesaj are forma pe care A o asteapta n protocolul 1. A decripteaza
mesajul si i trimite lui I nonce-ul kb n mesajul (1.3), nonce pe care I l trimite mai
departe lui B n mesajul (2.3). La primirea acestui mesaj, B crede ca a stabilit o sesiune
autentica cu A.
Exista o modificare simpla a protocolului pentru a preveni acest atac, modificare
sugerata tot de G.Lowe n [69]. Modificarea consta n includerea identitatii repondentului
n mesajul 2.

4.2 Analiza protocoalelor pentru stabilire de chei

79

(2) B A :PA (B, ka , kb )


Cu aceasta modificare I nu mai poate transmite acest mesaj lui A pentru ca n instanta
1 a protocolului A va astepta un mesaj care sa contina identitatea lui I.

4.2.3

Obiectivele analizei si metode de analiz


a

Scopul principal al analizei unui protocol este de a stabili o ncredere n legatura cu


securitatea criptografica oferita de protocol.
Definitie 4.2.4 Un protocol pentru stabilire de chei este operational daca, n absenta
unui adversar activ si n absenta erorilor de comunicatie, participanti onesti, care respect
a
specificatiile protocolului, reusesc ntotdeauna sa ncheie protocolul calcul
and o cheie comun
a si obtin
and identitatea entitatii cu care partajeaz
a cheia respectiv
a.
Definitie 4.2.5 Un protocol pentru stabilire de chei este rezilient dac
a este imposibil
pentru un adversar activ sa nsele participanti onesti n leg
atur
a cu rezultatul final.
Analiza protocoalelor ar trebui sa confirme faptul ca protocolul respecta toate obiectivele pretinse a fi ndeplinite. Un protocol pentru stabilire de chei ar trebui sa fie cel
putin operational (aceasta nu implica nici o garantie de securitate), oferind atat confidentialitatea cat si autenticitatea cheii, si sa fie rezilient. Autenticitatea cheii implica si
faptul ca identitatile entitatilor cu care este partajata cheia sunt ntelese si demonstrate,
n felul acesta rezolvandu-se si problema impersonarii si a substitutiei. Alte obiective
suplimentare, pe langa stabilirea autentica de chei, pot fi: confirmare de cheie, securitate
perfecta nainte, detectarea reutilizarii cheilor si rezistenta la atacuri cu cheie cunoscuta.
In plus fata de verificarea ndeplinirii obiectivelor, beneficii suplimentare ale analizei
sunt:
1. identificarea explicita a ipotezelor pe care se bazeaza securitatea protocolului;
2. identificarea proprietatilor protocolului si enuntarea cu precizie a obiectivelor sale
(ceea ce permite compararea cu alte protocoale si determinarea aplicabilitatii protocolului n diverse situatii);
3. examinarea eficientei protocolului n ceea ce priveste latimea de banda folosita si
complexitatea computationala.
Toate metodele de analiza ale protocoalelor necesita urmatoarele elemente (implicit
sau explicit):
1. specificarea protocolului - o specificare neambigua a mesajelor protocolului, atunci
cand sunt trimise si a actiunilor ntreprinse atunci cand mesajele sunt primite;
2. obiectivele - o enuntare neambigua a garantiilor care sunt pretinse a fi oferite la
ncheierea protocolului;

80

Capitolul 4. Atacuri asupra protocoalelor


3. ipoteze si starea initial
a - o enuntare a ipotezelor si a conditiilor initiale;
4. demonstratia - un rationament pe baza ipotezelor si a starii initiale, prin care pasii
protocolului duc la o stare finala care ndeplineste obiectivele protocolului.

Cateva din abordarile folosite cel mai des n analiza protocoalelor criptografice sunt
enumerate n continuare:
1. analiz
a ad-hoc si analiza practic
a - metoda consta dintr-o serie de argumente convingatoare n legatura cu faptul ca un atac reusit mpotriva protocolului necesita
un nivel de resurse (timp si spatiu) mai mare decat ceea ce poate avea un adversar. Despre protocoalele care trec de o astfel de analiza spunem ca au securitate
euristica, securitatea fiind n sens computational iar adversarii au resurse fixate.
Protocoalele sunt de regula proiectate pentru a rezista n fata unor atacuri standard
si se demonstreaza pentru ele ca respecta principiile acceptate. Argumentele practice (adaugate la argumentele de teoria complexitatii) ce implica constructii care
asambleaza elementele constitutive de baza pot justifica securitatea pretinsa.
Cu toate ca este cea mai folosita si practica abordare, este n acelasi timp si cea mai
putin satisfacatoare. Abordarea poate descoperi defecte ale protocoalelor. Totusi,
securitatea pretinsa ramane sub semnul ntrebarii, defectele subtile ale protocoalelor
criptografice ramanand nedescoperite de analiza ad-hoc.
2. reducerea de la probleme dificile - consta n a demonstra ca orice atac reusit asupra
protocolului duce la posibilitatea de a rezolva o problema dificila din teoria numerelor (de ex. problema factorizarii ntregilor sau problema logaritmului discret),
problema care este considerata la ora actuala nefezabila computational pentru un
adversar cu resurse limitate. O astfel de analiza duce la asa numitele protocoale cu
securitate demonstrabil
a, cu toate ca securitatea este conditionata de dificultatea
problemei la care se face reducerea.
O provocare n cazul acestei abordari este de a stabili faptul ca toate atacurile
posibile au fost luate n calcul, si ca acestea sunt considerate echivalente cu problema
dificila. Astfel de protocoale, pentru care se poate demonstra securitatea n acest
fel, fac parte dintr-o clasa mai generala de tehnici, si anume cele care ofera securitate
computational
a.
3. analiz
a din punctul de vedere al complexit
atii calculului - se defineste un model
de calcul corespunzator, iar adversarii sunt modelati ca avand putere de calcul
polinomiala (pot efectua atacuri pentru care parametri de securitate au dimensiune
polinomiala n ceea ce priveste timpul si spatiul folosit). Dupa aceea se construieste
o demonstratie de securitate relativ la model. De regula, se presupune ca exista
primitive criptografice cu anumite proprietati. Un obiectiv este de a proiecta un
protocol criptografic care necesita un numar mic de primitive criptografice, sau cele
mai slabe ipoteze.
Datorita faptului ca demonstratiile sunt asimptotice, trebuie tinut cont de situatiile
n care acestea au semnificatie practica. Atacurile polinomiale care sunt fezabile
ntr-un astfel de model pot fi nefezabile computational n practica. Analiza asimptotica poate avea o relevanta limitata n practica, pentru probleme concrete a caror

4.2 Analiza protocoalelor pentru stabilire de chei

81

dimensiune este finita. Cu toate aceste probleme, analiza din punctul de vedere
al complexitatii calculului este o unealta importanta pentru formularea principiilor
fundamentale si pentru a confirma intuitia.
4. analiz
a din punctul de vedere al teoriei informatiei - aceasta abordare foloseste
demonstratii matematice ce implica relatii asupra entropiei pentru a demonstra ca
protocoale sunt sigure neconditionat. Adversarii sunt modelati ca avand resurse de
calcul nelimitate.
Cu toate ca securitatea neconditionata ar fi un obiectiv fundamental, aceasta abordare nu este aplicabila la majoritatea schemelor practice din diverse motive: schemele bazate pe tehnici cu chei publice pot fi cel mult sigure din punct de vedere
computational; pentru a oferi o astfel de securitate ar trebui sa avem chei de dimensiune foarte mare sau chei ce pot fi folosite o singura data. Aceasta abordare nu
poate fi combinata cu cea precedenta pentru ca aici sunt permise calcule nelimitate.
5. metode formale - n aceasta categorie avem metodele de analiza si verificare formala
care includ logici de autentificare, sisteme cu rescrierea termenilor, sisteme expert
si diferite alte metode care combina tehnicile algebrice cu cele cu tranzitii ntre
stari. Un reprezentat al acestei abordari este logica BAN. Metodele bazate pe logici
ncearca sa rationeze n legatura cu corectitudinea protocolului prin evoluarea unei
multimi de ipoteze pe care le au entitatile implicate, pentru a ajunge la convingerea
ca obiectivele protocolului au fost ndeplinite.
Abordarea prin metode formale difera fundamental de toate celelalte patru prezentate anterior. Cu ajutorul metodelor formale s-au gasit defecte si redundante ale
protocoalelor, iar unele metode pot fi automatizate ntr-o anumita masura. Pe
de alta parte, demonstratiile care rezulta sunt demonstratii n sistemul formal
respectiv, si nu pot fi interpretate ca demonstratii absolute de securitate. Lipsa
descoperirii unor defecte printr-o metoda formala nu implica lipsa defectelor n protocolul analizat. Unele tehnici sunt aplicabile doar unei anumite clase de protocoale
sau doar unor anumite clase de atacuri. Aceste tehnici necesita conversia (de cele
mai multe ori manuala) a protocolului n specificatie formala, proces care la randul
sau poate fi unul supus erorilor.
Capitolul ?? detaliaza o serie de metode formale pentru analiza protocoalelor de securitate.

Capitolul 5
Infrastructuri de autentificare pentru
criptografia cu chei publice
In criptografia cu chei publice, la pasul de generare a cheilor ntotdeauna avem urmatoarea
etapa:
cheie public
a = F (cheie privat
a)
(5.1)
In relatia (5.1) F este o functie one-way eficienta definita pe spatiul cheilor private cu valori n spatiul cheilor publice. Datorita proprietatii one-way a functiei F,
cheia public
a calculata pe baza cheii private va contine ntotdeauna o parte care apare
ca fiind aleatoare. Datorita acestui fapt, e necesar ca orice cheie publica sa fie asociata cu
informatia detinatorului real al ei ntr-un mod verificabil si de ncredere. Pentru a trimite
un mesaj confidential criptat cu o cheie publica, transmitatorul trebuie sa se asigure ca
cheia publica pe care o foloseste, care apare ca fiind un sir aleator, apartine destinatarului mesajului. De asemenea, pentru a stabili originea unui mesaj folosind o schema de
semnatura digitala, verificatorul trebuie sa se asigure ca cheia publica folosita la verificarea
semnaturii apartine ntr-adevar celui care pretinde ca a semnat.
La modul general, pentru a folosi criptografia cu chei publice n aplicatii reale, avem
nevoie de mecanisme care sa permita verificarea asocierii ntre chei publice si identitatea
entitatilor care pretind ca detin cheia publica. Astfel de mecanisme sunt realizate de
regula ntr-o infrastructura de autentificare: permite detinatorului unei chei publice sa se
autentifice n fata sistemului.
In continuare sunt prezentate doua modalitati de a stabili o insfrastructura de autentificare pentru criptografia cu chei publice: PKI - (Public Key Certification Infrastructure
- Infrastructura de Certificare pentru Chei Publice) si criptografia cu chei publice bazata
pe identitate.

5.1

Infrastructur
a de autentificare bazat
a pe director

Pentru doua entitati care comunica frecvent este simplu sa-si identifice n mod sigur una
alteia cheile publice ntrucat acestea pot fi schimbate initial ntr-un mod sigur din punct
de vedere fizic, de exemplu printr-o ntalnire fata n fata iar mai apoi sa stocheze cheile
ntr-un mod sigur. Totusi, aceasta metoda simpla de gestiune a cheilor nu poate fi
extinsa foarte usor la un sistem cu multi utilizatori. In modelul general de comunicatii n
82

5.1 Infrastructur
a de autentificare bazat
a pe director

83

sisteme deschise, comunicatiile au loc ntre entitati care nu au mai comunicat anterior si
pot sa nici nu mai comunice n viitor. Metoda simpla de gestiune a cheilor descrisa mai
sus, ar necesita ca fiecare entitate sa gestioneze un numar foarte mare de chei publice,
cate una pentru fiecare entitate cu care doreste sa comunice. In plus, aceasta metoda nu
foloseste avantajele criptografiei cu chei publice.
Un serviciu online pentru gestiunea cheilor secrete poate fi dat de un tert de ncredere
cu care fiecare entitate stabileste o relatie pe termen lung ce implica stabilirea unei chei
secrete ce va fi folosita pentru comunicatia cu confidentialitate ntre tertul de ncredere si
entitate. In momentul n care doua entitati doresc sa comunice n mod confidential, ele
ncep un protocol de autentificare care implica si tertul (serverul) de ncredere si stabilesc
un canal de comunicatie sigur. Tertul de ncredere este cel care va genera cheia secreta
ce va fi folosita pentru secretizarea caii de comunicatie dintre cele doua entitati si le va
transmite cu confidentialitate aceasta cheie. Astfel, fiecare entitate trebuie sa gestioneze
o singura informatie secreta si anume o cheie secreta pe care o partajeaza cu tertul de
ncredere.
Serviciul de gestiune a cheilor secrete descris mai sus poate fi extins pentru gestiunea
cheilor publice. In acest caz serviciul de gestiune a cheilor se numeste serviciu de certificare a cheilor publice, iar un server de ncredere se numeste autoritate de certificare
(CA - Certification Authority). CA este o entitate speciala care este bine cunoscuta si n
care entitatile din domeniul deservit au ncredere. CA poate fi cunoscuta si n alt domeniu
mai mare, n mod indirect. Fiecare utilizator din domeniul CA va primi un certificat de
cheie publica care va atesta cheia publica a utilizatorului. Un certificat de cheie publica
este o nregistrare structurata care contine o serie de campuri printre care o identitate,
identificabila n mod unic, a detinatorului cheii publice si cheia publica propriu zisa. Un
certificat este semnat digital de CA. Astfel, semnatura CA asupra certificatului ofera o
legatura criptografica ntre identitatea proprietarului si cheia lui publica. O entitate, dupa
ce verifica certificatul altei entitati, poate fi convinsa (daca are ncredere n CA) de faptul
ca CA a dat certificatul doar dupa ce a identificat n mod corespunzator proprietarul cheii
publice. Astfel, entitatea care face verificarea stabileste un canal securizat prin cheie care
este directionat de la cheia publica certificata nspre el. Termenul de certificat de cheie
publica a fost folosit pentru prima data de Kohnfelder [65].
Un canal pentru cheie publica bazat pe un serviciu de certificare se numeste canal
bazat pe director. Astfel, serviciul de certificare se numeste serviciu de directoare.
Spre deosbire de modelul simetric n care ncrederea n serverul de autentificare (tertul
de ncredere) pentru protocoale de autentificare trebuie sa fie foarte puternica (ntrucat
acesta poate decripta comunicatia dintre entitati, el fiind cel care genereaza cheia de
sesiune), n modelul asimetric ncrederea n acest tert trebuie sa fie mult mai slaba. Aici,
serviciul de securitate oferit este autentificarea mesajelor, ce poate fi oferit fara a fi nevoie
de a gestiona nici un secret (din moment ce verificarea semnaturii CA asupra unui certificat
implica doar cheia publica a CA). Din moment ce nu trebuie gestionat nici un secret,
serviciul poate fi oferit off-line, adica CA nu trebuie sa fie implicat n protocolul ce se
desfasoara ntre cele doua entitati. O trasatura importanta a unui serviciu off-line este
aceea ca poate fi extins oricat de mult pentru a gestiona un sistem foarte mare. Cheia
publica a unui CA, folosita pentru verificarea certificatelor emise de acel CA, poate la
randul ei sa fie certificata de un alt CA.
Printre campurile unui certificat trebuie sa fie informatia de identificare si cheia publica

84

Capitolul 5. Infrastructuri de autentificare pentru chei publice

a CA. De asemenea, trebuie sa fie prezenta o informatie suplimentara cum ar fi descrierea


algoritmului ce trebuie folosit pentru a verifica semnatura CA si a algoritmului ce trebuie
folosit pentru cheia publica certificata, perioada de valabilitate a certificatului, conditiile
de utilizare si altele. Un certificat de cheie publica poate fi definit ca n exemplul urmator:
Exemplu 5.1.1 Certificat de cheie publica
certificat::=
{
numele autoritatii;
informatie despre autoritate;
numele subiectului;
informatie despre subiect;
perioada de valabilitate;
}
informatie despre autoritate::=
{
cheia publica a autoritatii;
identificatorul algoritmului de semnare;
identificatorul functiei hash;
}
informatie despre subiect::=
{
cheia publica a subiectului;
identificatorul algoritmului cu chei publice
}
perioada de valabilitate::=
{
data de emitere a certificatului;
data de expirare a certificatului;
}
Emiterea certificatului
La emiterea certificatului, CA trebuie sa valideze identitatea entitatii care solicita certificatul. Validarea trebuie sa implice anumite mijloace de identificare fizica (non-criptografica), la fel cum se ntampla de exemplu la deschiderea unui cont bancar. Entitatea
trebuie de asemenea sa demonstreze ca este n posesia cheii private corespunzatoare cheii
publice ce va fi certificata. Aceasta demonstratie se poate face n doua moduri: entitatea
creeaza o semnatura asupra unui mesaj de provocare generat de CA, semnatura ce poate
fi verificata cu cheia publica sau sub forma unui protocol de demonstratie cu informatie
zero ntre entitate si CA, n care cheia publica este intrarea comuna. Unele aplicatii
necesita ca partea privata a cheii sa aiba o anumita structura.
Revocarea certificatului
Uneori poate fi necesara revocarea unui certificat, de exemplu atunci cand cheia privata
a unei entitati este compromisa sau cand se schimba anumite informatii despre entitate.

5.1 Infrastructur
a de autentificare bazat
a pe director

85

In cazul unei infrastructuri de certificare bazata pe director, CA trebuie sa ntretina o


lista a certificatelor revocate, lista ce poate fi disponibila on-line. Ca alternativa, CA poate
emite n sistem asa numitele liste de revocare, care contin doar ultimele certificate
revocate. Entitatile din sistem si actualizeaza copiile locale ale listei cu certificate revocate
de fiecare data cand primesc o lista de revocare.
Revocarea unui certificat trebuie sa primeasca o marca de timp din partea CA. Semnaturile unei entitati emise nainte de revocarea certificatului trebuie considerate valide chiar
daca data la care se face verificarea este ulterioara datei la care a fost revocat certificatul.
Exemple de infrastructuri de autentificare pentru chei publice
Infrastructura de certificare pentru chei publice X.509
Infrastructura de certificare pentru chei publice standard, numita infrastructura de
certificare X.509 [61], este extensibila ntr-o ierarhie arborescenta, numita arbore de
informatie pentru director (AID). Intr-o astfel de ierarhie arborescenta, fiecare nod reprezinta o entitate a carui certificat de cheie publica este emis de nodul parinte. Nodurile
terminale sunt entitati utilizator. Nodurile neterminale sunt autoritati de certificare la
diferite niveluri si domenii; de exemplu, un CA la nivel de tara are domeniile organizatiilor
industriale, educationale si guvernamentale; fiecare din aceste domenii au multe alte subdomenii; de exemplu domeniul educatie are ca sub-domenii o serie de universitati. Nodul
radacina se numeste root CA si este o entitate bine cunoscuta n ntreg sistemul. Acest
root CA trebuie sa-si certifice propria cheie publica. Din moment ce fiecare CA este
capabil de a deservi un domeniu mare format din sub-domenii si/sau utilizatori finali,
adancimea arborelui nu trebuie sa fie foarte mare. Doi utilizatori finali pot stabili un
canal de comunicatie sigur prin gasirea primului CA din arbore care este stramos pentru
amandoi.
PGP Web of Trust
O alta infrastructura de certificare pentru chei publice, care are un numar mare de
utilizatori amatori, se numeste PGP web of trust sau key-ring (PGP - Pretty Good
Privacy este un program pentru email securizat creat de Phil Zimmerman [127]). Acest
model de autentificare se extinde ntr-un mod neierarhic. In PGP web of trust orice
entitate poate fi o autoritate de certificare pentru orice alta entitate din sistem prin
semnarea certificatului de cheie care nu este altceva decat o pereche <nume, cheie>.
In mod evident, relatia de semnare formeaza o structura de retea. Fiecare CA din retea
nu ofera o ncredere mare sau nu ofera de loc ncredere. Ideea este ca avand suficiente
semnaturi, asocierea <nume, cheie> poate fi de ncredere deoarece nu toti semnatarii
sunt falsi. Astfel, cand o entitate A vrea sa stabileasca autenticitatea cheii publice a unei
alte entitati B, trebuie sa ceara si sa verifice o serie de certificate pentru cheia publica
a lui B. Daca o parte din autoritatile care au certificat cheia lui B, sunt cunoscute
de A, atunci A poate obtine un anumit grad de autenticitate n ceea ce priveste cheia
publica a lui B. A poate sa i ceara lui B mai multe certificate pana cand este satisfacut
de gradul de ncredere.
SPKI (Simple Public Key Infrastructure)
Infrastructura de certificare pentru chei publice X.509 poate fi privita ca o carte de
telefon globala on-line. Fiecare entitate are o pozitie n aceasta carte asa ca fiecare
nume de subiect (asa cum a fost definit n exemplul 5.1.1) trebuie sa fie unic. O astfel de

86

Capitolul 5. Infrastructuri de autentificare pentru chei publice

infrastructura de autentificare a fost adecvata pentru primii ani ai aplicarii criptografiei


cu chei publice (n domeniul comunicatiilor sigure n ceea ce priveste confidentialitatea):
receptorul unui mesaj confidential trebuie sa fie identificat n mod unic mpreuna cu cheia
sa.
Incepand cu anii 90, aplicatiile criptografiei cu chei publice au devenit din ce n ce
mai largi incluzand comert electronic, acces si actiuni de la distanta, internet banking,
virtual private network, votare online etc. Ellison considera ca pentru noile aplicatii, un
nume unic cu o cheie asociata nu reprezinta o solutie adecvata [37], [38], [39], [40]. Ceea
ce trebuie sa faca o aplicatie atunci cand primeste un certificat de cheie publica este de a
raspunde la ntrebarea daca cel ce detine cheia are dreptul sa acceseze ceva sau sa actioneze
n mod autorizat. Aplicatia este cea care trebuie sa ia decizia. Datele necesare pentru
aceasta decizie niciodata nu sunt reprezentate de numele entitatii. Aplicatia trebuie sa
stie daca posesorul cheii este autorizat sa acceseze ceva. Acesta ar trebui sa fie rolul
primordial al unui certificat de cheie publica.
Tot Ellison considera ca planul original X.500 nu se va realiza niciodata. Colectii
de liste cu angajati, clienti, contacte sunt considerate multe prea valoroase sau chiar
confidentiale pentru a fi expuse n public sub forma unei structuri arborescente de director
X.500. Ideea din X.500 a unui nume unic ce poate fi folosit de oricine atunci cand se refera
la o anumita entitate este greu de imaginat ca se poate realiza.
Ellison propune o infrastructura de certificare pentru chei publice bazate pe director
numita SPKI (Simple Public Key Infrastructure) [39]. Aceasta este o structura arborescenta similara cu X.509, deosebirea fiind aceea ca exista o conventie pentru nume: acestea
sunt formate din numele obisnuit al entitatii si valoarea hash a cheii publice. De exemplu:
(nume (hash sha1 | TLCgPLFlGTzgUbcaYLW8kGTEnUk=|) john doe)
este numele SPKI pentru persoana cu numele john doe. Aici utilizarea functiei hash
SHA-1 face ca numele SPKI sa fie identificabil n mod unic la nivel global, cu toate ca
pot sa existe mai multi john doe.
Aceasta metoda de numire a fost sugerata de Rivest si Lampson [110] n SDSI (A
Simple Distributed Security Infrastructure). In SDSI exista reguli de nume localizate.
Acestea permit si realizarea unei infrastructuri de autentificare si autorizare descentralizate. Astfel, un nume SPKI este numit de asemenea si un nume SDSI.
SPKI foloseste de asemenea si campuri de autorizare si delegare care contin informatie
pentru aceste servicii. O informatie de autorizare poate fi o descriere a autorizarii care este
legata de cheia publica. Astfel, un certificat poate prezenta n mod direct unei aplicatii
daca solicitantul este autorizat sau nu n a efectua o actiune. Informatia de delegare
descrie posibilitatea solicitanului de a delega autorizarea unei alte entitati. Putem spune
ca SPKI extinde infrastructura de autentificare X.509 la o infrastructura care are si functii
de autorizare si delegare.
Protocoale asociate cu infrastructura de autentificare pentru chei publice
X.509
Exista o serie de protocoale pentru procesarea aspectelor practice ale infrastructurii de
autentificare pentru chei publice X.509. Acestea sunt:

5.2 Infrastructur
a de autentificare f
ar
a director

87

CMP (Certificate Management Protocol) [11], [85]. Acest protocol suporta interactiunea online ntre componente PKI. De exemplu, un protocol de management poate
fi folosit ntre un CA si un sistem client cu care este asociata o pereche de chei,
sau ntre doua CA care emit certificate una alteia. E nevoie de aceste interactiuni,
de exemplu atunci cand o entitate (care poate fi si o CA) cere o certificare pentru
o cheie publica si trebuie sa demonstreze ca poseda cheia privata.
OCSP (Online Certificates Status Protocol) [84]. Acest protocol permite aplicatiilor
sa determine starea (de revocare) a unui certificat identificat. OCSP poate fi folosit
pentru a satisface unele din cerintele operationale de furnizare a informatiilor de
revocare ntr-o maniera mai rapida fata de modul n care este posibil cu ajutorul
listelor de revocare si poate fi folosit de asemenea pentru a obtine informatii de stare
suplimentare. Un client OCSP emite o cerere pentru stare la un server OCSP si
suspenda acceptarea certificatului pana cand serverul ofera raspunsul.
Internet X.509 Public Key Infrastructure Time Stamp Protocol [10]. Acest protocol
consta dintr-o cerere trimisa unui TSA (Time Stamping Authority - Autoritate
pentru Marci de Timp) si din raspunsul dat. De asemenea, stabileste o serie de
cerinte legate de securitate n operarea TSA, n ceea ce priveste procesarea cererilor
pentru generarea raspunsurilor. Serviciile de non-repudiere necesita abilitatea de a
stabili existenta datelor naintea timpului specificat. Acest protocol poate fi folosit
pentru a construi servicii care ofera asa ceva.
Internet X.509 Public Key Infrastructure Operational Protocols: FTP si HTTP
[60]. Aceasta este o specificare pentru unele conventii de protocol pentru PKI de a
folosi File Transfer Protocol (FTP) si HyperText Transfer Protocol (HTTP) pentru
a obtine certificate si liste de revocare a certificatelor de la depozitele PKI.

5.2

Infrastructur
a de autentificare f
ar
a director

Procedura de generare a cheilor din relatia (5.1) de la pagina 82 face ca toate cheile
publice sa aiba o forma aleatoare. Prin urmare, e nevoie de a asocia cheia publica cu
informatie legata de identitatea proprietarului cheii ntr-o maniera autentica. Am vazut
ca o asemenea asociere este posibila prin realizarea unei infrastructuri de autentificare
pentru chei publice (de exemplu, infrastructura de certificare X.509). Totusi, pentru a
stabili si a mentine o ierarhie arborescenta, PKI implica un nivel ridicat de complexitate
a sistemului si costuri importante. Intotdeauna s-a dorit simplificarea infrastructurilor de
autentificare pentru chei publice.
Este logic sa tragem concluzia ca daca cheia publica nu este o secventa aleatoare de
biti, atunci se pot reduce atat complexitatea sistemului cat si costul pentru stabilirea si
mentinerea infrastructurii de autentificare a cheilor publice. Daca cheia publica a unei
entitati este asociata n mod evident cu informatia legata de identitatea sa cum ar fi
numele, afilierea, adresa electronica si normala, atunci nu mai este nevoie de a autentifica
cheia publica. Sistemul postal functioneaza cu succes n acest mod.
Shamir a prezentat pentru prima data n [120] criptosisteme cu chei publice ntr-un
mod neuzual. Acestea permit o reducere semnificativa a complexitatii sistemului pentru

88

Capitolul 5. Infrastructuri de autentificare pentru chei publice

autentificarea cheilor fiind similar cu sistemul postal obisnuit. In criptosistemul sau,


procedura de generare a cheilor are urmatorul pas:
cheia privat
a = F (cheie master, cheie public
a)

(5.2)

Acest pas de generare a cheii se face n sens invers fata de pasul de generare a cheii
n criptosistemele uzuale cu chei publice. Evident ca, pentru ca cheia privat
a sa ramana
privata acest calcul nu trebuie sa fie public: este restrictionat la o entitate privilegiata (un
tert de ncredere). Doar tertul de ncredere este n posesia cheii master, si doar el poate
efectua calculul din relatia (5.2). Din moment ce cheia public
a reprezinta o valoare de
intrare pentru procedura de generare a cheii, cheia public
a poate fi orice sir de caractere.
Din moment ce utilizarea informatiei legata de identitate pe post de cheie publica reduce
foarte mult complexitatea autentificarii cheii publice, Shamir a sugerat ca sa se foloseasca
pe post de cheie publica identitatea entitatii si a numit aceasta schema criptografie cu
chei publice bazat
a pe identitate.
Procedura de generare a cheilor din relatia (5.2) este un serviciu oferit de tertul de
ncredere tuturor utilizatorilor sistemului. Serviciul este unul de autentificare: cheia privata creata de tertul de ncredere pentru o entitate n conexiune cu identitatea sa ca si
cheie publica ofera proprietarului cheii acreditarea cheii sale publice bazate pe ID de a fi
recunoscuta si folosita de alte entitati din sistem. Inainte de a crea o cheie privata pentru
o entitate, tertul de ncredere trebuie sa efectueze o verificare amanuntita a informatiilor de identificare a entitatii. Aceasta verificare trebuie sa includa anumite mijloace de
identificare fizica (de natura non-criptografica). De asemenea, tertul de ncredere trebuie
sa se asigure de faptul ca informatia de identificare furnizata de entitate este suficienta
pentru a o identifica n mod unic. O verificare a identitatii similara este necesara si n
cazul emiterii unui certificat de cheie publica de catre o autoritate de certificare.
Avand n vedere ca cheia privata este generata de un tert de ncredere, entitatile
trebuie sa aiba o ncredere absoluta n acest tert: trebuie sa accepte situatia n care tertul
are abilitatea de a citi mesajele confidentiale sau posibilitatea de a falsifica semnatura.
Asadar, criptografia bazata pe identitate este aplicabila doar n situatiile n care se poate
accepta ncrederea neconditionata ntr-un tert. Intr-o organizatie n care angajatorul este
proprietarul tuturor informatiilor transmise la/de la angajati, angajatorul poate juca rolul
de tert de ncredere. De asemenea, poate exista si situatia n care tertul de ncredere este
format din mai multe entitati care calculeaza n mod colectiv relatia (5.2). In acest caz,
confidentialitatea poate fi ncalcata doar prin asocierea acestor terti.
Datorita faptului ca identitatea identificabila n mod unic a unei entitati este folosita
n mod direct ca si cheie publica, la folosirea unui criptosistem bazat pe identitate nu e
nevoie de a stabili canale pentru cheie.
Schema de semn
atur
a bazat
a pe ID a lui Shamir
In schema de semnatura bazata pe ID a lui Shamir exista patru algoritmi:
Initializare. Tertul de ncredere genereaza parametri sistemului si cheia master.
Generarea cheilor utilizator. Tertul de ncredere calculeaza cheia privat
a pe baza
cheii master si a unui sir de biti id {0, 1} .

5.2 Infrastructur
a de autentificare f
ar
a director

89

Semnare. Calculeaza semnatura entitatii asupra unui mesaj pe baza cheii private.
Verificare. algoritmul de verificare a semnaturii care la intrare primeste mesajul si
id, iar la iesire va fi true sau f alse n functie de validitatea semnaturii.
Protocol 5.2.1 (Schema Shamir de semnatur
a bazat
a pe identitate)
1. (Initializare) Tertul de ncredere stabileste urmatoarele:
(a) un numar natural n care este produsul a doua numere prime mari.
(b) un numar natural e, care satisface relatia cmmdc(e, (n)) = 1. ((n,e) sunt
parametri publici folositi de toti utilizatorii sistemului).
(c) un numar natural d, care satisface relatia ed 1(mod (n)). (d este cheia
master a tertului de ncredere)
(d) h : {0, 1} 7 Z(n) (h este o functie hash one-way care de asemenea este
cunoscuta de toti utilizatorii sistemului)
2. (Generarea cheilor utilizator) Fie ID identitatea identificabil
a n mod unic a unei
entit
ati A. Dupa efectuarea identificarii fizice a lui A si dupa ce s-a asigurat de
unicitatea lui ID, serviciul de generare de chei al tertului de ncredere este:
g IDd (mod n)
3. (Generarea semnaturii) Pentru a semna un mesaj m {0, 1} , A alege r U Zn si
calculeaz
a:
t re (mod n)
s g rh(t||m) (mod n)
Semn
atura este perechea (t, s).
4. (Verificarea semnaturii) Semnatura (t, s) asupra mesajului m, este verificat
a de
c
atre B folosind identitatea ID a lui A, dupa urmatoarea relatie:
Dac
a se ID th(t||m) (mod n), Atunci semn
atura este valid
a
Mai jos este prezentata o justificare pentru aceasta schema de semnatura digitala.
Daca semnatura este valida avem certitudinea ca A cunoaste atat ID th(t||m) cat si
radacina unica de ordin e modulo n a acestei valori (radacina care este s, unicitatea ei
fiind asigurata de faptul ca cmmdc(e, (n)) = 1).
Calcularea lui ID th(t||m) nu este o operatie dificila. De exemplu, se poate alege un
t aleator, se construieste h(t||m) si se calculeaza th(t||m) (mod n) dupa care se nmulteste
rezultatul cu ID. Datorita faptului ca valoarea astfel construita poate fi recunoscuta
datorita implicarii functiei hash, e dificil de a se extrage radacina de ordin e modulo n
dintr-o astfel de valoare. Prin urmare, se poate presupune ca A poseda radacina de ordin
e a lui ID, (care este cheia sa privata emisa de tertul de ncredere) si ca A a folosit cheia
privata la generarea semnaturii.
Dificultatea de a falsifica o semnatura Shamir bazata pe identitate este legata de construirea valorii ID th(t||m) (mod n) si de gasirea radacinii de ordin e modulo n. Dificultatea
de a falsifica semnatura este legata si de detaliile functiei hash folosite.

90

Capitolul 5. Infrastructuri de autentificare pentru chei publice

Ce ofer
a criptografia bazat
a de ID?
In criptografia obisnuita cu chei publice, o entitate B care verifica semnatura altei entitati
A, folosind cheia publica a lui A, trebuie sa verifice si autenticitatea cheii publice, prin
verificarea certificatului de cheie publica a lui A (certificat ce leaga cheia publica a lui A
de identitatea sa). Cu alte cuvinte B trebuie sa verifice ca ntre el si A canalul pentru
cheie a fost stabilit n mod corespunzator.
Intr-o schema de semnatura bazata pe identitate, nu e nevoie ca B sa realizeze o
verificare separata pentru stabilirea corepunzatoare a unui canal pentru cheie. Aici, daca
verificarea semnaturii reusesete B obtine certitudinea n legatura cu urmatoarele doua
aspecte:
semnatura a fost creata de A folosind cheia lui privata care este formata pe baza
identitatii sale (ID); si
ID-ul a fost certificat de tertul de ncredere si A poate crea semnaturi datorita
certificarii identitatii sale de catre tertul de ncredere.
Capacitatea de a verifica simultan aceste doua aspecte este o trasatura importanta a
schemelor de semnatura pe baza de identitate. Nefiind nevoie de a se transmite certificatul
de la semnatar la verificator duce si la reducerea latimii de banda de comunicatie. Acest
aspect duce si la un alt nume pentru criptografia cu chei publice bazata pe identitate si
anume: criptografie cu chei publice non-interactiv
a.
Trebuie reamintit faptul ca tertul de ncredere poate falsifica semnaturile. Prin urmare,
schema de semnatura Shamir bazata pe identitate nu este potrivita n aplicatii ce ruleaza
n medii de sisteme deschise. Poate fi aplicata n sisteme nchise n care tertul de ncredere
este proprietarul de drept al tuturor informatiilor din sistem. Aceasta este o restrictie
destul de importanta.
Doua probleme deschise n acest domeniu sunt: proiectarea unei scheme de semnatura
bazata pe identitate care nu are restrictia de mai sus si proiectarea unei scheme care sa
ofere revocare non-interactiva de chei. Revocarea cheii este necesara atunci cand cheia
privata devine compromisa.
Chei publice auto-certificate
Fie (s, P ) o pereche de chei, prima privata, a doua publica. O infrastructura de autentificare pentru chei publice ofera o garantie G care leaga cheia publica P de identitatea
I.
Intr-o infrastructura de autentificare pentru chei publice bazata pe director (de exemplu X.509), garantia G este data de o semnatura digitala asupra perechii (I, P ), care este
calculata si emisa de o autoritate de certificare (CA). Infrastructura de autentificare este
organizata din elemente cu patru atribute distincte: (s, I, P, G). Trei dintre ele (I, P, G)
sunt publice si sunt disponibile ntr-un director public. Atunci cand o entitate are nevoie
de o copie autentificata a cheii publice a lui I, trebuie sa verifice o semnatura. Daca
verificarea reuseste atunci avem o confirmare a autenticitatii cheii publice a lui I. Asadar,
garantia nu este altceva decat secretul, adica G = s.

5.2 Infrastructur
a de autentificare f
ar
a director

91

Girault [46], [48], a propus o schema de infrastructura de autentificare pentru chei


publice care este un intermediar ntre schemele bazate pe certificat si cele bazate pe identitate. In schema lui Girault, garantia este cheia publica, adica G = P , prin urmare se
poate spune ca cheia publica este auto-certificata, fiecare entitate avand trei atribute:
(s, P, I). In schema lui Girault, fiecare entitate si poate alege cheia privata. Schema
Girault (protocolul 5.2.2) foloseste un tert de ncredere T , care stabileste parametrii sistemului si ajuta entitatile sa si stabileasca cheile.
Protocol 5.2.2 (Schema Girault)
1. (Stabilirea cheilor de la nivel sistem) Tertul de ncredere T , genereaz
a chei RSA n
felul urmator:
(a) alege doua numere prime mari p si q aproximativ de aceeasi dimensiune, de
exemplu |p| = |q| = 512, si calculeaz
a n = pq.
(b) alege un numar ntreg e relativ prim cu (n) = (p 1)(q 1), care este exponentul public.
(c) alege un umar ntreg d care satisface relatia ed 1(mod (n)), care este exponentul privat.
(d) alege un element g Zn , care are ordinul multiplicativ modulo n maxim. T
poate gasi gp un generator modulo p si gq un generator modulo q, si poate
construi g folosind teorema chinezeasc
a a resturilor.
Cheia publica la nivel sistem va fi (n, e, g) iar cheia privata va fi d.
2. (Stabilirea cheilor utilizator)
(a) Mesajele:
A T : IA , v = g sA (mod n)
(1)
d
T A : PA = (v IA ) (mod n) (2)
(b) Actiunile: entitatea A alege cheia secret
a sA care este un ntreg pe 160 de
biti si calculeaz
a valoarea v din mesajul (1). A i trimite lui T mesajul (1)
si i demonstreaz
a ca cunoaste valoarea sA , far
a a o dezvalui, prin intermediul
protocolului pentru schimbul de chei. Tertul de ncredere T creeaz
a valoarea PA
(cheia publica a lui A) care reprezint
a semnatura RSA asupra valorii v IA
si o trimite lui A. Cheia publica a lui A va fi (PA , e, n, g). Urmatoarea relatie
are loc:
IA PAe v(mod n)
(5.3)
3. (Protocolul pentru schimbul de chei)
KAB (PAe + IA )sB (PBe + IB )sA g sA sB (mod n)

(5.4)

relatia (5.4) A calculeaz


In
a (PBe +IB )sA (mod n) iar B calculeaz
a (PAe +IA )sB (mod n).
Astfel, avem de a face cu un protocol pentru schimb de chei Diffie-Hellman. Daca
cele doua entitati pot s
a stabileasc
a aceeasi cheie, atunci fiecare din ele stie ca
cealalt
a si-a dovedit identitatea.

92

Capitolul 5. Infrastructuri de autentificare pentru chei publice

Remarca 5.2.3 Av
and n vedere ca n Schema Girault (protocolul 5.2.2) atat PA c
at si

v sunt elemente aleatoare ale grupului Zn echivalenta din relatia (5.3) nu pare greu de
realizat. De exemplu, A poate alege PA o valoarea aleatoare si calculeaz
a v folosind PAe si
IA folosind relatia (5.3). Dar, proced
and astfel, A nu poate calcula logaritmul discret n
baza g al lui v modulo n. Modul prin care A demonstreaz
a cunoasterea logaritmul discret
n baza g al lui v modulo n (adica valoarea sA ), este de a folosi o varianta a protocolului
pentru schimb de chei Diffie-Hellman, protocol descris n schema Girault la punctul 3.
Remarca 5.2.4 Cheile auto-certificate ale lui Girault au un punct comun cu schema
bazat
a pe identitate a lui Shamir si anume: nu e nevoie sa se verifice un certificat de
cheie suplimentar emis de un tert de ncredere. Verificarea este implicita si este realizat
a
n acelasi moment n care se verifica abilitatea criptografic
a a proprietarului cheii. Totusi,
verificatorul are nevoie de o cheie publica P pe lang
a identitatea I. P nu poate fi derivat
din I de catre verificator. Aceasta nseamn
a ca verificatorul trebuie sa cear
a cheia publica
nainte de a o folosi - acesta fiind un pas suplimentar de comunicatie. Astfel, schema
cu chei publice auto-certificate nu poate fi considerat
a criptografie cu chei publice noninteractiv
a, aceasta fiind un neajuns al acestei scheme.

Capitolul 6
Functii hash si integritatea datelor
6.1

Introducere

Functiile hash criptografice joaca un rol important n criptografia moderna. Vor fi trecute
n revista aici doar functiile hash criptografice cu toate ca acestea au o oarecare legatura
cu functiile hash obisnuite: ambele categorii asociaza domenii mai mari unor domenii mai
mici iar imaginea unei valori este considerata un rezumat al valorii.
O functiei hash h : D R (|D| > |R|) mapeaza secvente binare de lungime oarecare pe secvente binare de lungime fixata, de ex. n, caz n care R reprezinta multimea
secventelor binare de lungime n. Functia nu este injectiva, ceea ce nseamna ca exista
coliziuni, adica perechi de valori care au aceeasi valoare hash. Daca restrictionam D ca
fiind multimea tuturor secventelor binare de lungime t, t > n si consideram ca functia este
construita n asa fel ncat fiecare imagine este aproximativ echiprobabila atunci putem
considera ca pentru fiecare imagine avem 2tn preimagini si probabilitatea ca doua valori
sa aiba aceeasi imagine este 2n .
Ideea de baza a functilor hash este aceea ca valorile hash reprezinta o exprimare
compacta a unei secvente binare mult mai lungi si valoarea hash poate fi folosita ca
identificator pentru acea secventa binara.
Functiile hash reprezinta o primitiva importanta pentru asigurarea integritatii datelor.
O schema de semnatura digitala se aplica nu asupra mesajului ci asupra unei valori hash
a acestuia din considerente de eficienta - operatia de semnare dureaza mult atunci cand
se efectueaza asupra unui mesaj lung. Exista o clasa aparte de functii hash, numite MAC
(Message Authentication Code - coduri pentru autentificarea mesajelor), care permit autentificarea mesajelor prin tehnici simetrice. Algoritmii MAC pot fi priviti ca functii
hash care primesc la intrare un mesaj si o cheie secreta si produc la iesire o secventa de
lungime fixa (de exemplu de n biti), astfel ncat trebuie sa fie nefezabil n practica de a
produce aceeasi iesire fara a cunoaste cheia secreta. MAC-urile pot fi folosite pentru a
asigura integritatea datelor si autentificarea originii datelor prin tehnici simetrice, precum
si identificare prin scheme cu chei simetrice.
O utilizare tipica a functiilor hash fara cheie este n asigurarea integritatii datelor n
felul urmator. Se calculeaza valoarea hash pentru un mesaj x la momentul T1 . Integritatea
acestei valori hash (dar nu si a mesajului) este asigurata ntr-un anumit mod la transfer.
Ulterior, la momentul T2 , pentru a verifica daca un mesaj x0 este identic cu x se calculeaza
valoarea hash pentru x0 si daca aceasta valoare hash este egala cu cea calculata initial,
93

94

Capitolul 6. Functii hash si integritatea datelor

atunci se poate considera ca mesajul nu s-a modificat. In felul acesta problema pastrarii
integritatii unui mesaj s-a redus la pastrarea integritatii valorii hash, care este un mesaj
mult mai scurt de dimensiune fixata. Datorita faptului ca functiile hash nu sunt injective
aceasta asociere ntre mesaje si valorile hash ale lor se face doar n sens computational.
In practica, valorile hash ar trebui sa fie identificabile n mod unic cu o singura valoare,
iar gasirea unor coliziuni trebuie sa fie nefezabila computational.

6.2

Clasificare

Exista doua categorii de functii hash:


1. functii hash far
a cheie - care primesc la intrare doar un singur argument (mesajul).
2. functii hash cu cheie - care primesc la intrare pe langa mesaj si o cheie secreta.
Definitie 6.2.1 O functie hash (n sens non-criptografic) este o functie h care are urmatoarele propriet
ati:
1. compresie - h asociaz
a secvente binare x de lungime variabila, unor secvente h(x)
de lungime fixa n.
a de calcul - daca se da o functie h si o valoare x, h(x) este usor de calculat.
2. usurint
Definitia 6.2.1 implica o functie hash fara cheie.
Daca adaugam proprietati suplimentare acestor functii hash, proprietati ce sunt necesare n diferite aplicatii, putem face o alta clasificare:
1. Coduri pentru detectarea modific
arilor (Modification Detection Codes - MDC) scopul acestora este de a oferi o imagine reprezentativa (hash) a unui mesaj cu
proprietati suplimentare asa cum sunt definite mai jos. Scopul acestora este de a
asigura, mpreuna cu alte mecanisme suplimentare, integritatea datelor asa cum este
ceruta de anumite aplicatii. MDC reprezinta o subclasa a functiilor hash fara cheie,
iar acestea pot fi clasificate mai departe astfel:
(a) functii hash greu inversabile - pentru acestea este dificil de a gasi o valoare al
carei hash este egal cu unul prestabilit.
(b) functii hash rezistente la coliziune - pentru acestea este dificil de a gasi doua
valori care au acelasi hash.
2. Coduri pentru autentificarea mesajelor (Message Authentication Codes - MAC) scopul acestora este de a asigura, fara alte mecanisme suplimentare, atat autenticitatea sursei unui mesaj cat si integritatea acestuia. MAC-urile primesc la intrare
mesajul si o cheie secreta, fiind o subclasa a functilor hash cu cheie.
Functiile hash sunt cunoscute de toate entitatile implicate ntr-un proces (specificatiile
acestor functii sunt publice), asa ca oricine poate calcula valoarea hash n cazul MDCurilor. In cazul MAC-urilor, oricine care cunoaste cheia poate calcula valoarea hash.
In continuare introducem alte trei proprietati pe care le pot avea functiile hash.

6.3 Atacuri asupra functiilor hash

95

1. rezistenta la preimagine - nseamna ca pentru orice valoare hash (exceptie facand o


lista de valori ce pot fi precalculate) este nefezabil computational de a gasi preimaginea acesteia.
2. rezistenta la a doua preimagine - nseamna ca daca se da x si h(x) este nefezabil
computational de a gasi o a doua valoare x0 astfel ncat h(x) = h(x0 ).
3. rezistenta la coliziune - nseamna ca este nefezabil computational de a gasi doua
valori distincte x, x0 care au aceeasi valoare hash - h(x) = h(x0 ).
Remarca 6.2.2 Rezistenta la coliziune implica rezistenta la a doua preimagine.
Se poate da o motivatie pentru fiecare din cele trei proprietati de mai sus: ntr-o
schema de semnatura digitala semnatura se aplica asupra unei valori hash h(x) si nu
asupra mesajului. Aici h trebuie sa fie un MDC cu rezistenta la a doua preimagine
pentru ca altfel, un adversar C poate intercepta semnatura asupra unei valori h(x) si sa
gaseasca o alta valoare x0 pentru care h(x) = h(x0 ). Daca reuseste, acesta poate afirma ca
mesajul x0 a fost semnat ceea ce evident nu este adevarat. Daca adversarul are puterea
de a obtine semnaturi de la semnatarul legitim, atunci nu trebuie sa faca altceva decat
sa gaseasca o pereche cu coliziune (x, x0 ). Sarcina de a gasi o preimagine este mult mai
dificila. In acest caz functia hash trebuie sa ofere rezistenta la coliziune. Rezistenta
la preimagine este o proprietate care poate fi argumentata prin urmatorul exemplu: sa
consideram schema de semnatura cu chei publice RSA, n care o entitate A are o cheie
publica (e, n). Adversarul poate alege o valoare aleatoare y, sa calculeze z = y e mod n
si sa afirme ca y este semnatura lui A asupra mesajului z; aceasta falsificare existentiala
realizata de C este posibila daca acesta poate gasi o preimagine x a.. h(x) = z, unde x
reprezinta un mesaj real.
Definitie 6.2.3 Un algoritm MAC (cod pentru autentificarea mesajelor) este o familie
de functii hk parametrizat
a de o cheie secret
a k, cu urmatoarele propriet
ati.
1. usurint
a de calcul - pentru o functie hk , o valoare k data si un mesaj x, hk (x) este
usor de calculat.
2. compresie - hk mapeaz
a un mesaj x de lungime variabila finita la o valoare hk (x) de
lungime binara fixata n.
3. rezistent
a la calcul - dandu-se zero sau mai multe perechi mesaj-MAC (xi , hk (xi )),
este nefezabil computational sa se calculeze o alta pereche (x, hk (x)) pentru un x 6=
xi .

6.3

Atacuri asupra functiilor hash

Obiectivul unui adversar care vrea sa atace un MDC poate fi unul din urmatoarele:
1. Dandu-se o valoare hash y, trebuie gasita o preimagine x astfel ncat y = h(x)
sau dandu-se o pereche (x, h(x)), trebuie gasita o a doua preimagine x0 astfel ncat
h(x0 ) = h(x).

96

Capitolul 6. Functii hash si integritatea datelor


2. Gasirea a doua valori x si x0 astfel ncat h(x) = h(x0 ).

Obiectivul unui adversar care vrea sa atace un MAC este de a calcula perechi (mesaj,
MAC ) noi (x, hk (x)) fara a cunoaste cheia k si avand la dispozitie mai multe perechi
(xi , hk (xi )), cu x 6= xi . In acest caz rezistenta la calcul trebuie sa ramana valida indiferent
daca mesajele xi sunt date si adversarul nu are control asupra lor sau sunt alese de catre
adversar, eventual n mod adaptativ.
Atacurile asupra MAC-urilor le putem clasifica n trei categorii n functie de puterea
pe care o are adversarul:
1. atac cu text cunoscut - una sau mai multe perechi mesaj-MAC (xi , hk (xi )) sunt
disponibile.
2. atac cu text ales - una sau mai multe perechi mesaj-MAC (xi , hk (xi )) sunt disponibile
cu xi alese de adversar.
3. atac cu text ales n mod adaptativ - valorile xi sunt alese de adversar la fel ca mai
sus, dar alegerea se poate face n functie de MAC-urile obtinute pentru valorile
precedente.
Atunci cand o falsificare MAC devine posibila, severitatea consecintelor practice poate
diferi n functie de gradul de control pe care adversarul l are asupra valorii x pentru care
valoarea MAC poate fi falsificata. Avem doua tipuri de falsificare:
1. falsificare selectiv
a - caz n care adversarul poate produce perechi mesaj-MAC pentru
mesaje pe care le alege.
2. falsificare existential
a - adversarul poate produce perechi mesaj-MAC fara sa aiba
control asupra mesajului pentru care calculeaza valoarea MAC.

6.4

Constructia functiilor hash

Majoritatea functiilor hash fara cheie (MDC) sunt proiectate ca procese iterative care
primesc la intrare mesaje de lungime variabila si pentru care se calculeaza valoarea hash
prin procesarea unor blocuri succesive de dimensiune fixata. Un mesaj x pentru care
trebuie calculata valoarea hash este mpartit n blocuri xi de lungime egala r biti.
Aceasta etapa de preprocesare implica de regula adaugarea unor biti suplimentari pentru
completarea mesajului astfel ncat lungimea lui sa fie multiplu de r. Fiecare bloc xi va
fi folosit ca valoare de intrare pentru o functie interna f (functia de compresie a lui h),
care calculeaza un rezultat intermediar a carui lungime binara este n si care depinde de
rezultatele intermediare precedente si de urmatorul bloc xi . Daca notam cu Hi rezultatul
intermediar dupa pasul i, procesul general pentru o functie hash iterata care primeste la
intrare mesajul x = x1 x2 . . . xt , poate fi modelat astfel:
H0 = IV ; Hi = f (Hi1 , xi ), 1 i t; h(x) = g(Ht ).
unde, IV este vectorul de initializare (o valoare predefinita), iar g este o functie care face
o ultima transformare asupra rezultatului final al procesului iterativ.

6.5 Algoritmi hash f


ar
a cheie folositi n practic
a

97

Remarca 6.4.1 Orice functie de compresie f care este rezistent


a la coliziune poate fi
extins
a la o functie hash rezistent
a la coliziune h. Aceasta se poate face n mod eficient
folosind meta-metoda lui Merkle [78] (algoritmul 6.4.2)
Algoritm 6.4.2 (Meta-metoda Merkle pentru functii hash ) Algoritmul primeste la intrare o functie de compresie f rezistent
a la coliziune si produce o functie hash h rezistent
a
la coliziune.
1. Presupunem ca f asociaz
a mesaje de lungime (n+r) la mesaje de lungime n (concret
putem considera n = 128 si r = 512). Construim functia h (care genereaz
a n biti)
din f n felul urmator:
2. Mesajul x de lungime b biti l mp
artim n t blocuri x1 x2 . . . xt a caror lungime este
r si complet
am ultimul bloc xt cu zerouri daca este necesar.
3. Definim un bloc final suplimentar xt+1 , blocul pentru lungime, care va contine reprezentarea binara aliniata la dreapta a valorii lui b (presupunem ca b < 2r ).
am cu 0j secventa de biti formata din j zerouri. Valoarea hash de lungime n biti
4. Not
a mesajului x va fi h(x) = Ht+1 = f (Ht ||xt+1 ) calculat astfel:
H0 = 0n ; Hi = f (Hi1 ||xi ), 1 i t + 1

6.5

Algoritmi hash f
ar
a cheie folositi n practic
a

Algoritmul MD5 [109] a fost proiectat de Ron Rivest ca o mbunatatire a algoritmului


MD4 [108], algoritm pentru care au fost gasite o serie de slabiciuni si atacuri posibile
[17], [125]. MD5 (Message Digest) face parte dintr-o serie de algoritmi hash creati special
pentru a fi implementati software pe masini pe 32 de biti. Din aceeasi serie fac parte si
algoritmii SHA-1, RIPEMD si variantele mbunatatite SHA-256, SHA-512, RIPEMD-128,
RIPEMD-160.
Algoritmul MD4 este o functie hash care produce valori de 128 de biti. A fost proiectat
cu scopul ca atacul asupra lui sa necesite un efort aproximativ egal cu atacul prin forta
bruta: gasirea a doua mesaje cu aceeasi valoare hash necesita 264 operatii, iar gasirea unui
mesaj care are ca valoare hash o valoare prestabilita necesita aproximativ 2128 operatii.
Se stie ca MD4 nu reuseste sa ndeplineasca aceste obiective de proiectare.
Algoritmul MD5 este o mbunatatire a algoritmului MD4. A fost folosit mult timp n
practica - dar si pentru acesta s-au gasit slabiciuni (metode de a gasi coliziuni).
Secure Hash Algorithm (SHA-1), este bazat pe MD4 si a fost propus de U.S. National
Institute for Standards and Technology (NIST) pentru diferite aplicatii guvernamentale.
Valorile hash produse de SHA-1 sunt de 160 de biti ceea ce ofera protectie sporita fata de
functiile hash de 128 de biti. SHA-1 si variantele sale de 256, 384 si 512 biti sunt la ora
actuala cei mai buni algoritmi hash folositi n practica.

98

Capitolul 6. Functii hash si integritatea datelor


Algoritm
MD5

Dimensiune
128 biti

SHA-1
RIPE-MD/160

160 biti
160 biti

SHA-256

256 biti

SHA-512
SHA-384

512 biti
384 biti

Descriere
Creat de Ron Rivest pe baza algoritmului MD4.
In 1996 au fost descoperite slabiciuni ceea ce a determinat eliminarea progresiva
A fost creat de NIST ca o mbunatatire a MD5
Similar cu SHA-1. A fost creat de organizatia European Reseaux IP Europeens (RIPE)
Face part din noua familie de functii hash create de
NIST, familie numita generic SHA-2. Are o structura interna diferita dar este construit pe aceleasi
principii ca si ceilalti algoritmi din acest tabel
Un alt membru al familiei SHA-2
Este o varianta a SHA-512 dar are dimensiunea
valorii hash mai mica. Nu este mai rapid decat
SHA-512.

Tabela 6.1: Functii hash folosite n practica

6.6

Metode pentru asigurarea integrit


atii datelor

Exista trei abordari importante n ceea ce priveste asigurarea integritatii datelor. Cele
trei abordari sunt prezentate schematic n figura 6.1. Amenintarile asupra integritatii
datelor pot fi intentionate sau neintentionate (erori de transmisie).
Aici este discutata integritatea datelor, autentificarea originii datelor (autentificarea
datelor) si autentificarea tranzactiilor. De regula este nevoie de a ne asigura de faptul
ca datele au venit de la sursa care pretinde ca le-a trimis (autentificarea originii datelor)
si ca datele nu s-au modificat n tranzit (integritatea datelor). Aceste doua aspecte nu
pot fi separate - datele modificate n tranzit au alta sursa; daca sursa originii datelor nu
poate fi stabilita, atunci nici problema modificarii datelor n tranzit nu poate fi rezolvata.
Astfel, mecanismele de integritate a datelor furnizeaza si autentificarea originii datelor si
invers.
Definitie 6.6.1 Integritatea datelor este proprietatea care asigura faptul ca datele nu au
fost modificate ntr-un mod neautorizat dupa ce au fost create, transmise sau stocate de o
surs
a autorizata.
Verificarea integritatii datelor necesita ca doar o parte din date sa satisfaca anumite
Puteri criptografice comparabile
Dimensiunea n biti
Cheie simetrica 50
80
112 128 192
Functie hash
160
256
384
MAC
64 160
256
384
RSA / DSA
512 1024 2048 3072 7680
Curbe eliptice
160
224 256 384

256
512
512
15360
512

Tabela 6.2: Echivalente criptografice n algoritmi criptografici

6.6 Metode pentru asigurarea integrit


atii datelor

99

criterii ce fac distinctia dintre date acceptabile, respectiv neacceptabile. Criteriile ce


permit recunoasterea integritatii datelor includ redundanta sau formatul predefinit al
datelor. Tehnicile criptografice se bazeaza ori pe informatie secreta ori pe un canal autentic. Operatiile care invalideaza integritatea datelor sunt: inserarea de biti, includerea
unor date noi din surse frauduloase, stergerea de biti, reordonarea unor biti sau secvente
de biti, complementarea sau nlocuirea unor biti si orice combinatie a acestor operatii.
Definitie 6.6.2 Autentificarea originii datelor este un tip de autentificare n care se stabileste ca o entitate este sursa originala a unor date create anterior.
Definitia 6.6.2 include si integritatea datelor.
Definitie 6.6.3 Autentificarea mesajelor este un termen folosit analog cu autentificarea
originii datelor. Ofera autentificarea originii datelor n leg
atur
a cu sursa originala a
mesajului (si integritatea datelor, dar nu ofera unicitate si garantii n ceea ce priveste
momentul cre
arii datelor).
Metode pentru asigurarea autentificarii originii datelor includ:
1. codurile pentru autentificarea mesajelor (MAC).
2. schemele de semnaturi digitale.
3. adaugarea la textul criptat (nainte de criptare) a unei valori de autentificare secrete.
Mecanismele de autentificare a originii datelor bazate pe chei secrete (de ex. MAC)
nu permit realizarea unei distinctii ntre entitatile care cunosc o cheie, asa ca (spre deosebire de semnaturile digitale) nu ofera nerepudierea originii datelor - fiecare entitate care
cunoaste cheia poate fi la originea datelor.
Daca MAC-urile si semnaturile digitale pot fi folosite pentru a stabili ca datele au
fost create anterior de o anumita entitate, acestea nu ofera unicitate sau posibilitatea de
a stabili cand a fost produs un mesaj. Doar aceste tehnici nu pot detecta reutilizarea
mesajelor, ceea ce este necesar n anumite aplicatii n care mesajele vechi pot fi folosite
de atacatori pentru a manipula anumite instante ale unor protocoale. Cu toate acestea,
tehnicile de autentificare a mesajelor pot fi mbunatatite pentru a oferi si proprietati
suplimentare.
Definitie 6.6.4 Autentificarea tranzactiilor nseamn
a autentificarea mesajelor cu asigurarea unicitatii si a garantiilor n leg
atur
a cu momentul cre
arii datelor (prevenind astfel
reluarea nedectabil
a a mesajelor).
Garantiile de unicitate si de asigurare a momentului crearii datelor sunt oferite de
anumiti parametri cum ar fi: numere aleatoare n protocoale provocare-raspuns, numere
de secventa si marci de timp. Aceasta poate fi privit ca o combinatie de autentificare a
mesajelor si autentificare a entitatilor.
a incluse n datele autentificate de un MAC sau de
Exemplu 6.6.5 Numerele de secvent
o semn
atur
a digitala permit detectarea relu
arii mesajelor.

100

Capitolul 6. Functii hash si integritatea datelor

Figura 6.1: Trei modalitati de a furniza integritatea datelor prin functii hash

6.6 Metode pentru asigurarea integrit


atii datelor

101

schimbul de doua sau mai multe mesaje ntre doua entitati, autenExemplu 6.6.6 In
tificarea tranzactiei asupra fiec
aruia din mesaje (cu exceptia primului) poate fi asigurat
a
prin includerea unui numar aleator n mesajul ce contine MAC-ul, numar aleator generat
de cealalt
a entitate si trimis n mesajul precedent. Aceast
a nl
antuire de mesaje prin
numere aleatoare previne reluarea mesajelor, din moment ce orice valoare MAC reluat
a
ar fi incorect
a datorita numarului aleator din mesaj care este identic cu numerele aleatoare
procesate anterior de verificator.
Integritatea datelor folosind doar MAC-uri se foloseste n aplicatiile n care este nevoie
doar de integritatea datelor (nu si de confidentialitate). Originatorul mesajului x calculeaza valoarea MAC hk (x) folosind cheia secreta k pe care o partajeaza cu destinatarul
si trimite atat mesajul cat si valoare hash calculata x||hk (x). Destinatarul determina prin
anumite mijloace identitatea celui care pretinde ca a trimis mesajul, separa MAC-ul de
mesaj si calculeaza MAC-ul pentru mesajul primit. Daca valoarea calculata este identica
cu cea primita poate considera ca datele sunt autentice si integre si au fost trimise de
entitatea cu care partajeaza cheia k. Aceasta corespunde situatiei din figura 6.1(a).
Daca semnaturile digitale ofera atat integritatea datelor cat si autentificare, criptarea
nu realizeaza nici unul din aceste obiective. Totusi se pot gasi modalitati prin care functiile
hash si criptarea sa asigure integritatea datelor.
In aplicatiile n care este nevoie atat de confiden tialitate cat si de integritatea datelor
putem folosi urmatoarea tehnica ce implica o functie MDC h de m biti: creatorul mesajului
x calculeaza valoarea hash H = h(x), o adauga la mesaj si cripteaza rezultatul folosind
un algoritm simetric E cu cheia secreta k, rezultand textul cifrat:
C = Ek (x||h(x))

(6.1)

Textul cifrat este transmis la destinatie unde se determina ntr-un anumit mod (de ex.
prin folosirea unui identificator transmis n clar) care este cheia ce trebuie folosita pentru
decriptare, se decripteaza mesajul si se separa datele obtinute prin decriptare x0 de valoarea hash H 0 . Se calculeaza valoarea hash asupra datelor obtinute H 00 = h(x0 ) si daca
H 0 = H 00 atunci datele sunt acceptate ca fiind integre si autentice si se poate afirma ca
x0 = x. Aceasta corespunde situatiei din figura 6.1(b).
Uneori este indicata folosirea unei functii MAC n ecuatia (6.1). In acest caz functia
MDC h se va nlocui cu un algoritm MAC hk0 , asa ca mesajul criptat transmis va fi
C 0 = Ek (x||hk0 (x))

(6.2)

Folosirea aici a functiei MAC ofera avantajul (fata de folosirea functiei MDC) ca daca
functia de criptare nu ofera securitatea promisa, functia MAC va oferi integritate.
Integritate datelor folosind MDC si un canal autentic implica faptul ca nu este necesar a se utiliza o cheie secreta pentru a oferi integritatea datelor. Cheia secreta poate
fi eliminata prin calcularea unei valori hash fara cheie asupra mesajului si prin protejarea autenticitatii acestei valori printr-un canal autentic (nu neaparat privat). Aceasta
protectie a valorii hash este mult mai simplu de realizat decat protectia mesajului, ntrucat
este o valoare mult mai mica. Originatorul calculeaza un hash al mesajului folosind un
MDC, transmite datele la destinatie printr-un canal nesigur iar valoarea hash este transmisa printr-un canal independent care ofera autentificarea originii datelor. Destinatarul

102

Capitolul 6. Functii hash si integritatea datelor

calculeaza valoarea hash pentru datele primite si o compara cu cea primita pe canalul autentic. Daca cele doua valori sunt identice mesajul este acceptat ca fiind integru. Aceasta
corespunde situatiei din figura 6.1(c). Exemple de aplicatii includ protectia software-ului
mpotriva virusilor si distributia software-ului si a cheilor publice prin retele nesigure.
In schemele de semnatura digitala cum este RSA mesajul semnat este transmis n clar
printr-un canal nesigur iar semnatura asupra valorii hash reprezinta canalul autentic.

Capitolul 7
Semn
aturi digitale
7.1

Introducere

Semnatura digitala este un mecanism de securitate ce utilizeaza criptografia asimetrica


pentru a oferi echivalentul digital pentru semnatura de mana. Semnatura digitala a unui
mesaj este un numar ce depinde de un anumit secret cunoscut doar de semnatar si de
continutul mesajului semnat. Semnaturile trebuie sa fie verificabile; daca apar dispute
n legatura cu cine este semnatarul unui document (ceea ce se poate ntampla ori prin
repudierea semnaturii de catre semnatarul real ori prin revendicarea de catre o entitate a
unei semnaturi produsa de altcineva), un tert de ncredere trebuie sa fie capabil sa rezolve
disputa, fara sa fie nevoie de accesul la informatia secreta a semnatarului (cheia privata).
Semnaturile digitale au multe aplicatii n securitatea informatiei, incluzand autentificarea, integritatea datelor si non-repudierea. Una din cele mai importante aplicatii a
semnaturilor digitale este n certificarea cheilor publice n retele mari. Certificarea este un
mijloc prin care un tert de ncredere leaga identitatea unui utilizator de o cheie publica,
n asa fel ncat ulterior, alte entitati pot autentifica o cheie publica fara ajutorul tertului
de ncredere.
Conceptul si utilitatea semnaturilor digitale a fost recunoscut nainte ca sa existe o
realizare practica. Conceptul de semnatura digitala a fost introdus de Diffie si Hellman
n 1976 [33], [34]. Prima metoda descoperita a fost schema de semnatura RSA [111], care
ramane si pana n ziua de astazi una din cele mai bune tehnici. Cercetarile ulterioare
au dus la gasirea multor alte tehnici alternative pentru semnatura digitala. Unele ofera
avantaje importante fata de RSA n ceea ce priveste functionalitatea, implementarea
si posibilitatea de a se demonstra securitatea oferita n modele teoretice cu adversari
puternici.

7.2

Un context pentru semn


aturi digitale

ateva notiuni folosite pentru semnaturile digitale)


Definitie 7.2.1 (C
1. O semnatur
a digitala este o secvent
a de date care asociaz
a un mesaj (n format
digital) cu o entitate.
103

104

Capitolul 7. Semn
aturi digitale

2. Un algoritm pentru generarea semnaturii digitale este o metod


a pentru producerea
semn
aturii digitale.
3. Un algoritm pentru verificarea semnaturii digitale este o metod
a pentru verificarea
autenticit
atii semnaturii digitale.
4. O schema de semnatur
a digitala (sau mecanism) const
a din algoritmul pentru generarea semnaturii si un algoritm asociat pentru verificarea acesteia.
a dintr-un algoritm de generare a semnaturii digitale,
5. Procesul de semnare const
mpreun
a cu metoda pentru punerea datelor ntr-o forma care poate fi semnata.
6. Procesul de verificare a semnaturii digitale const
a din algoritmul de verificare, mpreun
a cu metoda de recuperare a datelor din mesaj.
Pentru a putea folosi n practica o schema de semnatura digitala, e nevoie de un proces
pentru semnare digitala. Exista o serie de procese pentru diferitele scheme care au aparut
ca standarde comerciale; doua astfel de procese sunt ISO/IEC 9796 si PKCS #1. De-a
lungul timpului au aparut o serie de atacuri mpotriva acestor scheme [26], atacuri care
au dus la retragerea lor. Notatiile folosite n continuare sunt enumerate n tabelul 7.1
conform [77].
Notatie Inteles
M
o multime de elemente numita spatiul mesajelor
MS
o multime de elemente numita spatiul de semnare
S
o multime de elemente numita spatiul semnaturilor
R
o functie injectiva de la M la MS numita functia de
redundanta
MR
imaginea lui R
1
R
inversa functiei R
R
o multime de elemente numita multimea de indexare
pentru semnare
h
o functie one-way cu domeniul M
Mh
imaginea lui h
Tabela 7.1: Notatii pentru mecanismele de semnatura digitala
M este o multime de elemente pentru care un semnatar poate crea semnaturi.
Spatiul de semnare MS este o multime de elemente asupra carora se aplica functia de
semnare. Functia de semnare nu este aplicata direct asupra elementelor din M.
Spatiul semnaturilor S este o multime de elemente asociate mesajelor din M. Aceste
elemente sunt folosite pentru a lega semnatarul de mesaj.
Multimea de indexare R este folosit pentru a identifica functii de semnare specifice.
Exista doua categorii de scheme de semnaturi digitale:
1. Scheme de semnaturi digitale cu apendix n care algoritmul de verificare necesita
mesajul original.

7.2 Un context pentru semn


aturi digitale

105

2. Scheme de semnaturi digitale cu recuperarea mesajului n care nu este nevoie de


mesajul original pentru a verifica semnatura. Algoritmul de verificare poate recupera
mesajul din semnatura.

7.2.1

Scheme de semn
aturi digitale cu apendix

Schemele de semnaturi digitale cu apendix sunt cel mai des utilizate n practica, acestea
bazandu-se pe functii hash.
Exemple de mecanisme care ofera semnaturi digitale cu apendix sunt schemele de
semnaturi DSA [67] (prezentata n sectiunea 7.4.4), ElGamal [45] (prezentata n sectiunea
7.4.3), Schnorr [118].
Algoritm 7.2.2 (Generarea cheii pentru schemele de semnatur
a digitala cu apendix)
Fiecare entitate creeaz
a o cheie privata pentru semnarea mesajelor si cheia publica asociat
a pentru verificarea semnaturilor.
1. Fiecare entitate A creeaz
a o cheie privata care defineste multimea de transformari
SA = {SA,k : k R}. Fiecare din functiile SA,k este o functie injectiv
a de la Mh la
S si se numeste functia de semnare.
2. SA defineste functia corespunzatoare VA : Mh S {true,false} astfel nc
at:

true, daca SA,k (m)


e = s ,

(7.1)
VA (m,
e s )=
false, altfel
pentru m
e Mh , s S; m
e = h(m) pentru m M. VA este functia de verificare si este construit
a astfel nc
at poate fi calculat
a far
a a cunoaste cheia secreta a
semnatarului.
3. Cheia publica a lui A este VA ; cheia privata a lui A este SA .
Algoritm 7.2.3 (Generarea si verificarea semnaturii digitale cu apendix) Entitatea A
genereaz
a o semnatur
a s S pentru mesajul m M, care poate fi verificat
a ulterior de
orice entitate B.
1. Generarea semnaturii (entitatea A):
(a) Se selecteaz
a un element k R.
am
e = h(m) si s = SA,k (m).
e
(b) Se calculeaz
(c) Semnatura lui A pentru mesajul m este s . At
at m cat si s sunt puse la
dispozitia tuturor celor care doresc sa verifice semnatura.
2. Verificarea semnaturii (entitatea B):
(a) Se obtine cheia publica autentica VA a lui A.
am
e = h(m) si u = VA (m,
e s ).
(b) Se calculeaz
(c) Se accept
a semnatura daca si numai daca u este true.

106

Capitolul 7. Semn
aturi digitale

Functiile de semnare si de verificare trebuie sa ndeplineasca urmatoarele proprietati:


1. pentru orice k R, SA,k trebuie sa se poata calcula n mod eficient;
2. VA trebuie sa se poata calcula n mod eficient;
3. trebuie sa fie nefezabil computational pentru orice entitate n afara de A sa gaseasca
e s ) = true, unde m
e = h(m).
un m M si un s S astfel ncat VA (m,
4. functia h trebuie sa fie o functie hash rezistenta la coliziune (vezi definitia 1b de la
pagina 94).

7.2.2

Scheme de semn
aturi digitale cu recuperarea mesajului

Schemele de semnaturi digitale prezentate n acest paragraf au proprietatea ca mesajul


semnat poate fi recuperat din semnatura. In practica, aceasta proprietate se foloseste
pentru mesaje scurte.
Exemple de mecanisme care ofera semnaturi digitale cu recuperarea mesajului sunt:
RSA [111] (prezentata n sectiunea 7.4), Rabin [106] (prezentata n sectiunea 7.4.2),
Nyberg-Rueppel [89] (prezentata n sectiunea 7.4.5).
Algoritm 7.2.4 (Generarea cheilor pentru schemele de semn
atur
a digitala cu recuperarea mesajului) Fiecare entitate si creez
a o cheie privata pentru a fi folosita n procesul de
semnare si o cheie publica asociat
a pentru a fi utilizata la verificarea semnaturii.
1. Fiecare entitate A selecteaz
a o multime de functii SA = {SA,k : k R}. Fiecare
functie SA,k este o injectie de la MS la S si se numeste functia de semnare.
2. SA defineste si functia VA cu proprietatea ca VA SA,k este functia identica pe MS
pentru orice k R. VA se numeste functia de verificare si este construit
a astfel
nc
at poate fi calculat
a far
a a cunoaste cheia privata a semnatarului.
3. Cheia publica a lui A este VA ; cheia privata a lui A este SA .
Algoritm 7.2.5 (Generarea si verificarea semnaturii pentru schemele de semnatur
a digital
a cu recuperarea mesajului) Entitatea A creeaz
a semnatura s S pentru un mesaj
m M, care va putea fi verificat
a ulterior de orice entitate B. Mesajul m este recuperat

din s .
1. Generarea semnaturii (entitatea A):
a un element k R;
(a) Se selecteaz
(b) Se calculeaz
am
e = R(m) si s = SA,k (m).
e (R este functia de redundant
a).
(c) Semnatura entitatii A asupra mesajului m este s ; aceasta este pusa la dispozitia tuturor celor care doresc sa verifice semnatura.
2. Verificarea semnaturii (entitatea B):

7.3 Tipuri de atacuri asupra schemelor de semn


atur
a digital
a

107

(a) Se obtine cheia publica autentica VA a lui A.


(b) Se calculeaz
am
e = VA (s ).
(c) Se verifica faptul ca m
e MR . (Daca m
e
/ MR , atunci semnatura este considerat
a falsa).
(d) Se recupereaz
a mesajul m din m
e prin calcularea valorii R1 (m).
e
Functiile de semnare si de verificare trebuie sa ndeplineasca urmatoarele proprietati:
1. pentru fiecare k R, SA,k trebuie sa se poata calcula n mod eficient;
2. VA trebuie sa se calculeze n mod eficient;
3. pentru orice alta entitate diferita de A trebuie sa fie nefezabil computational sa
gaseasca un s S astfel ncat VA (s ) MR .
Functia de redundanta R si inversa ei R1 sunt cunoscute. Este foarte importanta
alegerea unei functii potrivite care sa asigure securitatea sistemului. Pentru a ilustra acest
lucru sa consideram ca MR = MS . Presupunem ca R : M MS si SA,k : MS S sunt
bijectii. Inseamna ca M si S au acelasi numar de elemente. Atunci pentru orice s S,
VA (s ) MR , si devine trivial sa gasim mesaje m si semnaturi s care vor fi acceptate
de algoritmul de verificare n felul urmator:
1. Se selecteaza o valoare aleatoare k R si o valoare aleatoare s S.
2. Se calculeaza m
e = VA (s ).
3. Se calculeaza m = R1 (m).
e
Valoare s este o semnatura valida pentru mesajul m si a fost creata fara a cunoaste
multimea functiilor de semnare SA .
Exemplu 7.2.6 (Functie de redundant
a) Presupunem ca M = {m : m {0, 1}n } si
MS = {t : t {0, 1}2n }. Definim R : M MS prin R(m) = m||m, unde || semnific
a
concatenare; adica, MR = {m||m : m M} MS . Pentru valori mari ale lui n,
valoarea |MR |/|MS | = ( 21 )n este o fractie neglijabil de mica. Aceasta este o functie de
redundant
a potrivit
a cu conditia ca adversarul sa nu poat
a alege s astfel nc
at probabili
tatea ca VA (s ) MR s
a fie non-neglijabil
a.

7.3

Tipuri de atacuri asupra schemelor de semn


atur
a
digital
a

Obiectivul adversarului este de a falsifica semnaturi, adica de a produce semnaturi care


vor fi acceptate ca fiind produse de o anumita entitate legitima. Infrangerea unei scheme
de semnatura digitala se poate face pe mai multe niveluri:

108

Capitolul 7. Semn
aturi digitale

1. nfr
angere totala - un adversar este capabil sa calculeze cheia privata a semnatarului
sau sa gaseasca o modalitate de a semna n mod eficient, echivalenta cu algoritmul
de semnare.
2. falsificare selectiv
a - un adversar este capabil sa creeze semnaturi valide pentru
anumite mesaje alese apriori. Crearea semnaturii nu implica semnatarul legitim.
3. falsificare existential
a - un adversar este capabil sa falsifice o semnatura pentru cel
putin un mesaj. Adversarul nu are posibilitatea de a alege mesajul, iar semnatarul
original ar putea fi implicat prin nselare n aceasta falsificare.
Exista doua atacuri importante asupra schemelor de semnatura digitala.
1. atacuri doar cu cheia - n aceste atacuri adversarul cunoaste doar cheia publica a
semnatarului.
2. atacuri cu mesaje - atacatorul are posibilitatea de a examina semnaturile corespunzatoare ale unor mesaje cunoscute sau alese. Aceste atacuri pot fi mai departe
clasificate n:
(a) atacuri cu mesaje cunoscute - adversarul are semnaturile pentru o multime de
mesaje care nu sunt alese de el.
(b) atacuri cu mesaje alese - adversarul obtine semnaturile valide pentru o lista de
mesaje nainte de ncepe atacul asupra schemei. Acest atac este non-adaptativ,
adica toate mesajele sunt alese nainte de a obtine o semnatura pentru oricare
din ele.
(c) atacuri cu mesaje alese n mod adaptativ - adversarul are posibilitatea de a
folosi semnatarul real ca un oracol; adversarul poate sa-i ceara semnaturi pentru mesaje care depind de cheia publica si de semnaturile obtinute pentru
mesajele precedente. In principiu acesta este atacul cel mai greu de prevenit.
Cu toate ca n practica pare nefezabil totusi, schemele de semnatura digitala
trebuie proiectate n asa fel ncat sa ofere protectie mpotriva unui astfel de
atac.

7.4

C
ateva scheme de semn
atur
a digital
a

In aceasta sectiune sunt prezentate cateva din cele mai importante scheme de semnatura
digitala folosite n practica.

7.4.1

Schema de semn
atura digital
a RSA

Algoritmul de criptare cu chei publice RSA este o bijectie. Prin urmare acest algoritm
poate fi folosit pentru a crea semnaturi digitale prin inversarea rolului criptarii cu cel al
decriptarii. Pentru schema de criptare cu chei publice RSA spatiul mesajelor clare si cel
al mesajelor criptate este acelasi Zn = {0, 1, . . . , n 1}, unde n = pq este produsul a doua

7.4 C
ateva scheme de semn
atur
a digital
a

109

numere prime distincte alese n mod aleator. Securitatea acestei scheme de semnatura digitala se bazeaza pe nefezabilitatea rezolvarii problemei factorizarii ntregilor atunci cand
avem de a face cu numere foarte mari.
Schema de semnatura RSA este o schema determinista cu recuperarea mesajului.
Spatiul de semnare MS si spatiul semnaturilor S sunt ambele Zn . Functia de redundanta
R : M Zn este cunoscuta public.
Algoritm 7.4.1 (Generarea cheilor pentru schema de semnatur
a RSA) Fiecare entitate
A si creeaz
a o cheie publica RSA si cheia privata corespunz
atore.
1. Se genereaz
a doua numere prime mari p si q, fiecare aproximativ de aceeasi dimensiune.
2. Se calculeaz
a n = pq si indicatorul lui Euler pentru acest numar, = (p 1)(q 1).
3. Se selecteaz
a un numar ntreg e, 1 < e < , astfel nc
at cmmdc(e, ) = 1.
4. Se foloseste algoritmul extins al lui Euclid pentru a calcula unicul ntreg d care
satisface relatia ed 1 mod .
5. Cheia publica a lui A este (n, e), iar cheia privata este d.
Algoritm 7.4.2 (Generarea si verificarea semnaturii RSA) Entitatea A semneaz
a mesajul m M. Orice entitate B poate verifica semnatura lui A si poate recupera mesajul m
din semn
atur
a.
1. Generarea semnaturii (entitatea A)
(a) Se calculeaz
am
e = R(m) [0, n 1].
(b) Se calculeaz
as=m
e d mod n.
(c) Semnatura lui A asupra mesajului m este s.
2. Verificarea semnaturii (entitatea B)
(a) Se obtine cheia publica autentica a lui A, (n, e).
am
e = se mod n.
(b) Se calculeaz
(c) Se verifica daca m
e MR ; daca nu este atunci semnatura este respins
a.
(d) Se recupereaz
a m = R1 (m).
e
Demonstratie. (pentru procesul de verificare a semnaturii) Daca s este semnatura
mesajului m, atunci s m
e d mod n unde m
e = R(m). Din moment ce ed 1 mod ,
e
ed
1
1
s m
e m
e mod n. R (m)
e = R (R(m)) = m.
Posibile atacuri asupra schemei RSA:

110

Capitolul 7. Semn
aturi digitale

1. factorizarea ntregilor - daca un adversar este capabil de a factoriza pe n (care


face parte din cheia publica a lui A), atunci adversarul poate calcula si folosind
algoritmul extins al lui Euclid va deduce cheia privata d (din si exponentul public
n) prin rezolvarea ecuatiei ed 1 mod . Aceasta constituie o nfrangere totala
a sistemului. Protectia mpotriva acestei situatii este alegerea parametrilor p si q
astfel ncat factorizarea lui n sa fie nefezabila computational.
2. proprietatea multiplicativ
a a RSA - daca s1 = md1 mod n si s2 = md2 mod n sunt
semnaturile mesajelor (asupra carora s-a aplicat deja functia de redundanta) m1 si
m2 , atunci s = s1 s2 mod n are proprietatea s = (m1 m2 )d mod n. Daca m = m1 m2
are redundanta necesara atunci s reprezinta o semnatura valida pentru m. Asadar,
este importanta alegerea functiei de redundanta astfel ncat sa nu fie multiplicativa,
adica a, b M, R(a b) 6= R(a)R(b).

7.4.2

Schema de semn
atur
a digital
a Rabin

Schema de semnatura digitala Rabin [106] este similara cu schema RSA, dar foloseste ca
exponent e un numar par. Pentru simplitate putem considera e = 2. Spatiul de semnare
MS = Qn (multimea reziduurilor cuadratice modulo n) iar semnaturile sunt radacinile
patratice ale acestor reziduuri. Functia de redundanta R : M MS este aleasa si facuta
publica.
Algoritm 7.4.3 (Generarea cheilor pentru schema de semnatur
a digitala Rabin) Fiecare
entitate A creeaz
a o cheie publica si cheia privata corespunz
atoare.
1. Se genereaz
a doua numere prime mari p si q, fiecare aproximativ de aceeasi dimensiune.
a n = pq.
2. Se calculeaz
3. Cheia publica este n iar cheia privata este perechea (p, q).
Algoritm 7.4.4 (Generarea si verificarea semnaturii digitale Rabin) Entitatea A semneaz
a mesajul m M. Orice entitate B poate verifica semnatura lui A si poate recupera
mesajul m din semnatur
a.
1. Generarea semnaturii (entitatea A)
(a) Se calculeaz
am
e = R(m).
(b) Se calculeaz
a rad
acina patrat
a s a lui m
e mod n.
(c) Semnatura pentru m este s.
2. Verificarea semnaturii (entitatea B)
(a) Se obtine cheia publica a lui A autentica - n.
(b) Se calculeaz
am
e = s2 mod n.

7.4 C
ateva scheme de semn
atur
a digital
a

111

(c) Se verifica faptul ca m


e MR ; daca nu apartine atunci semnatura este respinsa.
(d) Se recupereaz
a mesajul m = R1 (m).
e
Remarca 7.4.5 La fel ca si pentru semnatura RSA si aici este important ca functia de
redundant
a sa fie aleas
a n asa fel nc
at securitatea schemei de semnare sa fie asigurat
a.
O alegere incorect
a a acestei functii poate duce la falsificare existential
a asa cum se poate
deduce din exemplul 7.4.6.
Exemplu 7.4.6 Presupunem ca M = MS = Qn si R(m) = m, m M. Daca un
adversar alege orice ntreg s Zn si l ridica la patrat obtine m
e = s2 mod n, unde s
reprezint
a o semnatur
a valida pentru m,
e obtinut
a far
a a cunoaste cheia privata. Adversarul nu are control asupra mesajului semnat, el reuseste sa realizeze, ntr-un mod trivial,
o falsificare existential
a.

7.4.3

Schema de semn
atur
a digital
a ElGamal

Schema de semnatura digitala ElGamal [45] este un mecanism de semnatura digitala randomizat care genereaza semnaturi digitale cu apendix si necesita o functie hash
h : {0, 1} Zp , unde p este un numar prim mare. Securitatea acestei scheme de
semnatura digitala se bazeaza pe faptul ca este nefezabila computational rezolvarea problemei logaritmului discret n Zp atunci cand parametri sunt numere mari.
a digitala ElGamal) FiAlgoritm 7.4.7 (Generarea cheilor pentru schema de semnatur
ecare entitate si creeaz
a o cheie publica si cheia privata corespunz
atoare.
1. Se genereaz
a un numar prim mare aleator p si un generator al grupului multi
plicativ Zp .
a un numar ntreg aleator a, 1 a p 2.
2. Se selecteaz
3. Se calculeaz
a y = a mod p.
4. Cheia publica a lui A este (p, , y), iar cheia privata este a.
Algoritm 7.4.8 (Generarea si verificarea semnaturii ElGamal) Entitatea A semneaz
a un
mesaj binar m de lungime variabila. Orice entitate B poate verifica aceast
a semnatur
a
folosind cheia publica a lui A.
1. Generarea semnaturii (entitatea A)
(a) Se selecteaz
a un numar ntreg aleator secret k, 1 k p 2,
cu cmmdc(k, p 1) = 1.
a r = k mod p.
(b) Se calculeaz
a k 1 mod (p 1).
(c) Se calculeaz
(d) Se calculeaz
a s = k 1 {h(m) ar} mod (p 1).
(e) Semnatura mesajului m este perechea (r, s).

112

Capitolul 7. Semn
aturi digitale

2. Verificarea semnaturii (entitatea B)


(a) Se obtine cheia publica autentica a lui A, (p, , y).
(b) Se verifica faptul ca 1 r p 1; daca nu este, atunci semnatura este
respins
a.
a v1 = y r rs mod p.
(c) Se calculeaz
(d) Se calculeaz
a h(m) si v2 = h(m) mod p.
(e) Se accept
a semnatura numai daca v1 = v2 .
Demonstratie. (pentru verificarea semnaturii) Daca semnatura a fost generata de A
atunci s k 1 {h(m) ar} mod (p 1). Inmultind ambele parti ale egalitatii cu k
obtinem ks h(m) ar mod (p 1), iar prin rearanjare obtinem h(m) ar + ks
mod (p 1). Aceasta implica h(m) ar+ks (a )r rs mod p. Astfel, v1 = v2 , asa cum
se cere.

7.4.4

Schema de semn
atur
a digital
a DSA

DSA (Digital Signature Algorithm) a fost creat de Kravitz [67] si a fost propus ca Standard Federal al Statelor Unite pentru Procesarea Informatiilor n August 1991 de catre
NIST (Institutul Natioanl al Statelor Unite pentru Standarde si Tehnologie). In 1994 a
devenit standard pentru semnatura digitala DSS asa cum este specificat n FIPS186 [2].
Algoritmul este o varianta a schemei ElGamal si este o schema de semnatura digitala cu
apendix. Mecanismul de semnare necesita o functie hash h : {0, 1} Zq . DSS cere
explicit folosirea algoritmului SHA-1. In 2000 a fost lansat standardul FIPS186-2 [3] care
este o mbunatatire a FIPS186 si care permite utilizarea a trei algoritmi pentru generarea
si verificarea semnaturii: DSA, RSA, ECDSA (DSA pe curbe eliptice).
Algoritm 7.4.9 (Generarea cheilor pentru DSA) Fiecare entitate creeaz
a cheia publica
si cheia privata corespunz
atoare astfel:
1. Se selecteaz
a un numar prim q astfel nc
at 2159 < q < 2160 .
2. Se alege t astfel nc
at 0 t 8, si se selecteaz
a numarul prim p unde, 2511+64t <
p < 2512+64t , cu proprietatea ca q divide (p 1).
3. (Selectarea unui generator al unicului grup ciclic de ordin q din Zp ).
(a) Se selecteaz
a = g (p1)/q mod p.
a un element g Zp si se calculeaz
(b) Daca = 1 salt la pasul 3a
4. Se selecteaz
a un numar ntreg aleator a astfel nc
at 1 a q 1.
a y = a mod p.
5. Se calculeaz
6. Cheia publica a lui A este (p, q, , y); cheia privata este a.

7.4 C
ateva scheme de semn
atur
a digital
a

113

Algoritm 7.4.10 (Generarea si verificarea semnaturii DSA) Fiecare entitate A semneaz


a un mesaj binar m de lungime arbitrar
a. Fiecare entitate B poate verifica aceast
a
semn
atur
a folosind cheia public
a a lui A.
1. Generarea semnaturii (entitatea A)
(a) Se selecteaz
a un ntreg aleator secret k, 0 < k < q.
(b) Se calculeaz
a r = (k mod p) mod q.
(c) Se calculeaz
a k 1 mod q.
a s = k 1 {h(m) + ar} mod q.
(d) Se calculeaz
(e) Semnatura lui A asupra mesajului m este perechea (r, s).
2. Verificarea semnaturii (r, s) a lui m (entitatea B)
(a) Se obtine cheia publica autentica a lui A (p, q, , y)
(b) Se verifica faptul ca 0 < r < q si 0 < s < q; daca nu este semnatura este
respins
a ca fiind falsa.
(c) Se calculeaz
a w = s1 mod q si h(m).
(d) Se calculeaz
a u1 = w h(m) mod q si u2 = rw mod q.
a v = (u1 y u2 mod p) mod q.
(e) Se calculeaz
a semnatura daca si numai daca v = r.
(f ) Se accept
Demonstratie. (pentru verificarea semnaturii) Daca (r, s) este semnatura legitima a
entitatii A asupra mesajului m, atunci relatia h(m) ar + ks mod q trebuie sa fie
adevarata. Prin nmultirea ambelor parti ale acestei congruente cu w si prin rearanjare
obtinem w h(m) + arw k mod q. Aceasta este de fapt u1 + au2 k mod q. Ridicand
ambele parti ale acestei ecuatii la puterea obtinem (u1 y u2 mod p) mod q = (k
mod p) mod q. Prin urmare v = r, asa cum se cere.

7.4.5

Schema de semn
atur
a digital
a Nyberg-Rueppel

Schema de semnatura digitala Nyberg-Rueppel [89] este o varianta a schemei ElGamal.


Aceasta este o schema de semnatura digitala randomizata cu recuperarea mesajului.
In aceasta schema, spatiul de semnare este MS = Zp , p este un numar prim, iar spatiul
semnaturilor este S = Zq Zq , q este un numar prim care divide (p 1).
Algoritm 7.4.11 (Generarea cheilor - la fel ca la DSA cu exceptia ca nu exista restrictii
asupra parametrilor) Fiecare entitate A si creeaz
a o cheie publica si cheia privata asociat
a.
1. Se selecteaz
a doua numere prime p si q.
a un generator al grupului ciclic de ordin q, Zp .
2. Se selecteaz
3. Se selecteaz
a un numar ntreg aleator a, astfel nc
at 1 a q 1.

114

Capitolul 7. Semn
aturi digitale

4. Se calculeaz
a y = a mod p.
5. Cheia publica este (p, q, , y), iar cheia privata este a.
Algoritm 7.4.12 (Generarea si verificarea semnaturii Nyberg-Rueppel) Fiecare entitate
A semneaza un mesaj m M. Orice entitate B poate verifica semnatura si sa recupereze
mesajul din semnatur
a.
1. Generarea semnaturii (entitatea A)
(a) Se calculeaz
am
e = R(m).
a un numar ntreg secret aleator k, 1 k q 1 si se calculeaz
a
(b) Se selecteaz
k
r=
mod p.
(c) Se calculeaz
a e = mr
e mod p.
(d) Se calculeaz
a s = ae + k mod q.
(e) Semnatura lui A pentru mesajul m este (e, s).
2. Verificare semnaturii (entitatea B)
(a)
(b)
(c)
(d)
(e)
(f )

Se obtine cheia publica autentica a lui A (p, q, , y).


Se verifica faptul ca 0 < e < p; daca nu este, semnatura este respins
a.
Se verifica faptul ca 0 s < q; daca nu este, semnatura este respins
a.
s e
Se calculeaz
av= y
mod p si m
e = ve mod p.
Se verifica faptul ca m
e MR ; daca nu apartine atunci semnatura este respins
a.
1
Se recupereaz
a m = R (m).
e

Demonstratie. (pentru verificarea semnaturii) daca A a creat semnatura, atunci v


s y e sae k mod p. Astfel, ve k m
e k m
e mod p.

7.5

Semn
aturi digitale cu functionalitate suplimentar
a

Mecanismele ce vor fi descrise n continuare ofera, pe langa autentificare si nerepudiere,


o functionalitate suplimentara. Acestea combina o schema de semnatura digitala cu un
anumit protocol pentru a oferi ceva n plus.

7.5.1

Semn
aturi digitale oarbe

Schemele de semnaturi digitale oarbe sunt protocoale n care sunt implicate doua entitati:
transmitatorul A si semnatarul B. Ideea de baza este ca A i trimite lui B o informatie pe
care B o semneaza. Folosind aceasta semnatura, A poate genera semnatura lui B pentru
un alt mesaj m ales nainte de nceperea protocolului. La ncheierea protocolului, B nu
cunoaste care este mesajul asupra caruia a obtinut A semnatura (m). Scopul semnaturilor
oarbe este de a preveni ca semnatarul B sa poata vedea mesajul semnat si semnatura;
astfel, el este n imposibilitatea de a asocia ulterior mesajul semnat (m) cu identitatea lui
A.

7.5 Semn
aturi digitale cu functionalitate suplimentar
a

115

Exemplu 7.5.1 (Aplicatie a semnaturilor oarbe) Schemele de semnatur


a oarb
a se pot
aplica atunci cand un transmit
ator A (client) nu vrea ca semnatarul B (o banc
a) sa fie
capabil
a sa asocieze ulterior, un mesaj m si o semnatur
a SB (m), cu o anumita instant
a
a rularii protocolului. Aceasta este important n aplicatiile cu bani electronici unde un
mesaj m poate reprezenta o valoare monetara pe care A o cheltuie. Atunci cand m si
SB (m) sunt aduse la B, acesta nu poate sa deduc
a cui a dat initial valoarea semnata.
Acest fapt i permite lui A s
a faca plati anonime astfel nc
at nimeni sa nu poat
a verifica
cum si cheltuie banii electronici.
Un protocol de semnatura oarba necesita urmatoarele componente:
1. Un mecanism de semnatura digitala pentru B. SB (x) reprezinta semnatura lui B
asupra mesajului x.
2. Functile f si g (pe care le cunoaste doar A) alese astfel ncat g(SB (f (m))) = SB (m).
f se numeste functia de orbire, g se numeste functia de dez-orbire iar f (m) este
mesajul orbit. Aceasta proprietate impune multe restrictii asupra functiilor SB si
g.
Exemplu 7.5.2 (Functie de orbire bazat
a pe RSA) Fie n = pq produsul a doua numere
prime mari aleatoare. Algoritmul de semnare pentru entitatea B este schema de semnatura
RSA cu cheia publica (n, e) si cheia privata d. Fie k un ntreg fixat a.. cmmdc(n, k) = 1.
Functia de orbire f : Zn Zn se defineste f (m) = m k e mod n iar functia de dezorbire se defineste prin g(m) = k 1 m mod n. Cu aceste alegeri pentru f , g si SB avem,
g(SB (f (m)) = g(SB (m k e mod n)) = g(md k mod n) = md mod n = SB (m).
Protocol 7.5.3 (Protocolul de semnare oarb
a Chaum [23]) Acest protocol foloseste functiile f , g si mecanismul de semnare prezentate n exemplul 7.5.2. Transmit
atorul A
primeste de la B semnatura pentru un mesaj orbit. Din aceast
a semnatur
a A claculeaz
a
semn
atura lui B asupra unui mesaj m ales la nceput, 0 m n 1. B nu va sti care
este mesajul pe care l-a semnat.
1. Notatie: cheia publica RSA a lui B este (n, e) iar cheia privata este d. k este un
num
ar ntreg aleator secret ales de A si care satisface relatia 0 k n 1 si
cmmdc(n, k) = 1.
2. Actiunile protocolului:
(a) Orbire: A calculeaz
a valoare m = mk e mod n si o trimite lui B.
a valoarea s = (m )d mod n si o trimite lui A.
(b) Semnare: B calculeaz
(c) Dez-orbire: A calculeaz
a s = k 1 s mod n, care reprezint
a semnatura lui B
asupra lui m.

116

7.5.2

Capitolul 7. Semn
aturi digitale

Semn
aturi digitale incontestabile

In semnaturile inconstestabile este nevoie de implicarea semnatarului n protocolul de


verificare. Prezentam n continuare doua exemple n care acest tip de semnatura poate fi
aplicat.
Exemplu 7.5.4 Entitatea A (clientul) vrea sa obtin
a acces la o zona securizat
a controlat
a
de o entitate B (banca). Zona securizat
a ar putea fi un seif. B i cere lui A s
a semneze un
mesaj care contine data si ora nainte de ai permite accesul. Daca A foloseste o schema
de semnatur
a digitala incontestabil
a, atunci B nu poate dovedi (ulterior) altcuiva ca A a
folosit seif-ul far
a ca A s
a fie implicat n acest proces de verificare a semnaturii.
Exemplu 7.5.5 O corporatie A creeaz
a un pachet software. A semneaz
a pachetul si l
vinde entitatii B, care decide sa faca copii ale acestui pachet si sa le rev
and
a unui tert
C. C nu poate verifica autenticitatea pachetului software far
a implicarea lui A. Aici,
B ar putea sa semneze pachetul software cu propria lui semnatur
a incontestabil
a dar tot
avantajul pe care ar fi vrut sa-l obtin
a de pe urma numelui lui A dispare.
Algoritm 7.5.6 (Algoritmul de generare a cheilor pentru algoritmul 7.5.7) Fiecare entitate A genereaz
a cheile n felul urmator:
1. Se selecteaz
a un numar prim p = 2q + 1, unde q este un numar prim.
2. (Se selecteaz
a un generator pentru subgrupul de ordin q din Zp )
a un element aleator Z si se calcueaz
a = (p1)/q mod p.
(a) Se selecteaz
(b) Daca = 1 salt la pasul 2a.
3. Se selecteaz
a un numar ntreg aleator a {1, 2, . . . , q 1} si se calculeaz
a y = a
mod p.
4. Cheia publica a lui A este (p, , y), iar cheia privata este a.
Algoritm 7.5.7 (Schema de semnatur
a inconstestabil
a Chaum - van Antwerp [24]) A
semneaz
a un mesaj m care apartine subgrupului de ordin q din Zp . Orice entitate B poate
verifica semn
atura cu ajutorul lui A.
1. Generarea semnaturii - (entitatea A)
(a) Se calculeaza s = ma mod p.
(b) s este semnatura lui A asupra mesajului m.
2. Verificarea semnaturii - (entitatea B)
(a) B obtine cheia publica autentica a lui A: (p, , y).
(b) B selecteaz
a aleator ntregii x1 , x2 {1, 2, . . . , q 1}.
(c) B calculeaz
a z = sx1 y x2 mod p si trimite pe z lui A.

7.5 Semn
aturi digitale cu functionalitate suplimentar
a
(d) A calculeaz
a w = (z)a

117

mod p (unde aa1 1 mod q) si trimite w lui B.

a semnatura daca si numai daca w = w0 .


(e) B calculeaz
a w0x1 x2 mod p si accept
Demonstratie. (pentru verificarea semnaturii)
1
1
1
w (z)a (sx1 y x2 )a (max1 ax2 )a mx1 x2 w0 mod p.
Remarca 7.5.8 (detectarea semnaturilor incontestabile false) Sa presupunem ca s este o
semn
atur
a falsa a lui A pentru mesajul m, adica s 6= ma mod p. Probabilitatea ca B sa
accepte aceast
a semnatura prin algoritmul 7.5.7 este doar 1/q; aceast
a probabilitate este
independent
a de resursele computationale de care dispune adversarul.
Semnatarul A ar putea sa nu recunoasca o semnatura valida construita de el prin
algoritmul 7.5.7, ar putea sa nege faptul ca el a creat o semnatura n trei moduri:
1. refuzul de a participa n algoritmul de verificare;
2. efectuarea protocolului de verificare n mod incorect;
3. sa considere o semnatura falsa cu toate ca protocolul de verificare s-a efectuat cu
succes.
Nerecunoasterea prin modalitatea 1 ar fi considerata o ncercare evidenta de repudiere.
Modalitatile 2 si 3 sunt mai dificil de contracarat si necesita un protocol de nerecunoastere
(engl. disavowal protocol).
Protocolul 7.5.9 aplica protocolul de verificare 7.5.7 de doua ori dupa care efectueaza
o verificare pentru a stabili daca A a rulat corect protocolul.
Protocol 7.5.9 (Protocolul de nerecunoastere Chaum - van Antwerp pentru schema de
semn
atur
a digitala incontestabil
a) Protocolul determina daca semnatarul A ncearc
a sa
nu recunoasc
a o semnatur
a valida s folosind algoritmul 7.5.7, sau daca semnatura este
un fals.
1. B obtine cheia publica autentica a lui A, (p, , y).
2. B selecteaz
a doi ntregi aleatori secreti x1 , x2 {1, 2, . . . , q 1} si calculeaz
a z =
x1 x2
s y mod p si trimite z lui A.
1

a w = (z)a
3. A calculeaz

mod p (unde aa1 1 mod q) si trimite w lui B.

4. Dac
a w = mx1 x2 mod p, B accept
a semnatura s si protocolul se opreste.
a z0 =
5. B selecteaz
a doi ntregi aleatori secreti x01 , x02 {1, 2, . . . , q 1} si calculeaz
x01 x12
0
s y
mod p si trimite z lui A.
1

6. A calculeaz
a w0 = (z 0a
0

mod p si trimite w0 lui B.

7. Dac
a w0x1 x2 mod p, B accept
a semnatura s si protocolul se opreste.
0

8. B calculeaz
a c = (wx2 )x1 mod p si c0 = (w0x2 )x1 mod p. Daca c = c0 , atunci
B deduce ca s este o semnatur
a falsa; altfel, semnatura este valida si A ncearc
a sa
nu o recunoasc
a.

Anexa A
Comunicarea la nivel IP
O descriere detaliata a subiectelor tratate n aceasta anexa este facuta n lucrarea [104].
Serviciile Internet au la baza schimbul de mesaje ntre o sursa si un destinatar. Daca un
utilizator A din Internet doreste sa transmita un mesaj altui utilizator B, atunci mesajul
trebuie mpachetat, adica este ncadrat de anumite informatii de control. Unitatea de date
astfel obtinuta se numeste pachet. Informatia de control include adresa expeditorului si
a destinatarului, specificate n forma numerica: patru numere naturale mai mici decat
256, despartite ntre ele prin puncte. Dirijarea pachetelor este efectuata automat de catre
retea si respecta un set de reguli si conventii numite protocol. Retelele de calculatoare pot
folosi protocoale diferite dar, pentru a putea comunica ntre ele, trebuie sa adopte acelasi
protocol. Retelele din Internet folosesc protocolul IP (Internet Protocol). Protocolul
IP asigura livrarea pachetelor numai daca n functionarea retelelor nu apar erori. Daca
un mesaj este prea lung, IP cere fragmentarea lui n mai multe pachete. Transmiterea
pachetelor IP se face ntre calculatoare gazda si nu direct ntre programele de aplicatie.
Din aceste motive, protocolul IP este completat cu un altul, numit TCP (Transmission
Control Protocol), care face fragmentarea si asigura transmiterea corecta a mesajelor
ntre utilizatori. Pachetele unui mesaj sunt numerotate, putandu-se verifica primirea lor
n forma n care au fost transmise si reconstituirea mesajelor lungi, formate din mai multe
pachete. In unele cazuri, cand se transmite un singur mesaj, suficient de mic pentru a fi
continut de un singur pachet, se poate folosi un protocol mai simplu, numit UDP (User
Datagram Protocol). La randul lor, operatiile de la nivel aplicatie se deruleaza conform
unor protocoale. De exemplu, posta electronica n Internet se desfasoara dupa un protocol
ce se numeste SMTP (Simple Mail Transfer Protocol) sau S/MIME sau, mai nou IMAP.
Functionarea acestora se bazeaza pe serviciile oferite de protocoalele TCP si IP, carora le
adauga functii noi, creand astfel servicii mbunatatite. Functionarea protocoalelor TCP
si IP presupune existenta unei comunicari directe ntre noduri (rutere sau calculatoare
gazda) adiacente din retea. Aceasta comunicare este realizata conform unor tehnologii
diverse si se supune unor protocoale specifice, bine precizate. Ca urmare, TCP si IP se
bazeaza la randul lor pe serviciile oferite de alte protocoale. Se obtine n ansamblu o suita
de protocoale care depind unele de altele, dar care au ca punct central suita (familia) de
protocoale TCP/IP. In tabelul A.1 sunt prezentate cateva din protocoalele utilizate n
suita TCP/IP.
Protocoalele sunt grupate pe niveluri. Aceasta grupare respecta principiul stratificarii,
adica protocoalele sunt astfel proiectate ncat nivelul N al destinatiei sa primeasca obiectul
118

119
Nivel aplicatie
Nivel transport
Nivel Internet
Nivel retea

Telnet

Ethernet

SMTP
TCP

FTP

IP
LLC 802.2
MAC 802.3
MAC 802.4
Ethernet 802.3 Token Bus 802.4

DNS
UDP

MAC 802.5
Token Ring

Tabela A.1: Protocoalele din suita TCP/IP


Versiune Lungime Tip serviciu
Lungime totala
Identificare
Indicatori Offset fragment
Timp de viata
Protocol
Suma control antet
Adresa IP sursa
Adresa IP destinatie
Optiuni IP
Nefolositi
Date
Tabela A.2: Structura unui pachet IP
transmis de nivelul N al sursei. Pentru respectarea acestui principiu, definitia oricarui
protocol trebuie sa stabileasca doua aspecte:
1. Formatul unitatilor de date manipulate.
2. Actiunile posibile ale entitatilor de protocol care concureaza la realizarea serviciilor
specifice protocolului.
Protocolul IP
Internetul poate fi definit ca o retea de retele, care utilizeaza suita de protocoale TCP/IP.
Incepand cu 1982, cel mai utilizat protocol Internet a fost IPv4 (Internet Protocol versiunea 4). Din 1995, IETF (Internet Engineering Task Force), care dezvolta protocoale
standard pentru Internet, a emis o specificatie pentru noua generatie de IP, numita IPng
sau IPv6. La nivel abstract, Internetul este foarte asemanator cu reteaua telefonica. Dar,
daca n cazul retelei telefonice pentru fiecare convorbire se aloca un circuit separat, n
cazul Internetului mai multe procese folosesc n comun aceleasi legaturi dintre calculatoare. Datele sunt trimise sub forma unor blocuri de caractere, numite datagrame sau
pachete. Fiecare pachet este prefatat de un mic ansamblu de octeti, numit header (antet), urmat de datele propriu-zise ce formeaza continutul pachetului (tabelul A.2). Dupa
sosirea la destinatie, datele transmise sub forma unor pachete distincte sunt reasamblate
n unitati logice de tip fisier, mesaj. Internetul comuta pachetele pe diferite rute de la
sursa la destinatie, numindu-se retea cu comutare de pachete.
Campurile unui antet pentru IPv4 sunt:
Versiune (4 biti): Indica numarul versiunii. Valoarea este 4.
Lungime (4 biti): Specifica lungimea antetului. Valoarea minima este 5 pentru o
lungime a antetului de minim 20 de octeti.

120

Anexa A. Comunicarea la nivel IP

Tip serviciu (8 biti): Specifica rutele IP n termeni de prioritate a pachetelor.


Lungimea totala (16 biti): Specifica lungimea totala a pachetului IP, n octeti.
Identificare (16 biti): mpreuna cu adresa sursei, adresa destinatiei si cu protocolul
utilizatorului, identifica un pachet ntr-un mod unic.
Indicatori (3 biti): Indica daca un pachet este fragmentat sau nu.
Offset fragment (13 biti): Indica cui i apartine pachetul fragmentat.
Timp viata (8 biti): Specifica cat timp (n secunde) ramane un pachet n Internet.
Protocol (8 biti): Indica protocolul de la nivelul imediat superior care primeste
datele.
Suma control antet (16 biti): Este un cod de detectare a erorilor aplicat numai
antetului. Acesta se calculeaza si se verifica la fiecare ruta.
Adresa IP sursa (32 biti): Specifica adresa sursa a IP.
Adresa IP destinatie (32 biti): Specifica adresa destinatie a IP.
Optiuni (variabil): Specifica optiunile emitatorului: eticheta de securitate, caile de
rutare.
Nefolositi (variabil): Utilizati pentru a se asigura ca lungimea antetului este un
multiplu de 32 de biti.
Se poate considera ca IP este un protocol scalabil, adica, lucreaza la fel de bine n cadrul
unei retele dintr-un birou de pana la 10 statii sau n cadrul unei retele mari cu sute de statii
sau n cadrul unei retele nationale sau internationale cum este Intenet-ul. Calculatoarele
conectate la o retea se numesc, n general, host-uri (calculatoare gazda). Conectarea ntre
retele se face prin rutere, care folosesc tabele de rutare pentru a determina pe ce trasee
sa trimita pachetele.
Adresarea n Internet
Fiecare interfata a unui calculator catre o retea IP primeste un numar de identificare unic
de 32 de biti care este adresa sa. Adresa este exprimata cel mai adesea sub forma unui
set de 4 numere de 8 biti, de exemplu 192.168.1.10. O adresa IPv4 este formata din patru
numere zecimale a.b.c.d, fiecare cuprins ntre 0 si 255 pentru a putea fi reprezentat pe
8 biti. Teoretic, adresa IP de 32 de biti poate referi maxim 232 calculatoare legate n
Internet. Practic, numarul total de calculatoare ce pot fi conectate este mult mai mic,
datorita modului n care aceste adrese sunt atribuite. Organizatiilor li se atribuie blocuri
de adrese, asa cum companiile de telefonie atribuie cate un cod pentru fiecare localitate sau
regiune. Noul protocol IPv6 furnizeaza un spatiu de adrese mult mai mare pentru host-uri
si retele (2128 ) datorita sistemului de adresare pe 128 de biti. In schema de adresare clasica
exista 5 tipuri de adrese IP. Cei mai semnificativi biti ai adresei definesc clasa de retea
careia i apartine adresa. Ceilalti biti sunt divizati ntr-o parte ce desemneaza reteaua si
o alta specifica host-ului.

121
Clasa A. Host-urile retelelor de clasa A au adresa de forma N.a.b.c, unde N
reprezinta numarul de retea, iar a.b.c numarul host-ului. Bitul cel mai semnificativ
al lui N trebuie sa fie zero (primul octet este mai mic de 128, putand exista astfel
126 de retele de clasa A). Astfel, nu exista prea multe retele de clasa A. De exemplu,
daca o retea are pana la 16387064 de calculatoare, nu este necesara o adresa de clasa
A. Unele organizatii mari, cum ar fi MIT, au atribuite retele de tip A, nsa ele nu-si
pun toate calculatoarele n aceeasi retea si o mpart n mai multe retele de clasa B
sau C.
Clasa B. Host-urile au adresa de forma N.M.a.b, unde N.M este numarul retelei,
iar a.b numarul host-ului. Cei mai semnificativi 2 biti ai lui N trebuie sa fie 10
(primul octet ntre 129 si 191). Retelele de clasa B sunt n general cele ale unor
mari universitati sau companii. Pot exista cate 65534 de host-uri n maximum 16002
de retele de clasa B.
Clasa C. Host-urile au o adresa de forma N.M.O.a, unde N.M.O este numarul
retelei, iar a este numarul host-ului. Cei mai semnificativi 3 biti ai lui N trebuie sa
fie 110 (ntre 192 si 223). Astfel de retele pot administra maxim 254 de host-uri n
1999996 retele de clasa C. Cele mai multe organizatii au una sau mai multe retele
de clasa C.
Clasa D. Host-urile au o adresa de forma N.M.O.a, unde N.M.O este numarul
retelei, iar a este numarul host-ului. Cei mai semnificativi 4 biti ai lui N trebuie sa
fie 1110 (ntre 224 si 239). Astfel de adrese sunt folosite n multicast, adica multimi
de host-uri care asteapta pe o aceeasi adresa primirea pachetelor ce contin n interior
adresa destinatie a statiei.
Clasa E. Host-urile au o adresa de forma N.M.O.P, iar cei mai semnificativi 5 biti
ai lui N sunt 11111. Aceste adrese sunt folosite doar pentru anumite experimente.
Odata cu explozia numarului de calculatoare conectate la Internet, s-a dezvoltat o
noua metoda de atribuire a adreselor, numita CIDR (Classless Inter-Domain Routing).
Aici nu exista clase, ca n schema clasica. Retelele sunt definite de cei mai semnificativi
k biti ai adreselor, restul de 32-k biti desemnand host-ul. Astfel, un furnizor de servicii
poate aloca un set de adrese, n care primii 12 biti reprezinta o valoare fixa (adresa retelei),
iar restul de 20 de biti reprezinta host-ul. Aceasta solutie permite furnizorului de servicii
sa aloce 220 de adrese distincte pentru clienti.
Rutere si protocoale de rutare
Pentru a trimite un pachet, calculatoarele seteaza adresa destinatie n interiorul pachetului. Apoi trimit pachetul unui calculator special al retelei locale numit ruter. Acesta
poate determina catre care calculator sa trimita pachetul mai departe, pentru a ajunge la
destinatie. Multe organizatii configureaza reteaua lor interna ca un arbore. In radacina
se afla calculatorul care face legatura cu Internetul. Atunci cand un ruter primeste
un pachet, el decide daca trebuie sa-l dirijeze catre una din subretelele sale sau catre
radacina. Functionarea schemei de rutare se bazeaza pe continutul tabelelor de rutare.
Aceasta poate fi stabilit la initializarea retelei, proces numit rutare statica, sau n timpul

122

Anexa A. Comunicarea la nivel IP

functionarii ei, proces numit rutare dinamica. Algoritmii folositi n stabilirea tabelelor,
numiti algoritmi de rutare, au la baza diferite criterii, cum ar fi alegerea cailor mai scurte,
ncarcarea uniforma a subretelelor. Din punct de vedere al utilizatorului, rutarea este
transparenta. Singurul lucru ce trebuie stiut este adresa de 32 de biti a calculatorului
destinatie.
Un element important al schemei este punerea n corespondenta a adreselor de retea
(adrese IP) cu adresele MAC (Media Access Control). Operatia este ngreunata de formatele diferite adoptate la cele doua niveluri: adresele IP au 32 de biti, iar adresele MAC
Ethernet au 48 de biti. Pentru a realiza aceasta corespondenta, se folosesc protocoalele
speciale ARP (Address Resolution Protocol) si RARP(Reverse Address Resolution Protocol), care se bazeaza pe integrarea tuturor statiilor unei subretele pentru determinarea
adreselor MAC si pe alcatuirea unei tabele de corespondente.
Schema de rutare functioneaza corect daca nu apar caderi ale liniilor de comunicatie
sau ale sistemelor de calcul. In practica, aceste defectari nu pot fi evitate. Cunoasterea
lor si transmiterea informatiilor de stare ntre rutere se face conform protocolului ICMP
(Internet Control Message Protocol).
Securitatea la nivel IP
O parte din metodele de atac asupra Internetului sunt enumerate n continuare:
Interceptarea parolelor sau a altor informatii care trec prin retea.
Atacurile cu nregistrari IP vechi au fost utilizate pentru a se realiza penetrarea
ilegala a unor host-uri.
Furtul conexiunilor a fost folosit pentru a obtine controlul asupra unor sesiuni deschise.
Inserarea de date vechi sau false a fost folosita de atacatori pentru a compromite
integritatea unor fisiere sau programe, n special n cazul unor servere NFS.
Protocoalele IP nu sunt suficient de bine protejate mpotriva unor astfel de atacuri.
Desi au fost concepute sa lucreze n medii ostile, facand fata unor caderi de calculatoare
pe anumite rute, protocoalele IP sunt vulnerabile la atacuri extinse, provenind din partea
unor calculatoare legitime. De asemenea, n structura lor originala, protocoalele IP nu au
prevazute solutii de securitate cum ar fi autentificare, secretizare.
Acest lucru este n curs de rezolvare n noua versiune IPv6. Protocoalele IP au fost
concepute pentru a asigura transferul pachetelor de la un calculator la altul al retelei. Ele
nu sesizeaza si nici nu mpiedica alte calculatoare ale aceleiasi retele sa intercepteze si sa
citeasca aceste pachete n timp real. Acest tip de atac se mai numeste si ascultarea liniei
(eavesdropping) sau captura pachetelor (packet sniffing).
Vulnerabilitatile diferitelor medii de transmitere a pachetelor ntre calculatoare sunt
urmatoarele:
Ethernet. Posibilitatea interceptarii este ridicata, aceste retele fiind de tip broadcast, ceea ce asigura accesul tuturor calculatoarelor la cadrele transmise.

123
Linii telefonice. Posibilitatea interceptarii este medie, deoarece este nevoie de cooperare cu compania de telefoane sau un acces fizic la liniile telefonice. La modemurile de mare viteza, interceptarea devine mai dificila, datorita folosirii mai multor
frecvente.
FDDI. Posibilitatea interceptarii este ridicata, toate pachetele fiind transmise pe
inelul retelei.
Cablu TV. Posibilitatea interceptarii este ridicata datorita posibilitatii, relativ usoare, de acces la cablu TV pe care se transmit atat canalul TV cat si date.
Microunde si radio. Posibilitatea interceptarii radio este ridicata, fiind prin definitie
un mediu de tip broadcast care poate fi interceptat de oricine.
Singura modalitate de asigurare a protectia mpotriva interceptarii liniilor o reprezinta
criptarea. Aceasta poate fi nglobata la diferite niveluri arhitecturale:
1. Criptarea la nivel legatura de date, prin intermediul careia pachetele sunt automat
cifrate atunci cand sunt transmise pe o legatura ntre doua noduri, ceea ce pune
atacatorul n imposibilitatea de a ntelege traficul. Aceasta metoda este folosita
cu succes la produse pentru retele radio si exista aparate de criptat speciale pentru
modemuri si linii nchiriate. Este dificila utilizarea acestei solutii pentru retele FDDI
si Ethernet.
2. Criptarea capat la capat, n cadrul careia host-ul care transmite un pachet va cifra
continutul acestuia. La host-ul receptor, aceste date sunt automat decriptate. Multe
organizatii apeleaza la aceasta solutie, folosind pentru conectarea retelelor la Internet, rutere cu criptare. Acestea cripteaza tot traficul prin Internet, care vizeaza
calculatoare situate la distanta, ale aceleiasi organizatii, singurele care au mijloacele
de decriptare necesare. Traficul cu alte calculatoare ramane necriptat.
3. Criptarea la nivelul aplicatiei, facuta la nivelul software al programelor care reprezinta aplicatii Internet. De exemplu, versiunea Kerberos a protocolului Telnet
cifreaza automat datele transmise n ambele directii.

Anexa B
Protocolul de login la distant
a
Secure Shell (SSH)
Secure Shell (SSH) este o suita de protocoloale de autentificare, bazat pe criptografia
cu chei publice, care permite unui utilizator sa se conecteze la un server la distanta
de pe o masina client printr-o retea nesigura, pentru a executa n siguranta comenzi
pe masina de la distanta si pentru a muta fisiere de la o masina la alta. Protocolul
este un standard industrial de facto si este folosit pe scara larga n sistemele UNIX sau
Linux. Partea de client a protocolului poate rula si pe alte platforme cu alte sisteme de
operare. Motivul pentru care protocolul ruleaza n principal pe sisteme UNIX/Linux este
arhitectura deschisa a acestor sisteme de operare care ofera sesiuni de comenzi interactive
pentru utilizatori la distanta.
Ideea de baza a protocolului SSH este ca un utilizator pe o masina client descarca o
cheie publica de pe un server de la distanta si stabileste un canal de comunicatie sigur ntre
el (clientul) si server folosind cheia publica descarcata si anumite informatii criptografice
ale utilizatorului. Daca informatiile criptografice reprezinta o parola, atunci parola poate
fi criptata folosind cheia publica a serverului si transmisa la server.
Arhitectura SSH
Protocolul SSH ruleaza ntre doua calculatoare ntre care nu exista o relatie de ncredere
printr-o retea de comunicatie nesigura. Unul este serverul (host-ul) de la distanta iar
celalalt este clientul de la care utilizatorul se conecteaza la server folosind protocolul SSH.
Suita de protocoale SSH este formata din trei componente majore:
Protocolul SSH la nivel transport care ofera clientului serviciul de autentificare al
serverului. Acest protocol se bazeaza pe chei publice. Acest protocol primeste la
intrare la partea de server o pereche de chei (privata/publica). La iesire protocolul
va realiza un canal sigur (n ceea ce priveste confidentialitatea si integritatea datelor)
autentificat unilateral de la server la client. Acest protocol va rula peste o conexiune
TCP (Transmission Control Protocol) si IP (Internet Protocol), dar poate rula si
peste alte fluxuri de date sigure.
Protocolul SSH de autentificare al utilizatorului ruleaza peste canalul autentificat
unilateral stabilit de componenta precedenta. Acesta suporta numeroase protocoale
124

125
de autentificare unilaterala pentru realizarea autentificarii entitatilor de la client
la server. Pentru ca aceasta directie de autentificare sa fie posibila, serverul de
la distanta trebuie sa aiba informatii apriori despre informatiile criptografice ale
utilizatorului, adica utilizatorul trebuie sa fie cunoscut de server. Aceste protocoale
pot fi bazate pe chei publice sau pe parole. Rezultatul executiei unui protocol din
aceasta suita, mpreuna cu rezultatul protocolului SSH de la nivel transport, este
un canal sigur autentificat mutual ntre server si un anumit utilizator pe partea de
client.
Protocolul de conexiune SSH ruleaza peste canalul sigur autentificat mutual stabilit
de cele doua componente precedente. Acest protocol este cel care realizeaza o serie
de canale logice sigure ce pot fi folosite pentru o serie de operatii de comunicatie.
Aici va fi prezentat doar protocolul SSH la nivel transport, acesta fiind protocolul de
autentificare.
Protocolul SSH la nivel transport
In protocolul SSH, protocolul SSH la nivel transport foloseste schimbul de chei DiffieHellman si realizeaza autentificare unilaterala a serverului fata de client prin semnarea de
catre server a cheilor transmise.
Fiecare server (host) are o pereche de chei - publica si privata. Un server poate avea
mai multe perechi de astfel de chei pentru a putea folosi mai multi algoritmi. Daca un
server are astfel de chei, atunci trebuie sa aiba cel putin cate o pereche de chei pentru
fiecare algoritm asimetric precizat de standardul Internet (DSS sau RSA n functie de
versiune).
Cheile (publica si privata) serverului sunt folosite n timpul fazei de schimb de chei:
serverul foloseste cheia privata pentru a semna mesajele ce tin de schimbul de chei; clientul
foloseste cheia publica a serverului pentru a verifica faptul ca schimba mesaje cu serverul
corect. Pentru ca acest lucru sa fie posibil, clientul trebuie sa aiba informatii apriori n
legatura cu cheia publica a serverului.
SSH suporta doua moduri diferite de realizarea a ncrederii asupra cheii publice a
serverului:
Clientul are o baza de date locala n care este facuta asocierea ntre fiecare server
si cheia publica corespunzatoare. Aceasta metoda nu necesita o infrastructura gestionata n mod centralizat si prin urmare nu necesita un tert de ncredere care sa fie
responsabil de coordonarea infrastructurii. Dezavantajul acestui mod este ca baza
de date poate deveni foarte mare si greu de gestionat.
Asocierea ntre numele serverului si cheia publica este certificata de o autoritate de
certificare (CA). Clientul trebuie sa stie doar cheia publica a autoritatii de certificare
si poate verifica valabilitatea tuturor cheilor publice certificate de CA.
A doua modalitate simplifica problema gestiunii cheilor, din moment ce trebuie stocat
n siguranta doar o singura cheie publica (aici prin securitate se ntelege integritatea
datelor). Pe de alta parte fiecare cheie publica a serverelor trebuie sa fie certificata n

126

Anexa B. Protocolul de login la distant


a Secure Shell (SSH)

mod corespunzator de catre CA nainte ca autentificarea sa fie posibila. De asemenea,


exista o mare ncredere n infrastructura centralizata.
Din moment ce pe Internet nu exista nca o infrastructura de chei publice implementata
pe scara larga, primul model de ncredere face protocolul mult mai utilizabil, pana la
implementarea unei infrastructuri de chei publice (PKI), oferind un nivel de securitate
mult mai bun decat cel oferit de solutiile mai vechi (de ex. comenzile UNIX rlogin, rsh,
rftp etc.).
O metoda realista de obtinere a unei chei publice autentificate a unui server este ca
utilizatorul sa aduca o copie a cheii publice si sa o puna n masina client nainte de rularea
protocolului de schimb de chei. De exemplu, utilizatorul poate salva pe un disc cheia publica a serverului. Pe sistemele UNIX si Linux, cheia publica a serverului folosita de masina
client este pusa ntr-un fisier cu numele $HOME/.ssh/known host. Utilizatorul trebuie sa
securizeze din punct de vedere fizic cheia publica a serverului n ceea ce priveste integritatea datelor. Pe sistemele Windows cheia publica a serverului exista doar n memoria
sistemului si este descarcata n timp real de la server (printr-o legatura nesigura!).
O alta modalitatea realista de obtinere a cheii publice autentice a serverului este
folosirea autentificarii prin voce ntr-o legatura telefonica. Cheia publica a serverului
este descarcata de utilizator pe masina client printr-o legatura nesigura. O amprenta
hexazecimala a cheii publice este prezentata utilizatorului. Aceasta amprenta este:
amprenta(cheie) = H(cheie)
unde, H este o functie hash criptografica, de ex. SHA-1. In cazul SHA-1, ntreaga
amprenta are 160 de biti si prin urmare poate fi spusa la telefon sub forma a 40 de
caractere. Astfel, utilizatorul poate da un telefon administratorului serverului care i
poate confirma corectitudinea amprentei. Aici autentificarea se realizeaza prin voce si
se pleaca de la premisa ca utilizatorul si administartorul si cunosc unul altuia vocile.
Protocolul pentru schimbul de chei este initiat ntodeauna de client. Serverul asculta
pe un anumit port asteptand conexiuni. O serie de clienti se pot conecta la acelasi server.
Protocolul SSH foloseste protocolul pentru schimb de chei Diffie-Hellman pentru a
obtine cheia de sesiune.
Protocol B.1 (Protocolul pentru schimbul de chei) Notatii:
C: clientul;
S: serverul;
p: un numar prim mare;
g: un generator al subgrupului Gq al GF (p);
q: ordinul subgrupului Gq ;
VC , VS : versiunile protocolului pentru C respectiv S;
KS : cheia publica a serverului;
IC , IS : mesajele initiale trimise de C si S nainte de nceperea acestei parti.

127
Fazele protocolului:
1. C genereaz
a un numar aleator x (1 < x < q) si calculeaz
a
e gx

mod p;

valoarea calculat
a este trimisa la S;
a un numar aleator y (1 < y < q) si calculeaz
2. S genereaz
a
f gy

mod p;

K ey

mod p,

S primeste e si calculeaz
a
H hash(VC ||VS ||IC ||IS ||KS ||e||f ||K),
s Sigs (H).
S trimite la C KS ||f ||s;
3. C verific
a faptul ca KS este ntr-adev
ar cheia publica a lui S iar mai apoi calculeaz
a:
K fx

mod p,

H hash(VC ||VS ||IC ||IS ||KS ||e||f ||K),


si verifica semnatura s asupra lui H; C accept
a schimbul de chei daca verificarea
reuseste.
Dupa schimbul de chei, comunicatia dintre cele doua entitati va fi criptata folosind
cheia de sesiune K. Cele doua entitati trec la executarea protocolului SSH de autentificare
a utilizatorului iar mai apoi utilizatorul de la client poate cere servicii folosind protocolul
SSH de conxexiune.
Strategia SSH
Unul din obiectivele protocolului SSH este de a mbunatati securitatea prin Internet ntr-o
maniera progresiva. Posibilitatea clientului de a folosi orice metoda pentru verificarea autenticitatii cheii publice a serverului demonstreaza strategia SSH de implementare rapida
si suportul pentru compatibilitate cu versiuni anterioare.
Inainte de a exista o infrastructura de chei publice pe Internet, securitatea mbunatatita a SSH nu trebuia sa fie una foarte puternica. Solutia simplu de folosit si usor de
implementat este un atuu important al SSH si este motivul pentru care a fost implementat
pe scara larga si folosit pe serverele UNIX si Linux.
Din acest exemplu real de tehnica de autentificare putem observa ca criptografia cu
chei publice permite realizarea unor solutii simple. Cheia serverului prin mediul nesigur
exista doar sub forma de cheie publica, asa ca gestiunea acestei componente devine mult
mai simpla. Problema devine mult mai complicata daca protocolul se bazeaza pe tehnici
criptografice simetrice.

Anexa C
SSL si TLS
Transport Layer Security (TLS) si predecesorul sau, Secure Sockets Layer (SSL) [43], [58],
sunt protocoale criptografice care ofera posibilitatea realizarii de comunicatii sigure prin
Internet pentru web, e-mail, Internet fax si pentru alte transferuri de date. Intre SSL 3.0
si TLS 1.0 [31] exista anumite deosebiri, dar n esenta protocolul ramane acelasi. Protocolul a fost creat initial de Netscape Communications Corporation ca parte integranta a
browserului sau web (pe partea de client) si a web server-ului. Ulterior a fost acceptat
si de Microsoft si alti dezvoltatori de aplicati client/server pentru Internet. A devenit un
standard de facto pentru Internet iar mai apoi prin crearea TLS a devenit un standard
Internet pentru securitatea web dezvoltat de IETF (Internet Engineering Task Force).
Modul n care poate fi folosit protocol SSL/TLS ca si tehnologie de securitate de baza
pentru protectia tranzactiilor online este prezentat n lucrarea [97].
Protocolul TLS permite aplicatiilor client/sever sa comunice astfel ncat sa fie mpiedicata ascultarea liniilor, modificarea datelor si falsificarea mesajelor. TLS ofera autentificare la capetele unei comunicatii si confidentialitatea comunicatiilor prin Internet.
De regula, doar serverul se autentifica - clientul ramanand neautentificat; astfel utilizatorul final (o persoana sau o aplicatie cum ar fi un web browser) poate fi sigur ca la
capatul celalalt al liniei de comunicatie este cine trebuie. In cazul autentificarii la ambele capete (autentificare mutuala) ambele entitati implicate n procesul de comunicare
primesc asigurari n legatura cu entitatea cu care comunica. Pentru realizarea autentificarii mutuale este nevoie de implementarea unei infrastructuri cu chei publice (PKI) la
clienti.
TLS ruleaza sub nivelurile protcoalelor de aplicatie cum este HTTP, FTP, SMTP
si NNTP dar deasupra protocoalelor de transport TCP si UDP. Cu toate ca poate fi
folosit cu orice protocol care foloseste conexiuni sigure (cum este TCP), cel mai des este
folosit mpreuna cu HTTP pentru a forma HTTPS. HTTPS este folosit pentru a securiza
paginile World Wide Web din aplicatii cum ar fi cele de comert electronic. TLS este
folosit de asemenea si n SMTP asa cum este specificat n RFC 3207. Aceste aplicatii
folosesc certificate pentru chei publice pentru a verifica identitatea entitatilor implicate
n comunicatie.
TLS implica trei faze importante:
1. Negociere ntre entitati pentru functionarea algoritmului;
2. Schimbul de chei bazat pe criptare cu chei publice si autentificare pe baza de certi128

129
ficat;
3. Criptarea traficului cu metode simetrice
Arhitectura TLS
TLS este format din doua protocoale suprapuse: protocolul TLS Record si Protocolul
TLS Handshake. Ultimul este deasupra primului.
Protocolul TLS Record furnizeaza ncapsularea sigura a canalului de comunicatie pentru a fi folosit de protocoalele de le nivelurile superioare. Acest protocol ruleaza deasupra
nivelurilor TCP si IP si realizeaza o conexiune sigura. Protocolul ia mesajele ce trebuie
transmise, fragmenteaza datele n blocuri ce pot fi gestionate usor, optional poate comprima datele, aplica o functie MAC (de ex. HMAC) pentru integritatea datelor, cripteaza
datele folosind un algoritm simetric (pentru confidentialitate) si transmite rezultatul la
destinatie. La destinatie, datele sunt decriptate, se verifica MAC-ul, optional se face decompresia, se reasambleaza blocurile de date si sunt transmise la procesele de aplicatie de
la nivelul superior.
Cheile pentru criptarea simetrica si pentru HMAC sunt generate n mod unic pentru fiecare sesiune si sunt bazate pe o informatie secreta negociata de protocolul TLS
Handshake.
Protocolul TLS Handshake permite serverului si clientului sa se autentifice unul fata
de altul, negociaza algoritmii criptografici ce vor fi folositi, stabileste cheile criptografice
si n final stabileste o conexiune sigura pentru protocolul TLS Record care realizeaza
serviciile de comunicatie sigura pentru protocoalele de aplicatie de la nivelul superior.
Protocolul de Handshake TLS
Protocolul Handshake este protocolul de autentificare n TLS. Operatiile de mai jos sunt
executate de cele doua entitati implicate:
Schimbul de mesaje hello pentru stabilirea algoritmilor, schimbul de valori aleatoare,
verificarea faptului ca nu este vorba de reluarea unei sesiuni anterioare.
Schimbul parametrilor criptografici necesari pentru a permite clientului si serverului
sa stabileasca un secret (numit secret master).
Schimbul de certificate si informatie criptografica pentru a permite clientului si
serverului sa se autentifice unul fata de altul.
Generarea secretelor de sesiune din secretul master prin schimbul de valori aleatoare.
Verificarea faptului ca cealalta entitate a calculat aceeasi parametri de securitate
pentru a confirma faptul ca handshake-ul s-a ncheiat fara sa fi intervenit un atacator.
Canalul sigur stabilit este transmis protocolului TLS Record pentru a procesa
comunicatiile de la nivelul de aplicatie.

130

Anexa C. SSL si TLS

Aceste operatii sunt realizate prin schimbul a patru mesaje descrise mai jos. Aici, pentru simplitate, sunt omise o serie de elemente optionale ale protocolului TLS Handshake.
In descrierea protocolului, C reprezinta clientul (de ex. browser-ul), S reprezinta severul.
Mesajele care se termina cu sunt optionale.
Protocol C.1 Protoculul TLS Handshake:
1. C S: ClientHello;
2. S C: ServerHello, ServerCertificate*, ServerKeyExchange*, CertificateRequest*,
ServerHelloDone;
3. C S: ClientCertificate*, ClientKeyExchange, CertificateVerify*, ClientFinished;
4. S C: ServerFinished.
Acest protocol poate fi executat cu toate mesajele optionale si cu mesajul ClientKeyExchange omis. Asa se ntampla atunci cand clientul vrea sa reia o sesiune existenta.
Clientul ncepe sesiunea prin trimiterea unui mesaj ClientHello caruia serverul trebuie sa-i raspunda cu mesajul ServerHello (daca nu o face, conexiunea va esua). Aceste
doua mesaje stabilesc urmatoarele informatii (campuri): versiunea protocolului (protocol version), un numar aleator (random), un numar de identificare pentru sesiune (session id ), suita de cifruri (cipher suites) si metodele de compresie (compression methods).
Campul protocol version este pentru o utilizare care sa ofere compatibilitate cu
versiuni mai vechi: serverul si clientul pot folosi acest camp pentru a-l informa pe celalalt
n legatura cu versiunea protocolului pe care o foloseste.
Campul random contine numere aleatoare generate de ambele entitati, numere ce
sunt interschimbate. De asemenea contine ora locala a fiecaruia.
Campul session id identifica sesiunea curenta. Atunci cand clientul vrea sa stabileasca o noua sesiune, Client.session id trebuie sa fie gol. In acest caz, serverul genereaza
un nou session id, si foloseste aceasta noua valoare n campul ServerHello.session id si
o pastreaza si n memoria cache locala. Daca ClientHello.session id nu este gol (cand
clientul vrea sa reia o sesiune ntrerupta), serverul cauta valoarea n cache si reia sesiunea
identificata.
ClientHello.cipher suites este o lista cu optiunile criptografice suportate de client, sortata n ordinea preferintelor clientului. Clientul poate propune o serie ntreaga de algoritmi
criptografici simetrici si asimetrici, scheme de semnatura digitala, scheme MAC si functii
hash. Serverul alege o singura schema pentru fiecare operatie criptografica necesara si
informeaza clientul n legatura cu alegerea facuta n mesajul ServerHello.cipher suites.
Dupa schimbul de mesaje hello, serverul poate (optional) trimite certificatul sau, daca
serverul trebuie sa fie autentificat. Mesajul ServerCertificate, daca nu este gol, contine
o lista de certificate X.509.v3. Un certificat X.509 contine informatii despre numele si
cheia publica a proprietarului certificatului si despre autoritatea de certificare emitenta.
Trimiterea unei liste de certificate i permite clientului sa-l aleaga pe cel pe care l poate
procesa (cel pentru care are o implementare a schemei de chei publice folosita).
Urmatorul mesaj ServerKeyExchange contine partea de chei publice corespunzatoare
listei de certificate din ServerCertificate. Aici se vor include informatile ce tin de schimbul
de chei Diffie-Hellman, si anume p, g, g y unde p este un numar prim, g este un generator

131
modulo p a unui grup si y este un ntreg pastrat n memoria cache a serverului (legat de
session id).
Serverul care ofera servicii ne-anonime poate cere clientului un certificat folosind
mesajul CertificateRequest, daca aceasta se poate face pentru algoritmul cu chei publice
ales din ClientHello.cipher id. Serverul va trimite mesajul ServerHelloDone, indicand faptul ca faza mesajelor hello a fazei de handshake s-a ncheiat. Serverul va astepta raspunsul
clientului.
Daca serverul a trimis mesajul CertificateRequest, clientul trebuie sa trimita ori mesajul ClientCertificate ori mesajul de alerta NoCertificate. Continutul mesajului ClientKeyExchange depinde de algoritmul cu chei publice stabilit n mesajele ClientHello si
ServerHello. Daca clientul a ales algoritmul RSA, clientul genereaza secretul master
(un numar de 48 de octeti) si l cripteaza cu cheia publica certificata a serverului (obtinuta
din ServerCertificate). Daca clientul a trimis un certificat si clientul poate sa semneze,
atunci un mesaj semnat digital CertificateVerify va fi trimis serverului pentru ca acesta
sa poata verifica explicit certificatul clientului.
Dupa acest schimb de mesaje clientul trimite mesajul ClientFinished care include
un HMAC cu cheie (cheia este secretul master) pentru a permite serverului sa confirme
executia corecta a protocolului de handshake de catre client. Ca raspuns, serverul va
trimite propriul mesaj ServerFinished care include de asemenea un HMAC cu cheie pentru
a permite clientului sa confirme executia corecta a protocolului de handshake de catre
server.
La acest punct protocolul de handshake este ncheiat iar serverul si clientul pot ncepe
sa faca schimb de date la nivel aplicatie.
Exemplu C.2 O rulare obisnuit
a a protocolului TLS Handshake
C S : ClientHello.protocol version = T LS V ersion 1.0,
ClientHello.random = TC , NC
ClientHello.session id = N U LL,
ClientHello.crypto suite = RSA : encryption, SHA1 : HMAC,
ClientHello.compression method = N U LL;
S C : ServerHello.protocol version = T LS V ersion 1.0,
ServerHello.random = TS , NS ,
ServerHello.session id = xyz123,
ServerHello.crypto suite = RSA : encryption, SHA1 : HMAC,
ServerHello.compression method = N U LL,
ServerCertif icate = pointer la certif icatul serverului,
ServerHelloDone;
C S : ClientKeyExchange = pointer la(RSA Encryption(master secret)),
ClientF inished = SHA1(master secret||C||, NC , NS , . . .),
S C : ServerF inished = SHA1(master secret||S||, NS , NC ).

132

Anexa C. SSL si TLS

In aceste exemplu clientul alege sa fie anonim asa ca nu se va autentifica fata de server.
Algoritmul pentru criptare ales de client este RSA iar pentru calculul HMAC este SHA1.
Prin urmare, serverul se va autentifica unilateral fata de client.
Exemplul C.2 reprezinta o rulare tipica a protocolului TLS ntr-o aplicatie de comert
electronic prin web (de exemplu cumpararea unei carti de la o librarie online). Canalul de
comunicatie ofera clientului siguranta ca doar serverul autentificat va primi instructiunile
legate de cumpararea cartii, instructiuni ce pot contine date confidentiale cum ar fi detaliile cartii de credit, titlul cartii si adresa la care va fi livrata.

Concluzii
In aceasta lucrare am abordat problema protocoalelor de securitate, n principal a protocoalelor de identificare si autentificare si a protocoalelor pentru stabilirea de chei. De
asemenea, am prezentat o serie de atacuri care de-a lungul timpului au fost folosite pentru a nvinge obiectivele protocoalelor de securitate si masuri de contracarare a acestor
atacuri. Am discutat problema functiilor hash si problematica semnaturilor digitale. Un
capitol a fost dedicat modalitatilor de analiza formala a protocoalelor de securitate. Infrastructurile de autentificare pentru criptografia cu chei publice sunt tratate ntr-un capitol
distinct, subiectul fiind unul important la care s-a apelat n momentul n care protocoalele
necesitau chei publice autentice. In anexe am prezentat protocoale de securitate folosite
pe scara larga fiind vorba de protocolul SSH (pentru login n siguranta de la distanta) si
de protocolul SSL/TLS (folosit pentru realizarea de conexiuni sigure prin Internet pentru
web, e-mail etc., fiind la ora actuala un standard de facto).

133

List
a de tabele
2.1

2.2

Dimensiunea n biti a spatiilor de parole pentru diferite combinatii de caractere. Numarul de parole de n caractere, cu c variante pentru un caracter
este cn . In tabel sunt date valorile logaritmului n baza 2 pentru acest
numar de parole posibile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Timpul necesar pentru a cauta ntregul spatiu de parole. Tabelul indica
timpul necesar T n ore, zile sau ani pentru a cauta n tot spatiul specificat
folosind un singur procesor. T = cn t y, unde t este numarul de iterari
ale functiei pentru criptarea parolei, iar y este timpul necesar pentru o
iteratie, pentru t = 25, y = 1/(125000) sec. . . . . . . . . . . . . . . . . . . 17

3.1
3.2

Notiuni relevante n protocoalele pentru stabilirea de chei . . . . . . . . . . 42


Protocoale pentru acord asupra cheii MTI. A si B au secrete pe termen
lung a, respectiv b. Cheile publice pe termen lung a caror autenticitate
este verificabila sunt zA = a , respectiv zB = b . Secretele aleatoare alese
pentru sesiune, de catre A si B, sunt x, respectiv y. mAB reprezinta mesajul
transmis de de A lui B iar mBA reprezinta mesajul transmis de de B lui
A. KA , respectiv KB reprezinta cheile finale K asa cum sunt calculate de
A, respectiv B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.1

Atacuri asupra protocoalelor de identificare si contramasuri . . . . . . . . . 71

6.1
6.2

Functii hash folosite n practica . . . . . . . . . . . . . . . . . . . . . . . . 98


Echivalente criptografice n algoritmi criptografici . . . . . . . . . . . . . . 98

7.1

Notatii pentru mecanismele de semnatura digitala . . . . . . . . . . . . . . 104

A.1 Protocoalele din suita TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . 119


A.2 Structura unui pachet IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

134

List
a de figuri
2.1

Folosirea unei functii one-way pentru verificarea parolei . . . . . . . . . . . 15

6.1

Trei modalitati de a furniza integritatea datelor prin functii hash . . . . . . 100

135

136

BIBLIOGRAFIE

Bibliografie
[1] ISO/IEC 117700-2. Information technology - security techniques - key management
- part 2: Mechanisms using symmetric techniques. Technical report, International
Organization for Standardization, Geneva, Switzerland, 1996. first edition.
[2] FIPS 186. Digital signature standard. Technical report, Federal Information Processing Standards Publication 186, U.S. Department of Commerce/ N.I.S.T., National Technical Information Service, Springfield, Virginia, 1994.
[3] FIPS 186-2. Digital signature standard (DSS). Technical report, Federal Information
Processing Standards Publication 186-2, U.S. Department of Commerce/ N.I.S.T.,
National Technical Information Service, Springfield, Virginia, 2000.
[4] ISO/IEC 9594-8. Information technology open systems interconnection the directory: Authentication framework (equivalent to itu-t rec. x.509, 1993). Technical
report, International Organization for Standardization, Geneva, Switzerland, 1995.
[5] ISO/IEC 9798-2. Information technology - security techniques - entity authentication - part 2: Mechanisms using symmetric encipherment algorithms. Technical
report, International Organization for Standardization, Geneva, Switzerland, 1994.
[6] ISO/IEC 9798-3. Information technology - security techniques - entity authentication mechanisms - part 3: Entity authentication using a public-key algorithm.
Technical report, International Organization for Standardization, Geneva, Switzerland, 1993. first edition.
[7] M. Abadi and P. Rogaway. Reconciling two views of cryptography (the computational soundness of formal encryption). Journal of Cryptology, 15(2):103127,
Spring 2002.
[8] M. Abadi and M.R. Tuttle. A semantics for a logic of authentication (extented
abstract). In Proceedings of Tenth Annual ACM Symposium on Principles of Distributed Computing, pages 201216, August 1991.
[9] Martin Abadi and Andrew D. Gordon. A calculus for cryptographic protocols.
the Spi calculus. Technical Report UCAM-CL-TR-414, University of Cambridge,
Computer Laboratory, 1996.
[10] C. Adams, P. Cain, D. Pinkas, and R. Zuccherato. Internet X.509 Public
Key Infrastructure Time-Stamp Protocol (TSP). The Internet Engineering Task
Force Request For Comments (IETF RFC) 3161, August 2001. Available at
www.ietf.org/rfc/rfc3161.txt.
[11] C. Adams and S. Farrell. Internet X.509 Public Key Infrastructure Certificate Management Protocols. The Internet Engineering Task Force Request For Comments
(IETF RFC) 2510, March 1999. Available at www.ietf.org/rfc/rfc2510.txt.

BIBLIOGRAFIE

137

[12] G.B. Agnew, R.C. Mullin, and S.A. Vanstone. Improved digital signature scheme
based on discrete exponentiation. Electronics Letters, 26(14):10241025, (July 5, )
1990.
[13] F. Bauspiess and H.-J. Knobloch. How to keep authenticity alive in a computer
network. Advances in Cryptology - EUROCRYPT 89, LNCS 434:3846, 1990.
[14] Mihir Bellare and Phillip Rogaway. Entity authentication and key distribution.
In Douglas R. Stinson, editor, Proc. CRYPTO 93, pages 232249. Springer, 1994.
Lecture Notes in Computer Science No. 773.
[15] Samy Bengio, Gilles Grassard, Yvo G. Desmedt, Claude Goutier, and Jean-Jacques
Quisquater. Secure implementation of identification systems. Journal of Cryptology,
4:175183, 1991.
[16] Rolf Blom. Non-public key distribution. In R. L. Rivest, A. Sherman, and D. Chaum,
editors, Proc. CRYPTO 82, pages 231236, New York, 1983. Plenum Press.
[17] B. Den Boer and A. Bosserlaers. An attack on the last two rounds of MD4. Advances
in Cryptology-CRYPTO 91 (LNCS), 576:194203, 1992.
[18] A. Bosselaers and B. Preneel, editors. Integrity Primitives for Secure Information
Systems: Final Report of RACE Integrity Primitives Evaluation RIPE-RACE 1040,
volume LNCS 1007, New York, 1995. Springer-Verlag.
[19] C. Boyd. Digital multisignatures. Criptography and Coding, pages 241246, 1989.
[20] Colin Boyd and Wenbo Mao. On a limitation of BAN logic. In Tor Helleseth, editor,
Advances in Cryptology-EUROCRYPT93. Lecture Notes in Computer Science 765,
pages 240247, May 1993.
[21] M. Burmester and Y. Desmedt. A secure and efficient conference key distribution
system. In Advances in CryptologyEUROCRYPT 94, pages 275286, 1995. LNCS
950.
[22] Michael Burrows, Martn Abadi, and Roger Needham. A logic of authentication.
ACM Transactions on Computer Systems, 8(1):1836, February 1990.
[23] David Chaum. Blind signatures for untraceable payments. In R. L. Rivest, A. Sherman, and D. Chaum, editors, Proc. CRYPTO 82, pages 199203, New York, 1983.
Plenum Press.
[24] David Chaum and Hans Van Antwerpen. Undeniable signatures. In G. Brassard,
editor, Proc. CRYPTO 89, pages 212217. Springer-Verlag, 1990. Lecture Notes in
Computer Science No. 435.
[25] David Chaum, Jan-Hendrik Evertse, Jeroen van de Graaf, and Rene Peralta.
Demonstrating possession of a discrete logarithm without revealing it. In A. M.
Odlyzko, editor, Proc. CRYPTO 86, pages 200212. Springer-Verlag, 1987. Lecture
Notes in Computer Science No. 263.

138

BIBLIOGRAFIE

[26] D. Coppersmith, J. S. Coron, F. Grieu, S. Halevi, C. Jutla, D. Naccache, and J. P.


Stern. Cryptanalysis of ISO/IEC 9796-1. Journal of Cryptology: the journal of the
International Association for Cryptologic Research, 21(1):2751, January 2008.
[27] R.A. Croft and S.P. Harris. Public-key cryptography and re-usable shared secrets.
Criptography and Coding, pages 189201, 1989.
[28] D.E. Denning and G.M. Sacco. Timestamps in key distribution protocols. Communications of the ACM, 24(8):533536, 1981.
[29] Department of Defense. CSC-STD-002-85: Department of Defense (DoD) Password
Management Guidelines, 1985.
[30] Yvo Desmedt. Society and group oriented cryptography: A new concept. In Carl
Pomerance, editor, Proc. CRYPTO 87, pages 120127. Springer-Verlag, 1988. Lecture Notes in Computer Science No. 293.
[31] T. Dierks and C. Allen. The TLS protocol version 1.0. RFC2246, January 1999.
http://www.ietf.org/rfc/rfc2246.txt.
[32] W. Diffie. The first ten years of public-key cryptography. Proc. IEEE, 76(5):560
577, May 1988. Reprinted in Simmons collection.
[33] W. Diffie and M. E. Hellman. Multiuser cryptographic techniques. In Proc. AFIPS
1976 National Computer Conference, pages 109112, Montvale, N.J., 1976. AFIPS.
[34] W. Diffie and M.E. Hellman. New directions in cryptography. IEEE Transactions
on Information Theory, 22(6):644654, 1976.
[35] W. Diffie, P.C. Van Oorschot, and M.J. Wiener. Authentication and authenticated
key exchanges. Designs, Codes and Cryptography, 2:107125, 1992.
[36] D. Dolev and A. C. Yao. On the security of public key protocols. In Proc. 22nd
IEEE Symp. on Foundations of Comp. Science, pages 350357, Nashville, 1981.
IEEE.
M.
Ellison.
SPKI
certificate
documentation.
[37] Carl
http://world.std.com/ cme/html/spki.html., 1998.

See

[38] Carl M. Ellison. RFC 2692: SPKI requirements. The Internet Society, September
1999. See ftp://ftp.isi.edu/in-notes/rfc2692.txt.
[39] Carl M. Ellison, Bill Frantz, Butler Lampson, Ron Rivest, Brian
Thomas, and Tatu Ylonen.
SPKI Examples.
The Internet Society,
March 1998.
See http://www.clark.net/pub/cme/examples.txt; This is
draft-ietf-spki-cert-examples-01.txt.
[40] Carl M. Ellison, Bill Frantz, Butler Lampson, Ron Rivest, Brian Thomas, and Tatu
Ylonen. RFC 2693: SPKI Certificate Theory. The Internet Society, September
1999. See ftp://ftp.isi.edu/in-notes/rfc2693.txt.

BIBLIOGRAFIE

139

[41] Uriel Feige, Amos Fiat, and Adi Shamir. Zero knowledge proofs of identity. In Proc.
19th ACM Symp. on Theory of Computing, pages 210217, May 1987.
[42] A. Fiat and A. Shamir. How to prove yourself: practical solutions to identification
and signature problems. In A. M. Odlyzko, editor, Proc. CRYPTO 86, pages 186
194. Springer, 1987. Lecture Notes in Computer Science No. 263.
[43] A.O. Freier, P. Karlton, and P.C. Kocher. The SSL protocol, version 3. INERNETDRAFT, November 1996. draft-freier-ssl-version3-02.txt.
[44] W. Fumy and M. Munzert. A modular approach to key distribution. In A. J.
Menezes and S. A. Vanstone, editors, Proc. CRYPTO 90, pages 274284. SpringerVerlag, 1991. Lecture Notes in Computer Science No. 537.
[45] T. El Gamal. A public key cryptosystem and a signature scheme based on discrete
logarithms. IEEE Trans. Inform. Theory, 31:469472, 1985.
[46] M. Girault. An identity-based identification scheme based on discrete logarithms
modulo a composite number. In I.B. Damgard, editor, Advances in Cryptology Proceedings of EUROCRYPT90, pages 481486. Springer-Verlag, 1991. Lecture
Notes in Computer Science 473.
[47] M. Girault. Self-certified public keys. In Advances in Cryptology-EUROCRYPT 91
(LNCS 547), page 490497, 1991.
[48] M. Girault. Self-certified public keys. In D.W. Davis, editor, Advances in Cryptology
- Proceedings of EUROCRYPT91, pages 490497. Springer-Verlag, 1991. Lecture
Notes in Computer Science 547.
[49] O. Goldreich. Zero-knowledge twenty years after its invention, 2002.
[50] S. Goldwasser and S. Micali. Probabilistic encryption. JCSS, 28(2):270299, April
1984.
[51] S. Goldwasser, S. Micali, and C. Rackoff. The knowledge complexity of interactive
proof-systems. In Proc. 17th ACM Symp. on Theory of Computing, pages 291304,
Providence, 1985. ACM.
[52] L. Gong. Variations on the themes of message freshness and replay. In The Computer
Security Foundations Workshop VI, pages 131136. IEEE Computer Society Press,
1993.
[53] L. Gong, R. Needham, and R. Yahalom. Reasoning about belief in cryptographic
protocols. In Proceedings of the 1990 IEEE Symposium on Research in Security and
Privacy, pages 234248. IEEE Computer Society Press, 1990.
[54] L.C. Guillou and J.-J. Quisquater. A practical zero-knowledge protocol fitted to
security microprocessor minimizing both transmission and memory,. Advances in
Cryptology - EUROCRYPT 88, LNCS 330:123128, 1988.

140

BIBLIOGRAFIE

[55] C.G. G
unther. An identity-based key-exchange protocol. In Advances in CryptologyEUROCRYPT 89 (LNCS 434), pages 2937, 1990.
unther. An identity-based key-exchange protocol. Advances in Cryptology[56] C.G. G
EUROCTYPT 89, LNCS(434):2937, 1990.
[57] N. Haller and C. Metz. RFC 1938, A One-Time Password System, May 1996.
[58] K.E.B. Hickman.
The SSL protocol.
Online document, February 1995.
http://wp.netscape.com/eng/security/SSL 2.html.
[59] C.A.R. Hoare. Communicating sequential processes. Communications of the ACM,
21(8), 1978. Series in Computer Science.
[60] R. Housley and P. Hoffman. Internet X.509 Public Key Infrastructure Operational
Protocols: FTP and HTTP. The Internet Engineering Task Force Request For
Comments (IETF RFC) 2585, August 2001. Available at www.ietf.org/rfc/rfc2585.
[61] ITU-T. Rec. X.509 (revised) the Directory - Authentication Framework. Technical
report, International Telecommunication Union, Geneva, Switzerland (equivalent to
ISO/IEC 9594-8:1995), 1993.
[62] R. Kailar. Accountability in electronic commerce protocols. IEEE Transactions on
Software Engineering, 22(5):313328, May 1996.
[63] J. Kohl and C. Neuman. The Kerberos network authentication service, September
1993. Network Working Group Request for Comments: 1510.
[64] J. Kohl and C. Neumann. The Kerberos network authentication sevice (v5). The
Internet Engineering task Force Request For Comments (IETF RFC) 1510, Septembrie 1993. www.ietf.org/rfc/rfc1510.txt.
[65] Loren M. Kohnfelder. Towards a practical public-key cryptosystem. MIT B.S.
Thesis, supervised by L. Adleman, MIT Department of Electrical Engineering, May
1978.
[66] Alan G. Konheim. Cryptography, A Primer. John Wiley and Sons, New York, 1981.
[67] D.W. Kravitz. Digital signature algorithm.
5,231,668, 27 Jul 1993.

Technical report, U.S. Patent #

[68] Leslie Lamport. Password authentication with insecure communication. Communications of the ACM, 24(11):770771, November 1981.
[69] G. Lowe. An attack on the Needham-Schroeder public-key authentication procotol.
Information Processing Letters, 56(3):131133, 1995.
[70] G. Lowe. Breaking and fixing Needham-Schroeder public-key protocol using CSP
and FDR. In Proceedings of TACAS, Lecture Notes in Computer Science 1055,
pages 147166. Springer-Verlag, 1996.

BIBLIOGRAFIE

141

[71] W. Mao and C. Boyd. Methodical use of cryptographic transformations in authentication protocols. In IEE Proceedings, Comput. Digit. Tech, 142(4), pages 272278,
July 1995.
[72] Wenbo Mao. Modern Cryptography: Theory and Practice. Prentice Hall PTR, New
Jersey, 2004. ISBN 0-13-066943-1.
[73] T. Matsumoto, Y. Takashima, and H. Imai. On seeking smart public-key distribution systems. The Transactions of the IECE of Japan, E69, 1986.
[74] C. Meadows. Analyzing the Needham-Schroeder public key protocol: A comparison
of two approaches. In E. Bertino et al, editor, Proceedings of Computer Security,
ESORICS96, Lecture Notes in Computer Science 1146, pages 351364. SpringerVerlag, February 1996.
[75] C. Meadows and P. Syverson. A formal specification of requirements for payment
transactions in the SET protocol. In R. Hirschfeld, editor, Proceedings of Financial
Cryptography (FC98), Lecture Notes in Computer Science 1465, pages 122140.
Springer-Verlag, February 1998.
[76] Cathrin Meadows. The NRL protocol analyzer: An overview. Journal of Logic
Programming, 26(2):113131, February 1996.
[77] Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone. Handbook of
Applied Cryptography. CRC Press, 1997. ISBN 0-8493-8523-7.
[78] R. C. Merkle. A fast software one-way hash function. Journal of Cryptology, 3(1):43
58, 1989.
[79] S.P. Miller, C. Neuman, J.I. Schiller, and J.H. Saltzer. Kerberos authentication and
authorization system. Project Athena Technical Plan Section E.2.1, 1987.
[80] Robin Milner, J. Parrow, and D. Walker. A calculus of mobile processes, parts I
and II. Information and Computation, pages 140 and 4177, September 1992.
[81] C. Mitchell. Limitations of challenge-response entity authentication. Electronics
Letters, 25(17):11951196, August 1989.
[82] A. Mitropoulos and H. Meijer. Zero knowledge proofs - a survey. Technical Report
90-IR-05, Queens University at Kingston, Kingston, Ontario, Canada, 1990.
[83] R. Morris and K. Thompson. Password security: A case history. Communications
of the ACM, 22(11):594597, November 1979.
[84] M. Myers, R. Ankney, A. Malpani, S. Galperin, and C. Adams. X.509 Internet
Public Key Infrastructure Online Certificate Satus Protocol - OCSP. The Internet Engineering Task Force Request For Comments (IETF RFC) 2560, June 1999.
Available at www.ietf.org/rfc/rfc2560.txt.

142

BIBLIOGRAFIE

[85] M. Myers, X. Liu, J. Schaad, and J. Weinstein. Certificate Management Messages


over CMS. The Internet Engineering Task Force Request For Comments (IETF
RFC) 2797, April 2000. Available at www.ietf.org/rfc/rfc2797.txt.
[86] R. M. Needham and M. D. Schroeder. Using encryption for authentication in large
networks of computers. Communications of the ACM, 21(12):993999, December
1978.
[87] R.M. Needham and M.D. Schroeder. Using encryption for authentication in large
networks of computers. Communications of the ACM, 21:993999, 1978.
[88] B. Clifford Neuman and Theodore Tso. Kerberos: An authentication service
for computer networks. IEEE Communications Magazine, 32(9):3338, September
1994.
[89] K. Nyberg and R. Rueppel. A new signature scheme based on the DSA giving
message recovery. In Proc. of the First ACM Conference on Computer and Communications Security (ACM CCS 1993), pages 5861. ACM Press, 1993.
[90] Tatsuaki Okamoto. Provably secure and practical identification schemes and corresponding signature schemes. In Ernest F. Brickell, editor, Proc. CRYPTO 92, pages
3153. Springer-Verlag, 1992. Lecture Notes in Computer Science No. 740.
[91] P.C. Van Oorschot. Extending cryptographic logics of belief to key agreement protocols (extended abstract). In Proceedings of the First ACM Conference on Computer
and Communications Security, pages 232243, 1993.
[92] Horea Oros. Mecanisme de protectie a informatiilor n Internet si Intranet. Referat
doctoral, Universitatea Babes-Bolyai, Cluj-Napoca, Martie 2007.
[93] Horea Oros. Controlul accesului utilizand protocoale de securitate. Referat doctoral,
Universitatea Babes-Bolyai, Cluj-Napoca, Martie 2008.
[94] Horea Oros. Protocoale de securitate distribuite. PhD thesis, Universitatea BabesBolyai, Cluj-Napoca, Iunie 2009.
[95] Horea Oros and Florian Boian. Spi calculus analysis of Otway-Rees protocol. International Journal of Computers, Communications & Control, III(S.):427432, May
2008.
[96] Horea Oros and Florian M. Boian. Challenge-response entity authentication techniques. Submitted to KEPT 2009, March 2009.
[97] Horea Oros and Constantin Popescu. Using the SSL protocol to protect online
business. In Proceedings of the 4th European Conference on E-commerce (E-COMMLINE 2003), pages 269276, Bucharest, Romania, September 25-26 2003.
[98] Horea Oros and Constantin Popescu. A fair offline electronic cash system with
anonymity revoking trustee. In Proceedings of the International Conference on
Theory and Applications of Mathematics and Informatics - ICTAMI 2004, ACTA

BIBLIOGRAFIE

143

UNIVERSITATIS APULENSIS - MATHEMATICS -INFORMATICS 8/2004, pages


409416, Thessaloniki, Greece, 2004.
[99] Horea Oros and Constantin Popescu. A study on unsolicited e-mail. In Proceedings
of SAS05, pages 187202, Baile Felix, November 2005.
[100] Horea Oros and Constantin Popescu. An off-line electronic cash system with multiple banks. International Journal of Computers, Communications & Control,
I(S.):386392, June 2006.
[101] Horea Oros and Constantin Popescu. An off-line electronic cash system based on bilinear pairings. In Dusan Gleich Peter Planinsic, Zarko Cucej, editor, Proceedings of
14th International Conference on Systems Signals and Image Processing (IWSSIP),
pages 457459, Maribor, Slovenia, 2007. June.
[102] Horea Oros and Constantin Popescu. Off-line electronic cash systems based an a
secure coalition-resistant group blind signature scheme. Analele Universitaii Oradea,
Fasc. Matematica, Tom XIV, pages 175187, 2007. ISSN 1221-1265.
[103] Dave Otway and Owen Rees. Efficient and timely mutual authentication. ACM
Operating System Review, 21(1):810, January 1987.
[104] Victor-Valeriu Patriciu, Ion Bica, Monica Pietrosanu-Ene, and Costel Cristea. Securitatea informatica n UNIX si Internet. Editura Tehnica, 1998. ISBN 973-311185-6.
[105] Jean-Jacques Quisquater, Myriam Quisquater, Muriel Quisquater, Michael
Quisquater, Louis Guillou, Marie Annick Guillou, Gaiid Guillou, Anna Guillou,
Gwenol/e Guillou, Soazig Guillou, and Tom Berson. How to explain zero-knowledge
protocols to your children. In G. Brassard, editor, Proc. CRYPTO 89, pages 628
631. Springer-Verlag, 1990. Lecture Notes in Computer Science No. 435.
[106] M.O. Rabin. Digitalized signatures and public key functions as intractable as factorization. Technical Report MIT/LCS/TR-212, MIT Laboratory for Computer
Science, 1979.
[107] R. L. Rivest and A. Shamir. How to expose an eavesdropper. Communications of
the ACM, 27:393395, April 1984.
[108] Ronald L. Rivest. The MD4 message-digest algorithm. Internet Request for Comments, April 1992. RFC 1320; obsoletes RFC 1186.
[109] Ronald L. Rivest. The MD5 message-digest algorithm. Internet Request for Comments, April 1992. RFC 1321.
[110] Ronald L. Rivest and Butler Lampson. SDSIA simple distributed security infrastructure. See http://theory.lcs.mit.edu/~rivest/sdsi10.ps., August 1996.
[111] Ronald L. Rivest, Adi Shamir, and Leonard M. Adleman. A method for obtaining
digital signatures and public-key cryptosystems. Communications of the ACM,
21(2):120126, 1978.

144

BIBLIOGRAFIE

[112] A.W. Roscoe. Model checking CSP. In A.W. Roscoe, editor, A Classical Mind:
Essays in Honour of C.A.R. Hoare. Prentice-Hall, 1994.
[113] A.W. Roscoe. Modelling and verifying key-exchange protocols using CSP and FDR.
In Proceedings of Computer Security Foundations Workshop VIII, pages 98107.
IEEE computer Society, June 1995.
[114] R. A. Rueppel and P. C. Van Oorschot. Modern key agreement techniques. To
appear in Computer Communications, 1994.
[115] P. Ryan and S. Schneider. The Modelling and Analysis of Security Protocols: The
CSP Approach. Addison-Wesley, 2001.
[116] S. Schneider. Security properties and CSP. In Proceedings of the 1996 IEEE Symposium in Security and Privacy, pages 174187. IEEE Computer Society Press, 1996.
[117] C. P. Schnorr. Efficient identification and signatures for smart cards. In G. Brassard, editor, Proc. CRYPTO 89, pages 239252. Springer, 1990. Lecture Notes in
Computer Science No. 435.
[118] C. P. Schnorr. Efficient signature generation by smart cards. Journal of Cryptology,
4:161174, 1991.
[119] SET.
Secure
Electronic
Transaction
specification
,
version
1.0.
Online
document,
May
1997.
Available
at
http://www.cl.cam.ac.uk/research/security/resources/SET.
[120] Adi Shamir. Identity-based cryptosystems and signature schemes. In G. R. Blakley
and D. C. Chaum, editors, Proc. CRYPTO 84, pages 4753. Springer, 1985. Lecture
Notes in Computer Science No. 196.
[121] J. G. Steiner, B. C. Neuman, and J. I. Schiller. Kerberos: an authentication service
for open network systems. In Usenix Conference Proceedings, pages 191202, Dallas,
Texas, February 1988.
[122] P. Syverson. A taxonomy of replay attacks. In Proceedings of the Computer Security
Foundations Workshop VII (CSFW 1994), pages 187191. IEEE Computer Society
Press, 1994.
[123] P. Syverson and P.C. Van Oorschot. On unifying some cryptographic protocol logics.
In Proceedings of 1994 IEEE Symposium on Security and Privacy. IEEE Computer
Society Press, 1994.
[124] P. van Oorschot. An alternate explanation of two BAN-logic failures. In Advances
in Cryptology-EUROCRYPT 93, pages 443447, 1994. (LNCS 765).
[125] S. Vaudenay. On the need for multi permutations: Cryptanalysis of MD4 and
SAFER. In B. Preneel, editor, Fast Software Encryption, Second International
Workshop, number 1008 in Lecture Notes in Computer Science, pages 286297.
Springer-Verlag, 1995.

BIBLIOGRAFIE

145

[126] Yacov Yacobi and Zahava Shmuely. On key distribution systems. In G. Brassard,
editor, Proc. CRYPTO 89, pages 344355. Springer-Verlag, 1990. Lecture Notes in
Computer Science No. 435.
[127] P.R. Zimmermann. The Official PGP Users Guide. MIT Press, Cambrige, Massachusetts, 1995. Second printing.

S-ar putea să vă placă și