Documente Academic
Documente Profesional
Documente Cultură
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 54
CUPRINS
3.4
3.5
. . .
. . .
chei
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
59
59
64
66
67
70
70
73
73
75
79
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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
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.
1.2
Protocoale si mecanisme
1.3
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
10
Capitolul 1. Introducere
1.4
Structura lucr
arii
Capitolul 2
Protocoale de identificare si
autentificare
2.1
2.1.1
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
2.1.2
Pe ce se bazeaz
a securitatea identific
arii?
2.1.3
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
13
2.2
Autentificare slab
a - parole
14
2.2.1
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.
15
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
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
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
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
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
19
2.2.4
Parole one-time
20
(2.1)
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.1
21
22
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
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
2.3.2
Provocare-r
aspuns prin tehnici simetrice
25
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
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
27
28
2.4
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
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
31
32
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 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
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
36
2.4.4
37
38
2.4.5
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
39
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
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
3.1 Introducere
43
44
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:
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
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
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
47
48
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.2
49
50
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.
51
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
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
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
3.3.1
55
3.3.2
56
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
57
58
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
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
60
61
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
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,
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
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
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.
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)
66
3.4.3
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
68
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.
69
(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
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
72
4.2
73
4.2.1
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
engl. interleave
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
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
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)
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:
77
78
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 )
79
4.2.3
80
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
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
5.1 Infrastructur
a de autentificare bazat
a pe director
85
86
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
(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
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
(5.4)
92
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
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
95
6.3
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
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
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.
97
6.5
Algoritmi hash f
ar
a cheie folositi n practic
a
98
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.
6.6
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
99
100
Figura 6.1: Trei modalitati de a furniza integritatea datelor prin functii hash
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
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
7.2
104
Capitolul 7. Semn
aturi digitale
105
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:
(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
7.2.2
Scheme de semn
aturi digitale cu recuperarea mesajului
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):
107
7.3
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
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
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
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
7.4.5
Schema de semn
atur
a digital
a Nyberg-Rueppel
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 )
7.5
Semn
aturi digitale cu functionalitate suplimentar
a
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
116
7.5.2
Capitolul 7. Semn
aturi digitale
Semn
aturi digitale incontestabile
7.5 Semn
aturi digitale cu functionalitate suplimentar
a
(d) A calculeaz
a w = (z)a
117
a w = (z)a
3. A calculeaz
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
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
120
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
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
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,
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
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
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
4.1
6.1
6.2
7.1
134
List
a de figuri
2.1
6.1
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
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.
[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
BIBLIOGRAFIE
143
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.