Documente Academic
Documente Profesional
Documente Cultură
PSSD S PDF
PSSD S PDF
Oradea, 2009
2
Cuprins
1 Introducere 7
1.1 Obiective ale securitatii informatiei . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Protocoale si mecanisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Esecul protocoalelor si al mecanismelor . . . . . . . . . . . . . . . . . . . . 9
1.4 Structura lucrarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3
4 CUPRINS
Concluzii 133
List
a de tabele 134
Bibliografie 136
6 CUPRINS
Capitolul 1
Introducere
7
8 Capitolul 1. Introducere
semn
atura - reprezinta un mijloc de a lega o informatie de o entitate;
Exemplu 1.2.1 (un protocol simplu pentru stabilirea unei chei) Alice si Bob aleg o
schema de criptare cu cheie simetrica pentru a o folosi n comunicarea printr-un canal
nesigur. Pentru criptarea informatiei ei au nevoie de o cheie. Protocolul de comunicatie
este urmatorul:
1.3 Esecul protocoalelor si al mecanismelor 9
1. Slabiciuni ale unei primitive criptografice care pot fi accentuate de modul n care
sunt utilizate.
Protocoale de identificare si
autentificare
11
12 Capitolul 2. Protocoale de identificare si autentificare
2.1.2 Pe ce se bazeaz
a securitatea identific
arii?
Tehnicile de autentificare a entitatilor pot fi mpartite n trei mari categorii, n functie de
elementele pe care se bazeaza securitatea:
1. ceva stiut. Exemple sunt parolele standard (folosite uneori pentru a genera o cheie
simetrica), numere de identificare (PIN) si parolele secrete sau private a caror
cunoastere este demonstrata n protocoalele provocare-raspuns.
2.1.4 Propriet
ati ale protocoalelor de identificare
Protocoalele de identificare au o serie de proprietati. Cele mai importante sunt:
1. reciprocitatea identificarii. Una sau ambele entitati pot sa-si demonstreze identi-
tatea celeilalte, oferind identificare unilaterala, respectiv bilaterala. Unele tehnici,
cum ar fi schemele cu parole fixe, pot fi suspectate ca fiind folosite de o entitate
2.2 Autentificare slab
a - parole 13
4. implicarea n timp real a unui tert. Tertul poate fi un tert de ncredere on-line2 care
distribuie chei simetrice entitatilor implicate; un serviciu de directoare on-line care
nu e de ncredere si care distribuie certificate de chei publice, pe baza unei autoritati
de certificare off-line.
5. natura ncrederii n tert. Exemple sunt ncrederea ntr-un tert care autentifica si
leaga numele unei entitati de o cheie publica; si ncrederea ntr-un tert care cunoaste
cheia privata a unei entitati.
o pretindere a unei identitati iar parola este dovada pentru acea pretindere. Sistemul
verifica daca parola se potriveste cu datele pe care le are pentru acel id utilizator si ca
acea entitate poate accesa resursa. Demonstrarea cunoasterii parolei este acceptata de
sistem ca fiind o confirmare a identitatii entitatii respective.
Exista o serie de scheme de parole care se deosebesc prin modul n care este sto-
cata n sistem informatia care permite verificarea parolei si prin metoda de verificare. In
sectiunile urmatoare vor fi prezentate o serie de idei care stau la baza schemelor de parole
tipice; este prezentata protectia pe care aceste scheme o prezinta n fata atacurilor stan-
dard. Amenintarile mpotriva carora schemele de parole trebuie sa ofere protectie sunt:
dezvaluirea parolei (n afara sistemului) si ascultarea liniilor de comunicatie (n cadrul
sistemului), ambele permitand atacuri ulterioare prin repetarea parolei, ghicirea parolei
si atacuri pe baza de dictionar.
O alta tehnica procedurala al carei scop este mbunatatirea securitatii parolelor este
mbatranirea parolelor. In acest caz se stabileste o perioada de viata pentru parola (30
de zile sau 90 de zile) dupa care parola trebuie schimbata.
Incetinirea procesului de criptare a parolei - pentru a ncetini atacurile care
implica testarea unui numar mare de parole, se poate realiza functia de verificare a parolei
(functia one-way) n asa fel ncat calcularea ei sa fie un proces mai intens din punct de
vedere computational, necesitand mai mult timp. O modalitate pentru a realiza aceasta
este de a itera o functie mai simpla de t > 1 ori, iar intrarea pentru iteratia i este
rezultatul calculat la iteratia precedenta. Numarul de iteratii trebuie restrictionat pentru
a nu reprezenta o ntarziere sesizabila pentru utilizatorii legitimi.
Parole cu salt - notiunea a fost introdusa pentru prima data de Morris si Thompson n
raportul lor asupra parolelor UNIX [83]. Pentru ca atacurile pe baza de dictionar sa nu
aiba un succes atat de mare, fiecare parola poate fi extinsa cu un sir de t biti aleatori, sir
care poarta numele de salt, iar functia one-way se aplica la parola astfel modificata. In
fisierul de parole se salveaza atat rezultatul functiei one-way cat si salt-ul pentru ca parola
introdusa ulterior de utilizator sa poata fi verificata. Dificultatea atacului prin cautare
exhaustiva asupra parolei unui utilizator nu se modifica prin salt (din moment ce salt-ul
este nregistrat n clar n fisierul de parole), totusi, prin salt creste complexitatea atacului
simultan pe baza de dictionar asupra unui numar mare de parole, ntrucat dictionarul
trebuie sa contina 2t variante pentru fiecare parola, ceea ce duce la necesitati de memorie
mult mai mari pentru stocarea unui dictionar cu parole criptate si la un timp mai mare
pentru realizarea acestui dictionar. Prin salt, doi utilizatori care au aceeasi parola si salt
diferit vor avea nregistrari diferite n fisierul de parole n campul care contine parola
criptata.
Fraze pentru parole - pentru a permite o entropie mai mare, fara a depasi limitele
de memorare ale unei persoane, parolele pot fi extinse la fraze de parole. In acest caz
16 Capitolul 2. Protocoale de identificare si autentificare
utilizatorul memoreaza o fraza scurta n locul unui cuvant. Fraza este transformata printr-
o 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).
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 regula 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.
Tabela 2.1: Dimensiunea n biti a spatiilor de parole pentru diferite combinatii de carac-
tere. 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
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.
dictionare de doar 150000 de cuvinte, ceea ce reprezinta doar o foarte mica parte din toate
parolele posibile.
1. (Initializare)
A B : A, i, wi (= H ti (w)) (2.1)
Definitie 2.3.1 Un nonce este o valoare ce se foloseste cel mult o data pentru acelasi
scop. De regul
a rolul acestuia este de a preveni atacurile prin reluare nedectabile.
Termenul nonce este folosit adesea pentru a se referi la un numar aleator ntr-un
protocol provocare-raspuns. In continuare sunt prezentate cele trei clase de parametri
variabili n timp: numere aleatoare, numere de secventa si marci de timp. Adesea, pentru
a asigura securitatea protocolului, trebuie garantata integritatea acestor parametri (crip-
tografic prin legarea lor cu alte date n secventele provocare-raspuns). Aceasta este valabil
n special la protocoalele n care singura cerinta pentru acesti parametri este unicitatea.
In continuare sunt enumerate cateva probleme n ceea ce priveste acesti parametri:
Numere aleatoare
Numerele aleatoare pot fi folosite n mecanismele provocare-raspuns, pentru a oferi asigu-
rari n ceea ce priveste unicitatea si ncadrarea ntr-o secventa de timp, si pentru a preveni
anumite atacuri prin reluare si intercalare. Numerele aleatoare pot fi folosite si pentru a
oferi nepredictibilitate, de exemplu pentru a preveni atacurile prin text ales.
22 Capitolul 2. Protocoale de identificare si autentificare
Termenul numar aleator, atunci cand este folosit n contextul protocoalelor de iden-
tificare 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 inter-
pretata 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 protocolu-
lui), 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.3 (dezavantaje ale numerelor aleatoare) Multe protocoale ce implica nu-
mere aleatoare necesit a generarea de numere aleatoare sigure din punct de vedere crip-
tografic (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
implica 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 sta-
bilita. 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 numero-
tate crescator; aceasta permite posibilitatea ca anumite mesaje sa fie pierdute datorita
2.3 Autentificare puternic
a (provocare - r
aspuns) 23
unor erori de comunicatie, dar mpiedica detectarea unor mesaje pierdute ca urmare a
interventiei unor adversari.
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 im-
plementa 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).
Remarca 2.3.5 (dezavantaje ale marcilor de timp) Protocoalele bazate pe marci de timp
necesita ca ceasurile sa fie sincronizate si securizate. Prent ampinarea modific arii cea-
surilor 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 necesita la randul lor sa fie sigure, ceea ce implica autentificare. Aceasta
duce la o problem a de securitate circular a daca autentificarea este la randul ei bazat a pe
m arci de timp.
24 Capitolul 2. Protocoale de identificare si autentificare
2.3.2 Provocare-r
aspuns prin tehnici simetrice
Mecanismele provocare-raspuns bazate pe tehnici cu chei simetrice necesita ca reclamantul
si verificatorul sa detina n comun o cheie simetrica. In sisteme nchise cu un numar mic
de utilizatori, fiecare pereche de utilizatori poate partaja o cheie simterica; n schimb, n
sistemele mari ce folosesc tehnici cu chei simetrice, protocoalele de identificare implica
si utilizarea unui server on-line de ncredere cu care fiecare entitate partajeaza o cheie
simetrica. Serverul on-line ofera o cheie de sesiune comuna pentru fiecare pereche de
entitati care doresc sa se autentifice una n fata celeilalte.
Provocare-r aspuns bazat pe criptare cu cheie simetric a - Atat protocolul Kerberos
[63], [88], [121] cat si protocolul Needham-Schroeder [86], ofera autentificare de entitati
pe baza de criptare simetrica si implica folosirea unui tert on-line de ncredere. Aceste
protocoale sunt detaliate n capitolul 3, fiind protocoale care realizeaza si transport de
cheie.
In continuare sunt descrise trei tehnici simple bazate pe ISO/IEC 9798-2 [5]. Acestea
presupun existenta unei chei secrete (si n acest caz nu mai este nevoie de un server
on-line). In acest caz doua entitati pot efectua autentificare de entitati unilaterala printr-
un singur mesaj folosind marci de timp sau prin doua mesaje daca se folosesc numere
aleatoare sau numere de secventa. Autentificarea mutuala necesita un mesaj n plus fata
de autentificarea unilaterala. Reclamantul si dovedeste identitatea prin demonstarea
cunoasterii cheii secrete cu care cripteaza provocarea (si eventual date suplimentare).
A B : EK (tA , B ) (1)
Dupa primirea si decriptara mesajului (1), B verifica daca marca de timp este
valida si (optional) verifica daca identificatorul primit corespunde cu identitatea sa.
Identificatorul B mpiedica un adversar sa retrimita mesajul ulterior lui A, atunci
cand se foloseste o singura cheie bidirectionala K.
A B : rB (1)
A B : EK (rB , B ) (2)
B decripteaza mesajul primit (2) si verifica daca numarul aleator este egal cu cel
transmis lui A n mesajul (1). Optional, B verifica daca identificatorul din mesajul
(2) este al sau (astfel este prevenit un atac prin reflexie n cazul folosirii unei chei
bidirectionale K). Pentru ca atacurile asupra schemei de criptare EK prin text ales
sa fie prevenite, A poate de asemenea sa includa n raspunsul sau un numar aleator
suplimentar sau forma provocarii ar putea fi restrictionata; cerinta importanta este
ca numerele folosite ca provocari sa nu se repete.
A B : rB (1)
A B : EK (rA, rB , B ) (2)
A B : EK (rB , rA ) (3)
Mecanismul revizuit provocare-raspuns format din trei mesaje bazat pe functia MAC
hK ofera autentificare mutuala. Protocolul, numit SKID3 [18], are urmatoarele mesaje:
A B : rB (1)
A B : rA, hK (rA, rB , B) (2)
A B : hK (rB , rA , A) (3)
Campul suplimentar A este inclus n mesajul (3). Protocolul SKID2, obtinut prin
eliminarea mesajului (3) ofera autentificare unilaterala.
2.3.3 Provocare-r
aspuns prin tehnici asimetrice
In identificarea bazata pe provocare-raspuns se pot folosi tehnici bazate pe chei publice, n
care reclamantul demonstreaza cunoasterea cheii private ntr-unul din urmatoarele doua
moduri:
Provocare-r
aspuns bazat pe decriptare cu chei publice
Identificare bazata pe decriptare cu cheie publica si martor:
A B : PB (r1 , A) (1)
A B : PA (r1 , r2 ) (2)
A B : r2 (3)
A genereaza un numar aleator r1 si cripteaza cu cheia publica a lui B numarul generat
mpreuna cu identitatea sa, A, iar mesajul criptat este trimis lui B, care l decripteaza
cu cheia s-a privata, genereaza un alt numar aleator r2 pe care, mpreuna cu valoarea r1
obtinuta prin decriptare l cripteaza cu cheia publica a lui A si trimite mesajul criptat lui
A. A decripteaza mesajul primit, verifica daca valorea r1 coincide cu cea creata initial si
trimite napoi lui B numarul aleator r2 . In momentul acesta A stie ca comunica cu B. La
primirea mesajului (3) B stie ca comunica cu A (pentru ca doar A putea decripta valoare
din mesajul (2)), prin urmare autentificarea mutuala este realizata.
Provocare-r
aspuns bazat pe semn
aturi digitale
Mecanisme X.509 bazate pe semnaturi digitale. Protocoalele de autentificare puternica
ITU-T X.509 cu doua si trei mesaje specifica tehnici de identificare bazate pe semnaturi
digitale si pe marci de timp respectiv provocari cu numere aleatoare.
Mecanisme 9798-3. In continuare dam trei mecanisme de identificare provocare-raspuns
bazate pe semnaturi digitale, care sunt analoage cu cele bazate pe criptarea cu cheie
simetrica prezentate n sectiunea 2.3.2, dar acestea corespund tehnicilor din ISO/IEC
9798-3. In ceea ce priveste notatia, SA reprezinta mecanismul de semnatura digitala al
lui A, certA reprezinta certificatul de cheie publica ce contine cheia publica semnata a lui
A. (In aceste mecanisme, daca verificatorul are cheia publica autentica a reclamantului,
certificatele pot fi omise, altfel se presupune ca verificatorul poseda informatia necesara
pentru a verifica validitatea cheii publice continute n certificatul primit).
La primirea mesajului (1), B verifica daca marca de timp este valida, daca identi-
ficatorul primit B este al lui, si verifica daca semnatura este corecta (folosind cheia
publica a lui A extrasa din certificatul primit).
2. autentificare unilaterala cu numere aleatoare: Marcile de timp pot fi nlocuite cu
numere aleatoare, costul fiind un mesaj suplimentar:
A B : rB (1)
A B : certA , rA , B, SA (rA , rB , B) (2)
28 Capitolul 2. Protocoale de identificare si autentificare
B verifica daca identificatorul primit este al lui si folosind cheia publica autentica a
lui A extrasa din certificatul primit, verifica validitatea semnaturii digitale. Numarul
aleator rA facand parte din semnatura sunt prevenite atacurile prin text ales.
Procesarea mesajelor (1) si (2) este la fel ca mai sus. Mesajul (3) este procesat
analog cu mesajul (2).
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.
Definitie 2.4.5 (informatie zero computational a sau perfect a) Un protocol este de tip
informatie zero computational daca un observator restrictionat la teste probabilistice poli-
nomiale nu poate face distinctia ntre transcripturi reale respectiv simulate. Pentru ca un
protocol sa fie de tip informatie zero perfect, distributia de probabilitate a transcripturilor
trebuie s
a fie identica.
1. (Initializare)
2. (Mesajele protocolului) Fiecare din cele t runde are trei mesaje de forma:
A B : x = r2 mod n (1)
A B : e {0, 1} (2)
A B : y = r se mod n (3)
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
3. (Mesajele protocolului) Fiecare din cele t iteratii are trei mesaje cu urmatoarea
form
a:
A B : x(= r2 mod n) (1)
A B : (e1 , . . . ,Q
ek ), ei {0, 1} (2)
A B : y(= r ej =1 sj mod n) (3)
4. (Actiunile protocolului) Pasii de mai jos sunt executati de t ori; B accept a identitatea
lui A dac a toate cele t iteratii se ncheie cu succes. Presupunem ca B are cheia
publica autentica a lui A (v1 , . . . , vk ; n); altfel, se poate transmite un certificat n
mesajul (1).
(a) Fiecare entitate A primeste o identitate unica IA , din care se calculeaza iden-
titatea redundanta folosind o functie de redundat a cunoscuta f . Identitatea
redundant a este JA = f (IA ), care satisface relatia 1 < JA < n. In ipoteza ca
factorizarea este dificila are loc relatia cmmdc(JA , ) = 1.
(b) A primeste de la T secretul (datele de acreditare) sA = (JA )s mod n.
3. (Mesajele protocolului) Fiecare din cele t iteratii ale protocolului are trei mesaje
(adesea t = 1)
A B : IA , x = rv mod n (1)
A B : e (unde 1 e v) (2)
A B : y = r seA mod n (3)
securitate polinomial
a.
3. (Mesajele protocolului)
4. (Actiunile protocolului)
3. (proprietatea IZ) Protocolul nu este IZ pentru valori mari ale lui e deoarece, B poate
obtine prin interactiune solutia (x, y, e) a ecuatiei x = y v e mod p, solutie pe care B
nu ar putea-o gasi altfel.
Remarca 2.4.15 (reducerea latimii de band a utilizate) Numarul de biti transmisi n pro-
tocolul Schnorr poate fi redus prin nlocuirea lui x din mesajul (1) cu t biti prestabiliti ai
lui x, (de exemplu, cei mai putin t semnificativi biti), biti care vor fi comparati de catre
B cu cei t biti corespunzatori ai lui z.
3. memorie - necesitatile de stocare pentru cheile secrete (si pentru dimensiunea sem-
naturii, n cazul schemelor de semnatura digitala);
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 pro-
tocoalelor 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 pen-
tru 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 confidentiali-
tate, 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.
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.
Definitie 3.1.4 Schemele pentru pre-distribuirea cheii sunt protocoale pentru sta-
bilirea 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 cer-
titudinea ca nici o alta entitate, n afara uneia identificat
a special, nu poate obtine o
anumita cheie secret
a.
42 Capitolul 3. Protocoale pentru stabilirea cheilor
Notiune Pe ce se concentreaza
autentificare depinde de contextul n care este folosit
autentificare de entitati identitatea unei entitati si prezenta sa la un mo-
ment dat
autentificarea originii identitatea sursei datelor
datelor
autentificare (implicita) de identitatea unei entitati care poate avea o cheie
chei
confirmare de chei dovada ca o cheie este n posesia unei entitati
autentificare de chei ex- dovada ca o entitate poseda o anumita cheie
plicita
Autentificarea cheilor este independenta de posesia efectiva a cheii de catre cea de-a
doua entitate sau de faptul ca prima entitate stie (sau nu) faptul ca respectiva cheie este
n posesia celei de-a doua entitati. Prin urmare, acest tip de autentificare se numeste
autentificare de chei implicita.
Definitie 3.1.6 Confirmare de chei este proprietatea prin care o entitate are certi-
tudinea c
a o a doua entitate este n posesie unei anumite chei secrete.
Definitie 3.1.7 Autentificare de chei explicit a este proprietatea obtinut
a atunci
c
and avem atat autentificare implicita de chei cat si confirmare de chei.
In cazul autentificarii explicite de chei, se stie ca o entitate identificata este n posesia
unei anumite chei, concluzie ce nu poate fi trasa altfel. Aplicatiile de criptare ce folosesc
protocoale pentru stabilirea de chei ce ofera doar autentificare de chei implicita ncep
adesea criptarea cu o valoarea initiala cunoscuta al carei rol este acela de verificare a
integritatii, mutand astfel problema confirmarii cheii de la mecanismul de stabilirea a
cheii la aplicatie.
In autentificarea cheilor accentul se pune pe identitatea celei de-a doua entitati si nu pe
valoarea cheii, pe cand la confirmarea cheii este invers. Confirmarea cheii implica de regula
o entitate care primeste un mesaj de la alta entitate, mesaj ce contine dovada faptului
ca cheia este cunoscuta de entitatea care a creat mesajul. In practica, cunoasterea unei
chei poate fi demonstrata n diverse moduri, de exemplu calculand valoarea hash a cheii,
folosirea cheii ntr-o functie hash cu cheie sau criptarea unei valori cunoscute cu cheia
respectiva. Aceste tehnici pot dezvalui anumite informatii (chiar daca nu sunt foarte
utile) n legatura cu valoarea cheii; pentru a nu se dezvalui nici o informatie n legatura
cu valoarea cheii se pot folosi tehnici cu informatie zero, tehnici pe care le-am trecut n
revista n sectiunea 2.4 n contextul protocoalelor de identificare.
Autentificarea entitatilor nu este o cerinta n orice protocol. Anumite protocoale
pentru stabilirea de chei (cum ar protocolul pentru acord de chei neautentificat Diffie-
Hellman) nu ofera nici una din proprietatile: autentificare de entitati, autentificare de
chei sau confirmare de chei.
Definitie 3.1.8 Un protocol pentru stabilire de chei autentificat este un protocol pentru
stabilirea de chei (definitia 3.1.1) care ofera autentificare de chei (definitia 3.1.5).
3.1 Introducere 43
1. pentru a limita textul cifrat disponibil (creat cu o singura cheie) atacurilor crip-
tanalitice;
3. pentru a evita stocarea pe o perioada lunga a unui numar mare de chei secrete
distincte (n cazul n care un terminal comunica cu multi terti), prin crearea cheilor
doar n momentul n care este nevoie de ele;
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 respec-
tiva. 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:
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.
(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 cer-
tifica 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).
(1) A B : EK (rA )
Cheia de sesiune transmisa n acest caz este rA iar atat A cat si B obtin autenti-
ficare implicita de chei. Alte campuri optionale ce pot fi transmise criptat sunt: o
marca de timp sau un numar de secventa care ofera garantii lui B n ceea ce priveste
actualitatea cheii; un camp ce contine redundanta, pentru a-i oferi lui B autentifi-
care explicita a cheii sau pentru a-i permite detectarea modificarii mesajului si un
identificator tinta pentru a preveni reluarea nedectabila a mesajului napoi la A.
Astfel:
A B : EK (rA , tA , B ) (10 )
Daca se doreste ca ambele entitati sa contribuie la formarea cheii, B poate sa-i
transmita lui A un mesaj analog, cheia de sesiune calculandu-se cu o functie one-
way f (rA , rB ) pentru a mpiedica posibilitatea ca valoarea cheii sa poata sa fie
precalculata/influentata de una din entitati.
2. transport de chei cu provocare raspuns:
(1) A B : nB
(2) A B : EK (rA , nB , B )
Daca se doresc garantii n ceea ce priveste actualitatea cheii fara a folosi marci de
timp, se poate folosi un numar aleator sau un numar de secventa (notat aici cu nB )
n locul marcii de timp folosita la tehnica cu un singur mesaj; costul va fi un mesaj
suplimentar. Cheia va din nou rA .
Din nou, daca se doreste ca sa avem o cheie secreta formata cu date furnizate de
ambele entitati, A poate insera un nonce nA n mesajul (2) si trebuie adaugat un
al treilea mesaj. (In protocolul de mai jos rA si rB sunt valori ce se folosesc pentru
calcularea cheii, iar nA si nB sunt nonce-uri folosite pentru asigurarea actualitatii
cheii).
(1) A B : nB
(2) A B : EK (rA , nA , nB , B )
(3) A B : EK (rB , nB , nA , A )
Remarca 3.2.1 Cele doua tehnici prezentate mai sus nu ofera protectie prefect
a nainte,
si vor esua daca este compromis
a cheia pe termen lung K. Din acest motiv multe aplicatii
nu vor putea folosi aceste tehnici.
Remarca 3.2.2 Multe protocoale de autentificare care folosesc criptare, inclusiv cele
doua tehnici de mai sus necesit
a, din motive de securitate, ca functia de criptare sa aiba
integrat si un mecanism de integritate pentru a detecta modificarea mesajelor.
3.2 Transport de chei bazat pe criptare simetric
a 47
(1) A B : rA
Cheia de sesiune este calculata prin criptarea valorii primite EK (rA ). Tehnica ofera
lui A si B autentificare implicita a cheii. Numarul aleator folosit rA poate fi nlocuit cu
o marca de timp, ce poate fi validata de cel care o primeste, oferindu-i astfel garantii
implicite n ceea ce priveste actualitatea cheii, cu conditia ca cheia de termen lung K sa
nu fie compromisa.
In aceasta tehnica, A poate controla valoarea cheii de sesiune sa fie x, alegand rA =
DK (x). Din moment ce tehnica nu necesita decriptare, functia E poate fi nlocuita cu o
functie pseudo-aleatoare cu cheie hK .
(1) A B : rA
(2) A B : T, hK (T )
(3) A B : (A, rB ), hK (A, rB )
3. Actiunile protocolului:
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 Diffie-
Hellman (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
transmisa 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
a a1 si b1 mod(p 1).
cu p 1, dupa care calculeaz
2. Mesajele protocolului
(1) A B : K a mod p
(2) A B : (K a )b mod p
1
(3) A B : (K ab )a mod p
3. Actiunile protocolului
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 ntrucat utilizarea de exemplu
a cifrului Vernam, ar fi total nesigura, ntrucat aplicarea operatorului XOR la cele trei
mesaje transmise ar duce la obtinerea cheii K.
3.2 Transport de chei bazat pe criptare simetric
a 49
2. Initializare. A si T partajeaz
a cheia pe termen lung KAT , iar B si T partajeaz
a
def
cheia pe termen lung KBT ; tichetB = EKBT (k, A, L);
def
autentif icator = Ek (A, tA , Asubcheie ).
1
folosind cheia secreta pe care o partajeaza cu aceasta
2
MIT = Massachusetts Institute of Technology
50 Capitolul 3. Protocoale pentru stabilirea cheilor
3. Mesajele protocolului.
(1) A T : A, B, nA
(2) A T : tichetB , EKAT (k, nA , L, B)
(3) A B : tichetB , autentif icator
(4) 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 desti-
nat 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 cripteaza 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 pen-
tru 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 locala 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.
2. Daca cheile partajate initial sunt derivate din parole, atunci protocolul nu ofera o
securitate mai mare fat
a de securitatea acelor parole sau fat
a de rezistenta acestora
la atacuri asupra parolelor.
3.2 Transport de chei bazat pe criptare simetric
a 51
Protocolul Needham-Schroeder
La ora actuala acest protocol are doar o importanta istorica. Acesta a fost creat n 1978
[87] si sta la baza multor protocoale de autentificare si distributie de chei bazate pe server
printre care Kerberos si Otway-Rees. Este un protocol care nu depinde de marci de timp,
si ofera atat autentificare de entitati cat si stabilirea de chei cu confirmarea cheii. Cu
toate acestea protocolul nu se foloseste pentru ca au fost descoperite o serie de atacuri
mpotriva lui.
2. Initializare. A si T partajeaz
a cheia pe termen lung KAT , iar B si T partajeaz
a
cheia pe termen lung KBT
3. Mesajele protocolului.
(1) A T : A, B, nA
(2) A T : EKAT (nA , B, k, EKBT (k, A))
(3) A B : EKBT (k, A)
(4) A B : Ek (nB )
(5) A B : Ek (nB 1)
Protocolul Otway-Rees
Introdus n [103] acesta este un protocol bazat pe tert de ncredere care ofera transport
de chei autentificat (cu autentificarea cheii si asigurari n ceea ce priveste actualitatea
acesteia). Protocolul are doar patru mesaje fara a necesita marci de timp asa cum se
ntampla la protocolul Kerberos. Totusi, acest protocol nu ofera autentificare de entitati
sau confirmarea cheii.
In continuare este prezentat protocolul Otway-Rees n notatie informala.
3. Mesajele protocolului.
4. Actiunile protocolului. Urmatorii pasi sunt efectuati de fiecare data cand este nevoie
de o noua cheie partajata.
(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).
2. autentificarea originii datelor prin semnaturi digitale. Criptarea cu chei publice este
combinata cu o semnatura digitala, oferind transport de chei cu asigurari n ceea ce
priveste identitatea sursei.
3. Mesajele protocolului.
(1) : A B : PB (k1 , A)
(2) : A B : PA (k1 , k2 )
(3) : A B : PB (k2 )
4. Actiunile protocolului.
(10 ) : A B : PB (k1 , A, r1 )
(20 ) : A B : PA (k2 , r1 , r2 )
(30 ) : A B : r2
1. cele care semneaza cheia si dupa aceea cripteaza cu cheia publica cheia semnata;
2. cele care semneaza cheia si separat cripteaza cu cheia publica cheia (nesemnata);
4. cele care folosesc criptare simetrica pe langa criptare cu chei publice si semnaturi
digitale.
Semnaturile digitale (notatie SA ) si schemele de criptare cu chei publice cele mai des
utilizate n practica sunt RSA, Rabin si familia ElGamal. In mod implicit presupunem
ca schemele de semnatura digitala nu ofera recuperarea mesajului si ca mesajul trebuie
transmis explicit mpreuna cu semnatura pentru a permite verificarea. Cand criptarea
si semnatura digitala se efectueaza separat orice date confidentiale trebuie sa ramana
secrete.
Criptarea cheilor semnate
O optiune pentru combinarea semnaturilor digitale cu criptarea cu chei publice este
de a cripta blocuri semnate:
A B : PB (k, tA , SA (B, k, tA ))
Marca de timp este optionala; includerea ei permite autentificarea lui A fata de B si
ofera proprietatea de actualitate a mesajului. Identificatorul B, n cadrul semnaturii digi-
tale, 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 (prezen-
tata 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:
(1) : A B : rA
(2) : A B : rB , PA (B, k1 ), SB (rB , rA , A, PA (B, k1 ))
(3) : A B : PB (A, k2 ), SA (rA , rB , B, PB (A, k2 ))
3. datele primite de B sunt recente (nu au fost folosite anterior, si au fost create cu
putin timp n urma).
1. Notatie. PX (y) - datele y sunt criptate cu cheia publica a lui X; SX (y) semn atura
digital
a cu cheia privata a lui X asupra datelor y; rA , rB numere care nu au fost
folosite anterior (pentru a detecta reluari si impersonare); certX un certificat care
leag
a entitatea X de cheia publica ce poate fi folosita atat pentru criptare cat si
pentru verificarea semnaturii.
2. Initializarea sistemului.
(a) Fiecare entitate are o pereche de chei (publica, privata) pentru criptare si
semnare.
(b) A trebuie sa obtin
a cheia publica autentica a lui B. Acest pas poate necesita
mesaje si calcule suplimentare.
3. Mesajele protocolului.
4. Actiunile protocolului.
criptare cat si pentru semnatura digitala. Totusi, protocolul poate fi adaptat cu usurinta
pentru a folosi perechi de chei de criptare/decriptare, respectiv sematur a digitala/verificare
semnatur a, separate. Este chiar indicat sa se foloseasc a chei separate pentru cele doua
operatii.
1. M
arcile de timp tA si tB pot fi zero, si nu trebuie verificate.
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).
2. Mesajele protocolului.
(1) A B : x mod p
(2) A B : y mod p
3. Actiunile protocolului.
2. Mesajele protocolului.
(1) A B : x mod p
(a) A obtine o copie autentica a cheii publice a lui B, (p, , b ). A alege un numar
aleator x, 1 x p 2, si trimite lui B mesajul (1). A calculeaz a cheia
b x
K = ( ) mod p.
a aceeasi cheie la primirea mesajului (1), K = (x )b mod p.
(b) B calculeaz
Remarca 3.4.5 (asigurarile n cazul protocolului ElGamal pentru acord asupra cheii)
protocolul 3.4.4, B nu are nici o dovada n leg
In atur
a cu identitatea entitatii cu care
partajeaz
a cheia secret
a si nu are garantii nici n ceea ce priveste faptul ca cheia este una
noua. Nici una din cele doua entitati nu obtine autentificare de entitati sau confirmarea
cheii.
O alta varianta a protocolului pentru acord asupra cheii Diffie-Hellman este protocolul
MTI/A0 cu doua mesaje (care nu necesita semnaturi digitale). Protocolul i se datoreaza
lui Matsumoto, Takashima si Imai care au prezentat ideile n lucrarea [73]. In urma rularii
protocolului se obtine o cheie de sesiune care depinde de timp si care este autentificata
mutual n mod implicit mpotriva atacurilor pasive. La fel ca si n protocolul ElGamal
(protocolul 3.4.4), A trimite lui B un singur mesaj, rezultand o cheie partajata K. B
initiaza, n mod independent, un protocol analog cu A, rezultand cheia partajata K 0 .
Dupa rularea celor doua instante ale protocolului A si B calculeaza k = KK 0 mod p (p si
sunt parametri globali n acest protocol). Protocolul nu ofera autentificare de entitati
sau confirmare a cheii. Cu toate ca protocolul este potrivit pentru aplicatii n care sunt
posibile doar atacuri pasive, protocolul este vulnerabil fata de anumite atacuri active.
2. Mesajele protocolului.
(1) A B : x mod p
(2) A B : y mod p
62 Capitolul 3. Protocoale pentru stabilirea cheilor
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 con-
firmare 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 in-
dependente 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 mAB mBA KA KB cheia K
MTI/A0 x y mBA zBx mAB zAy ay+bx
zAy
1 1
MTI/B0 zBx maBA x mbAB y x+y
1
zAy mbAB y
1
MTI/C0 zBx maBA x xy
MTI/C1 zBxa zAyb mxBA myAB 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 generala, 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
publica 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
a valoarea x , trimisa de A lui B, nemodificat
las a). C transmite raspunsul lui B (y )
lui A. B deduce ca mesajele primite ulterior criptate cu cheia K = ay+bx vin de la C,
3.4 Acord asupra cheii bazat pe tehnici asimetrice 63
pe cand, n realitate, doar A este cel care cunoaste cheia K si poate fi originatorul unor
astfel de mesaje.
Un atac mai complicat realizeaz a acelasi efet, cu cheia publica a lui C diferind de
cheia publica a lui A - zA . C alege un ntreg e si calculeaz a (zA )e = ae , nregistr
and
ae
cheia publica . C modific a ulterior valoarea trimisa de B n mesajul (2) n (y )e .
y
2. Initializare.
3. Mesajele protocolului.
(1) A B : x mod p
(2) A B : y mod p, Ek (SB (y , x ))
(3) A B : Ek (SA (x , y ))
4. Actiunile protocolului. De fiecare data cand este nevoie de o cheie de sesiune par-
tajata se efectueaza pasi de mai jos. Daca verificarea unei semnaturi esueaz
a, pro-
tocolul este imediat oprit.
Remarca 3.4.10 (confirmarea cheii n protocolul STS) Criptarea prin cheia k ofera con-
firmare 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 ntampla asa,
sunt de preferat mijloace alternative de confirmare a cheii, care evita criptarea. O alter-
nativa 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
daca procesul de semnare implica aplicarea unei functii hash.
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 Diffie-
Hellman 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 Gunther n lucrarea [55].
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.
4. T transmite n sigurant
a lui A perechea (r, s) = (PA , a), care reprezinta semnatura
digital
a ElGamal a lui T asupra valorii IA . (a este cheia privata a lui A pentru acord
de chei Diffie-Hellman).
Remarca 3.4.12 (Optimizarea semnaturii ElGamal [12]) Ecuatia (1) din mecanismul
3.4.11 poate fi nlocuit
a cu urmatoarea optimizare a schemei ElGamal de semnatur
a dig-
ital
a, n care cmmdc(t, p 1) = 1:
h(IA ) t a + kA PA (mod p 1)
66 Capitolul 3. Protocoale pentru stabilirea cheilor
2. T atribuie fiec
arei entitati A un nume unic sau un sir de caractere de identificare
IA (de exemplu numele si/sau adresa).
3. A alege cheia privata a si transmite lui T , ntr-un mod ce poate fi autentificat, cheia
publica a mod n (cheia publica pentru acord de chei a lui A). In plus, A ofera
lui T o dovada a faptului ca cunoaste cheia privata (acest pas este necesar pentru
a preveni anumite atacuri prin falsificare de catre A si se poate face prin crearea
de catre A a unei chei Diffie-Hellman bazat a pe a si pe o expresie obtinut
a prin
exponentiere de catre T, cheie care este transmis a lui T ).
orice entitate poate calcula cheia publica a lui A, care este a mod n).
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.
cheile de sesiune sunt dinamice (cu exceptia schemelor pentru predistributie de chei);
informatia transmisa ntre entitati nu este secreta si este transferata prin canale de
comunicatie deschise;
68 Capitolul 3. Protocoale pentru stabilirea cheilor
Notand Ati1 = (zi1 )tri ecuatia este echivalenta cu Ki din protocolul 3.5.2.
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
2. atac prin reluare: o impersonare sau un alt tip de nselare n care se foloseste
informatie dintr-o executie precedenta a protocolului cu acelasi verificator sau cu
altul. O clasificare a atacurilor de acest tip este realizata n [122]. Pentru fisiere,
analogul este atacul prin restaurare, n care se nlocuieste un fisier cu o versiune mai
veche.
3. atac prin intercalare: o impersonare sau alta nselare n care se foloseste informatie
combinata selectiv din una sau mai multe executii precedente sau actuale ale pro-
tocolului (sesiuni paralele), inclusiv posibilitatea ca una sau mai multe executii ale
protocolului sa fie initiate de atacator.
4. atac prin reflexie: un atac prin intercalare n care se trimite informatia dintr-o
instanta a protocolului napoi la sursa.
5. ntarziere fortata: are loc atunci cand un adversar intercepteaza un mesaj (ce contine
de regula un numar de secventa) si l transmite mai tarziu. Mesajele ntarziate nu
sunt reflexii.
6. atac prin text ales: un atac asupra unui protocol provocare-raspuns n care un
adversar alege n mod strategic provocarile cu scopul de a extrage informatii n
legatura cu cheia pe termen lung a demonstratorului. Atacurile prin text ales se
mai numesc atacuri n care se foloseste demonstratorul ca un oracol, pentru a obtine
de la el informatie care nu poate fi calculata cunoscand doar cheia publica.
70
4.1 Atacuri asupra protocoalelor de identificare 71
partiala. In cazul unui adversar activ, atacurile pot implica initierea de catre adversar
a uneia sau a mai multor instante ale protocolului si crearea, injectarea sau modificarea
unor mesaje noi sau vechi. In tabelul 4.1 avem un sumar al atacurilor si al masurilor de
prevenire ale acestora.
Remarca 4.1.1 (folosirea unei chei pentru mai multe scopuri) Trebuie avut grija atunci
c
and o cheie criptografic
a este folosita pentru mai multe scopuri. De exemplu, utilizarea
unei chei RSA atat pentru autentificarea entitatilor cat si pentru semnatur
a digitala poate
compromite securitatea permit and un atac prin text ales. Presupunem ca autentificarea
consta din provocarea lui A de catre B cu un numar aleator rB criptat cu cheia publica
RSA a lui A, iar A trebuie sa raspund a cu numarul aleator decriptat. Daca provocarea
lui B pentru A consta din rB = h(x), raspunsul lui A la aceast a provocare va fi semnatura
digital
a a lui A asupra valorii hash a mesajului x.
Remarca 4.1.2 (problema maiestrului la jocul de sah prin post a) Protocoalele de iden-
tificare nu ofera garantii n leg atur
a cu locatia entitatilor. Prin urmare, uneori poate sa
apar a urmatoarea situatie: un adversar C care ncearc a sa-l impersoneze pe B, este provo-
cat de catre A sa demonstreze ca este B si este capabil sa transmit a provocarea primita
de la A adevaratului B (n timp real, far a sa fie detectat a tentativa si fara o nt
arziere
observabil a), sa primeasc a raspunsul corect de la B si sa transmit a acest raspuns mai de-
parte lui A. In acest caz este nevoie de masuri suplimentare pentru a preveni o entitate n
a reusi sa obtin
a ajutor n calculul raspunsului. Aceast a problem a este legat a de problema
maiestrului sahist prin post a, n care un sahist amator si poate mbun atati punctajul n
mod necinstit prin implicarea sa simultana n doua jocuri de sah cu doi maiestri, jucand
cu piesele albe cu unul din ei si cu cele negre cu cel alalt si folosind mutarile maiestrilor
72 Capitolul 4. Atacuri asupra protocoalelor
dintr-un joc ca raspuns la celalalt. Variantele jucatorului amator sunt: doua jocuri ter-
minate remiza sau o victorie si o nfr
angere, ambele variante mbun
at
atind punctajul sau.
3. sa initieze una sau mai multe executii ale protocolului (chiar si simultane) si sa
combine1 mesaje dintr-o instanta a protocolului cu mesaje din alta instanta a pro-
tocolului, astfel ncat sa se poata da drept o alta entitate sau pentru a efectua unul
din atacurile enumerate mai sus.
In protocoalele pentru schimb de chei neautentificat, impersonarea este posibila prin
definitie. In autentificarea de entitati, unde nu exista o cheie de sesiune ce poate fi atacata,
obiectivul unui adversar este de a face n asa fel ncat o entitate sa primeasca anumite
mesaje care sa o conviga ca protocolul a fost rulat cu succes cu o entitate legitima diferita
de cea a adversarului.
Adesea se face distinctie ntre adversari pe baza tipului de informatie care le este
disponibila. Un outsider este un adversar care nu stie mai mult decat ceea ce este disponi-
bil n mod public (sau ceea ce se poate afla prin interceptarea mesajelor protocolului prin
liniile de comunicatie). Un insider este un adversar care are acces la informatii supli-
mentare cum ar fi o cheie de sesiune sau informatie partiala secreta, obtinuta ntr-un mod
privilegiat (de ex. acces fizic la resurse de calcul private). Un insider one-time obtine
informatii suplimentare la un moment dat pentru a fi folosite ulterior, pe cand un insider
permanent are acces nentrerupt la informatie privilegiata.
In analiza protocoalelor pentru stabilirea de chei, trebuie considerat impactul potential
pe care l are compromisul diferitelor tipuri de chei, chiar daca un astfel de compromis
este putin probabil sa aiba loc. Asadar, ar trebui considerat compromisul cheilor secrete
pe termen lung si compromisul unor chei de sesiune vechi.
Definitie 4.2.2 Spunem ca un protocol are securitate perfect a nainte daca compro-
miterea unei chei secrete folosita pe termen lung nu afecteaz
a cheile de sesiune vechi.
Definitie 4.2.3 Spunem ca un protocol este vulnerabil la un atac prin cheie cunos-
cut
a, daca compromiterea cheilor de sesiune vechi permite unui adversar pasiv sa com-
promit
a chei de sesiune ulterioare sau permite unui adversar activ sa realizeze ulterior
impersonari.
Conceptul de atac prin cheie cunoscuta a fost creat de Yacobi si Shmuely [126] si este
strans legat de conceptul introdus de Denning si Sacco [28] n ceea ce priveste utilizarea
marcilor de timp pentru a preveni reluarea mesajelor. Atacurile prin cheie cunoscuta
asupra protocoalelor pentru schimb de chei sunt analoage cu atacurile prin text clar asupra
algoritmilor de criptare. O motivatie pentru discutarea lor este aceea ca n unele medii
(de ex. datorita unor decizii de implementare sau decizii ingineresti), probabilitatea com-
promiterii cheii de sesiune sa fie mai mare decat probabilitatea compromiterii cheilor pe
1
engl. interleave
4.2 Analiza protocoalelor pentru stabilire de chei 75
termen lung. O a doua motivatie este aceea ca atunci cand se folosesc tehnici criptografice
cu putere moderata, exista posibilitatea ca un efort criptanalitic intens sa descopere chei
de sesiune vechi. O ultima motivatie este aceea ca, n unele sisteme, cheile de sesiune vechi
pot fi relevate n mod deliberat din diverse motive (de ex., dupa autentificare, pentru a
detecta o posibila utilizare a canalului de autentificare ca un canal secret sau ascuns).
A E B
x x0
0
y y
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 B
rA (1)
rB , SB (rB , rA , A) (2)
0 0
rA , SA (rA , rB , B) (3)
A E B
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 eronata ntr-un server
Protocolul Otway-Rees are urmatoarele mesaje:
4.2 Analiza protocoalelor pentru stabilire de chei 77
Atacul de mai jos este discutat de Boyd si Mao in [20] si de asemenea de van Oorschot
n [124].
La primirea mesajului (2), serverul trebuie sa verifice faptul ca informatiile (M, A, B)
din cele doua parti criptate, coincid si n plus, coincid si cu informatiile transmise n
clar. Daca aceasta ultima verificare nu este efectuata, atunci un atacator E (care este
un alt utilizator legitim al sistemului) poate efectua urmatorul atac, impersonandu-l pe
B. E modifica mesajul (2), nlocuind textul clar B, cu E (dar lasand n ambele parti
criptate A si B nemodificate), nlocuieste nonce-ul nB cu nE , folosind cheia KET (pe care
o partajeaza cu serverul T ) n locul cheii KBT . Pe baza identificatorului din textul clar E,
T cripteaza o parte din mesajul (3) cu cheia KET ceea ce i permite lui E sa recupereze
cheia de sesiune k; A crede, la fel ca si n protocolul original, ca cheia k o partajeaza cu
B. Acest atac a fost prezentat de catre Boyd si Mao n [20] si de catre van Oorschot n
[124]. Atacul este redat mai jos:
Atacul este posibil datorita modului subtil n care A deduce identitatea celeilalte
entitati careia i-a fost trimisa cheia k: n mesajul (4), A nu are o indicatie directa n
legatura cu identitatea entitatii careia T i-a transmis cheia k, ci se bazeaza pe nonce-
ul nA si pe asocierea acestuia cu perechea (nA , B) din partea protejata a mesajului (1).
Astfel, A se bazeaza pe server pentru a pune cheia k la dispozitia entitatii cerute de A, iar
acest lucru poate fi garantat doar de catre T care foloseste campurile protejate (M, A, B).
Atacul 5. Atacul lui Lowe asupra protocolului Needham-Schroeder
In capitolul 3 am prezentat protocolul Needham-Schroeder (protocolul 3.3.1) cu chei
publice care realizeaza autentificare de entitati, autentificare de chei si transport de chei
(toate mutuale). La ora actuala acest protocol are doar o importanta teoretica datorita
faptului ca G.Lowe a demonstrat n lucrarea [69] un atac asupra acestui protocol, atac
care permite unui intrus sa impersoneze un participant onest la protocol.
Mesajele protocolului Needham-Schroeder cu chei publice sunt:
(1) A B : PB (ka , A)
(2) A B : PA (ka , kb )
(3) A B : PB (kb )
78 Capitolul 4. Atacuri asupra protocoalelor
A trimite lui B mesajul (1), care contine un nonce ka si identitatea sa, ambele criptate
cu cheia publica a lui B. Se presupune ca A si B detin cheia publica autentica a celuilalt.
La primirea mesajului (1), B l decripteaza cu cheia sa privata, genereaza un nonce kb si
trimite lui A mesajul (2). Dupa decriptarea mesajului (2), A este asigurat de faptul ca
discuta cu B pentru ca doar B putea sa decripteze mesajul (1), care continea nonce-ul ka .
A trimite mesajul (3) lui B. Dupa decriptarea acestui mesaj, cu cheia sa privata, B este
asigurat de faptul ca discuta cu A pentru ca doar A putea decripta mesajul (2) pentru a
obtine nonce-ul kb .
Consideram un intrus I care interactioneaza cu acest protocol, intrus care este un
utilizator al retelei, care poate initia sesiuni de autentificare cu alte entitati, si alte entitati
pot initia sesiuni de autentificare cu I. I poate intercepta orice mesaj din sistem si poate
modifica si injecta mesaje. Intrusul nu poate descoperi valoarea nonce-urilor criptate de
alte entitati. Prin urmare, I poate produce si injecta mesaje noi care contin doar nonce-
uri 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) A I : PI (ka , A)
(2.1) I(A) B : PB (ka , A)
(2.2) B I(A) : PA (ka , kb )
(1.2) I A : PA (ka , kb )
(1.3) A I : PI (kb )
(2.3) I(A) B : PB (kb )
Cu aceasta modificare I nu mai poate transmite acest mesaj lui A pentru ca n instanta
1 a protocolului A va astepta un mesaj care sa contina identitatea lui I.
Definitie 4.2.4 Un protocol pentru stabilire de chei este operational daca, n absenta
unui adversar activ si n absenta erorilor de comunicatie, participanti onesti, care respect
a
specificatiile protocolului, reusesc ntotdeauna sa ncheie protocolul calculand o cheie co-
mun a si obtin
and identitatea entitatii cu care partajeaza cheia respectiv
a.
Definitie 4.2.5 Un protocol pentru stabilire de chei este rezilient dac a este imposibil
pentru un adversar activ sa nsele participanti onesti n leg
atur
a cu rezultatul final.
Cateva din abordarile folosite cel mai des n analiza protocoalelor criptografice sunt
enumerate n continuare:
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 abor-
dare nu este aplicabila la majoritatea schemelor practice din diverse motive: sche-
mele 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 dimen-
siune 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.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 certifi-
care a cheilor publice, iar un server de ncredere se numeste autoritate de certificare
(CA - Certification Authority). CA este o entitate speciala care este bine cunoscuta si n
care entitatile din domeniul deservit au ncredere. CA poate fi cunoscuta si n alt domeniu
mai mare, n mod indirect. Fiecare utilizator din domeniul CA va primi un certificat de
cheie publica care va atesta cheia publica a utilizatorului. Un certificat de cheie publica
este o nregistrare structurata care contine o serie de campuri printre care o identitate,
identificabila n mod unic, a detinatorului cheii publice si cheia publica propriu zisa. Un
certificat este semnat digital de CA. Astfel, semnatura CA asupra certificatului ofera o
legatura criptografica ntre identitatea proprietarului si cheia lui publica. O entitate, dupa
ce verifica certificatul altei entitati, poate fi convinsa (daca are ncredere n CA) de faptul
ca CA a dat certificatul doar dupa ce a identificat n mod corespunzator proprietarul cheii
publice. Astfel, entitatea care face verificarea stabileste un canal securizat prin cheie care
este directionat de la cheia publica certificata nspre el. Termenul de certificat de cheie
publica a fost folosit pentru prima data de Kohnfelder [65].
Un canal pentru cheie publica bazat pe un serviciu de certificare se numeste canal
bazat pe director. Astfel, serviciul de certificare se numeste serviciu de directoare.
Spre deosbire de modelul simetric n care ncrederea n serverul de autentificare (tertul
de ncredere) pentru protocoale de autentificare trebuie sa fie foarte puternica (ntrucat
acesta poate decripta comunicatia dintre entitati, el fiind cel care genereaza cheia de
sesiune), n modelul asimetric ncrederea n acest tert trebuie sa fie mult mai slaba. Aici,
serviciul de securitate oferit este autentificarea mesajelor, ce poate fi oferit fara a fi nevoie
de a gestiona nici un secret (din moment ce verificarea semnaturii CA asupra unui certificat
implica doar cheia publica a CA). Din moment ce nu trebuie gestionat nici un secret,
serviciul poate fi oferit off-line, adica CA nu trebuie sa fie implicat n protocolul ce se
desfasoara ntre cele doua entitati. O trasatura importanta a unui serviciu off-line este
aceea ca poate fi extins oricat de mult pentru a gestiona un sistem foarte mare. Cheia
publica a unui CA, folosita pentru verificarea certificatelor emise de acel CA, poate la
randul ei sa fie certificata de un alt CA.
Printre campurile unui certificat trebuie sa fie informatia de identificare si cheia publica
84 Capitolul 5. Infrastructuri de autentificare pentru chei publice
Emiterea certificatului
La emiterea certificatului, CA trebuie sa valideze identitatea entitatii care solicita certi-
ficatul. Validarea trebuie sa implice anumite mijloace de identificare fizica (non-cripto-
grafica), la fel cum se ntampla de exemplu la deschiderea unui cont bancar. Entitatea
trebuie de asemenea sa demonstreze ca este n posesia cheii private corespunzatoare cheii
publice ce va fi certificata. Aceasta demonstratie se poate face n doua moduri: entitatea
creeaza o semnatura asupra unui mesaj de provocare generat de CA, semnatura ce poate
fi verificata cu cheia publica sau sub forma unui protocol de demonstratie cu informatie
zero ntre entitate si CA, n care cheia publica este intrarea comuna. Unele aplicatii
necesita ca partea privata a cheii sa aiba o anumita structura.
Revocarea certificatului
Uneori poate fi necesara revocarea unui certificat, de exemplu atunci cand cheia privata
a unei entitati este compromisa sau cand se schimba anumite informatii despre entitate.
5.1 Infrastructur
a de autentificare bazat
a pe director 85
este numele SPKI pentru persoana cu numele john doe. Aici utilizarea functiei hash
SHA-1 face ca numele SPKI sa fie identificabil n mod unic la nivel global, cu toate ca
pot sa existe mai multi john doe.
Aceasta metoda de numire a fost sugerata de Rivest si Lampson [110] n SDSI (A
Simple Distributed Security Infrastructure). In SDSI exista reguli de nume localizate.
Acestea permit si realizarea unei infrastructuri de autentificare si autorizare descentrali-
zate. Astfel, un nume SPKI este numit de asemenea si un nume SDSI.
SPKI foloseste de asemenea si campuri de autorizare si delegare care contin informatie
pentru aceste servicii. O informatie de autorizare poate fi o descriere a autorizarii care este
legata de cheia publica. Astfel, un certificat poate prezenta n mod direct unei aplicatii
daca solicitantul este autorizat sau nu n a efectua o actiune. Informatia de delegare
descrie posibilitatea solicitanului de a delega autorizarea unei alte entitati. Putem spune
ca SPKI extinde infrastructura de autentificare X.509 la o infrastructura care are si functii
de autorizare si delegare.
CMP (Certificate Management Protocol) [11], [85]. Acest protocol suporta interac-
tiunea 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.
5.2 Infrastructur
a de autentificare f
ar
a director
Procedura de generare a cheilor din relatia (5.1) de la pagina 82 face ca toate cheile
publice sa aiba o forma aleatoare. Prin urmare, e nevoie de a asocia cheia publica cu
informatie legata de identitatea proprietarului cheii ntr-o maniera autentica. Am vazut
ca o asemenea asociere este posibila prin realizarea unei infrastructuri de autentificare
pentru chei publice (de exemplu, infrastructura de certificare X.509). Totusi, pentru a
stabili si a mentine o ierarhie arborescenta, PKI implica un nivel ridicat de complexitate
a sistemului si costuri importante. Intotdeauna s-a dorit simplificarea infrastructurilor de
autentificare pentru chei publice.
Este logic sa tragem concluzia ca daca cheia publica nu este o secventa aleatoare de
biti, atunci se pot reduce atat complexitatea sistemului cat si costul pentru stabilirea si
mentinerea infrastructurii de autentificare a cheilor publice. Daca cheia publica a unei
entitati este asociata n mod evident cu informatia legata de identitatea sa cum ar fi
numele, afilierea, adresa electronica si normala, atunci nu mai este nevoie de a autentifica
cheia publica. Sistemul postal functioneaza cu succes n acest mod.
Shamir a prezentat pentru prima data n [120] criptosisteme cu chei publice ntr-un
mod neuzual. Acestea permit o reducere semnificativa a complexitatii sistemului pentru
88 Capitolul 5. Infrastructuri de autentificare pentru chei publice
cheia privat
a = F (cheie master, cheie public
a) (5.2)
Acest pas de generare a cheii se face n sens invers fata de pasul de generare a cheii
n criptosistemele uzuale cu chei publice. Evident ca, pentru ca cheia privat a sa ramana
privata acest calcul nu trebuie sa fie public: este restrictionat la o entitate privilegiata (un
tert de ncredere). Doar tertul de ncredere este n posesia cheii master, si doar el poate
efectua calculul din relatia (5.2). Din moment ce cheia public a reprezinta o valoare de
intrare pentru procedura de generare a cheii, cheia public a poate fi orice sir de caractere.
Din moment ce utilizarea informatiei legata de identitate pe post de cheie publica reduce
foarte mult complexitatea autentificarii cheii publice, Shamir a sugerat ca sa se foloseasca
pe post de cheie publica identitatea entitatii si a numit aceasta schema criptografie cu
chei publice bazat a pe identitate.
Procedura de generare a cheilor din relatia (5.2) este un serviciu oferit de tertul de
ncredere tuturor utilizatorilor sistemului. Serviciul este unul de autentificare: cheia pri-
vata 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 informatii-
lor 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:
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)
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 con-
struirea valorii ID th(t||m) (mod n) si de gasirea radacinii de ordin e modulo n. Dificultatea
de a falsifica semnatura este legata si de detaliile functiei hash folosite.
90 Capitolul 5. Infrastructuri de autentificare pentru chei publice
Ce ofer
a criptografia bazat
a de ID?
In criptografia obisnuita cu chei publice, o entitate B care verifica semnatura altei entitati
A, folosind cheia publica a lui A, trebuie sa verifice si autenticitatea cheii publice, prin
verificarea certificatului de cheie publica a lui A (certificat ce leaga cheia publica a lui A
de identitatea sa). Cu alte cuvinte B trebuie sa verifice ca ntre el si A canalul pentru
cheie a fost stabilit n mod corespunzator.
Intr-o schema de semnatura bazata pe identitate, nu e nevoie ca B sa realizeze o
verificare separata pentru stabilirea corepunzatoare a unui canal pentru cheie. Aici, daca
verificarea semnaturii reusesete B obtine certitudinea n legatura cu urmatoarele doua
aspecte:
semnatura a fost creata de A folosind cheia lui privata care este formata pe baza
identitatii sale (ID); si
(a) Mesajele:
A T : IA , v = g sA (mod n) (1)
d
T A : PA = (v IA ) (mod n) (2)
(b) Actiunile: entitatea A alege cheia secret a sA care este un ntreg pe 160 de
biti si calculeaz
a valoarea v din mesajul (1). A i trimite lui T mesajul (1)
si i demonstreaz a ca cunoaste valoarea sA , far
a a o dezvalui, prin intermediul
protocolului pentru schimbul de chei. Tertul de ncredere T creeaz a valoarea PA
(cheia publica a lui A) care reprezint a semnatura RSA asupra valorii v IA
si o trimite lui A. Cheia publica a lui A va fi (PA , e, n, g). Urmatoarea relatie
are loc:
IA PAe v(mod n) (5.3)
Remarca 5.2.3 Av and n vedere ca n Schema Girault (protocolul 5.2.2) atat PA cat 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
bazata 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 criptografica 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 non-
interactiva, aceasta fiind un neajuns al acestei scheme.
Capitolul 6
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 oare-
care 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 a-
utentificarea mesajelor prin tehnici simetrice. Algoritmii MAC pot fi priviti ca functii
hash care primesc la intrare un mesaj si o cheie secreta si produc la iesire o secventa de
lungime fixa (de exemplu de n biti), astfel ncat trebuie sa fie nefezabil n practica de a
produce aceeasi iesire fara a cunoaste cheia secreta. MAC-urile pot fi folosite pentru a
asigura integritatea datelor si autentificarea originii datelor prin tehnici simetrice, precum
si identificare prin scheme cu chei simetrice.
O utilizare tipica a functiilor hash fara cheie este n asigurarea integritatii datelor n
felul urmator. Se calculeaza valoarea hash pentru un mesaj x la momentul T1 . Integritatea
acestei valori hash (dar nu si a mesajului) este asigurata ntr-un anumit mod la transfer.
Ulterior, la momentul T2 , pentru a verifica daca un mesaj x0 este identic cu x se calculeaza
valoarea hash pentru x0 si daca aceasta valoare hash este egala cu cea calculata initial,
93
94 Capitolul 6. Functii hash si integritatea datelor
atunci se poate considera ca mesajul nu s-a modificat. In felul acesta problema pastrarii
integritatii unui mesaj s-a redus la pastrarea integritatii valorii hash, care este un mesaj
mult mai scurt de dimensiune fixata. Datorita faptului ca functiile hash nu sunt injective
aceasta asociere ntre mesaje si valorile hash ale lor se face doar n sens computational.
In practica, valorile hash ar trebui sa fie identificabile n mod unic cu o singura valoare,
iar gasirea unor coliziuni trebuie sa fie nefezabila computational.
6.2 Clasificare
Exista doua categorii de functii hash:
Definitie 6.2.1 O functie hash (n sens non-criptografic) este o functie h care are urma-
toarele propriet
ati:
1. compresie - h asociaz
a secvente binare x de lungime variabila, unor secvente h(x)
de lungime fixa n.
2. usurint
a de calcul - daca se da o functie h si o valoare x, h(x) este usor de calculat.
(a) functii hash greu inversabile - pentru acestea este dificil de a gasi o valoare al
carei hash este egal cu unul prestabilit.
(b) functii hash rezistente la coliziune - pentru acestea este dificil de a gasi doua
valori care au acelasi hash.
Functiile hash sunt cunoscute de toate entitatile implicate ntr-un proces (specificatiile
acestor functii sunt publice), asa ca oricine poate calcula valoarea hash n cazul MDC-
urilor. In cazul MAC-urilor, oricine care cunoaste cheia poate calcula valoarea hash.
In continuare introducem alte trei proprietati pe care le pot avea functiile hash.
6.3 Atacuri asupra functiilor hash 95
Se poate da o motivatie pentru fiecare din cele trei proprietati de mai sus: ntr-o
schema de semnatura digitala semnatura se aplica asupra unei valori hash h(x) si nu
asupra mesajului. Aici h trebuie sa fie un MDC cu rezistenta la a doua preimagine
pentru ca altfel, un adversar C poate intercepta semnatura asupra unei valori h(x) si sa
gaseasca o alta valoare x0 pentru care h(x) = h(x0 ). Daca reuseste, acesta poate afirma ca
mesajul x0 a fost semnat ceea ce evident nu este adevarat. Daca adversarul are puterea
de a obtine semnaturi de la semnatarul legitim, atunci nu trebuie sa faca altceva decat
sa gaseasca o pereche cu coliziune (x, x0 ). Sarcina de a gasi o preimagine este mult mai
dificila. In acest caz functia hash trebuie sa ofere rezistenta la coliziune. Rezistenta
la preimagine este o proprietate care poate fi argumentata prin urmatorul exemplu: sa
consideram schema de semnatura cu chei publice RSA, n care o entitate A are o cheie
publica (e, n). Adversarul poate alege o valoare aleatoare y, sa calculeze z = y e mod n
si sa afirme ca y este semnatura lui A asupra mesajului z; aceasta falsificare existentiala
realizata de C este posibila daca acesta poate gasi o preimagine x a.. h(x) = z, unde x
reprezinta un mesaj real.
Definitie 6.2.3 Un algoritm MAC (cod pentru autentificarea mesajelor) este o familie
de functii hk parametrizat
a de o cheie secret
a k, cu urmatoarele propriet
ati.
1. usurint
a de calcul - pentru o functie hk , o valoare k data si un mesaj x, hk (x) este
usor de calculat.
3. rezistent
a la calcul - dandu-se zero sau mai multe perechi mesaj-MAC (xi , hk (xi )),
este nefezabil computational sa se calculeze o alta pereche (x, hk (x)) pentru un x 6=
xi .
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.
unde, IV este vectorul de initializare (o valoare predefinita), iar g este o functie care face
o ultima transformare asupra rezultatului final al procesului iterativ.
6.5 Algoritmi hash f
ar
a cheie folositi n practic
a 97
Remarca 6.4.1 Orice functie de compresie f care este rezistent a la coliziune poate fi
extins
a la o functie hash rezistent
a la coliziune h. Aceasta se poate face n mod eficient
folosind meta-metoda lui Merkle [78] (algoritmul 6.4.2)
Algoritm 6.4.2 (Meta-metoda Merkle pentru functii hash ) Algoritmul primeste la in-
trare o functie de compresie f rezistent
a la coliziune si produce o functie hash h rezistent
a
la coliziune.
3. Definim un bloc final suplimentar xt+1 , blocul pentru lungime, care va contine re-
prezentarea binara aliniata la dreapta a valorii lui b (presupunem ca b < 2r ).
H0 = 0n ; Hi = f (Hi1 ||xi ), 1 i t + 1
Definitie 6.6.2 Autentificarea originii datelor este un tip de autentificare n care se sta-
bileste ca o entitate este sursa originala a unor date create anterior.
Mecanismele de autentificare a originii datelor bazate pe chei secrete (de ex. MAC)
nu permit realizarea unei distinctii ntre entitatile care cunosc o cheie, asa ca (spre deose-
bire de semnaturile digitale) nu ofera nerepudierea originii datelor - fiecare entitate care
cunoaste cheia poate fi la originea datelor.
Daca MAC-urile si semnaturile digitale pot fi folosite pentru a stabili ca datele au
fost create anterior de o anumita entitate, acestea nu ofera unicitate sau posibilitatea de
a stabili cand a fost produs un mesaj. Doar aceste tehnici nu pot detecta reutilizarea
mesajelor, ceea ce este necesar n anumite aplicatii n care mesajele vechi pot fi folosite
de atacatori pentru a manipula anumite instante ale unor protocoale. Cu toate acestea,
tehnicile de autentificare a mesajelor pot fi mbunatatite pentru a oferi si proprietati
suplimentare.
Figura 6.1: Trei modalitati de a furniza integritatea datelor prin functii hash
6.6 Metode pentru asigurarea integrit
atii datelor 101
Exemplu 6.6.6 In schimbul de doua sau mai multe mesaje ntre doua entitati, auten-
tificarea tranzactiei asupra fiec
aruia din mesaje (cu exceptia primului) poate fi asigurata
prin includerea unui numar aleator n mesajul ce contine MAC-ul, numar aleator generat
de cealalta 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 cal-
culeaza 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 va-
loarea 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
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 nece-
sar 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 prote-
jarea 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 trans-
misa printr-un canal independent care ofera autentificarea originii datelor. Destinatarul
102 Capitolul 6. Functii hash si integritatea datelor
calculeaza valoarea hash pentru datele primite si o compara cu cea primita pe canalul au-
tentic. Daca cele doua valori sunt identice mesajul este acceptat ca fiind integru. Aceasta
corespunde situatiei din figura 6.1(c). Exemple de aplicatii includ protectia software-ului
mpotriva virusilor si distributia software-ului si a cheilor publice prin retele nesigure.
In schemele de semnatura digitala cum este RSA mesajul semnat este transmis n clar
printr-un canal nesigur iar semnatura asupra valorii hash reprezinta canalul autentic.
Capitolul 7
Semn
aturi digitale
7.1 Introducere
Semnatura digitala este un mecanism de securitate ce utilizeaza criptografia asimetrica
pentru a oferi echivalentul digital pentru semnatura de mana. Semnatura digitala a unui
mesaj este un numar ce depinde de un anumit secret cunoscut doar de semnatar si de
continutul mesajului semnat. Semnaturile trebuie sa fie verificabile; daca apar dispute
n legatura cu cine este semnatarul unui document (ceea ce se poate ntampla ori prin
repudierea semnaturii de catre semnatarul real ori prin revendicarea de catre o entitate a
unei semnaturi produsa de altcineva), un tert de ncredere trebuie sa fie capabil sa rezolve
disputa, fara sa fie nevoie de accesul la informatia secreta a semnatarului (cheia privata).
Semnaturile digitale au multe aplicatii n securitatea informatiei, incluzand autenti-
ficarea, integritatea datelor si non-repudierea. Una din cele mai importante aplicatii a
semnaturilor digitale este n certificarea cheilor publice n retele mari. Certificarea este un
mijloc prin care un tert de ncredere leaga identitatea unui utilizator de o cheie publica,
n asa fel ncat ulterior, alte entitati pot autentifica o cheie publica fara ajutorul tertului
de ncredere.
Conceptul si utilitatea semnaturilor digitale a fost recunoscut nainte ca sa existe o
realizare practica. Conceptul de semnatura digitala a fost introdus de Diffie si Hellman
n 1976 [33], [34]. Prima metoda descoperita a fost schema de semnatura RSA [111], care
ramane si pana n ziua de astazi una din cele mai bune tehnici. Cercetarile ulterioare
au dus la gasirea multor alte tehnici alternative pentru semnatura digitala. Unele ofera
avantaje importante fata de RSA n ceea ce priveste functionalitatea, implementarea
si posibilitatea de a se demonstra securitatea oferita n modele teoretice cu adversari
puternici.
103
104 Capitolul 7. Semn
aturi digitale
4. O schema de semnatur a digitala (sau mecanism) consta din algoritmul pentru ge-
nerarea semnaturii si un algoritm asociat pentru verificarea acesteia.
Notatie Inteles
M o multime de elemente numita spatiul mesajelor
MS o multime de elemente numita spatiul de semnare
S o multime de elemente numita spatiul semnaturilor
R o functie injectiva de la M la MS numita functia de
redundanta
MR imaginea lui R
1
R inversa functiei R
R o multime de elemente numita multimea de indexare
pentru semnare
h o functie one-way cu domeniul M
Mh imaginea lui h
(a) Se selecteaz
a un element k R.
(b) Se calculeaz
ame = h(m) si s = SA,k (m).
e
(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.
Algoritm 7.2.4 (Generarea cheilor pentru schemele de semn atura digitala cu recupera-
rea mesajului) Fiecare entitate si creez
a o cheie privata pentru a fi folosita n procesul de
semnare si o cheie publica asociat a pentru a fi utilizata la verificarea semnaturii.
(a) Se selecteaz
a un element k R;
(b) Se calculeaz
ame = 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 dispo-
zitia tuturor celor care doresc sa verifice semnatura.
e = VA (s ).
2. Se calculeaza m
3. Se calculeaza m = R1 (m).
e
Valoare s este o semnatura valida pentru mesajul m si a fost creata fara a cunoaste
multimea functiilor de semnare SA .
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.
1. atacuri doar cu cheia - n aceste atacuri adversarul cunoaste doar cheia publica a
semnatarului.
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.
numere prime distincte alese n mod aleator. Securitatea acestei scheme de semnatura di-
gitala 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 dimen-
siune.
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.
(a) Se calculeaz
ame = R(m) [0, n 1].
(b) Se calculeaz e d mod n.
as=m
(c) Semnatura lui A asupra mesajului m este s.
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 dimen-
siune.
2. Se calculeaz
a n = pq.
3. Cheia publica este n iar cheia privata este perechea (p, q).
(a) Se calculeaz
ame = R(m).
(b) Se calculeaz
a rad
acina patrat
a s a lui m
e mod n.
(c) Semnatura pentru m este s.
Remarca 7.4.5 La fel ca si pentru semnatura RSA si aici este important ca functia de
redundant
a sa fie aleas
a n asa fel nc
at securitatea schemei de semnare sa fie asigurat a.
O alegere incorect a a acestei functii poate duce la falsificare existential
a asa cum se poate
deduce din exemplul 7.4.6.
Algoritm 7.4.7 (Generarea cheilor pentru schema de semnatur a digitala ElGamal) Fi-
ecare entitate si creeaz
a o cheie publica si cheia privata corespunz
atoare.
2. Se selecteaz
a un numar ntreg aleator a, 1 a p 2.
a y = a mod p.
3. Se calculeaz
4. Cheia publica a lui A este (p, , y), iar cheia privata este 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
a s = k 1 {h(m) ar} mod (p 1).
(d) Se calculeaz
(e) Semnatura mesajului m este perechea (r, s).
112 Capitolul 7. Semn
aturi digitale
a un element g Zp si se calculeaz
(a) Se selecteaz a = g (p1)/q mod p.
(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
(a) Se selecteaz
a un ntreg aleator secret k, 0 < k < q.
a r = (k mod p) mod q.
(b) Se calculeaz
a k 1 mod q.
(c) Se calculeaz
a s = k 1 {h(m) + ar} mod q.
(d) Se calculeaz
(e) Semnatura lui A asupra mesajului m este perechea (r, s).
1. Se selecteaz
a doua numere prime p si q.
3. Se selecteaz
a un numar ntreg aleator a, astfel nc
at 1 a q 1.
114 Capitolul 7. Semn
aturi digitale
a y = a mod p.
4. Se calculeaz
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
ame = R(m).
(b) Se selecteaz
a un numar ntreg secret aleator k, 1 k q 1 si se calculeaz
a
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).
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
2. Functile f si g (pe care le cunoaste doar A) alese astfel ncat g(SB (f (m))) = SB (m).
f se numeste functia de orbire, g se numeste functia de dez-orbire iar f (m) este
mesajul orbit. Aceasta proprietate impune multe restrictii asupra functiilor SB si
g.
Exemplu 7.5.2 (Functie de orbire bazat a pe RSA) Fie n = pq produsul a doua numere
prime mari aleatoare. Algoritmul de semnare pentru entitatea B este schema de semnatura
RSA cu cheia publica (n, e) si cheia privata d. Fie k un ntreg fixat a.. cmmdc(n, k) = 1.
Functia de orbire f : Zn Zn se defineste f (m) = m k e mod n iar functia de dez-
orbire se defineste prin g(m) = k 1 m mod n. Cu aceste alegeri pentru f , g si SB avem,
g(SB (f (m)) = g(SB (m k e mod n)) = g(md k mod n) = md mod n = SB (m).
Protocol 7.5.3 (Protocolul de semnare oarb a Chaum [23]) Acest protocol foloseste func-
tiile f , g si mecanismul de semnare prezentate n exemplul 7.5.2. Transmitatorul A
primeste de la B semnatura pentru un mesaj orbit. Din aceast
a semnatur
a A claculeaz a
semn atura lui B asupra unui mesaj m ales la nceput, 0 m n 1. B nu va sti care
este mesajul pe care l-a semnat.
1. Notatie: cheia publica RSA a lui B este (n, e) iar cheia privata este d. k este un
numar ntreg aleator secret ales de A si care satisface relatia 0 k n 1 si
cmmdc(n, k) = 1.
2. Actiunile protocolului:
7.5.2 Semn
aturi digitale incontestabile
In semnaturile inconstestabile este nevoie de implicarea semnatarului n protocolul de
verificare. Prezentam n continuare doua exemple n care acest tip de semnatura poate fi
aplicat.
Exemplu 7.5.4 Entitatea A (clientul) vrea sa obtin a acces la o zona securizata controlat
a
de o entitate B (banca). Zona securizat a ar putea fi un seif. B i cere lui A s
a semneze un
mesaj care contine data si ora nainte de ai permite accesul. Daca A foloseste o schema
de semnatur a digitala incontestabila, atunci B nu poate dovedi (ulterior) altcuiva ca A a
folosit seif-ul far
a ca A sa fie implicat n acest proces de verificare a semnaturii.
Algoritm 7.5.6 (Algoritmul de generare a cheilor pentru algoritmul 7.5.7) Fiecare enti-
tate A genereaz
a cheile n felul urmator:
1. Se selecteaz
a un numar prim p = 2q + 1, unde q este un numar prim.
3. Se selecteaz a y = a
a un numar ntreg aleator a {1, 2, . . . , q 1} si se calculeaz
mod p.
4. Cheia publica a lui A este (p, , y), iar cheia privata este a.
1
a w = (z)a
(d) A calculeaz mod p (unde aa1 1 mod q) si trimite w lui B.
a w0x1 x2 mod p si accept
(e) B calculeaz a semnatura daca si numai daca w = w0 .
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
Protocolul IP
Internetul poate fi definit ca o retea de retele, care utilizeaza suita de protocoale TCP/IP.
Incepand cu 1982, cel mai utilizat protocol Internet a fost IPv4 (Internet Protocol ver-
siunea 4). Din 1995, IETF (Internet Engineering Task Force), care dezvolta protocoale
standard pentru Internet, a emis o specificatie pentru noua generatie de IP, numita IPng
sau IPv6. La nivel abstract, Internetul este foarte asemanator cu reteaua telefonica. Dar,
daca n cazul retelei telefonice pentru fiecare convorbire se aloca un circuit separat, n
cazul Internetului mai multe procese folosesc n comun aceleasi legaturi dintre calcula-
toare. Datele sunt trimise sub forma unor blocuri de caractere, numite datagrame sau
pachete. Fiecare pachet este prefatat de un mic ansamblu de octeti, numit header (an-
tet), urmat de datele propriu-zise ce formeaza continutul pachetului (tabelul A.2). Dupa
sosirea la destinatie, datele transmise sub forma unor pachete distincte sunt reasamblate
n unitati logice de tip fisier, mesaj. Internetul comuta pachetele pe diferite rute de la
sursa la destinatie, numindu-se retea cu comutare de pachete.
Campurile unui antet pentru IPv4 sunt:
Se poate considera ca IP este un protocol scalabil, adica, lucreaza la fel de bine n cadrul
unei retele dintr-un birou de pana la 10 statii sau n cadrul unei retele mari cu sute de statii
sau n cadrul unei retele nationale sau internationale cum este Intenet-ul. Calculatoarele
conectate la o retea se numesc, n general, host-uri (calculatoare gazda). Conectarea ntre
retele se face prin rutere, care folosesc tabele de rutare pentru a determina pe ce trasee
sa trimita pachetele.
Adresarea n Internet
Fiecare interfata a unui calculator catre o retea IP primeste un numar de identificare unic
de 32 de biti care este adresa sa. Adresa este exprimata cel mai adesea sub forma unui
set de 4 numere de 8 biti, de exemplu 192.168.1.10. O adresa IPv4 este formata din patru
numere zecimale a.b.c.d, fiecare cuprins ntre 0 si 255 pentru a putea fi reprezentat pe
8 biti. Teoretic, adresa IP de 32 de biti poate referi maxim 232 calculatoare legate n
Internet. Practic, numarul total de calculatoare ce pot fi conectate este mult mai mic,
datorita modului n care aceste adrese sunt atribuite. Organizatiilor li se atribuie blocuri
de adrese, asa cum companiile de telefonie atribuie cate un cod pentru fiecare localitate sau
regiune. Noul protocol IPv6 furnizeaza un spatiu de adrese mult mai mare pentru host-uri
si retele (2128 ) datorita sistemului de adresare pe 128 de biti. In schema de adresare clasica
exista 5 tipuri de adrese IP. Cei mai semnificativi biti ai adresei definesc clasa de retea
careia i apartine adresa. Ceilalti biti sunt divizati ntr-o parte ce desemneaza reteaua si
o alta specifica host-ului.
121
Clasa 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 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.
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 for-
matele 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 Pro-
tocol), 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:
Furtul conexiunilor a fost folosit pentru a obtine controlul asupra unor sesiuni des-
chise.
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.
Ethernet. Posibilitatea interceptarii este ridicata, aceste retele fiind de tip broad-
cast, ceea ce asigura accesul tuturor calculatoarelor la cadrele transmise.
123
Linii telefonice. Posibilitatea interceptarii este medie, deoarece este nevoie de co-
operare cu compania de telefoane sau un acces fizic la liniile telefonice. La modem-
urile de mare viteza, interceptarea devine mai dificila, datorita folosirii mai multor
frecvente.
Microunde si radio. Posibilitatea interceptarii radio este ridicata, fiind prin definitie
un mediu de tip broadcast care poate fi interceptat de oricine.
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 Inter-
net, 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.
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:
124
125
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.
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 ges-
tionata 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.
A doua modalitate simplifica problema gestiunii cheilor, din moment ce trebuie stocat
n siguranta doar o singura cheie publica (aici prin securitate se ntelege integritatea
datelor). Pe de alta parte fiecare cheie publica a serverelor trebuie sa fie certificata n
126 Anexa B. Protocolul de login la distant
a Secure Shell (SSH)
amprenta(cheie) = H(cheie)
unde, H este o functie hash criptografica, de ex. SHA-1. In cazul SHA-1, ntreaga
amprenta are 160 de biti si prin urmare poate fi spusa la telefon sub forma a 40 de
caractere. Astfel, utilizatorul poate da un telefon administratorului serverului care i
poate confirma corectitudinea amprentei. Aici autentificarea se realizeaza prin voce si
se pleaca de la premisa ca utilizatorul si administartorul si cunosc unul altuia vocile.
Protocolul pentru schimbul de chei este initiat ntodeauna de client. Serverul asculta
pe un anumit port asteptand conexiuni. O serie de clienti se pot conecta la acelasi server.
Protocolul SSH foloseste protocolul pentru schimb de chei Diffie-Hellman pentru a
obtine cheia de sesiune.
C: clientul;
S: serverul;
q: ordinul subgrupului Gq ;
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;
2. S genereaz
a un numar aleator y (1 < y < q) si calculeaz
a
f gy mod p;
S primeste e si calculeaz
a
K ey mod p,
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,
Dupa schimbul de chei, comunicatia dintre cele doua entitati va fi criptata folosind
cheia de sesiune K. Cele doua entitati trec la executarea protocolului SSH de autentificare
a utilizatorului iar mai apoi utilizatorul de la client poate cere servicii folosind protocolul
SSH de conxexiune.
Strategia SSH
Unul din obiectivele protocolului SSH este de a mbunatati securitatea prin Internet ntr-o
maniera progresiva. Posibilitatea clientului de a folosi orice metoda pentru verificarea au-
tenticitatii cheii publice a serverului demonstreaza strategia SSH de implementare rapida
si suportul pentru compatibilitate cu versiuni anterioare.
Inainte de a exista o infrastructura de chei publice pe Internet, securitatea mbuna-
tatita a SSH nu trebuia sa fie una foarte puternica. Solutia simplu de folosit si usor de
implementat este un atuu important al SSH si este motivul pentru care a fost implementat
pe scara larga si folosit pe serverele UNIX si Linux.
Din acest exemplu real de tehnica de autentificare putem observa ca criptografia cu
chei publice permite realizarea unor solutii simple. Cheia serverului prin mediul nesigur
exista doar sub forma de cheie publica, asa ca gestiunea acestei componente devine mult
mai simpla. Problema devine mult mai complicata daca protocolul se bazeaza pe tehnici
criptografice simetrice.
Anexa C
SSL si TLS
Transport Layer Security (TLS) si predecesorul sau, Secure Sockets Layer (SSL) [43], [58],
sunt protocoale criptografice care ofera posibilitatea realizarii de comunicatii sigure prin
Internet pentru web, e-mail, Internet fax si pentru alte transferuri de date. Intre SSL 3.0
si TLS 1.0 [31] exista anumite deosebiri, dar n esenta protocolul ramane acelasi. Proto-
colul 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 m-
piedicata ascultarea liniilor, modificarea datelor si falsificarea mesajelor. TLS ofera au-
tentificare la capetele unei comunicatii si confidentialitatea comunicatiilor prin Internet.
De regula, doar serverul se autentifica - clientul ramanand neautentificat; astfel utiliza-
torul 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 am-
bele capete (autentificare mutuala) ambele entitati implicate n procesul de comunicare
primesc asigurari n legatura cu entitatea cu care comunica. Pentru realizarea autentifi-
carii 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:
128
129
ficat;
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 pen-
tru 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 com-
prima 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 de-
compresia, 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 pen-
tru 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.
Generarea secretelor de sesiune din secretul master prin schimbul de valori aleatoare.
Canalul sigur stabilit este transmis protocolului TLS Record pentru a procesa
comunicatiile de la nivelul de aplicatie.
130 Anexa C. SSL si TLS
Aceste operatii sunt realizate prin schimbul a patru mesaje descrise mai jos. Aici, pen-
tru 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.
1. C S: ClientHello;
4. S C: ServerFinished.
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 fap-
tul 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 me-
sajul ClientCertificate ori mesajul de alerta NoCertificate. Continutul mesajului Clien-
tKeyExchange 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
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 de-
taliile cartii de credit, titlul cartii si adresa la care va fi livrata.
Concluzii
133
List
a de tabele
134
List
a de figuri
6.1 Trei modalitati de a furniza integritatea datelor prin functii hash . . . . . . 100
135
136 BIBLIOGRAFIE
Bibliografie
[1] ISO/IEC 117700-2. Information technology - security techniques - key management
- part 2: Mechanisms using symmetric techniques. Technical report, International
Organization for Standardization, Geneva, Switzerland, 1996. first edition.
[2] FIPS 186. Digital signature standard. Technical report, Federal Information Pro-
cessing Standards Publication 186, U.S. Department of Commerce/ N.I.S.T., Na-
tional 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 di-
rectory: Authentication framework (equivalent to itu-t rec. x.509, 1993). Technical
report, International Organization for Standardization, Geneva, Switzerland, 1995.
[7] M. Abadi and P. Rogaway. Reconciling two views of cryptography (the compu-
tational 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 Dis-
tributed 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.
[11] C. Adams and S. Farrell. Internet X.509 Public Key Infrastructure Certificate Man-
agement 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. Sher-
man, 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
[27] R.A. Croft and S.P. Harris. Public-key cryptography and re-usable shared secrets.
Criptography and Coding, pages 189201, 1989.
[28] D.E. Denning and G.M. Sacco. Timestamps in key distribution protocols. Commu-
nications of the ACM, 24(8):533536, 1981.
[30] Yvo Desmedt. Society and group oriented cryptography: A new concept. In Carl
Pomerance, editor, Proc. CRYPTO 87, pages 120127. Springer-Verlag, 1988. Lec-
ture Notes in Computer Science No. 293.
[31] T. Dierks and C. Allen. The TLS protocol version 1.0. RFC2246, January 1999.
http://www.ietf.org/rfc/rfc2246.txt.
[32] W. Diffie. The first ten years of public-key cryptography. Proc. IEEE, 76(5):560
577, May 1988. Reprinted in Simmons collection.
[34] W. Diffie and M.E. Hellman. New directions in cryptography. IEEE Transactions
on Information Theory, 22(6):644654, 1976.
[35] W. Diffie, P.C. Van Oorschot, and M.J. Wiener. Authentication and authenticated
key exchanges. Designs, Codes and Cryptography, 2:107125, 1992.
[36] D. Dolev and A. C. Yao. On the security of public key protocols. In Proc. 22nd
IEEE Symp. on Foundations of Comp. Science, pages 350357, Nashville, 1981.
IEEE.
[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. INERNET-
DRAFT, November 1996. draft-freier-ssl-version3-02.txt.
[45] T. El Gamal. A public key cryptosystem and a signature scheme based on discrete
logarithms. IEEE Trans. Inform. Theory, 31:469472, 1985.
[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.
[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.
[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 Cryptology-
EUROCRYPT 89 (LNCS 434), pages 2937, 1990.
[56] C.G. G
unther. An identity-based key-exchange protocol. Advances in Cryptology-
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.
[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.
[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, Septem-
brie 1993. www.ietf.org/rfc/rfc1510.txt.
[66] Alan G. Konheim. Cryptography, A Primer. John Wiley and Sons, New York, 1981.
[67] D.W. Kravitz. Digital signature algorithm. Technical report, U.S. Patent #
5,231,668, 27 Jul 1993.
[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
[72] Wenbo Mao. Modern Cryptography: Theory and Practice. Prentice Hall PTR, New
Jersey, 2004. ISBN 0-13-066943-1.
[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.
[82] A. Mitropoulos and H. Meijer. Zero knowledge proofs - a survey. Technical Report
90-IR-05, Queens University at Kingston, Kingston, Ontario, Canada, 1990.
[87] R.M. Needham and M.D. Schroeder. Using encryption for authentication in large
networks of computers. Communications of the ACM, 21:993999, 1978.
[89] K. Nyberg and R. Rueppel. A new signature scheme based on the DSA giving
message recovery. In Proc. of the First ACM Conference on Computer and Com-
munications Security (ACM CCS 1993), pages 5861. ACM Press, 1993.
[90] Tatsuaki Okamoto. Provably secure and practical identification schemes and corre-
sponding signature schemes. In Ernest F. Brickell, editor, Proc. CRYPTO 92, pages
3153. Springer-Verlag, 1992. Lecture Notes in Computer Science No. 740.
[91] P.C. Van Oorschot. Extending cryptographic logics of belief to key agreement proto-
cols (extended abstract). In Proceedings of the First ACM Conference on Computer
and Communications Security, pages 232243, 1993.
[93] Horea Oros. Controlul accesului utilizand protocoale de securitate. Referat doctoral,
Universitatea Babes-Bolyai, Cluj-Napoca, Martie 2008.
[94] Horea Oros. Protocoale de securitate distribuite. PhD thesis, Universitatea Babes-
Bolyai, Cluj-Napoca, Iunie 2009.
[95] Horea Oros and Florian Boian. Spi calculus analysis of Otway-Rees protocol. Inter-
national Journal of Computers, Communications & Control, III(S.):427432, May
2008.
[96] Horea Oros and Florian M. Boian. Challenge-response entity authentication tech-
niques. Submitted to KEPT 2009, March 2009.
[97] Horea Oros and Constantin Popescu. Using the SSL protocol to protect online
business. In Proceedings of the 4th European Conference on E-commerce (E-COMM-
LINE 2003), pages 269276, Bucharest, Romania, September 25-26 2003.
[98] Horea Oros and Constantin Popescu. A fair offline electronic cash system with
anonymity revoking trustee. In Proceedings of the International Conference on
Theory and Applications of Mathematics and Informatics - ICTAMI 2004, ACTA
BIBLIOGRAFIE 143
[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.
[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 Sympo-
sium in Security and Privacy, pages 174187. IEEE Computer Society Press, 1996.
[117] C. P. Schnorr. Efficient identification and signatures for smart cards. In G. Bras-
sard, editor, Proc. CRYPTO 89, pages 239252. Springer, 1990. Lecture Notes in
Computer Science No. 435.
[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.
[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, Mas-
sachusetts, 1995. Second printing.