You are on page 1of 76

Tehnici Avansate

de Criptografie si Securitatea de Criptografie si Securitatea


Informatiei
Varianta Preliminara 2011 !!!
Bibliografie centrala (in ordinea aproximativa a
aparitiei in slideuri)
[1] Bogdan Groza, Introducere in criptografia cu cheie publica, 136 pagini, ISBN
978-973-625-564-9, 2007.
[2] Bogdan Groza, Constructii criptografice hibride, bazate pe tehnici simetrice si
asimetrice - aplicatii in sisteme de conducere, 132 pagini, ISBN 978-973-625-
688-2, 2008.
22
688-2, 2008.
[3] Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, Handbook of Applied
Cryptography, CRC Press, 816 pages, ISBN 0849385237 , 1996.
[4] Bruce Schneier, Applied Cryptography, John Wiley & Sons, 784 pages, ISBN
0471117099 , 1996.
[5] Wenbo Mao, Modern Cryptography:Theory and Practice, 648 p., ISBN13:
9780130669438, ISBN10: 0-13-066943-1, Prentice Hall, 2003.
[6] Ross Anderson, Security Engineering - A Guide to Building Dependable
Distributed Systems, Wiley, 640 p., ISBN 0-471-38922-6, 2001.
[7] Matt Bishop, Computer Security: Art and Science, 1136 p., Addison-Wesley
Professional, ISBN-10: 0201440997, ISBN-13: 978-0201440997, 2002.
[8] Peter Thorsteinson, G. Gnana Arun Ganesh, .NET Security and Cryptography, 496
pages, Prentice Hall (August 28, 2003), ISBN-10: 013100851X, ISBN-13: 978-
0131008519
[9] Brian A. LaMacchia, Sebastian Lange, Matthew Lyons, Rudi Martin, Kevin T. Price,
.NET Framework Security, Addison Wesley, 2002, ISBN : 0-672-32184-X, 816 p.
[10] Franois Koeune, and Franois-Xavier Standaert. A Tutorial on Physical Security
3
[10] Franois Koeune, and Franois-Xavier Standaert. A Tutorial on Physical Security
and Side-Channel Attacks, Foundations of Security Analysis and Design III :
FOSAD 2004/2005, Volume 3655 of Lecture Notes in Computer Science, pages 78-
108, November 2006
[11] Kerstin Lemke , Christof Paar, Marko Wolf et al., Embedded Security in Cars:
Securing Current and Future Automotive IT Applications, 273 pages, Springer; 1
edition (December 7, 2005), ISBN-10: 3540283846, ISBN-13: 978-3540283843.
[12] Donggang Liu, Peng Ning, Security for Wireless Sensor Networks, 212 pages,
Springer; 1 edition (November 9, 2006), ISBN-10: 0387327231, ISBN-13: 978-
0387327235
[13] Praphul Chandra, Bulletproof Wireless Security (GSM, UMTS, 802.11 and
AdHoc Security), ISBN: 0-7506-7746-5, Elsevier, 2005.
Curs 1. Securitatea Informatiei: Produs sau
Nota: Slide-urile contin doar informatie complementara si/sau
redundanta cu bibliografia obligatorie prezentata in orele de curs
Curs 1. Securitatea Informatiei: Produs sau
Proces? Obiective de securitate. Tipuri de
adversari si de atacuri
Bibliografie obligatorie:
Capitolul 1 din [1] Bogdan Groza, Introducere in criptografia cu cheie publica, 136
pagini, ISBN 978-973-625-564-9, 2007.
Capitolul 2 din [2] Bogdan Groza, Constructii criptografice hibride, bazate pe tehnici
simetrice si asimetrice - aplicatii in sisteme de conducere, 132 pagini, ISBN 978-
973-625-688-2, 2008.
Ce este securitatea informatiei (sistemelor informatice)
Definitie: Securitatea Sistemelor Informatice nseamn protecia sistemelor
informatice mpotriva accesului neautorizat sau a modificrii informaiei, fie
stocat, procesat sau n tranzit, i mpotriva refuzului de servicii ctre
utilizatorii autorizai sau asigurrii de servicii ctre utilizatorii neautorizai,
incluznd acele metode necesare detectrii, documentrii i respingerii
acestor ameninri.
Security is a process, not a product
5
Securitatea este un mod de a gandi asupra unei probleme
Cateva intrebari fundamentale pentru a asigura securitatea unui sistem:
Cum ajunge adversarul la sistem? Care sunt obiectivele de securitate care
trebuie asigurate n sistem? Care este nivelul de securitate la care trebuie s
rspund sistemul? Ce trebuie protejat? Care sunt ameninrile i
vulnerabilitile? Care sunt implicaiile n cazul distrugerii sau pierderii
echipamentului? Care este valoarea echipamentului pentru organizaie? Ce
poate fi fcut pentru a minimiza expunerea la pericole? Etc.
Cum sa rezolvi o problema cu atatea intrebari: nicio problema nu rezista
unei abordari riguroase!
Un punct de plecare pentru o abordare riguroasa
Ecuatie fundamentala in securitate:
6
Vulnerabilitate + Adversar => Risc de Securitate
Rezolvarea ecuatiei este in general un trade-off intre riscurile
de securitate
Cadrul de lucru
7
Motivatia pentru a asigura securitate
Incidentul de securitate, cauzat de faptul ca exista
adversari si vulnerabilitati, amploarea lui
8
Evolutia cauzelor in incidente de securitate
9
Justificare pentru evolutia cauzelor in incidente
Evolutia de la securitate prin obscuritate la standarde (ratiuni
economice)
Evolutia de la perimetre inchise la perimetre deschise (trecerea
10
Evolutia de la perimetre inchise la perimetre deschise (trecerea
la sisteme distribuite pe scara larga)
Principii perimate: securitate prin obscuritate, perimetre sigure
Vulnerabilitatea se raporteaza la obiectivele de
securitate
In trecut: triada CIA (Confidentiality, Integrity, Availlability), tetrada PAIN (Privacy, Availlability-
Authentication, Integrity, Non-repudiation)
In prezent, in multe carti de criptografie apar ca obiective fudamentale:
Confidenialitatea - faptul c informaia rmne accesibil doar prilor autorizate
Integritatea - informaia nu a fost alterat
Autentificarea - dou coordonate distincte: autentificarea entitilor i autentificarea
informaiei
11
informaiei
Non-repudierea - previne o entitate n a nega o aciune ntreprins
Alte obiective:
Actualitatea - informaia primit este proaspt
Anonimitatea - mpiedicarea identificrii identitii unei entiti care a solicitat un serviciu
Autorizarea - controlul accesului i la prevenirea intrrii agenilor neautorizai n sistem
Disponibilitatea - asigurarea faptului c un serviciu este accesibil atunci cnd un utilizator
legitim l solicit
Protecia prilor tere - evitarea transmiterii pericolului asupra prilor cu care exist o
legtur
Revocarea - posibilitatea de a retrage un drept oferit
Trasabilitatea - posibilitatea de a reconstrui istoricul funcionrii sistemului
Adversari (exemple)
Intereseaza diverse caracteristici: putere de calcul, putere
financiara, motivatie
Exemple de adversari
Hackerii: resurse de calcul i financiare sczute, motivai de dorina a
brava sau pentru amuzament.
Clienii unei reele: putere de calcul limitat, motivai de interese
12
Clienii unei reele: putere de calcul limitat, motivai de interese
economice
Comercianii: putere de calcul modest, resurse financiare
apreciabile, interese financiare
Crima organizat: putere de calcul modest, putere financiar
ridicat, interese financiare.
Teroritii: putere ridicat de calcul i financiar fiind, motivai de
raiuni politico-religioase
Guverne: putere de calcul i financiar ridicat, interese strategice.
Oamenii din sistem: motivai n general de interese financiare.
Cel mai periculos adversar
Combinaii ale variantelor anterioare
13
Combinaii ale variantelor anterioare
Tipuri de atac asupra canalului de comunicare
Atacuri pasive: citirea mesajelor i analiza de trafic
14
Atacuri active: modificarea informaiei, impostura,
retransmisie, ntreruperea legturii
Ce este criptografia
Criptografia nseamn comunicare n prezena adversarilor - Ron Rivest
15
Criptografia nseamn comunicare n prezena adversarilor - Ron Rivest
Intr-un sens mai strict, domeniul se numeste criptologie si inseamna criptografie
(constructia codurilor) si criptanaliza (spargerea codurilor)
Context istoric
Evolutie in 4 etape relevante:
i. Preistoria: utilizata inca de acum mii de ani (greu
de spus ca atunci s-a nascut criptografia pentru
ca sistemele folosite era rudimentare) ca sistemele folosite era rudimentare)
ii. Renasterea: Inregistreaza o usoara crestere in
perioada renasterii (de ex. Sistemul Vigenere)
iii. Al 2-lea razboi mondial: Crestere relevanta (de
ex. Enigma), dar si in deceniile premergatoare
(Kerckhoff). Lucrari fundamentale ale lui Shannon
si Turing
iv. O crestere spectaculoasa in ultimii 30-40 de ani
iii) si iv) au ca vector comunicatiile wireless
Ieri
Azi
Masina Enigma (studiu de caz clasic)
18
Circuit din wiki
Setarea cheii la enigma
3 rotoare (5 la varianta mai evoluata) care se pot aranja in orice
ordine (sus)
26 de variante de a aseza fiecare rotor
19
26 de variante de a aseza fiecare rotor
26 de puncte in care putea sa cupleze fiecare rotor
O tabela cu 26 litere cuplabile 2 cate 2 prin max. 13 stechere
(partea frontala)
Observatie: cablajul rotoarelor era standard produs din fabrica,
dar in principiu se putea extinde cu un cablaj custom
Cat de puternica este Enigma
Una dintre masurile de baza cu privire la
securitatea unui criptosistem este dimensiunea securitatea unui criptosistem este dimensiunea
spatiului din care provibe cheia
Calculati spatiul cheilor la Enigma
Cat de slaba este Enigma
Nice question from crypt@b-it 2007 Bonn, Germany
Un alt exemplu din WW2
Frequency hopping spread spectrum
Diversi inventatori, intre titulari un nume mai interesant Hedy
Lamarr
22
Intentii de design in criptosisteme
Concepte gresite
Criptografia urmareste constructia unor functii de
criptare care nu pot fi sparte
Exista doua comunitati: a celor care construic functii Exista doua comunitati: a celor care construic functii
si a celor care le sparg (intr-o vesnica lupta)
Intentii reale:
Constructia unei functii cat mai sigure cu o cheie de
cat mai mica si cat mai eficienta computational
Curs 2, 3. Fundamente Matematice si Probleme
Computationale. Elemente de Teoria Informatiei. Elemente
de Teoria Probabilitatii. Elemente de Teoria Numerelor:
Grupul Zn*, Teoremele lui Euler si Fermat, Generatori,
Congruente polinomiale, Reziduuri cvadratice, Simboluri
Legendre si Jacobi. Calculul operatiilor elementare.
Calculul radicinilor patrate si de ordin k. Problema Calculul radicinilor patrate si de ordin k. Problema
factorizarii si a logaritmului discret. Generatoare de numere
prime
Bibliografie obligatorie:
Capitolul 3 si Capitolul 4 din [1] Bogdan Groza, Introducere in criptografia cu cheie
publica, 136 pagini, ISBN 978-973-625-564-9, 2007.
Electroni n univers:
8,37*10
77
83700000000000000000000000000000000000000000000
000000000000000000000000000000000
Numarul de pasi la complexitatea O(1) pentru n=1024
Cicluri de tact ntr-un sistem la 1000 GHz n 1000 de
ani: 1000*1000*10
9
*3*10
7
=3*10
22
3000000000000000000
Magnitudini
Vrsta sistemului nostru solar n secunde:
1,89*10
17
189000000000000000
25
Numarul de pasi la complexitatea O(1) pentru n=1024
1
Numarul de pasi la complexitatea O(n
2
) pentru n=1024
1048576
Numarul de pasi la complexitatea O(2
n
) pentru n=1024
1,79x10
308
=17900000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000
O cheie RSA de 2048 de biti
(cheie medie spre mica)
25195908475657893494027183240048398571429282126204
03202777713783604366202070759555626401852588078440
69182906412495150821892985591491761845028084891200
72844992687392807287776735971418347270261896375014
97182469116507761337985909570009733045974880842840
17974291006424586918171951187461215151726546322822
16869987549182422433637259085141865462043576798423
38718477444792073993423658482382428119816381501067
26
38718477444792073993423658482382428119816381501067
48104516603773060562016196762561338441436038339044
14952634432190114657544454178424020924616515723350
77870774981712577246796292638635637328991215483143
81678998850404453640235273819513786365643912120103
97122822120720357
Recompense oferite de RSA
pentru factorizarea unor intregi
Teoria Probabilitatilor
Evenimentul este rezultatul unui experiment
Evenimentele pot fi: independente, mutual exclusive sau
27
Evenimentele pot fi: independente, mutual exclusive sau
complementare
Paradoxul zilelor de nastere
Exercitiu: un programator doreste sa construiasc o tabela
(hashtable) in care valori sunt retinute indexat dupa chei pe k
biti. Fiecare cheie este generata aleator (sau are la baza un
hash al valorii). Dupa cate valori introduse in tabela putem
astepta o coliziune cu probabilitate mai mare de ?
Reformulare: Intr-o urma sunt m bile, care este probabilitatea
ca dupa n extrageri (cu reintroducere) sa exista cel putin 1
28
Reformulare: Intr-o urma sunt m bile, care este probabilitatea
ca dupa n extrageri (cu reintroducere) sa exista cel putin 1
coliziune
Daca definim
Probabilitatea de cel putin 1 coliziune este
Se poate demonstra ca daca atunci numarul de extrageri
pana la o coliziune este in medie
( )
1
n
n
m
m

m
( )
!
( 1)( 2)...( 1)
!
n
m
m m m m m n
n
= = +
2
m
Problema anterioara se numeste paradoxul zilelor de nastere
deoarece, in mod oarecum surprinzator, probabilitatea ca intr-o
camera cu 23 de persoane sa existe cel putin 2 persoane
nascute in aceeasi zi este aprox. iar intr-o camera cu 100 de
persoane 0.999999
Evolutia probabilitatii de coliziune la zile de nastere (grafic din
wiki)
29
Aplicatii are teoremei lui Bayes
Aplicarea teoremei lui Bayes este elementara in probleme din
categoria: daca s-a intamplat P atunci care e probabilitatea sa categoria: daca s-a intamplat P atunci care e probabilitatea sa
se intample Q
Atentie sporita la faptul ca rezultatul este de foarte multe ori
contraintuitiv (de ex. paradoxul cutiilor)
30
Teoria Complexitii
Obiectiv: clasificarea problemelor in funcie de resursele necesare
calculului
31
calculului
Rspunde la ntrebarea: Ct timp de calcul i ct memorie este
necesar pentru rularea algoritmului pe msur ce dimensiunea
datelor de intrarea crete?
Caracterizarea nu trebuie sa depind de un model computaional (de
sistemul pe care ruleaz algoritmul) ea trebuie s ofere un model
abstract, universal aplicabil. Altfel spus, caracterizarea trebuie sa
ofere o masura pentru dificultatea intrinsec a unei probleme.
Ce este un algoritm algoritm
Un algoritm este un set bine definit de pasi pentru rezolvarea unei probleme. Atfel spus,
un algoritm este ansamblul de pai prin care un set de date de intrare este transformat
intr-un set de date de ieire n scopul rezolvrii unei probleme.
Ce este o problem
O problem este o mulime nevid de ntrebri ntre care exist o relaie. Pot fi una
sau mai multe ntrebri dar este obligatoriu ca ele s aib o dimensiune finit.
Exemplu de problem. Factorizarea unui ntreg: avnd un ntreg n care este produsul
a exact dou numere prime s se afle numerele prime p, q care nmulite dau n.
32
Dimensiunea intrrii n
Complexitate de timp T=F(n) numrul de pai ai algoritmului necesari pentru a rezolva
problema ca funcie de dimensiunea intrrii.
Complexitate de spatiu S=F(n) memoria necesar pentru a rezolva problema ca funcie
de dimensiunea intrrii.
Observaie: Prin complexitatea unei probleme (adeseori folosim ca sinonim dificultatea
problemei) se nelege complexitatea de timp i spaiu a celui mai eficient algoritm pentru
problema respectiv.
Variabile i Functii n caracterizarea complexitii
intr-un set de date de ieire n scopul rezolvrii unei probleme.
Exemplu de algoritm. Pentru rezolvarea problemei factorizrii ntregului de mai sus se
poate folosi urmatorul algoritm: Pentru toi ntregii i de la 2 la n/2 verifica daca i divide n.
Notatii Asimptotice (Indicatori de Performanta)
Limita asimptotica superioara (Semnificaie intuitiv: asimptotic f nu crete mai
repede ca g eventual multiplicat cu o constant)
( ) ( ) ( ) ( )
0
0 . . , ) ( n n n g c n f i a n c n g O n f
o
=
Limita asimptotica inferioara (Semnificaie intuitiv: asimptotic f crete mai repede
ca g eventual multiplicat cu o constant)
( ) ( ) ( ) ( )
0
, 0 . . , ) ( n n n f n g c i a n c n g n f
o
=
33
0 o
( ) ( ) ( ) ( ) ( )
0 2 1 2 1
. . , , ) ( n n n g c n f n g c i a n c c n g n f
o
=
Limita asimptotica stransa (Semnificaie intuitiv: o funcie care este att limit
inferioar ct i superioar)
Indicatorul o si sau limitele superioare i inferioare absolute (Semnificaie
intuitiv: asimptotic f crete/nu crete mai repede ca g multiplicat cu orice
constant)
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
0
0
0 . . ) (
0 . . ) (
n n n f n g c c i a n n g n f
n n n g c n f c i a n n g o n f
o
o
< =
< =

Relaii elementare ntre indicatori (Se pot


demonstra direct din definiile acestora).
( ) ( ) ( ) ( ) ( ) ( ) n f n g n g O n f = =
Atenie!!!: f =F(g(n)) nu se citeste: f egal F de g(n), corect este f este de ordinul F
al lui g(n) sau mai simplu f este F(g(n)) unde F este oricare din indicatorii , , ,
. Intuitiv semnul = nu are semnificaia semnului egal, n acest caz este echivalent
cu
34
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) tate tranzitivi n h O n f n h O n g n g O n f
ate reflexivit n f O n f
n i n h O n g f n i O n g n h O n f
n h O n g f n h O n g n h O n f
n g n f n g O n f n g n f
n f n g n g O n f
= = =
=
= = =
= + = =
= = =
= =
Relaii utile (Frecvent utilizate - trebuie tiute)
( ) ( ) ( )
k k
k
k
k
n n f a n a n a n a n f = + + + + =

0 1
1
1
...
Pentru polinoame: limita asimptotic strns a unui polinom este dat de termenul
de rang maxim
Pentru probleme de combinatoric
35
( ) ( )
n n
n n o n 2 ! ! = =
Pentru probleme de combinatoric
n
c n n n c n n
c n c n n n e n n < < < < < < < < <
ln ) ln )(ln (ln
ln ln ln 1

Pentru oricare ,c a.i. 0<<1<c
Constant O(1)
Logaritmic O(log n) - Observatie
Polilogaritmic O((log n)
c
)
Fractional O(n
c
) 0<c <1
Linear O(n)
Scurta clasificare a algoritmilor in baza
complexitatii computationale
0 ), (lg log > = c n n
c
36
Linear O(n)
Linear logaritmic O(n log n)
Patratic (sau Cuadratic) O(n
2
)
Cubic O(n
3
)
Polinomial O(n
c
), c>1 (patratic si cubic sunt polinomiale)
Superpolinomial O(c
f(n)
) ( c constanta, f nu este constant dar este mai mic
de O(n) )
Exponential O(c
f(n)
) ( c constanta, f polinom de grad 1)
Factorial (sau Combinatorial) O(n!)
Dublu Exponential O(2
c^n
)
De ce este importanta cunoasterea
complexitatii?
Pentru a stii daca ne putem astepta la un rezultat in timp util i
dac avem suficiente resurse de memorie.
Exemplu: Fie doi algoritmi de complexitate O(n) respectiv
37
Exemplu: Fie doi algoritmi de complexitate O(n) respectiv
O(2
n
). Dublarea lui n duce la dublarea timpului de calcul pentru
primul algoritm in timp ce cresterea lui n cu un singur bit duce la
dublarea timpului de calcul pentru cel de-al doilea.
Teoria Informatiei
38
Teoria Numerelor
Fundament pentru aproape toate criptosistemele cu cheie
publica
39
publica
Grupul de intregi
Definitie: Definim ca fiind multimea
resturilor modulo n.
Definitie: Definim ca fiind multimea intregilor din Z
n
relativ primi la n. In particular pentru un numar prim n avem
Remarca: formeaza un grup abelian (simbolul
.
denota inmultire)
deoarece urmatoarele proprietati sunt satisfacute:
1) Legea este asociativa pentru ca
2) Legea este comutativa pentru ca
3) Exista element neutru deoarece
( ) { }
*
| , 1
n n
Z x Z cmmdc x n = =
{ } 1 ..., 3 , 2 , 1
*
= p Z
p
( ) ,
*
n
Z
{ } { } n x N x n Z
n
< = = 0 | 1 ,..., 3 , 2 , 1 , 0
( ) ( ) n c b a c b a mod
n a b b a mod
n a a a mod 1 1
( ) ,
*
n
Z
40
3) Exista element neutru deoarece
4) Fiecare element are un invers multiplicativ (acest invers este usor de calculat
cu algoritmul Euclidian Extins)
n a a a mod 1 1
1 1
, | 1mod a a a a n


Definitie: Functia Euler pentru un intreg n a carui factorizare este
cunoscuta se poate calcula ca
( )
|
|

\
|

|
|

\
|

|
|

\
|
=
r
p p p
n n
1
1 ...
1
1
1
1
2 1

Observatie: Functia Euler reprezinta numarul de intregi mai mici decat n


si relativ primi la acesta si este ordinul grupului
( ) ,
*
n
Z
=
r
e
r
e e
p p p n ...
2 1
2 1
Teorema lui Euler
( ) *
mod 1
n
n
Z x n x

Teorema (Euler): Pentru orice intreg n supraunitar avem:


Demonstratie (a fost facuta la tabla):
41
( ) ( ) ( )
( ) ( ) ( ) * 1 1
mod 1
1 1
n
q p n
Z x n x x
q p n q p n
=
= =


In criptografie se lucreaza in general cu intregi care sunt produsul a doua
numere prime, in acest caz:
Exemplu ( ) ( ) ( )
( ) * 192
221 mod 1
192 1 17 1 13 221 17 13
n
n
Z x x x
n n
=
= = = =


1) Adunare, pentru a aduna doi intregi de l digiti in baza b sunt necesare O(l)
adunari la nivel de digit
2) Scadere, pentru a aduna doi intregi de l digiti in baza b sunt necesare O(l) scaderi
la nivel de digit
3) Inmultire, pentru a inmulti doi intregi de l respectiv t digiti in baza b sunt necesare
O(lt) inmultiri la nivel de digit
4) Impartire, pentru a imparti un intreg de l digiti la un intreg de t digiti sunt necesare
O(lt) inmultiri si O(l-t) impartiri la nivel de digit
Ce se poate calcula eficient in
( ) ,
*
n
Z
42
O(lt) inmultiri si O(l-t) impartiri la nivel de digit
5) Ridicarea la putere, pentru a ridica un intreg la puterea e sunt necesare
O(3/2lg(e)) inmultiri
6) Inverse multiplicative si cmmdc, inversul multiplicativ al unui intreg si cmmdc a
doi intregi se poate calcula cu Algoritmul Euclidean Extins, complexitate O((lgn)
2
)
7) Sistemele de congruente lineara (vezi mai jos) care respecta Teorema Chineza
a resturilor folosind algoritmul lui Gauss, complexitate O((lgn)
2
)
1 1
2 2
3
mod
mod
............
mod
k
x a n
x a n
x a n

i i i
i
i
k
i
i i i
k
i
i
n N M
n
n
N n n n M N a x mod , , , mod
1
1 1

= =
= = = =

Teorema chineza a resturilor: sistemul are solutie unica in
1
,
k
n i
i
Z n n
=
=

( , ) 1,
i j
cmmdc n n i j =
daca
Agoritmul lui Gauss: solutia sistemului este
1) Problema factorizarii intregului n (PFACT)
Pentru un intreg n,
2) Problema radacinii patrate (PRP) se poate calcula eficient daca si numai daca
se cunoaste factorizarea lui n (problema calculului radacinii patrate este
echivalenta cu problema factorizarii lui n)
Ce nu se poate calcula eficient in (I)
( ) ,
*
n
Z
1 2
1 2
1
...
k i
k
e e e e
k i
i
n p p p p
=
= =

43
Pentru un intreg x, a astfel incat x=a
2
modn
3) Problema radacinii de ordin (Problema RSA - RSAP), cmmdc(, (n))=1 : se
poate calcula eficient daca se cunoaste factorizarea lui n (Nu exista nici o
demonstratie ca aceasta problema ar fi echivalenta problemei factorizarii)
Pentru un intreg x, a astfel incat x=a

modn
4) Problema Cheilor RSA (PCRSA), pentru , cmmdc(, (n))=1, calculeaza astfel
incat =1mod (n): se poate calcula eficient daca si numai daca se cunoaste
factorizarea lui n
Problema Radacinii de ordin k in Z
n
Definim functia: ( ) n x x f Z Z f
k
n n
mod , :
*
=

Daca k este relativ prim la (n) are invers multplicativ modulo (n):
( ) n k d i a d mod 1 . .
In acest caz functia este inversabila si inversa este:
44
In acest caz functia este inversabila si inversa este:
( ) n x x f Z Z f
d
n n
mod , :
1 * 1
=

Calculul functiei inverse poate fi eficient facut daca se cunoaste factorizarea lui n,
altfel nu se cunoaste nici o metoda eficienta de extragere a radacinii
Ordinul unui element in
Definitie: Ordinul unui element a din Z
n
este cel mai mic intreg t pentru care:
t

( ) ,
*
n
Z
45
Definitie: Ordinul unui element a din Z
n
este cel mai mic intreg t pentru care:
Elementele de ordin (n) se numesc generatori ai lui Z
n
are generatori(orice element
din Z
n
poate fi scris ca putere a generatorului)
Z
n
are generatori daca si numai daca:
1mod
t
a n
2, 4, , 2
k k
n p p =
4) Problema Logaritmului Discret (PLD)
Avand , gaseste astfel incat =

mod n
Ce nu se poate calcula eficient in (II) ( ) ,
*
n
Z
In sisteme criptografice asimetrice problema logaritmului discret se foloseste
46
In sisteme criptografice asimetrice problema logaritmului discret se foloseste
pentru grupul Z
p
cand:
1) p este numar prim
2) p-1 are un divizor prim p suficient de mare
3) este generator al lui Z
p
In practica uneori se recurge la alegerea unui numar care nu este generator al lui
pentru a creste viteza de criptare/decriptare duce la scaderea nivelului de
securitate
Problema se poate generaliza pe orice grup algebric care are generatori: de
exemplu grupul format de punctele unei curbe eliptice definite pe un camp finit
5) Problema Diffie-Hellman (PDH)
Avand pe a generator in Z
p
si a

, a

gaseste-l pe a

mod p
Ce nu se poate calcula eficient in (III)
( ) ,
*
n
Z
Definitie: Spunem ca problema P
1
se reduce polinomial la P
2
daca exista un algoritm
A
1
care rezolva P
1
si care are ca subrutina un algoritm A
2
care rezolva pe P
2
iar A
1
47
(1)
(2)
(3)
(4)
(5)
(6)
(7) ? ?
(8) ?? ??
P
P
P
P
P
P
P
P
PDH PLD
PRP PFACT
PFACT PRP
PRSA PFACT
PRSAC PFACT
PFACT PRSAC
PLD PDH
PFACT PRSA

A
1
care rezolva P
1
si care are ca subrutina un algoritm A
2
care rezolva pe P
2
iar A
1
ruleaza in timp polinomial daca A
2
ruleaza in timp polinomial (se noteaza )
Cu privire la problemele introduse in slideurile (I), (II), (III) sunt valabile relatiile:
1 2 P
P P
(7) nu se stie dar se pare ca e adevarat
(8) nu se stie, cu toate ca majoritatea expertilor cad de acord ca ar
trebui sa fie adevarat, recent au aparut cateva rezultate care
arata ca s-ar putea sa nu fie adevarat
Campuri
Un grup este o multime G alaturi de o operatie binara * cu
proprietatile: * este asociativa, exista element identitate 1, si fiecare
element din G are un invers
Obs 1. Daca * este comutativ, R se numeste abelian
Un inel este o multime alaturi de doua operatii binare + si * cu Un inel este o multime alaturi de doua operatii binare + si * cu
proprietatile: R si + formeaza un grup abelian cu element identitate 0,
* este asociativ, exista element identitate fata de * notat cu 1 si 1!=0,
* este distributiv fata de +
Un camp este un inel comutativ (a*b=b*a) in care toate elementele
nenule au invers multiplicativ
Caracteristica unui camp este numarul de adunari ale elementului 1
astfel incat rezultatul sa fie 0 (sau implicit 0 in cazul adunarea lui 1 nu
conduce niciodata la 0)
48
Curbe Eliptice
2 3
y ax bx c = + +
Curbe a caror ecuatie, intr-un camp de caracteristica diferita de
2 sau 3, este:
2 3
y x x =
2 3
1 y x x = +
49
2 3
y x x =
2 3
1 y x x = +
Adunarea punctelor unei curbe
Obs 1. Daca P este O atunci P=O si P+Q=Q (i.e., P este elementul neutru)
Obs 2. -P este are aceeasi coordonata x cu P si coordonata y negativa (un
astfel de punct tot timpul exista datorita termenului y^2 din stanga ecuatiei)
Regula de adunare: Daca P si Q au coordonata x diferita, atunci dreapta
care trece prin P si Q intersecteaza curba intotdeauna in exact 3 puncte. Fie
al treilea punct R, imaginea in oglinda a acestui punct, i.e., -R, este suma lui
P cu Q P cu Q
50
Obs 3. Usor de observat ca daca P=-Q atunci
P+Q=O
Obs 4. Daca P=Q atunci dreapta este
tangenta la curba (nu schimba cu nimic
definitia adunarii)
Ce este simplu/greu de calculat
O curba eliptica poate fi definita pe un camp finit Fq
Operatia analoaga ridicarii la o putere modulo n este adunarea
punctelor de pe o curba eliptica. Adica x^k devine k*P unde P
este un punct de pe curba
Multiplicarea cu k se poate calcula eficient in maniera similara Multiplicarea cu k se poate calcula eficient in maniera similara
cu algoritmul Repeated-Square-and-Multiply prin adunari
succesive
De ex. 99P= 2(P+2*2*2*2*2(P+2*P)) +P care inseamna 3
adunari si 7 multiplicari cu 2
Folosind aceasta observatie se pot construi criptosisteme
analoage Diffie-Hellman si ElGamal
51
Curs 4,5. Functii criptografice.
Functii fara cheie: generatoare de numere
pseudo-aleatoare si functii hash. Functii cu cheie
simetrica: coduri MAC si criptari simetrice. Functii simetrica: coduri MAC si criptari simetrice. Functii
cu cheie asimetrica: criptarea cu cheie publica si
semnaturi digitale
Bibliografie obligatorie:
Capitolele 2, 5, 6 din [1] Bogdan Groza, Introducere in criptografia cu cheie publica,
136 pagini, ISBN 978-973-625-564-9, 2007.
Ce este criptografia
Criptografia nseamn comunicare n prezena adversarilor - Ron Rivest
53
Criptografia nseamn comunicare n prezena adversarilor - Ron Rivest
Intr-un sens mai strict, domeniul se numeste criptologie si inseamna criptografie
(constructia codurilor) si criptanaliza (spargerea codurilor)
Masina Enigma (studiu de caz clasic)
54
Circuit din wiki
Setarea cheii la enigma
3 rotoare (5 la varianta mai evoluata) care se pot aranja in orice
ordine (sus)
26 de variante de a aseza fiecare rotor
26 de puncte in care putea sa cupleze fiecare rotor
O tabela cu 26 litere cuplabile 2 cate 2 prin max. 13 stechere
(partea frontala)
Observatie: cablajul rotoarelor era standard produs din fabrica,
dar in principiu se putea extinde cu un cablaj custom
55
Observatie: cablajul rotoarelor era standard produs din fabrica,
dar in principiu se putea extinde cu un cablaj custom
Intrebare: Cate variante de a cupla p stechere sunt? Care este
dimensiunea spatiului cheii? Dar daca cablajul fiecarui rotor
putea fi setat? Comparati cu dimensiunea cheii de la DES,
3DES, AES.
Exista trei mari categorii de functii criptografice:
1) Functii simetrice (cu cheie secreta) utilizeaza aceeasi cheie de ambele parti.
Exemple de functii simetrice: criptari simetrice (regula de decriptare se poate deduce
usor cunoscand regula de criptare si reciproc), coduri de autentificarea a mesajelor
(MAC).
2) Functii asimetrice (cu cheie publica) utilizeaza chei diferite de partea celor doua
entitati. Exemplu de functii asimetrice: criptari cu cheie publica (cheia privata nu poate fi
calculata pe baza cheii publice nu este tot timpul adevarat si reciproc), semnaturi
digitale.
Clasificarea functiilor criptografice
56
3) Functii fara cheie - nu utilizeaza cheie (unii autori le considera functii simetrice in baza
principiului: nici o cheie inseamna aceeasi cheie de ambele parti). Exemplu de functii
fara cheie: functii hash.
Definitie (intuitiva): O functie f:XY se numeste one-way daca f(x) este usor de calculat
pentru orice xX si pentru orice yIm(f) este nefezabila gasirea unui xX astfel incat
f(x)=y
Definitie (intuitiva): O functie one-way se numeste trapdoor one-way daca exista o
informatie, numita trapdoor (trapa), in baza careia functia poate fi inversata
Observatie (intuitiva): Orice functie trapdoor one-way poate fi baza unui sistem
criptografic daca valoare trapei este cheia de decriptare si aceasta este greu de calculat
pentru un adversar respectiv usor de calculat pentru cel care o genereaza
Functii one-way si trapdoor one-way (cu trapa)
Tipuri de atac asupra functiilor criptografice
Scopul unui atac asupra unei functii criptografice este de a recupera plain-textul
din cripto-text sau de a recupera cheia secreta:
1) Criptotext cunoscut (ciphertext-only) - adversarul cunoaste doar criptotextul.
2) Plaintext cunoscut (known plaintext)- adversarul cunoaste mai multe perechi
(plaintext, ciphertext).
3) Plaintext ales (chosen plaintext) - adversarul alege plaintext-ul si primeste
57
3) Plaintext ales (chosen plaintext) - adversarul alege plaintext-ul si primeste
valoare criptotextului.
4) Plaintext ales adaptiv (adaptive chosen plaintext) - la fel ca la atacul plaintext
ales doar ca alegerea se face in functie de raspunsurile anterioare.
5) Criptotext ales (chosen ciphertext) adversarul alege criptotextul si primeste
plaintextul.
6) Criptotext ales adaptiv (adaptive chosen ciphertext) la fel ca la atacuri
criptotext ales cu observatia ca fiecare alegere se face in functie de raspunsurile
anterioare.
Functii fara cheie
Functii hash se noteaza H(x) - functie hash aplicata mesajului x. O functie hash
este o functie one-way (ireversibila) care primeste ca intrare mesaje de
dimensiune variabila si returneaza un mesaj de lungime fixa din care mesajul
initial nu poate fi recuperat, aceste primitive nu folosesc nici un fel de cheie. Cea
58
initial nu poate fi recuperat, aceste primitive nu folosesc nici un fel de cheie. Cea
mai utilizata familie de functii hash este SHA (Secure Hash Algorithm) [FIPS
180-2, 2002] pentru care dimensiunea iesirii este 224, 256, 384, 512 biti
indiferent de dimensiunea datelor de intrare.
In general fata de o functie hash se impun cerintele:
a) Rezistenta primara a imaginii (sau target collision resistance): avand H(x) gaseste
x
b) Rezistenta secundara a imaginii: avand x,H(x) gaseste x astfel incat H(x)=H(x)
c) Rezistenta la coliziune: gaseste x, x astfel incat H(x)=H(x)
Functii hash (ce se foloseste in pratica azi)
MD5 si SHA1 inca frecvente in practica, dar trebuie evitate
pentru ca au vulnerabilitati (nu mai ofera rezistenta la
59
pentru ca au vulnerabilitati (nu mai ofera rezistenta la
coliziune)
SHA2: SHA 256, SHA384, SHA 512 standardul curent, nu
se cunosc vulnerabilitati
SHA3: noul standard, competitia lansata in 2008, finalizata
in 2010, si rezultatul standardizat in 2012
Coduri de autentificare a mesajelor MAC
(Message Authentication Codes)
Coduri de autentificare a mesajelor se noteaza MAC
k
(m) - cod de autentificare a
mesajului m calculat cu cheia k).
Se construiesc peste o functie hash (in general MD5 sau SHA1, MD5 cu toate ca
60
Se construiesc peste o functie hash (in general MD5 sau SHA1, MD5 cu toate ca
ambele au un nivel de securitate destul de scazut)
Se folosesc pentru a testa autenticitatea unei informatii implica si o garantie asupra
integritatii
In practica se foloseste HMAC si NMAC propuse de Mihir Bellare, Ran Canetti, Hugo
Krawczyk in lucrarea http://www-cse.ucsd.edu/users/mihir/papers/kmd5.pdf
Functii MAC (ce se foloseste in pratica azi)
Constructille HMAC si NMAC propuse de Mihir Bellare, Ran
Canetti, Hugo Krawczyk in lucrarea http://www-
cse.ucsd.edu/users/mihir/papers/kmd5.pdf
61
cse.ucsd.edu/users/mihir/papers/kmd5.pdf
HMAC este prezenta in marea parte a limbajelor Java, .NET
Criptari simetrice
62
Criptari simetrice
Sisteme criptografice care utilizeaza aceeasi cheie sau chei usor de calculat una
pe baza celelilalte pentru criptare si decriptare (cheia este referita ca cheie
secreta)
Doua principii constructive:
1) substituia inseamna inlocuirea unor simboluri sau grupuri de simboluri prin
alte simboluri sau grupuri de simboluri - creeaz confuzie
2) transpoziia inseamna amestecarea (permutarea) simbolurilor din cadrul unui
bloc creeaz difuziune
Doua clase de criptari simetrice:
1) coduri bloc - algoritmi de criptare care impart mesajul ce trebuie criptat in
63
1) coduri bloc - algoritmi de criptare care impart mesajul ce trebuie criptat in
blocuri de dimensiune fixa l si cripteaza un bloc la un momemt dat
2) coduri stream -algoritmi de criptare pentru care cripteaza caracter cu caracter
(practic lungimea blocului este 1, si transformarea de criptare se poate modifica
pentru fiecare caracter)
Exemplu: Codul Vernam (sau one-time pad) este un cod stream care presupune
utilizarea unei chei aleatoare k de aceeasi dimensiune cu a mesajului m, criptotextul
c este c
i
= m
i
XOR k
i
(se face XOR bit cu bit intre mesaj si cheie) (cheia nu poate fi
reutilizata pentru transmiterea altui mesaj)
Observatie: Se poate demonstra ca un sistem criptografic perfect, care sa nu poata fi
spart, necesita o cheie aleatoare de aceeasi dimensiune cu a mesajului
Reteaua Feistel si DES (primul standard in
criptografia simetrica)
Codul Feistel este primul criptosistem simetric modern, marea parte a
criptosistemelor simetrice contemporane urmeaza principiile codului Feistel (retea
Feistel)
Reteaua Feistel aplica urmatoarele transformari asupra plaintext-ului: permutari (P-
boxes) pentru a crea difuzie, substitutii, pentru a crea confuzie (S-boxes) si operatii
pe biti (XOR) in http://en.wikipedia.org/wiki/Feistel (in general este necesar un minim
de 16 runde pentru securitate adecvata).
Principii generale in reteaua Feistel: cu cat dimensiunea blocului, a cheii si numarul
64
Principii generale in reteaua Feistel: cu cat dimensiunea blocului, a cheii si numarul
de runde creste, creste si securitatea respectiv scade viteza de criptare/decriptare,
iar daca scad, scade si securitatea respectiv creste viteza de criptare/decriptare
Marele avantaj este ca criptarea si decriptarea se fac parcurgand aceeasi retea in
sens invers
DES (Data Encryption Standard) este primul standard simetric, valabil pana in 2001
(in 1999 recomandat sub forma 3DES)
DES este un cod simetric pe retea Feistel
DES transforma plain-text de 64 de biti in criptotext de 64 de biti, cheia DES are doar
56 de biti. Poate fi usor spart in prezent si este scos din uz. Continua sa existe sub
varianta 3DES care consta in aplicarea tranformarii DES de 3 ori si este pe 128 de
biti. Descrierea criptosistemului http://csrc.nist.gov/publications/fips/fips46-3/fips46-
3.pdf , http://en.wikipedia.org/wiki/Data_Encryption_Standard
AES (standardul curent in criptografia simetrica)
La nivelul anilor 2001 DES nu mai ofera securitatea necesara, pentru care, pe baza
de concurs se alege un nou standard AES (Advanced Encryption Standard)
Din cei 5 finalisti: Rijndael, Serpent, Twofish, RC6 si MARS este ales candidatul
Rijndael
Rijndael este un cod bloc disponibil in 3 variante: 128, 192, 256 de biti. Descrierea
65
Rijndael este un cod bloc disponibil in 3 variante: 128, 192, 256 de biti. Descrierea
criptosistemului http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf,
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
Necesita doar 10-14 runde in functie de dimensiunea cheii, este sigur si rapid
Un singur dezavantaj: are un design extrem de exotic comparativ cu toate celelalte
criptosisteme simetrice, transformarea Rijndael este echivalenta cu o ecuatie
algebrica destul de simpla (comprativ cu alte coduri) fata de care exista suspiciunea
ca ar putea duce in viitor la o serie de atacuri
http://www.macfergus.com/pub/rdalgeq.pdf
Functii de criptare simetrica
Standardul curent AES disponibil cu chei pe 128, 192, 256 biti
Nu sunt motive serioase pentru a folosi altceva
Doar daca se doreste un design mai conservator, se poate
recurge la contracandidatii lui AES
66
recurge la contracandidatii lui AES
3DES este forma in care DES supravietuieste cu chei de 56,
112 (mai uzual) sau 168 biti nu sunt motive serioase pentru a
fi utilizat si se recomanda evitarea lui (cel putin din ratiuni de
performanta/siguranta, de ex. varianta de 168 biti are o
securitate echivalenta de NIST la nivel de 80 biti)
Moduri de functionare ale codurilor bloc
Varianta ECB (Electronic Code Book) nesigura
dar inca folosita de programtori (poza wiki)
67
Variantele CBC (Cipher Block Chaining) si CM
(Counter Mode) sunt sigure
Lipsa de securitate in ECB
Exemplu din
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
68
Modul CBC
69
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
Modul PCBC
70
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
Modul CFB
71
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
Modul OFB
72
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
Modul Counter
73
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
Criptari asimetrice
74
Descrierea cripto-sistemului RSA
Generarea cheii
1. Genereaza doua numere prime p,q
2. Calculeaza n=pq, (n)=(p-1)(q-1)
3. Genereaza e relativ prim la (n)
4. Calculeaza d a.i. ed1mod (n)
5. Cheia Publica este (n,e) si Cheia Privata (n,d)
Criptarea
1. Obtine cheia publica (e,n)
2. Calculeaza c=m
e
modn, m este mesajul iar c este mesajul criptat
75
2. Calculeaza c=m
e
modn, m este mesajul iar c este mesajul criptat
Decriptarea
1. Receptioneaza mesajul criptat c
2. Calculeaza m=c
d
modn
Observatie: cel mai costisitor pas in implementarea RSA este generarea celor
doua numere prime p si q, generarea cheii se face insa doar o data urmand ca
aceeasi cheie sa fie utilizata pentru oricate criptari/decriptari. Generarea celor
doua numere prime se face in mod eficient prin generarea unor numere aleatoare
si aplicarea unor teste de primalitate asupra acestora (testele de primalitate sunt
usor de efectuat si sunt probabilistice, deci se aplica pana cand se stie cu o
probabilitate suficient de mare ca numarul este prim)
Exemplu RSA
( ) ( ) ( )
( )
( ) 143 , 103
143 , 7
120 mod 1 , 103 , 7
120 1 1 , 143 , 13 , 11
Privata Cheia
Publica Cheia
d e d e
q p n q p n q p
= =
= = = = = =
Exemplul 1: (numere artificiale, in practica se folosesc numere de sute-
mii de biti)
Generarea cheii
76
( ) 143 , 103 Privata Cheia
47 143 mod 5 mod
5
7
= = =
=
n m c
m
e
Criptarea
5 143 mod 47 mod
47
103
= = =
=
n c m
c
d
Decriptarea
Exemplul 2: cateva module ilustrative pentru securitatea RSA
http://www.rsa.com/rsalabs/node.asp?id=2093
Analiza Securitatii
Relatia intre RSA si Factorizarea Intregilor:
- Nu exista nici o demonstratie ca problema RSA este echivalenta cu factorizarea
- Factorizarea lui n duce la spargerea sistemului
- Calculul (sau aflarea) unei perechi de exponenti public-privat este echivalent
factorizarii. Observatie:
( ) q sau p este n a cmmdc
n a si n a i a i daca
t d e Z a n a
t
t t
s
n
d e
i
i i
, 1
mod 1 mod 1 . .
2 1 , , mod 1
1
1
2
2 2
* 1


=

77
( ) q sau p este n a cmmdc
t
, 1
2


Forward search daca mesajul este relativ mic atunci el poate fi subiectul unei
cautari exhaustive
Exponenti mici de decriptare pot fi si ei subiectul unei cautari exhaustive
Mesaje necriptate exista mesaje care nu pot fi criptate (Ex: 0,1) numarul lor este
redus si nu afecteaza securitatea, numarul de mesaje care au valoarea criptotextului
egala cu a plain-textului este exact
Utilizarea modulelor comune: a fost sugerat ca mai multe entitati din acelasi sistem
sa foloseasca un modul comun acest lucru duce la pierderea totala a securitatii
deoarece fiecare entitate poate calcula cheia celeilalte entitati
( ) ( ) ( ) ( ) 1 1 , 1 gcd 1 1 , 1 gcd + + q p
Schimbul de cheie Diffie-Hellman
[Diffie-Hellman, 1976]
Schimbul de cheie Diffie-Hellman: : mod
: mod
: mod
A B a p
B A a p
cheie comuna a p

A il cunoaste pe iar B il cunoaste pe deci dupa acest schimb A si B pot calcula in


particular a

mod p ca fiind cheia comuna (pentru ca (a

modp)

mod p = (a

modp)

mod
78
particular a

mod p ca fiind cheia comuna (pentru ca (a

modp)

mod p = (a

modp)

mod
p = a

mod p )
Deoarece logaritmul discret nu poate fi calculat un adversar nu poate sa il afle pe
sau deci nu poate efectua calculul facut de A si B pentru a obtine cheia
Atentie: schimbul de cheie Diffie-Helman este un schimb de cheie neautentificat si
poate fi fraudat cu un atac de tip man-in-the-middle (lucru valabil si pentru orice alt
schimb de cheie fara autentificare din partea participantilor)
Criptarea asimetrica ElGamal [ElGamal,
1985]
Generarea cheilor:
1) Genereaza un numar prim p
2) Alege un generator a al grupului Z
p
3) Genereaza un intreg aleator
4) Calculeaza a

mod p
5) Cheia publica este a, a

mod p, p iar cea privata este


( )
: , mod
: mod , mod
k
k
A B a a p
B A m a p a p

= =
A decripteaza mesajul:
( )
1
mod m p



=
ElGamal:
79
Cheia publica este a, a mod p, p iar cea privata este

Criptarea unui mesaj:


1) Obtine cheia publica a entitatii a, a

mod p, p
2) Reprezinta mesajul ca intreg in intervalul (1,p)
3) Genereaza un intreg aleator 1<k<p-2
4) Calculeaza = a
k
mod p
5) Calculeaza = m(a

)
k
mod p
6) Trimite catre posesorul cheii private ,
Decriptarea unui mesaj:
1) Decripteaza mesajul ca m=
-
mod p
Observatie: numarul k este ales
aleator de B, la fiecare criptare B
alege o valoare noua pentru k
Semnaturi digitale
Sunt echivalentul electronic al semnaturilor de mana, se folosesc pentru a asigura non-
repudierea informatiei (impiedica o entitate in a nega ulterior ca transmis o anume informatie)
Principiu: inverseaza rolul cheii publice si private ale unui sistem criptografic asimetric si
foloseste cheia privata pentru a semna mesaje iar cheia publica pentru a verifica semnatura
Definitie: O schema (algoritm) pentru semnatura digitala este un set de 3 elemente {Gen, Sig, Ver} care
satisface urmatoarele conditii: 1. Gen este algoritmul de generare a cheilor care primeste ca intrare un
80
satisface urmatoarele conditii: 1. Gen este algoritmul de generare a cheilor care primeste ca intrare un
parametru de securitate k si returneaza o pereche (Pb, Pv) de chei publica, privata 2. Sig este algoritmul
de semnare digitala care primeste ca intrare cheia privata Pv si mesajul m si returneaza semnatura 3.
Ver este algoritmul de verificare care primeste ca intrare cheia publica Pb, semnatura si mesajul
(uneori nu e necesar si mesajul) si returneaza 1/0 dupa cum semnatura este adevarata sau falsa 4.
pentru orice pereche de chei publica/privata si orice mesaj este adevarat ca Ver(Pb, m, Sig(Pv,m))=1
Clasificare
1) semnaturi digitale cu apendice (frecvent utilizate in practica) sunt semnaturi digitale
pentru a caror verificare este necesara si prezenta mesajului original care a fost semnat
2) semnaturi digitale care permit recuperarea mesajului (fara apendice) sunt semnaturi
digitale care nu necesita prezenta mesajului original pentru a fi verificate, mai mult decat atat ele
permit recuperarea mesajului din semnatura (este usor de observat ca orice semnatura digitala
care face posibila recuperarea mesajului poate fi transformata intr-o semnatura digitala cu
apendice)
Cu apendice
81
In cazul semnaturii fara apendice R este o functie de redundanta, la cea cu apendice h este
o functie hash
Observatie: Orice semnatura fara apendice poate fi transformata in semnatura cu
appendice
figura din [Menezes et. al, 1996, p. 429, p. 431]
Cu recuperarea mesajului
Nivele de fraudare pentru semnaturi digitale
1) Falsificare existentiala (existential forgery) un adversar poate falsifica cel putin
o semnatura dar nu are control total (sau deloc) asupra mesajului semnat
2) Falsificare selectiva (selective forgery) un adversar poate falsifica o semnatura
asupra unui anumit tip de mesaje la alegerea sa
82
asupra unui anumit tip de mesaje la alegerea sa
3) Falsificare universala (universal forgery) adversarul poate calcula semnaturi
digitale asupra oricarui mesaj cu toate ca nu cunoaste cheia cu care mesajele
sunt semnate
4) Spargere totala (total break) - adversarul este in posesia cheii private si poate
falsifica orice semnatura
Tipuri de atac asupra semnaturilor digitale
1) key-only este atacul in care adversarul are acces doar la cheia publica, de
verificare, a semnaturii digitale
2) message attacks sunt atacuri in care atacatorul are acces la mesaje semnate de
entitatea posesoare a cheii private, se clasifica dupa cum urmeaza:
2.1) known-message (sau known signature) adversarul are acces la mesaje semnate
83
2.1) known-message (sau known signature) adversarul are acces la mesaje semnate
de posesorul cheii private, dar aceste mesaje nu sunt la alegerea lui
2.2) chosen-message adversarul poate obtine semnatura pentru un anumit numar de
mesaje la alegerea sa
2.3) adaptive chosen-message adversarul obtine semnaturi digitale la alegerea sa
pentru un anume set de mesaje iar acest lucru se desfasoara interactiv (posesorul
cheii private nu vrea sa semneze mesajul pentru care atacatorul doreste sa obtina
semnatura dar este dispus sa semneze orice alte mesaje pe baza carora
atacatorul reuseste sa construiasca semnatura)
Semnatura RSA (cu recuperarea mesajului)
Genereaza o pereche de chei RSA
Semnarea digitala:
1) Calculeaza
2) Calculeaza
3) Semnatura digitala a mesajului m este s
( ) m R m =
n m s mod

=
Verificarea semnaturii:
1) Obtine cheia publica a entitatii , n
84
1) Obtine cheia publica a entitatii
2) Calculeaza
3) Verifica ca mesajul contine redundanta
4) Recupereaza mesajul ca
, n
n s m mod

=
( ) m R m
1
=
R
M m
103
( )
143, 7, 103
47 5
mod 47 mod143 5
d
Exemplu fara functiederedundanta
n e d
s este semnaturadigitala a lui m
m s n
= = =
= =
= = =
Semnatura ElGamal (cu apendice)
Generarea cheilor:
1) Genereaza un numar prim p
2) Genereaza un generator al grupului Z
p
3) Genereaza un intreg aleator 1=<a=<p-2
4) Calculeaza
a
mod p
5) Cheia publica este ,
a
mod p, p iar cea privata este a
Semnarea digitala:
1) Genereaza un intreg aleator 1=<k=<p-2 cu cmmdc(k,p-1)=1
85
1) Genereaza un intreg aleator 1=<k=<p-2 cu cmmdc(k,p-1)=1
2) Calculeaza r =
k
mod p
3) Calculeaza k
-1
mod(p-1)
4) Calculeaza s=k
-1
{h(m)-ar}mod(p-1)
5) Semnatura digitala asupra lui m este perechea (r, s)
Verificarea semnaturii digitale implica urmatorii pasi:
1) Obtine cheia publica ,
a
mod p, p
2) Verifica ca 1=<r=<p-1 si in caz contrar respinge semnatura
3) Calculeaza v
1
=y
r
r
s
mod p
4) Calculeaza h(m), v
2
=
h(m)
mod p
5) Accepta semnatura daca si numai daca v
1
= v
2
Notiuni slabe de securitate
Schemele asimetrice anterior prezentate au doar securitate de tipul:
Confidentialitate totul-sau-nimic (All-or-nothing secrecy): pastreaza
confidentialitatea doar in masura in care mesajul nu putea fi recuperat integral si
nici cheia nu putea fi sparta de catre un adversar
Securitate in fata adversarilor pasivi: pastreaza securitatea doar in fata
adversarilor pasivi care nu are acces la masina de criptare/decriptare (de
exemplu, exercitiile 5 de la L1 si 7 de la L2 arata cum un adversar activ poate
frauda RSA si ElGamal)
Insuficienta notiunilor slabe de securitate
86
Insuficienta notiunilor slabe de securitate
In lumea reala, un adversar nu are nevoie de a recupera tot mesajul pentru a
frauda un mecanism de securitate (poate fi suficient si sa recupereze un singur bit
din informatie) iar adversari pasivi nu exista (adversarul are acces cel putin la
masina de criptare a unui sistem asimetric)
Astfel un sistem criptografic asimetric trebuie sa fie rezistent in fata urmatoarelor
atacuri:
Plaintext ales (chosen plaintext attack) CPA
Criptotext ales (chosen ciphertext) CCA
Criptotext ales adaptiv (adaptive chosen ciphertext) CCA2 (cel mai important
atac)
Notiuni puternice de securitate
Securitate polinomiala (SP sau mai comun IND): o schema asimetrica are securitate
polinomiala daca nici un adversar nu poate selecta doua mesaje m
1
si m
2
astfel incat avand
ulterior acces la masina de criptare sa poata distinge intre c
1
si c
2
(acestea fiind criptotextele
corespunzatoare) cu probabilitate mai mare de
Securitate semantica (SS): o schema asimetrica are securitate semantica daca ceea ce se
poate calcula eficient despre plaintext avand criptotextul se poate calcula eficient si fara
criptotext adica criptotextul nu spune nimic despre mesaj
87
criptotext adica criptotextul nu spune nimic despre mesaj
Criptare non-maleabila (NM): o schema asimetrica este non-maleabila daca avand un
criptotext este imposibil de generat un alt criptotext astfel incat valorile plaintextelor aferente
sa aiba vreo legatura cunoscuta de adversar
Criptare plaintext-aware(PA): o schema asimetrica este plaintext-aware daca un adversar nu
poate construi criptotextul unui plaintext pe care nu il cunoaste
Proprietati:
1) O schema asimetrica are securitate polinomiala daca si numai daca are securitate semantica
(SP<=>SS)
2) O schema non-maleabila are si securitate polinomiala (NM=>SS)
3) O schema plaintext-aware si cu securitate semantica este non-maleabila (NM = PAW + SS) si
sigura in fata atacurilor de tip CCA2
O defintie completa a proprietatilor de
securitate pentru scheme asimetrice
Coreland proprietatile IND si NM cu tipurile de atac CPA, CCA si CCA2 se obtin
urmatoarele tipuri de rezistenta pentru o schema asimetrica
88
1) IND-CPA
2) IND-CCA
3) IND-CCA2
1) NM-CPA
2) NM-CCA
3) NM-CCA2
RSA - Optimal Asymmetric Encription (RSA-
OAEP) [Bellare & Rogaway, 1995]
Prin OAEP se doreste:
1) Transformarea criptarii asimetrice (in particular RSA) in criptare non-determinista
prin adaugarea unui elemnt aleator
2) Prevenirea aflarii unui bit de informatie fara a inversa toata functia one-way
OAEP se poate aplica asupra RSA si prin RSA-OAEP se obtine o schema
rezistenta IND-CCA2, NM-CCA2
89
{ } { } { } { }
0 1 1 0
: 0,1 0,1 , : 0,1 0,1
k n k n k k
G H
+ +

rezistenta IND-CCA2, NM-CCA2
Transformarea OAEP avand o functie de criptare asimetrica E (in cazul nostru E
este chiar functia RSA) se defineste ca:
G si H sunt functii aleatoare (in practica ambele pot fi derivate dintr-o functie
hash, de exemplu SHA-x, in acest caz functiile devin pseudoaleatoare, dar
proprietatile de securitate par sa fie conservate)
f este o functie pe k biti, iar lungimea plaintextului m este n=k-k
0
-k
1
( ) ( ) { } ( ) ( ) { } ( )
1 1
0 || 0
k k
E m f m G r r H m G r =
OAEP
figura din [Menezes et. al, 1996, p. 312]
90
Curs 6. Autentificarea informatiei, autentificarea
entitatilor si schimburi autentificate de cheie
secreta. Autentificare cu parole fixe si parole
one-time. Autentificare challenge-response. one-time. Autentificare challenge-response.
Autentificare zero-knowledge.
Bibliografie obligatorie (fara protocoalele care nu se regasesc din slideuri):
Capitolul 10 din Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, Handbook
of Applied Cryptography, CRC Press, 1996, 816 pages, ISBN 0849385237.
Capitolul 11 din Wenbo Mao, Modern Cryptography:Theory and Practice, ISBN13:
9780130669438, ISBN10: 0-13-066943-1, Prentice Hall, 2003.
Obiectivul Autentificarii
Importanta:
1) cel mai frecvent intalnit/impus obiectiv de securitate folosim
protocoale de autentificare aproape zilnic: citirea unui email, plata cu o
carte de credit, simple convorbiri telefonice
2) adauga valoare informatiei informatia nu are valoare atata timp cat nu
92
2) adauga valoare informatiei informatia nu are valoare atata timp cat nu
exista o garantie asupra sursei sale de provenienta
Obiective distincte in autentificare
Obiectivul autentificarii poate fi desfacut in trei obiective distincte:
1) Autentificarea Informatiei
93
2) Autentificarea Entitatilor (Identificare)
3) Schimb autentic de cheie secreta (doi participanti intra in posesia unei chei
secrete cu garanti asupra sursei de la care provine cheia)
Tipuri de atacurilor asupra protocoalelor de autentificare
Retransmisie a mesajului (replay) comun in autentificarile bazate pe parole,
Pre-play, varianta atacului replay de exemplu asupra autentificarii S/Key
Man-in-the-middle adversarul (exemplu clasic protocolul de schimb de cheie
Diffie-Hellman)
Sesiuni paralele doua sau mai multe sesiuni sunt rulate in paralel, adversarul
extragand din una din ele raspunsuri pentru alta
94
extragand din una din ele raspunsuri pentru alta
Atacuri prin reflectie vezi slide protocoale challenger-response cu chei simetrice
Atacuri de suprapunere (interleaving) tot prin dezvoltarea de sesiuni paralele
Atacuri datorate tipurilor de date gresite confuzii intre identitati de participant si
nonce etc.
Atacuri datorate omisiei numelor participantilor prin omisia numelor
participantilor, mesaje din sesiunea cu un participant pot fi folosite in sesiuni cu alt
participant
Atacuri datorare folosirii gresite a primitivelor criptografice se datoreaza
folosirii unei primitive criptografice cu prezumtia ca asigura si alt obiective decat cel
care il asigura (de exemplu multi cred ca functiile de criptare asigura si integritate)
Autentificarea Informatiei
Autentificarea Informatiei (Autentificarea sursei informatiei) se refera la o
garantie asupra sursei de provenienta a informatiei.
Este in stransa legatura cu obiectivul integritatii informatiei pe care il implica.
Exista diferente semnificative:
autentificarea obliga la o garantie asupra sursei de unde provine informatia iar
95
autentificarea obliga la o garantie asupra sursei de unde provine informatia iar
integritatea nu
autentificarea implica o comunicare iar integritatea nu (date care nu se afla in
tranzit pot fi garantate ca integritate dar nu ca autenticitate pentru ca puteau fi
stocate de catre oricine),
autenticitatea implica o prospetimea informatiei (orice informatie care poate fi
sursa a unui replay are integritate dar nu autenticitate).
In urma unui schimb autentic de informatie trebuie sa poata fi stabilite:
identitatea celui care a trimis informatia, integritatea informatiei, actualitatea
informatiei respective.
Functii criptografice utilizate in
asigurarea autenticitatii informatiei
Coduri de autentificare a mesajelor MAC (Message Authentication Code) - MAC
k
(m) - cod de
autentificare a mesajului m calculat cu cheia k :
- Garanteaza autenticitatea unui mesaj
- Se construiesc peste o functie hash (in general MD5 sau SHA1, cu toate ca ambele au un
nivel de securitate destul de scazut) in conjunctie cu o cheie secreta
- In practica se foloseste HMAC si NMAC propuse de Mihir Bellare, Ran Canetti, Hugo Krawczyk
in lucrarea http://www-cse.ucsd.edu/users/mihir/papers/kmd5.pdf
96
in lucrarea http://www-cse.ucsd.edu/users/mihir/papers/kmd5.pdf
Semnaturi Digitale Sig
A
(M) semnatura digitala a participantului A asupra mesajului M:
- Pot fi vazute ca functionalitate aditionala a criptosistemelor cu cheie publica
- Garanteaza non-repudierea, oferind astfel si o garantie asupra sursei mesajului (autenticitate)
- Se construiesc pe sisteme criptografice asimetrice prin inversarea rolului cheii publice si
private, astfel se foloseste cheia privata pentru a semna mesaje iar cheia publica pentru a
verifica semnatura
- Pot fi construite si pe functii criptografice simetrice (semnaturi digitale one-time)
Observatie: aceste functii criptografice garanteaza autenticitatea informatiei fara a aduce
garantii de timp (asupra actualitatii informatiei), in momentul in care aceste primitive sunt
incluse in protocoale de autentificare trebuie asigurata si actualitatea informatiei prin parametrii
varianti in timp (contor, nonce, timestamp)
Coduri MAC vs. Semnaturi Digitale
Coduri MAC:
Semnaturi Digitale:
- (-) Greu de calculat, implica operatii
Codurile MAC nu pot fi vazute ca si substituent pentru Semnaturi Digitale si nici
invers deoarece nu raspund aceluiasi obiectiv de securitate
Totusi, deoarece ambele pot fi utilizate pentru garantarea autenticitatii, o
comparatie este utila
97
Coduri MAC:
- (+) Usor de calculat, implica doar
operatii simple (doar putin mai
costistisitoare ca o functie hash)
- (+) Dimensiune redusa (la nivelul
unei functii hash)
- (-) Utilizeaza chei secrete
- (-) Pentru comunicarea multiaterala
intre n entitati numarul de chei devine
n(n-1)/2
- (-) Greu de calculat, implica operatii
aritmetice complexe (in grupuri de
intregi)
- (-) Dimensiune ridicata (100, 1000 de
biti)
- (+) Utilizeaza chei publice
- (+) Este suficienta o singura cheie
publica pentru o entitate iar cu aceasta
un mesaj semnat poate fi verificat de
oricare alta entitate
O apreciere cantitativa asupra
cerintelor computationale
98
Autentificarea Entitatilor (Identificare)
Autentificarea Entitatilor (Identificare, Verificarea Identitatii) se refera
la o garantie asupra identitatii unui participant la comunicare (poate fi
99
la o garantie asupra identitatii unui participant la comunicare (poate fi
vazuta ca un caz de autentificare a informatiei in care identitatea unei
entitati este informatia ce trebuie autentificata)
Baza autentificarii entitatilor
Autentificarea unei entitati se poate baza pe:
1) Ceva cunoscut in general un secret, de exemplu: o parola, un cod PIN
2) Ceva imanent (care tine de entitate) o trasatura biometrica: amprenta, retina,
100
2) Ceva imanent (care tine de entitate) o trasatura biometrica: amprenta, retina,
modul in care un individ tasteaza
3) Ceva detinut un accesoriu fizic, de exemplu o cheie, un card magnetic, un
smart-card
Caracteristici ale unui protocol de
identificare ([Menezes et. al., p. 387])
Reciprocitate identificarea poate fi unilaterala, sau bilaterala (mutuala)
Eficienta Computationala intensitatea computationala a operatiilor necesare protocolului
(operatiile cu primitive simetrice si fara cheie sunt ieftine iar cele cu primitive asimetrice de 10,
100 sau 1000 de ori mai scumpe)
Eficienta in Comunicare numarul de runde de comunicare si dimensiunea mesajelor
vehiculate (cata informatie este necesara pentru a demonstra identitatea cuiva)
101
vehiculate (cata informatie este necesara pentru a demonstra identitatea cuiva)
Implicarea real-time a unei parti terte uneori este necesara interventia unei parti terte
pentru a putea efectua o identificare (de exemplu in cazul scenariilor bazate pe functii simetrice,
pentru comunicarea intre n entitati sunt necesare n(n-1)/2 chei distincte, dar daca exista o parte
de incredere o singura cheie partajata cu aceasta poate fi suficienta, in acest caz numarul de
chei devine n pentru partea de incredere si 1 pentru participanti)
Natura implicarii partii terte in partea terta trebuie avuta incredere ca pastrator al
confidentialitatii (securitate absoluta) sau doar asupra autenticitatii furnizata (securitate
functionala)
Natura garantiilor de securitate pe ce se bazeaza securitatea?
Stocarea secretelor unde trebuie stocate secretele: pe un dispozitiv fizic, memorate etc.
Autentificarea bazata pe parole
(Autentificare slaba)
Cel mai frecvent intalnite si ofera si cel mai scazut nivel de securitate (totusi
suficient pentru o buna parte din aplicatii)
Principiu: autentificarea se face prin dezvaluirea unui secret (numit parola) pentru
a demonstra identitatea unei entitati
102
Alice SYSTEM
PAlice
Alice KNOWS PAlice
FIXED PASSWORD AUTHENTICATION
SYSTEM VERIFIES RECEIVED
PASSWORDS AND GRANTS/
DENY ACCESS
ACCORDINGLY
SYSTEM KNOWS PAlice
I am Alice
What is your password?
Modul de stocare al parolelor
In fisiere de parole presupune stocarea parolei in plaintext intr-un fisier de parole.
Fisierul este protejat la citire si scriere. Dezavataj: nu prezinta securitate in fata
utilizatorilor privilegiati pentru a citi fisierul
In fisiere criptate presupune stocarea parolei intr-un fisier criptat, in acest caz
fisierul trebuie protejat doar la scriere.
103
Observatie: termentul de fisier criptat pentru memorarea parolelor (encrypted
password files) este pastrat in limbaj din ratiuni istorice, in realitate nu se foloseste o
functie de criptare pentru stocarea parolelor, ci o functie one-way (de exemplu hash)
pentru a face ca parola sa nu fie recuperabila din datele aflate in fisier, dar sa fie
verificabila pe baza acestora
Parole fixe - Avantaje
Usor de implementat (ca protocol de autentificare)
Sunt usor de memorat pentru oameni
104
Parole fixe - Dezavantaje
Pot fi furate (observate) si utilizate de un adversar
Sunt stocate atat de partea utilizatorului cat si a sistemului
Utilizatorii aleg in general parole cu entropie scazuta
Atacuri asupra autentificarilor
bazate pe parola
Retransmisia (replay) presupune interceptarea (observarea) parolei si
retransmiterea ulterioara a acesteia Aparare: parole one-time.
Cautari exhaustive - deoarece utilizatorii aleg parole de entropie scazuta, un
potential adversar poate incerca toate parolele posibile. Cautarile exhaustive pot fi
105
potential adversar poate incerca toate parolele posibile. Cautarile exhaustive pot fi
on-line (incearca diverse parole la login) sau off-line (analiza asupra unui fisier
criptat de parole) Aparare: parole de entropie ridicata, politici de securitate.
Atacuri de tip dictionar precalculat deoarece utilizatorii au obiceiul de a utiliza ca
parole cuvinte (dintr-un dictionar), un adversar poate calcula off-line parole
corespunzatoare tututor cuvintelor din dictionar ca apoi sa verifice daca in fisierul de
parole apare o corespondenta. Aparare: salting.
Proceduri de intarire a parolelor
Politici de securitate - obligarea la:
1) Pentru a creste entropia: o dimensiune minima a parolei (de ex. 10
caractere), utilizarea a minim 3 caractere din fiecare set (alfa-numerice, non-
alfa-numerice, upper/lower-case)
2) Pentru a reduce riscul unui atac: schimbarea unei parole la intervale fixe de
timp (de ex. 1 luna), limitarea numarului de incercari in cazul introducerii unei
parole gresite
106
timp (de ex. 1 luna), limitarea numarului de incercari in cazul introducerii unei
parole gresite
Cresterea intensitatii functiei de verificare a parolelor pentru a ridica
necesitatile de calcul la o cautare exhaustiva poate fi crescuta intesitatea
functiei de criptare a parolei (de exemplu iterarea functiei de n ori)
Adaugarea unor valori arbitrare (salt) pentru a opri atacuri de tip dictionar
parola poate fi concatenata cu k biti aleatori, numiti salt, in acest caz
dimensiunea dictionarului creste de 2
k
ori, valoarea de salt se pastreaza alaturi
de parola (Atentie! Aceasta metoda nu creste entropia parolei)
Utilizarea frazelor in locul unor simple cuvinte un caracter din limba
curenta are cam 1-1.5 biti de entropie, utilizarea unei fraze suficient de lungi
poate duce la o parola destul de rezistenta.
Autentificare cu parole de unica
folosinta (one-time passwords)
Pentru a preveni atacurile de tip retransmisie o solutie este utilizarea parolelor de
unica folosinta (one-time passwords)
107
unica folosinta (one-time passwords)
Exista doua solutii rudimentare:
1) Utilizarea unei liste de parole se foloseste o lista de t parole, fiecare valabila la
o singura utilizare (parolele pot fi utilizate secvential sau nu)
2) Utilizarea unor parole actualizate secvential la fiecare autentficare, utilizatorul
schimba parola veche cu cea noua
Schema Lamport schema de generat
parole one-time
Prima solutie avansata de generare a parolelor one-time
Avantaje ale schemei Lamport:
1) Nu se stocheaza secrete de partea sistemului
2) Fiecare parola este valabila doar la o singura utilizare
3) Parolele au entropie ridicata
108
4) Poate fi utilizata pe canale nesigure
Principiu de functionare al schemei Lamport:
- Fie x o valoare arbitrara aleasa de utilizator, Na numarul de autentificari necesare
(de ex. 10000), F o functie one-way (de ex. o functie hash)
- Utilizatorul calculeaza de partea sa secventa {x,F(x),F(x), ,F
Na-1
(x),F
Na
(x)}
- F
Na
(x) este trimisa sistemului intr-un stadiu off-line pentru a garanta autenticitatea
acestei valori
- Cand utilizatorul se autentifica prima oara prezinta F
Na-1
(x) iar sistemul verifica
daca F(F
Na-1
(x))=F
Na
(x)
- La modul general pentru a i-a autentificare parola este F
Na-i
(x)
Compozitia succesiva a functiei conduce la un lant one-way
Schema Lamport (figura)
Fiecare element din lant joaca rol de parola
109
Schema Lamport in practica
Exista o singura propunere de utilizare sistemul S-Key [Haller, 1995]
Poate fi spart printr-un atac de tip pre-play un adversar poate impersona sistemul
110
Poate fi spart printr-un atac de tip pre-play un adversar poate impersona sistemul
si poate captura parole inca nefolosite trimise de utilizator
Dezavantajul schemei Lamport nu ofera autentificare mutuala
Autentificare provocare-raspuns
(challenge-response) (Autentificare
puternica)
Principiu: Demonstreaza cunoasterea secretui in baza caruia se demonstreaza
identitatea fara a dezvalui secretul
Se realizeaza prin calcularea unei valori numita raspuns pe baza altei valori numita
111
Se realizeaza prin calcularea unei valori numita raspuns pe baza altei valori numita
challenge
1. A -> B : challenge
2. B -> A : response
Parametrii varianti in timp
Unul dintre obiectivele autentificarilor challenge-response este eliminarea toatala
a atacurilor de tip retransmisie replay
Parametrii varianti in timp sunt necesari pentru a preveni atacuri de tip replay prin
garantarea unicitatii unei instante a unui protocol respectiv a cronologiei in unele
cazuri (timeliness)
Parametrii varianti in timp se numesc Nonce (a value used no more than once)
112
Parametrii varianti in timp se numesc Nonce (a value used no more than once)
Exista trei tipuri de parametrii varianti in timp
1) Numere aleatoare (cel mai comun utilizate) numere generate aleator in fiecare
instanta a protocolului (in general previn si atacuri de tip CPA si asigura unicitatea)
2) Numere secventiale in general o valoare care se incremeneteaza la fiecare
instanta a protocolului (utilizate pentru a detecta retransmisii)
3) Amprente temporale (timestamp) asigura unicitate si timeline, previn atacuri de
tip retransmisie necesita sincronizare temporala slaba
Sincronizarea temporala slaba
Element esential in multe protocoale de autentificare (in special
in regim broadcast, vezi TESLA, curs 12)
Principiul unei sincronizari temporale slabe: vezi desen, explicat
la tabla
113
Identificare unilaterala bazata pe
numere aleatoare
Challenge response cu functii
criptografice simetrice
114
numere aleatoare
Principiu: utilizeaza un numar aleator ca si challenge
AB: challenge
B A: response
Varianta 1 (poate fi atacata)
AB: r
A
B A: E
k
(r
A
)
A si B cunosc o cheie secreta k (r
A
reprezinta un numar aleator generat de A)
115
B A: E
k
(r
A
)
A verifica identitatea lui B testand ca E
k
(r
B
)= E
k
(r
B
) (E
k
(r
B
) denota valoarea
primita de A ca raspuns la challenge si care putea fi modificata de un adversar)
Atac prin reflexie asupra Variantei 1
1. AAdv(B): r
A
1. Adv(B)A: r
A
2. A Adv(B): E
k
(r
A
)
116
A a trimis un challenge catre adversarul Adv care pretinde ca este B iar intr-o noua instanta a
protocolului Adv pretinde ca este B si ii cere lui A sa se autentifice folosind valoarea de
autentificare a lui A ca autentificare pentru B in prima instanta a protocolului
Rezultat A crede ca comunica cu B dar de fapt comunica cu Adv
2. Adv(B) A: E
k
(r
A
)
2. A Adv(B): E
k
(r
A
)
Varianta 2 (Varianta 1 reparata in
fata atacului prin reflexie)
AB: r
A
B A: E (r , id )
A si B cunosc o cheie secreta k (id
A
reprezinta identitatea celui care a solicitat
autentificarea)
117
B A: E
k
(r
A
, id
A
)
A verifica identitatea lui B testand ca E
k
(r
A
)= E
k
(r
A
) si testand si ca identificatorul
celui care a trimis challenge-ul este al sau
Atacul prin reflexie nu mai
functioneaza asupra Variantei 2
1. AAdv(B): r
A
1. Adv(B)A: r
A
2. A Adv(B): E
k
(r
A
,id
A
)
118
Atacul nu functioneaza pentru ca mesajul nu contine identificatorul lui A; adica
E
k
(r
A
,id
B
)!= E
k
(r
A
, id
A
)
2. Adv(B) A: E
k
(r
A
,id
A
)
2. A Adv(B): E
k
(r
A
,id
A
)
Identificare unilaterala bazata pe
time-stamp
Principiu: utilizeaza valoarea timpului (cunoscuta de ambii participanti) ca challenge
119
AB: E
k
(t
A
,id
B
)
A verifica identitatea lui B testand ca E
k
(t
A
,id
B
)= E
k
(t
A
,id
B
) si testand ca timpul
este timpul corect din sistem (mai exact se verifica ca timpul apartine unui interval
de timp rezonabil, de ex. mesajul de autentificare provine din ultimele 5 secunde)
Identificare mutuala cu numere
aleatoare
Observatie (legata de autentificarea mutuala): Simpla dublare a unei autentificari
unilaterale nu este in general o solutie deoarece nu exista nici o legatura intre cele
doua instante ale protocolului de autentificare unilateral (sursa de atac)
AB: r
A
Autentificare mutuala
120
AB: r
A
B A: E
k
(r
A
, r
B
, id
A
)
A B: E
k
(r
A
, r
B
)
Observatie (valabila pentru toate autentificarile challenge-response): In orice
autentificare challenge response este recomandabil ca fiecare entitate ce executa o
criptare cu o cheie secreta sa aplice functia de criptare nu doar pe valoarea de
challenge ci sa mai adauge si o valoare aleatoare proprie (pentru a evita atacuri
CPA). O alternativa este si utilizarea unei functii ireversibile cu cheie, de exemplu
schimba E
k
(r
A
, r
B
, id
A
) cu MAC
k
(r
A
, r
B
, id
A
)
Se fac aceleasi verificari ca in cazurile precedente, in plus faptul ca valorile aleatoare
sunt legate (fiind criptate impreuna) garanteaza caracterul mutual al autentificarii
Challenge-response cu tehnici
asimetrice
Aceleasi principiu al folosirii unei valori de challenge ca in cazul utilizarii tehnicilor
simetrice
Sistemele asimetrice pot fi utilizate in 2 abordari distincte:
121
Sistemele asimetrice pot fi utilizate in 2 abordari distincte:
a) Decripteaza o valoare criptata cu cheia s-a publica
b) Semneaza digital valoarea de challenge
Varianta 1 (incorecta) B isi demonstreaza identitatea decriptand mesaje la
alegerea lui A
Utilizarea criptarii asimetrice in
challenge-response
122
AB: E
PbB
(r
A
)
BA: r
A
Deficienta: sursa perfecta de atacuri CCA2 asupra criptosistemului
Autentificare unilaterala prin utilizarea functiei de decriptare si a unei dovezi
(martor ,witness) al faptului ca A cunostea plaintextul: B isi demonstreaza identitatea
decriptand mesajul trimis de A si verificand ca h(r
A
) corespunde hash-ului mesajului
decriptat (deci A cunostea mesajul)
Utilizarea criptarii asimetrice in
challenge-response
AB: h(r ), A, E (r , A)
123
AB: h(r
A
), A, E
PbB
(r
A
, A)
BA: r
A
Autentificare mutuala prin utilizarea functiei de decriptare
AB: E
PbB
(r
A
, A)
BA: E
PbA
(r
A
, r
B
)
AB: r
B
Varianta 1 (incorecta)
Utilizarea semnaturilor digitale in challenge-
response
124
AB: r
A
B A: Sig
B
(r
A
)
Exploatare asupra variantei 1
A pregateste urmatoarea valoare de challenge pentru B
r
A
= h(Eu sunt B si doresc sa transfer 1.000.000 USD din contul meu in contul lui A)
A trimite valoarea de challenge pentru B
125
AB: r
A
B A: Sig
B
(r
A
)
A prezinta semnatura digitala a lui B Sig
B
(r
A
) alaturi de mesaj m=Eu sunt B si doresc sa
transfer 1.000.000 USD din contul meu in contul lui A autoritatii fiscale si obtine
1.000.000 USD
B semneaza deoarece pentru el valoarea hash-ului r
A
este un numar aleator fara
nici o semnificatie
Morala: nu semna mesaje alese integral de alt participant sau nu folosi aceeasi
cheie si pentru semnaturi digitale si pentru autentificare (poti sa o folosesti pentru
ambele, dar cu precautie)
Utilizarea semnaturilor digitale in challenge-
response
Autentificare unilaterala cu time-stamp (se verifica certificatului lui A cert
A
la autoritatea competenta (distribuitorul de certificate), validitatea semnaturii
si faptul ca timpul la care a fost facuta semnatura este acceptabil)
Autentificare unilaterala cu valori aleatoare (se verifica certificatului lui A cert
A
AB: cert
A
, t
A
, B, Sig
A
(t
A
,B)
126
Autentificare unilaterala cu valori aleatoare (se verifica certificatului lui A cert
A
la autoritatea competenta (distribuitorul de certificate), validitatea semnaturii si
faptul ca a fost facuta pe valoarea de challenge)
Autentificare mutuala cu valori aleatoare (aceleasi verificari ca in cazul
precendent de partea ambilor participanti)
AB: r
A
BA: cert
B
, r
A
, A, Sig
B
(r
A
, r
B
, B)
AB: r
A
BA: cert
B
, r
B
, A, Sig
B
(r
A
, r
B
, B)
AB: cert
A
, B, Sig
A
(r
B
, r
A
, A)
Autentificare zero-knowledge
Principiu: demonstreaza o identitate fara a spune absolut nimic cu privire la
secretul in baza careia se face aceasta demonstratie
Observatie: Protocoalele challenge-response au acest potential dezavantaj, un
adversar poate selecta valori de challenge in mod strategic pentru a afla ceva despre
secret
Explicatie pentru copii - Pestera lui Quisquater et. al. Jean-Jacques Quisquater,
127
Explicatie pentru copii - Pestera lui Quisquater et. al. Jean-Jacques Quisquater,
Louis C. Guillou, Thomas A. Berson. How to Explain Zero-Knowledge Protocols
to Your Children, Advances in Cryptology - CRYPTO '89: Proceedings, v.435,
p.628-631, 1990.
Structura generala a unui protocol z-k consta intr-o sesiune de 3 runde (deoarece
argumentul fiecarei sesiuni este probabilistic devine necesara repetarea succesiva a
acestei sesiuni cu noi valori)
AB: witness
B A: challenge
AB: response
Autentificarea z-k Fiat-Shamir
Obiectiv: A isi demonstreaza identitatea catre B
Setarea cheii de autentificare:
a) O parte de incredere T publica un modul RSA n=pq
b) A alege un numar s din Z
n
si calculeaza v=s
2
mod n
c) v este cheia publica a lui A iar s este cea secreta (v se foloseste la verificare, s
pentru generare raspunsului la challenge)
Descrierea unei runde:
128
Descrierea unei runde:
a) A alege un numar r (commitment) din Z
n
si calculeaza si trimite x=r
2
mod n
(witness)
b) B alege o valoare de challenge e=1 sau e=0 si trimite e lui A
c) A calculeaza raspunsul ca y= r*s
e
mod n
d) B verifica daca y
2
= xv
e
mod n
Concluzia la final de runda: exista o probabilitate de exact ca Adv(A) sa
fii fraudat runda de autentificare (explicatie pe slide-ul urmator)
Concluzia la finalul a k runde: exista o probabilitate de exact ()
k
ca Adv(A)
sa fii fraudat autentificarea
Cum putea Adv(A) sa fraudeze o
runda de autentificare cu
probabilitate 1/2
Cazul 1: Adv(A) poate selecta r, calculeaza x=r
2
/v si raspunde cu y=r acesta este
un raspuns corect pentru cazul in care e=1 dar daca e=0 atunci Adv(A) trebuie sa
129
un raspuns corect pentru cazul in care e=1 dar daca e=0 atunci Adv(A) trebuie sa
calculeze radacina patrata a lui x, ceea ce este nefezabil
Cazul 2: Adv(A) poate raspunde corect in cazul in care e=0 daca calculeaza x=r
2
mod n dar in acest caz nu mai poate raspunde la e=1 pentru ca din nou trebuie sa
poata calcula o radacina patrata
Argument intuitiv pentru faptul ca este autentificare z-k: orice adversar poate simula
valori corecte raspuns, dar nu poate poate sa raspunda in fata unei provocari real-
time decat cu probabilitate ()
k
Curs 7. Protocoale de autentificare frecvente in
practica si standarde (de facto): EKE, NTLM,
MS-CHAP, ISO TPMA. Studii de caz in
autentificare: parole in Windows si Unix, autentificare: parole in Windows si Unix,
Bancomate, Sisteme E-Health.
Bibliografie recomandata: lucrarile indicat la fiecare studiu de caz
Standarde in criptografie
Discutate pe parcursul cursurilor anterioare: SHA2
(256, 384, 512), AES (128, 194, 256), RSA/OAEP
Alte standarde relevante
131
Alte standarde relevante
RSA/PKCS#1 (Public-Key Cryptography Standards)
versiunea 2.1 din 2002 http://tools.ietf.org/html/rfc3447 (se
doreste aceeasi proprietate de la OAEP: rezistenta IND/NM-
CCA2)
DSA (Digital Signature Algorithm) (aceeasi idee ca la
semnatura ElGamal) versiunea 3 din 2009 in FIPS PUB 186-
3 http://csrc.nist.gov/publications/fips/fips186-3/fips_186-
3.pdf
MS-CHAP si NTLM
MS-CHAP (Challenge-handshake authentication protocol) si NTLM (NT LAN
Manager) sunt standarde de facto in sistemele de operare Microsoft
Utilizate pentru autentificare utilizatorilor la acces remote catre fisiere,
imprimante etc.
MS-CHAP are 2 variante si NTLM 5 (inclusiv una bazata pe LM-Hash, i.e.
DES)
Toate cele 5 variante de NTLM au la baza un challenge-response in 3 pasi
Alegerea variantei depinde e valoarea lmcompatibility din Registrul Win
132
Alegerea variantei depinde e valoarea lmcompatibility din Registrul Win
Variante NTLM
Doua variante bazate pe MD5 Trei variante bazate pe DES
133
MS-CHAP v2 si NTLM v2 Session
Ambele (ilustrate in figura dar si toate celelalte variante) sunt vulnerabile la
cautari off-line exhaustive ale parolelor
Pentru detalii vezi: B. Groza, A. Alexandroni, I. Silea , V. Patriciu, On the
security of some authentication mechanisms from Windows, Buletinul
Stiintific al Universitatii Politehnica din Timisoara, Seria Automatica si
Calculatoare, ISSN 1224-600X, 2008.
134
Encrypted key exchange (EKE)
Propus de Bellovin si Merritt in 1992, exista in diverse variante (folosind Diffie-
Hellman, RSA, 3 participanti etc.)
Primul protocol de schimb de cheie autentificat bazat pe parole rezistent la cautari
exhaustive (ale parolei)
( )
( )
( )
1. : ,
2. :
pwAB
pk
A B A E pk
B A E k

135
( )
( )
( )
3. :
4. : ,
5. :
k A
k A B
k B
A B E N
B A E N N
A B E N

Protocolul se incheie cu succes daca nonce-urile trimise de A si B sunt verificate in


raspunsurile primite
Atacuri de cautare exhaustiva asupra parolei nu poti fi facute (doar daca cheia
publica pk are o structura speciala)
ISO/IEC 9798-3 Three-Pass Mutual Authentication
Relizeaza autentificare mutuala folosind primitive asimetrice
( )
( )
1. :
2. : , || || || || ||
2. : , || || || || ||
B
A A B A A B
B B A B B A
B A N
A B Cert TokenAB N N B Sig N N B
B A Cert TokenBA N N A Sig N N A

=
=
136
( )
( )
1. :
2. : , || || || || ||
2. : , ' || || || ' || ||
B
A A B A A B
B B A B B A
B A N
A B Cert TokenAB N N B Sig N N B
B A Cert TokenBA N N A Sig N N A

=
=
Varianta initiala (se observa semnarea de catre B a unui nonce
nou, masura care se credea ca imbunatateste securitatea
deoarece A nu stie apriori ce mesaj va semna B)
Atacul lui Wiener (Atacul Canadian)
Descoperit de Wiener, membru al partii canadiene din comitetul
ISO
( )
( ) ( )
1. :
2. : , || || || || ||
adv
A A adv A A adv
Adv B A N
A Adv B Cert TokenAB N N B Sig N N B

=
Pasul 1: Adv pretinde ca este B si incepe o conversatie cu A
Pasul 2: Adv pretinde ca este A si incepe o conversatie cu B
137
( )
( ) ( )
1'. :
2'. : , || || || || ||
A
B B A B B A
Adv A B N
B Adv A Cert TokenBA N N A Sig N N A

=
( ) ( ) 3. : , || || || || ||
B B A B B A
Adv B A Cert TokenBA N N A Sig N N A =
Pasul 3: Adv incheie cu succes conversatia inceputa cu A in
pasul 1 folosind mesajul primit de la B in pasul 2
Final: A crede ca B a inceput cu el o conversatie si a incheiat-o
cu succes, in timp ce B crede ca A a inceput cu el conversatia
si asteapta in continuare mesajul 3
Autentificarea in Windows
Bazata pe parole, stocate criptat in SAM (Security Accounts
Manager)
c:\windows\system32\config\SAM
Diverse softuri intitulate pwdump pentru a extrage parola
criptata (vezi http://en.wikipedia.org/wiki/Pwdump)
138
criptata (vezi http://en.wikipedia.org/wiki/Pwdump)
Parolele sunt criptate sub forma
1( ) 2( )
("KGS!@#$%") || ("KGS!@#$%")
KD password KD password
DES DES
Problema 1: Utilizarea DES
DES este inlocuit ca standard inca din 2001
Hardware criptografic capabil sa sparga DES in
cateva zile (Copacobana in medie 3.5 zile)
DES are o cheie de 56 biti, in timp ce recomandarile
DES
KD1(password)
(KGS!@#$% )||DES
KD2(password)
(KGS!@#$%
)
139
DES are o cheie de 56 biti, in timp ce recomandarile
curente NIST sunt
Bits AES RSA ECC LifeTime
80 x 1024 160-223 Until 2010
112 x 2048 224-255 Until 2030
128 128 3072 256-383 After 2030
192 192 7680 384-511 x
256 256 15360 512+ x
Problema 2: Fara salt
Salt este o procedura elementara de intarire a parolelor
Utilizata in toate distributiile UNIX
Absenta saltului face posibila atacuri de tip dictionar precalculat
DES
KD1(password)
(KGS!@#$% )||DES
KD2(password)
(KGS!@#$%
)
140
Absenta saltului face posibila atacuri de tip dictionar precalculat
Exemplu: tabele rainbow pentru a sparge toate parolele de 1 -
14 charactere lower/upper/numbere si caractere speciale se pot
cumpara la http://www.rainbowtables.net/products.php#LM
Problema 3: Divizarea parolei !?
Daca parola este de 14 charactere sau mai scurta este
divizata in 2 parole care sunt folosite ca si chei pentru cele
doua criptari DES
1( ) 2( )
("KGS!@#$%") || ("KGS!@#$%")
KD password KD password
DES DES
141
divizata in 2 parole care sunt folosite ca si chei pentru cele
doua criptari DES
Ambele parti ale parolei pot fi atacate independent
Efecte:
a sparge 14 caractere e aproape la fel de usor cu a
sparge 7
o parola de 8, 9, 10, 11 (discutabil 12 si 13) e mai usor de
spart decat una de 7
Solutii
Nota Microsoft pentru dezactivarea LM Hash
http://support.microsoft.com/kb/299656
Parole de peste 14 caractere sunt ascunse cu MD5 in loc de
142
DES (ceva mai sigur)
Bibliografie suplimentara
Discutie despre autentificare in Windows
B. Groza, A. Alexandroni, I. Silea , V. Patriciu, On the security of some
authentication mechanisms from Windows, Buletinul Stiintific al Universitatii
Politehnica din Timisoara, Seria Automatica si Calculatoare, ISSN 1224-
600X, 2008.
143
600X, 2008.
si cod sursa detaliat pentru toate protocoalele de autentificare din Windows:
E. Glass, The NTLM Authentication Protocol and Security Support Provider,
http://davenport.sourceforge.net/ntlm.html
Parole in UNIX
Din nou fisiere criptate, dar de data asta cu salt si o functie mai
intensa
Stocate traditional in /etc/passwd
Mutate mai nou in /etc/shadow (accesibil doar de root)
Criptate folosind o modificare a MD5 (anterior de folosea DES)
aplicata pe parola si salt (comanda crypt, vezi man crypt)
Exemplu, fisier passwd
144
Exemplu, fisier passwd
x:x:501:501:x:/home/x:/bin/bash
Alice:x:502:502:Alice:/home/Alice:/bin/bash
Bob:x:503:503:Bob:/home/Bob:/bin/bash
Exemplu, fisier shadow
x:$1$7lSmIrJ4$nFh23Pb8xK8xW7VnHjOGm1:13338:0:99999:7:::
Alice:$1$VSxlZUhg$bGH7FRq.5jhcCsDPS.Zdl1:13338:0:99999:7:::
Bob:$1$ZRw9H/6L$0SJjGvTxJ2UrBrR2bQ7gA/:13338:0:99999:7:::
Securitate in sisteme bancare (bancomate)
ATM (Automatic Teller Machines) sunt cel mai larg raspandit si
solicitat dispozitiv al comertului
Aceeasi tehnologie se foloseste si in POS (EFTPOS
Electronic Funds Transfer at the Point of Sales)
Modul de functionare uzual este: un cod PIN este folosit pentru
a cripta contul, valoare este transformata in zecimal si
trunchiata rezultat denumit PIN natural. Un offset se poate
145
trunchiata rezultat denumit PIN natural. Un offset se poate
adauga si se obtine PIN-ul utilizatorului
poza din: Ross Anderson, Security
Engineering: A guide to Building
Dependable Distributed Systems,
John Wiley & Sons, 2001
Bancomate Modificate
Discutie pe baza cazului din imagini
Vulnerabilitati principale: autentificare bazata pe parole (fara challenge
response), autentificare unilaterala (nu bilaterala)
Solutie: autentificare challenge-response, renuntare la benzi magnetice si
utilizare de smart-carduri
146
Bancomat Norvegian
Un adversar fura un card bancar si doreste sa sparga PIN-ul,
Mecanismul de criptare are PIN-ului pe card este:
[DES
BankKey
(PIN)]
16
([]
16
denota trunchiere la 16 biti)
BankKey
PIN
( ) PIN DES
Argumentul de securitate:
PIN-ul nu poate fi
recuperat deoarece la
147
User
ATM
Adversary
( ) 16
PIN DESBankKey
J. Hole, V. Moen, A. N. Klingsheim, and K. M. Tande. Lessons from the Norwegian ATM
system. IEEE Security and Privacy, 5(6):2531, 2007.
B. Groza, M. Minea, A formal approach for automatic detection of off-line and
undetectable on-line guessing, (to appear in) Proceedings of 14-th Financial
Cryptography (FC'10), LNCS, Springer-Verlag, 2010.
recuperat deoarece la
fiecare cheie DES exista
mai multe PIN-uri care se
potrivesc
Atac asupra ATM Norvegian
User
ATM
BankKey PIN
( )
16
PIN DES
BankKey
Bank
148
Atac in doi pasi:
Adevrsarul joaca rolul unui participat cinstit si obtine 3 carduri (in medie)
din care extrage BankKey
Folosind BankKey adversarul calculeaza PIN (unic de aceasta data)
Adversary
Adversary as Honest User
( )
16 1 PIN DESBankKey
( )
16 2 PIN DESBankKey
( )
16 3 PIN DESBankKey
Un atac mai simplu
Adversarul poate sa evite obtinerea de 3 carduri de la banca
daca isi poate schimba PIN-ul pe cardul propriu
BankKey PIN
( )

16
PIN DES
BankKey
1. Capture the card
BankKey
149
User
ATM
Adversary
Adversary as Honest User
Bank
( )
16 1 PIN DESBankKey
( )
16 2 PIN DESBankKey
( )
16 3 PIN DESBankKey
( )
16 1 PIN DESBankKey
C
hange P
IN
: P
IN
1, P
IN
2
2. Get a honest card
and a PIN from the
bank
3. Change the PIN to
get new verifiers
4. Compute DES
key and PIN for
the stollen card
BankKey
Si mai simplu
Daca PIN-ul este criptat pe card fara alte informatii ale
utilizatorului atunci ATM-ul poate fi folosit pentru a extrge PIN-
uri
BankKey PIN
( )

16
PIN DES
BankKey
1. Capture the card
150
User
ATM
Adversary
Adversary as Honest User
Bank
( )
16 1 PIN DESBankKey
( )
16 2 PIN DESBankKey
( )
16 3 PIN DESBankKey
( )
16 1 PIN DESBankKey
C
hange P
IN
: P
IN
1, P
IN
2
2. Get a honest card
and a PIN from the
bank
3. Change the PIN to
get new verifiers until
the verifier is the
same as the one
from the credit card
BankKey
Curs 8. Alte protocoale din practica:
Kerberos.Standarde in securitatea comunicatiei
prin Internet. STS ca si context istoric. prin Internet. STS ca si context istoric.
Protocoalele: IPSec, SSH, SSL/TLS.
Bibliografie obligatorie (fara protocoalele care nu se regasesc din slideuri):
Capitolele 11, 12 din Wenbo Mao, Modern Cryptography:Theory and Practice,
ISBN13: 9780130669438, ISBN10: 0-13-066943-1, Prentice Hall, 2003.
Kerberos
Dezvoltat la MIT ca parte a proiectului Athena, folosit in special
in Windows, dar si pe Unix
Ideea de baza: utilizarea unei parti de incredere pentru
distributie de chei de sesiune ce pot fi utilizate intre utilizator si
diverse servere
Compus din 3 sub-protocoale:
152
Compus din 3 sub-protocoale:
Authentication Service Exchange (AS) ruleaza intre C si
AS
Ticket-Granting Service Exchange (TGS) ruleaza intre C si
TGS
Client/Server Authentication Application Exchange (AP)
ruleaza intre C si AP
Diviziunea intre AS si TGS este utila pentru cazul in care
serverele de aplicatie apartin la domenii diferite (deci U poate fi
deservit de un singur AS dar de mai multe TGS)
Participanti la protocol
U utilizator al serviciului de single-sign-on (SSO)
C aplicatie client invocata de user
S server de aplicatie (care detine resursele necesare
aplicatiei)
KDC Key Distribution Center format din 2 componente:
153
KDC Key Distribution Center format din 2 componente:
AS Authentication Server serverul la care C se autentifica (in faza
intiala folosind o parola fixata prin alt mijloc decat Kerberos)
TGS Ticket Grantig Server elibereaza bilete pe care C le foloseste
pentru a se autentifica la S
Diviziunea intre AS si TGS este utila pentru cazul in care
serverele de aplicatie apartin la domenii diferite (deci U poate fi
deservit de un singur AS dar de mai multe TGS)
Protocolul Kerberos
{ }
1
, ,
1. : , , ,
2. : , , , , , , ,
C TGS K C TGS
C AS U TGS LifeTime N
AS C U T Enc U C TGS K TimeStart TimeExp

=
154
{ }
{ }
{ }
,
,
,
, ,
, 1
2 , ,
,
2. : , , , , , , ,
, , , ,
3. : , , , , ,
4. : ,
AS TGS
U
C TGS
S TGS
C TGS K C TGS
C K C TGS
C TGS C TGS
K
C S K
AS C U T Enc U C TGS K TimeStart TimeExp
TGT Enc TGS K TimeStart TimeExp N
C TGS S LifeTime N T A C ClientTime
TGS C U T E
=
=
=
=
{ }
{ }
{ }
{ }
,
,
,
,
, 2
, ,
,
, , , , , ,
, , , ,
5. : , ,
6. :
C TGS
C S
C S
C S
C K C S
C S C S K
S C K
U C S K TimeStart TimeExp
TKT E S K TimeStart TimeExp N
C S T A E C ClientTime
S C A E ClientTime
=
=
=
Station to station protocol (STS)
Propus de Diffie, Oorschot si Wiener in 1992 (nume grele)
Si are cinci proprietati grele de securitate:
Autentificare mutuala
Schimb mutual de cheie
Confirmare mutuala a cheii
Perfect forward secrecy chiar daca o cheie privata este compromisa,
nu pot fi aflate chei anterior folosite
155
nu pot fi aflate chei anterior folosite
Anonimitate un observator din retea nu poate demonstra ca e vorba
de comunicare intre 2 participanti anume
( ) ( )
( ) ( )
1. :
2. : , , ,
3. : , ,
x
y y x
B k B
x y
A k B
A B
B A Cert E sig
A B Cert E sig

Autorii sustin ca este in esenta ISO Public Key Three-Pass Mutual


Authentication
Din pacate are o scapare esentiala: identitatile participantilor nu sunt
semnate
Propus alaturi de varianta STS Authentication only
( )
( )
1. :
2. : , , ,
3. : , ,
A
B B B B A
A A A B
A B N
B A Cert N sig N N
A B Cert sig N N

156
semnate
In atacul de mai jos: A vorbeste cu Adv iar B crede ca vorbeste cu A dar de
fapt vorbeste tot cu Adv
( )
( ) ( )
( )
( )
( ) ( )
1. :
2. :
3. : , , ,
4. : , , ,
5. : , ,
6. : , ,
A
A
B B B A B
B B B A B
A A A B
A A A B
A Adv N
Adv A B N
B Adv A Cert N sig N N
Adv A Cert N sig N N
A Adv Cert sig N N
Adv A B Cert sig N N

Atacul lui Lowe94 asupra STS


Considerat un atac minor, are urmatorul rezultat A crede ca
vorbeste B, B crede ca vorbeste cu Adv intr-o sesiune
incompleta
Numit si atac DoS deoarece pentru A comunicatia post-
autentificare nu continua (Adv tot nu stie cheia secreta) cu toate
ca protocolul se incheie corect
157
ca protocolul se incheie corect
( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
1. :
2. :
3. :
4. : , , ,
5. : , , ,
6. : , ,
x
x
y y x
B K B
y y x
B K B
x y
A K A
Adv B A start
A Adv B
Adv B
B Adv Cert E sig
Adv B A Cert E sig
A Adv B Cert E sig

Internet Security - IPSec


Se doreste asigurarea protectiei pentru un header IP
Motivatie: In absenta protectiei sunt posibile diverse atacuri
(oricare din atacurile mentionate, de. ex. reflectie)
Obiectiv: obligatoriu autentificare si optional confidetialitate
158
header IP
Campuri pentru layerul
de nivel inalt (7)
Asigurarea autenticitatii in IPSec
Introducerea unui Authentication Header (AH)
Campuri pentru securitate:
Security Parameter Index (SPI) specifica modul de functionare
(tunel/transport) si algoritmii utilizati (HMAC-SHA1, 3DES, AES)
Sequence Number contor pentru a evita atacuri de tip replay
Campuri fara semnificatie in securitate:
159
Campuri fara semnificatie in securitate:
Next Header tipul urmatorului header
Payload Legth lungimea headerului
Rezervat
Asigurarea confidentialitatii in IPSec
Blocuri de 32 de biti numite ESP (Encapsulating Security Payload) este
alocata dupa un AH
Campurile au aceeasi semnificatie
Payload Data sunt datele criptate si padding este folosit pentru ca lungimea
sa fie multiplu de 32 biti
Authentication Data este acum AH si este optional (greseala fatala!)
160
Authentication Data este acum AH si este optional (greseala fatala!)
Internet Key Exchange (IKE)
Necesar pentru a stabili cheia in IPSec (pentru a stabili relatia de Security
Association (SA) intre doua noduri)
IKE este o suita de protocoale de schimb de cheie autentificat, majoritatea
bazate pe Diffie-Hellman
IKE este compus din 2 faze (Phase1 + Phase2)
Faza 1 are 8 variante este un schimb de cheie cu autentificare mutuala
161
Faza 1 are 8 variante este un schimb de cheie cu autentificare mutuala
Faza 2 (denumita si quick mode) poate avea loc de mai multe ori dupa faza
1si poate fi folosita pentru a stabili mai multe tipuri de conexiuni cu diferiti
parametrii de securitate: integrity only, encryption only etc.
IKE Faza 1
Exista 8 moduri de faza 1 deoarece sunt 4 tipuri de chei (pre-
shared symmetric, old-style public key, new-style public key si
public signature verification key) si 2 tipuri de schimb (main
mode si aggressive mode)
Modul main schimba 6 mesaje (3+3) si este obligatoriu
162
Modul aggressive schimba 3 mesaje si este optional
Signature-based IKE Phase 1 Main Mode
Inrudit cu protocolul STS, difera prin criptarea certificatelor
(utilizata pentru anonimitate) si semnarea cheii stabilite
1. : ,
2. : ,
3. : , ,
4. : , ,
A A
B B
x
A A
y
A B HDR SA
B A HDR SA
A B HDR g SA
B A HDR g SA

HDR headere care contin


cookie C
SA security association care
negociaza parametrii de
securitate: algoritmi de
163
( )
( )
4. : , ,
5. : , , ,
6. : , , ,
xy
xy
y
B B
A A A A
g
B B B B
g
B A HDR g SA
A B HDR E ID Cert Sig
B A HDR E ID Cert Sig

( )
( ) ( )
( )
( ) ( )
1
1 1 2
2
2 1 2
|| || || || || || || ||
|| || || || || || || ||
A A
xy x y
A B A B A A
B B
xy x y
A B B A B B
Sig Sig M
M prf prf N N g g g C C SA ID
Sig Sig M
M prf prf N N g g g C C SA ID
=
=
=
=
securitate: algoritmi de
criptare, semnare, hash etc.
(se pot propune mai multe
variante si se raspunde cu
alegerea uneia)
ID identitatile participantilor
Atac similar atacului lui Lowe
Atacul functioneaza in primul rand pentru ca mesajul semnat
contine doar identitatea celui care semneaza, nu si cea a
presupusului partener
In urma atacului B crede ca vorbeste cu A, in timp ce A crede
ca vorbeste cu Adv intr-o sesiune neterminata
1. : , A Adv HDR SA
164
( )
( )
( )
( )
( )
( )
1. : ,
1'. : ,
2'. : ,
2. : ,
3. : , ,
3'. : , ,
4'. : , ,
4. : , ,
5. : , , ,
5'. : , ,
xy
xy
A A
A A
B B
B B
x
A A
x
A A
y
B B
y
B B
A A A A
g
A A
g
A Adv HDR SA
Adv A B HDR SA
B Adv A HDR SA
Adv A HDR SA
A Adv HDR g N
Adv A B HDR g N
Adv B A HDR g N
Adv A HDR g SA
A Adv HDR E ID Cert Sig
Adv A B HDR E ID C

( )
( ) ( )
,
6.' : , , ,
6.
xy
A A
B B B B
g
ert Sig
B Adv A HDR E ID Cert Sig
Abandon

IKE Aggressive Mode


Simplificare a modului de baza, prin reducere de la 6 la 3
mesaje
Un atac similar cu cel al lui Lowe este fezabil
165
1. : , , , ,
2. : , , , , , ,
3. : , ,
x
A A A A
y
B B B B B B
A A A
A B HDR SA g N ID
B A HDR SA g N ID Cert Sig
A B HDR Cert Sig

Probleme ale IPSec si IKE


Permite atacuri DoS prin faptul ca un participant poate fi
determinat sa desfasoare operatii criptografice intense fara a
avea vreo garantie cu privire la partenerul de comunicare
Complexitatea ridicata a protocolului (multe variante si
166
Complexitatea ridicata a protocolului (multe variante si
flexibilitate) nu este un factor pozitiv de securitate
Schneier si Ferguson critica complexitatea ca efect de comitet
IKE v2 repara parte din probleme lui IKE
IKE v2 ofera anonimitate (plausible deniability), obiectiv dorit in
diverse servicii IP
Secure Shell (SSH) remote login protocol
Secure Shell (SSH) protocol de autentificare bazat pe cheie
publica intre un server si un client
Standard pe sistemele UNIX, exista si pentru Win
Obiectiv: crearea unui canal sigur (autentic si confidential)
pentru executia de comenzi, mutarea de fisiere etc.
167
pentru executia de comenzi, mutarea de fisiere etc.
Trei componente majore:
SSH Transport Layer autentifica serverul catre client si creeaza un
canal sigur intre client si server (exista 2 strategii posibile: clientul are o
baza de date cu chei publice ale serverelor de incredere sau clientul
cunoaste autoritatea care a semnat certificatul serverului)
SSH User Authentication Protocol autentifica clientul catre server
(folosind chei publice sau mai uzual parole)
SSH Connection Protocol este un tunel criptat prin care se trimit
comenzile
Schimbul de cheie SSH
Semnificatii deja cunoscute ale valorilor
V
C
, V
S
versiunea protocolului
I
C
, I
S
valori intiale (schimbate inainte de a se ajunge la pasul
curent)
168
( ) ( )
( )
1. : mod
2. : || mod || || || || || || || ||
3. : : ,
x
y
S S C S C S S
x
S
C S e g p
S C K f g p s Sig H V V I I K e f K
C S verificare K f Ver s
=
= =
=
Daca verificare de la pasul 3 se incheie cu succes, se trece la
autentificarea clientului (uzual folosind parole) pe un canal sigur
(criptat)
SSL si TLS
Protocol de autentificare unilaterala (de cele mai multe ori) sau mutuala
destinat in special pentru WorldWideWeb
Destinat socketurilor de aici numele de SecureSocketLayer
Dezvoltat initial de Netscape, si ulterior acceptat ca standard de toti
dezvoltatorii inclusiv Microsoft
Evolueaza in Transport Layer Security (TLS) sub corpul de standardizare
Internet Engineering Task Force (IETF)
169
Internet Engineering Task Force (IETF)
Ruleaza sub nivelul aplicatie (HTTP, IMAP etc.) si deasupra nivelelor retea
TCP/IP
Este format din 2 componente
TLS Record Protocol calculeaza MAC-uri (integritate/autenticitate),
cripteaza (confidentialitate), optional compreseaza, si la receptie
decripteaza/verifica
TLS Handshake Protocol componenta de autentificare, negociere a
algoritmilor si a cheii
Structura unui handshake TLS
Mesajele Hello au ca scop stabilirea valorilor: versiune protocol, random, id
sesiune, algoritmi de criptare, compresie
Certificatele sunt in formatul X.509
KeyExchange contine partea de cheie Diffie-Hellman (dar functioneaza si cu
schimb de cheie dinspre client folosind RSA)
170
1 1 1
1 1
1. :
2. : , , , ,
3. : , , ,
4. :
C S ClientHello
S C ServerHello ServerCertificate ServerKeyExachange CertificateRequest ServerHelloDone
C S ClientCertificate ClientKeyExchange CertificateVerify ClientFinished
S C ServerFin

ished
schimb de cheie dinspre client folosind RSA)
Valorile marcate cu
1
sunt optionale
Uzual clientul ramane anonim si nu trimite certificat
Securitatea SSH si SSL/TLS
Ofera un nivel suficient de bun de securitate pentru majoritatea
utilizatorilor
Nu au vulnerabilitati semnificative (variantele noi si corect
implementate)
171
implementate)
Sunt susceptibile la atacuri prin temporizare (side-channel)
Curs 9. Securitate software.
Securitate criptografica in .NET. Securitate
criptografica in Java
1
. Protectia proprietatii
intelectuale (copyright). Tehnici de intelectuale (copyright). Tehnici de
obfuscare a codului sursa
Bibliografie obligatorie:
Capitolul 3 si 4 (doar sub-capitolele despre programare) din Peter Thorsteinson, G. Gnana Arun Ganesh, .NET
Security and Cryptography, 496 pages, Prentice Hall (August 28, 2003), ISBN-10: 013100851X, ISBN-13:
978-0131008519
Capitolul 30 din Brian A. LaMacchia, Sebastian Lange, Matthew Lyons, Rudi Martin, Kevin T. Price, .NET
Framework Security, Addison Wesley, 2002, ISBN : 0-672-32184-X, 816 p.
MSDN daca sunt necesare detalii asupra codului sursa
1
Facultativ, pentru cei care doresc mai mult si in limita timpului disponibil se ofera materiale pentru studiul
individual
System.Security.Cryptography Namespace
Problema securitatii criptografice a fost adresa initial de Microsoft in 1996 cu
introducerea Win32 Cryptography API (Crypto API) (API = Application
Programming Interface)
Odata cu introducerea .NET toate functiile criptografice sunt incluse in
System.Security.Cryptography Namespace, si anume:
Criptari simetrice: DES, 3DES, AES (Rijndael)
173
Criptari simetrice: DES, 3DES, AES (Rijndael)
Criptari asimetrice si semnaturi digitale: RSA, DSA, EC-Diffie-Hellman(-Merkle),
ECDSA
Hash: MD5, SHA1, SHA256, SHA384, SHA512,RIPEMD160
Mac: HMAC cu toate functiile hash disponibile
Generator de numere pseudo-aleatoare
Padding-uri: PKCS, OAEP
Derivari cheie-parola
Ierarhia de clase pentru criptari simetrice
Implementarile CryptoServiceProvider sunt wrapere peste cele din
CryptoAPI iar cele Managed sunt proprii frameworkului .NET
Implementarea default din SymmetricAlgorithm este RijndaelManaged
174
Proprietati
Denumirile spun totul
Modurile de functionare permise sunt: Cipher Block Chaining CBC
(Default), Electronic Code Book ECB, Output Feedback OFB, Cipher
Feedback CFB, Cipher Text Stealing CTS (la fel ca si CBC cu exceptia
ultimelor 2 blocuri, ofera dimensiune egala pentru plain-text si cripto-text)
175
Metode denumirile spun totul
176
Interfata ICryptoTransform
Defineste transformarea criptografica a unui bloc de dimensiune fixa intr-un
alt bloc de dimensiune fixa
Toate codurile simetrice din .NET implementeaza o astfel de transformare
Metodele Transform sunt cele care fac efectiv criptarea/decriptarea (pus
intre ghilimele pentru ca si functiile hash sunt la fel implementate)
177
CryptoStream - Streamuri criptografice
Metodele CreateEncryptor/CreateDecryptor returneaza obiecte
de tip ICryptoTransform
Aceste obiecte pot fi apoi infasurate peste orice alt stream
Operatiile criptografice criptare/decriptare sunt echivalate cu
scriere/citiri in streamuri:
scriere criptare
citire decriptare
178
citire decriptare
public CryptoStream( Stream stream, ICryptoTransform transform,
CryptoStreamMode mode )
Constructorul
Modul poate fi scriere sau citire (figura ilustrativa in modul read)
Exemplu de criptare/decriptare in memorie
Criptare cu AES (scriere in stream)
179
Decriptare cu AES (scriere in stream)
Cascadarea streamurilor criptografice
Streamurile se pot cascada, fiind usor a aplica
180
Streamurile se pot cascada, fiind usor a aplica
mai multe transformari de criptare/decriptare
Chei slabe pentru DES si 3DES
Se numesc chei slabe acele chei care fac un criptosistem sa se comporte
intr-un mod nedorit
De exemplu la DES criptarea de 2 ori cu o cheie slaba conduce la mesaj
Exista doar 4 chei slabe DES (stanga si drepta daca modificam bitul de
paritate), si 6 perechi de chei semi-slabe (a se observa ca perechea este
shiftare circulara la stanga cu 8 biti)
181
Numarul fiind redus, prin generarea aleatoare, probabilitatea de a le intalni
este prea scazuta pentru a cauza probleme
Totusi, in .NET, DES are proprietatea IsWeakKey si IsWeakKey care pot fi
utilizate pentru a testa daca o cheie este slaba sau semi-slaba
Functii hash si coduri MAC (Keyed Hash)
Hash Algorithm
MD5 KeyedHashAlgorithm SHA1 RIPEMD160
Clase Abstracte
SHA2
182
MD5CryptoServi
ceProvider
SHA1
CryptoServiceProvider
/ Managed
RIPEMD160Crypt
oServiceProvider
Implementari
SHA2Ma
naged
HMAC MACTripleDES
HMAC: MD5/
SHA1/SHA2/
RIPEMD160
Exemplu de utilizare functie hash
Fie folosind metoda ComputeHash, e.g.
183
Fie folosind metodele TransformBlock si TransformFinalBlock
Fie ca si streamuri folosind ICryptoTransform (Atentie!
Streamurile construite peste functii hash nu transforma datele,
valoarea hashul se gaseste la sfarsit in proprietatea .Hash a
obiectului)
Paradigma hash and encrypt
Pentru a testa daca continutul unui fisier criptat a fost sau nu
alterat se recomanda criptarea fisierului alaturi de un hash al
sau (hash and encrypt)
184
sau (hash and encrypt)
Modul de functionare bizar (fara a modifica datele) a
cryptostream-urilor pentru functii hash are ca justificare aceasta
paradigma
Exemplu utilizare HMAC
La fel ca la functii hash cu observatia ca trebuie setata si cheia (fie cu proprietatea Key, fie in
constructor)
Intrebare: cate erori (de exprimare cel putin) sunt in codul/adnotatiile de mai jos? (sursa MSDN)
185
Generatoare de numere pseudoaleatoare in .NET
PRNG-urile deriva din clasa abstracta
RandomNumberGenerator
Metodele GetBytes si GetNonZeroBytes se folosesc pentru a
extrage un array de byte cu valori (pseudo)aleatoare
186
Derivari parola-cheie in .NET
Pentru derivari de cheie, clasa abstracta DeriveBytes poate fi folosita
In particular, clasa derivata PasswordDeriveBytes implementeaza
standardul PKCS#5 v2.0 pentru a transforma o parola in cheie
criptografica (a se observa metoda CryptDeriveKey)
187
Constructorul clasei PasswordDeriveBytes
Interesant de vazut pentru ca aceleasi principii trebuiau utilizate
si in parolele din Win
188
Ierarhia de clase pentru algoritmi asimetrici
RSA intre 384 si 16384 biti cu increment de 8
DSA intre 512 si 1024 bit cu increment de 64 biti
Mai nou si DH si DSA pe curbe eliptice (EC)
189
AsymmetricAlgorithm
DSA RSA
RSACryptoServicePr
ovider
DSACryptoServi
ceProvider
Clase Abstracte
Implementari
Exemplu de utilizare RSA
La criptare/decriptare foloseste OAEP daca valoarea booleana
este true (si PKCS#1 daca este false)
190
La semnare/verificare foloseste paradigma hash-and-sign
Se poate folosi si clasa RSAPKCS1SignatureFormatter pentru
a crea semnaturi compatibile cu standardul PKCS1
Exportarea (Importarea) cheilor RSA ca XML
Metodele FromXmlString/ToXmlString permit
initializarea/extragerea cheii private sau publice din/in string
XML
"<RSAKeyValue><Modulus>6AJaqD6l+TRfr0IAOyzpXxe73tXESNw4R7/ZyYjnrPSN3Om12RUY9PzOSFpH677
e5uq+lp6TbKX3aMo3/3AJXV6Wxuy4RsTRI8pKn/0wDcxx2AZoiOu2VfmSFJQvdPgkp7SA6JQxjIWBhnnbbL9WU
91OAk/XZV3Ktxm2AJ5KOE0=</Modulus><Exponent>AQAB</Exponent><P>+J4hJcgno8scXnAnRwrldEtFarM
Xbt7jUq3XgQUHEbAmow/ul0bSPpz03dCA12VYtUOc9LKM03C86gQKjBKOXw==</P><Q>7uX5lfzIJbdRNB2Mx
191
Xbt7jUq3XgQUHEbAmow/ul0bSPpz03dCA12VYtUOc9LKM03C86gQKjBKOXw==</P><Q>7uX5lfzIJbdRNB2Mx
cq80cTMnv9W1th2mDux+fe+bNJW2jIg2l8hwUeloz416F8htYGknrOR5GYWRfhqPa0g0w==</Q><DP>052NK2K
V0wYkTIH7/K1ap0UWff6YeIeBSLOt1iTYYobkLDF4bQ0cEa15g4Bg2nZqLkexxlpgIe0475um+pkk0w==</DP><D
Q>u+43+BCB1oGuJKQ2UIZbIV2CZnWRd7OTH9CeAnks2OhioIUcqQx7PlPBbniK6cCkgOd6e8nhM95HGUYBN
YGTNw==</DQ><InverseQ>RayCnS4qw4t3vqP3hC41pMtlXm00xNGS73TeN6tI6hlaCSujMapYNyWHNqji+I+nS
y/KW4MIJTpEE2ed6HjhuA==</InverseQ><D>B1MTs54OtVhe8PR/d17Km1LvfnB3Oumg6Tr4UDF/RumNlPzX3d
uZpxpYFNas0Jd9CAM/MxgchWCT9/3yWKEb2oRe1YrSE9vpNz15PGWhJSXf7lU1FpBJBYIc9g88l2eapASMem
Rpzc3iD10ScWh5HUlNYfBRDy7sDTTyw6RZH00=</D></RSAKeyValue>"
"<RSAKeyValue><Modulus>6AJaqD6l+TRfr0IAOyzpXxe73tXESNw4R7/ZyYjnrPSN3Om12RUY9PzOSFpH677e5
uq+lp6TbKX3aMo3/3AJXV6Wxuy4RsTRI8pKn/0wDcxx2AZoiOu2VfmSFJQvdPgkp7SA6JQxjIWBhnnbbL9WU91O
Ak/XZV3Ktxm2AJ5KOE0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
Criptarea si decriptarea RSA
Criptarea/Decriptarea (metodele Encrypt/Decrypt) se face folosind OAEP
sau PKCS1
Atentie la variantele mai vechi unde cu metodele
EncryptValue/DecryptValue se lucra fara padding (sursa de atacuri CCA2)
Decriptarea se face folosind CRT, in cei 4 pasi de mai jos
Intrebari: Care este castigul de viteza? Demonstrati ca decriptarea este
corecta. Gasiti legatura cu relatia lui Gauss pentru CRT.
192
corecta. Gasiti legatura cu relatia lui Gauss pentru CRT.
( )
( )
( )
1
1
1
mod 1
mod 1
mod 1
dp e p
dq e q
qInv q p

=
=
=
( )
1
2
1 2
2
1. mod
2. mod
3. mod
4.
dp
dq
m c p
m c q
h qInv m m p
m m h q
=
=
=
= +
Paradigma KEM/DEM
KEM Key Encapsulation Mechanism
DEM Data Encryption Mechanism
193
KEM/DEM inseamna criptare hibrida, adica utilizarea criptarii
asimetrice pentru protectia unei chei, si a celei simetrice pentru
protectia efectiva a mesajului
Protectia proprietatii intelectuale - Copyright
Problema uzuala in care criptografia castiga teren
Solutii comune
Dongle pe portul paralel care este interogat periodic de
software (practic un sistem challenge-response)
Instalarea software-ului pe hard intr-o maniera rezistenta la
194
Instalarea software-ului pe hard intr-o maniera rezistenta la
copiere. Exemplu extrem: marcarea unui sector de pe hard
ca bad si stocarea de informatii vitale pe el => orice functie
de copiere a OS-ului nu va copia sectorul
Stocarea configuratiei PC-ului (serii de pe componente, in
special CPU) si inregistrarea on-line respectiv respingerea
licentei pentru aceeasi copie la configuratii diferite
Obfuscarea codului sursa
Scrierea codului intr-o maniera in care sa nu poata fi inteles
Previne, refolosirea lui de parti neautorizate
Probleme ale solutiei: securitate prin obscuritate, codul obtinut
este mai lent, securitate nedemonstrabila (vezi lucrarea lui
Barak et al. On the (Im)possibility of Obfuscating Programs)
Exemplu din wikipedia:
195
Exemplu din wikipedia:
Curs 10. Securitate in Retele Wireless.
Context, obiective si blocuri constructive.
Protocoalele WEP (Wired Equivalent Protocoalele WEP (Wired Equivalent
Privacy), WPA (Wi-Fi Protected Access) si
WPA2.
Bibliografie obligatorie:
Capitolul 7 din Praphul Chandra, Bulletproof Wireless Security (GSM, UMTS, 802.11
and AdHoc Security), ISBN: 0-7506-7746-5, Elsevier, 2005.
Comunicatii wireless si securitatea
Comunicatiile cablate:
Dezavantaj: infrastructura
Avantaj: plus de securitate datorita dificultatilor de acces la mediu
Comunicatiile wireless:
Avantajul: usor de implementat chiar in spatii greu accesibile
Dezavantaj: accesului unanim la mediul de comunicare
197
Obiective
Fara a le neglija pe celelalte, in comunicatii wireless, rol central:
Confidenialitatea - faptul c informaia rmne accesibil
doar prilor autorizate
Autentificarea - dou coordonate distincte: autentificarea
198
Autentificarea - dou coordonate distincte: autentificarea
entitilor i autentificarea informaiei (implica integritatea -
informaia nu a fost alterat)
Anonimitatea - mpiedicarea identificrii identitii unei
entiti care a solicitat un serviciu
Disponibilitatea faptul ca o resursa este disponibila
clientilor
WEP Wired Equivalent Privacy
Succes major dovedit de popularitate
Ca securitate esec major in asigurarea obiectivelor de:
autenticitate, integritate, confidentialitate autenticitate, integritate, confidentialitate
199
Schimbul de cheie WEP
Preshared keys chei pre-distribuite intr-o maniera off-line
catre statii (STA) si cunoscute de access-point (AP)
Vulnerabilitati constructive:
Configurare manuala, timp consumat si sursa de erori Configurare manuala, timp consumat si sursa de erori
Chei usor de memorat devin usor de spart
Nu se pot asocia chei unice pe STA (totusi permite pana la 4 chei)
Marea parte a implementarilor folosesc doar 1 cheie
200
Autentificarea in 802.11
AP face broadcast periodic al SSID (Service Set Identifier)
pentru a face cunoscuta prezenta retelei
STA are doua optiuni:
Passive scan asteapta anunturi (beacons) Passive scan asteapta anunturi (beacons)
Active scan- trimite cereri (probe request) unui anume SSID sau cu
SSID 0 (indica acceptarea oricarei retele)
AP raspunde cu un probe-response
STA decide in ce retea sa intre (utilizatorul/software)
Urmeaza protocolul de autentificare
201
Mecanisme de autentificare
Open System Authentication (OSA) mecanism default, nu se
face nici o verificare a identitatii STA (campul Auth Alg setat 0)
Shared Key Authentication (SKA)
Mecanism challenge-response
Cerinte: suport WEP din partea AP si STA, cheie secreta comuna
Pasi: STA trimite cererea, AP raspunde cu un challenge text pe 128 de
biti (generat folosind cheia secreta si un IV random), STA raspunde cu
challenge-ul criptat cu cheia secreta si un IV propriu, AP decripteaza,
verifica si acorda/respinge accesul
202
OSA vs. SKA
203
Probleme la autentificarea WEP
OSA nu autentifica nimic
SKA autentifica dar:
Toate STA folosesc aceeasi cheie
Autentificarea este uni-laterala (AP catre STA nu se
autentifica) => AP hijacking
204
Imbunatatiri la autentificare
Ascunderea SSID acces doar pentru STA care cunosc SSID,
AP raspunde doar la probe request de la statii care cunosc
SSID
solutie partiala, deoarece SSID este transmis ca plaintext solutie partiala, deoarece SSID este transmis ca plaintext
Filtrarea dupa MAC (Media Access Control)
In ambele situatii SSID respectiv MAC devin secretul
ambele sunt insa vizibile la un moment dat
205
Confidentialitatea in 802.11
Lucreaza in urmatorii pasi:
1. Calculeaza ICV (Integrity Check Value) pe MPDU (MAC
Protocol Data Unit)
2. Selecteaza cheia master K (posibilitate de 4 chei)
3. Selecteaza IV si concateneaza la K pentru a obtine key seed
KS KS
4. KS se trimite la generatorul de chei bazat pe RC4.
5. Raspunsul generatorului se face XOR cu mesajul si ICV
6. Un header pe 4 byte se adauga mesajului specificand IV pe 3
byte si ID cheie pe 1 byte
206
Criptare WEP Schema de ansamblu
207
Probleme in confidentialitatea WEP
Folosirea RC4 care este un cod stream impune sincronizare de
partea AP si STA
Sincronizarea nu poate fi garantata intr-un mediu wireless
Utilizarea lui RC4 e buna ca performanta, dar nu e buna ca mediu
(SSL foloseste RC4 dar sub TCP (garanteaza pachete))
Pentru a remedia problema de sincronizare, 802.11 schimba cheia
la fiecare pachet (pachetul poate fi decriptat chiar daca pachetul la fiecare pachet (pachetul poate fi decriptat chiar daca pachetul
anterior e pierdut)
Problema: cheia per-pachet este creata folosind un IV (24 de biti)
concatenat la cheia master, dar IV este transmis in clar =>
adversarul deja stie 24 de biti din cheie (mai raman 40)
WEP este vulnerabil la atac de tip Fluhrer-Mantin-Shamir (atac
bazat pe posibilitatea de a colecta pachete cu chei slabe)
Primii 8 byte din fiecare pachet sunt cunoscuti, reprezinta headerul
SNAP (SubNetwork Acess Protocol)
208
Atacuri asupra confidentialitatii
Reutilizarea cheii face ca pachete diferite sa foloseasca acelasi
stream de cheie
Relatia matematica intre astfel de pachete permite aflarea unui
plaintext daca o pereche plaintext-ciphertext este deja
cunoscuta
( )
( )
1 1 4 ||
1 1 2 2
2 2 4 ||
C P RC K IV
P C C P
C P RC K IV
=

=
`
=

)
209
( ) 2 2 4 || C P RC K IV =

)
Cat de reala este reutilizarea cheii?
40 de biti provin din cheia master (fixa), 24 de biti din IV
(variabil)
La 10 Mbps, cu pachete de 1500kb, spatiul IV se epuizeaza in
in 5 ore ! (si reia cu IV deja folosit, la SSL de ex. RC4 tine
cativa ani de sesiuni)
Mai rau: conform standardului 802.11 schimbarea IV este
optionala
Probleme in Integritatea WEP
Se foloseste un CRC pe 32 de biti:
210
Problema: CRC 32 este o transformare liniara, cu proprietatea:
( ) ( ) ( ) CRC X Y CRC X CRC Y =
Consecinta un intrus poate schimba valoarea pachetului facand
un simplu xor: X || CRC32(X) devine X xor Y || CRC32(X) xor
CRC32(Y) receptorul nu are cum sa isi dea seama ca
pachetul a fost modificat
Consecinte mai grave
Atac prin redirectare: adresa destinatie a unui pachet poate fi
modificata si pachetul poate ajunge decriptat la un adversar
aflat in conexiune cablata la router aflat in conexiune cablata la router
Atacuri de tip replay: un adversar poate retransmite mesaje
211
Sumar al vulnerabilitatilor WEP
Nu exista mecanism de schimb de cheie
Foloseste un cod stream (RC4) intr-un mediu impropriu
Foloseste chei noi per-pachet lasand riscul unui atac FMS
IV pe 24 de biti se repeta in cateva ore IV pe 24 de biti se repeta in cateva ore
Nu obliga schimbarea IV (nici nu ofera un mecanism de
schimbare, nici nu asigura unicitatea IV per STA)
CRC32 este linear si pachetele pot fi modificate
Atacuri prin redirectare
Atacuri prin replay
Nu exista autentificare din partea STA
212
WPA (Wi-Fi Protected Access)
Pas de tranzitie de la WEP (RC4) catre WPA2 (AES)
Foloseste Temporal Key Integrity Protocol (TKIP)
Foloseste MICHAEL pentru inegritate Foloseste MICHAEL pentru inegritate
Foloseste mecanism de management al cheilor si
autentificare conform cu 802.1x
213
Folosirea cheii in WPA
WPA defineste doua zone de utilizare: home network si
enterprise network
Cheia folosita in fiecare pachet este derivata pe baza unei
arhitecturi multi-nivel arhitecturi multi-nivel
Consecinta doua mecanisme de autentificare:
802.1X foloseste un server de autentificare (enterprise)
Out-of-band foloseste configurare manuala (home)
214
Ierarhia cheii WEP vs. WPA
Principiu: PMK nu este
expusa in fiecare
pachete (ca la WEP)
deoarece se deriva un
PTK
PMK are 256 biti, dar PMK are 256 biti, dar
este derivata din chei
care pot fi mai mici (nu
ofera securitate de 256
biti)
215
Poza din [Praphul Chandra, 2005]
Derivarea PTK
Se face pe baza algoritmului HMAC cu SHA
Nonce-urile de partea AP si STA se calculeaza
512( ," ",
_ || _ || || )
PTK PRF PMK PairWiseKeyExpansion
AP MAC STA MAC ANonce SNonce
=
Nonce-urile de partea AP si STA se calculeaza
Se observa prezenta Nonce, MAC si Timp
216
256( ," ", _ || )
256( ," ", _ || )
ANonce PRF RandomNumber InitCounter AP MAC Time
SNonce PRF RandomNumber InitCounter STA MAC Time
=
=
Criptarea TKIP
Compatibila cu acceleratoarele hard pentru WEP
Separarea functiei de Key-Mixing in 2 faze aduce avantaje
computationale (faza 1 se face doar la 65537 pasi)
217
Autentificarea
WPA specifica utilizarea RADIUS (Remote Authentication Dial
In User Service)
Protocolul de autentificare nu este specificat, poate fi orice,
uzual SSL/TLS, dar se pot folosi si autentificari pe baza de
parola CHAP
218
Poza din [Praphul Chandra, 2005]
Confidentialitatea
Acelasi mecanism de schimbare a cheii la fiecare pachet
Dar, TKIP dubleaza IV de la 24 la 48 biti (in realitate 56 de biti Dar, TKIP dubleaza IV de la 24 la 48 biti (in realitate 56 de biti
dar 8 sunt folositi pentru a elimina cateva chei slabe)
219
Integritatea
CRC32 avea problema linearitatii dar meritul de a fi usor de
calculat
WPA foloseste MICHAEL e mai greu de falsificat, repara
problema linearitatii problema linearitatii
Totusi, nu imposibil de fraudat si e mai slab decat MD5 etc.
Se adauga un mecanism aditional de protectie: daca apar
doua falsificari in MIC, STA decide ca este sub atac si
asteapta 1 minut dupa care re-initializeaza protocolul (IV nou
etc.)
Exista si protectie la replay datorata utilizarii unui TSC (TKIP
Sequence Counter)
220
Schema de ansamblu
221
Poza din [Praphul Chandra, 2005]
Remedierea problemelor WEP
Foloseste 802.1x la autentificare
Foloseste PTK in loc de cheie master
Foloseste IV pe 48 de biti (previne refolosirea IV)
IV incrementat la fiecare pachet (previne replay) IV incrementat la fiecare pachet (previne replay)
Inlocuieste CRC32 cu MICHAEL
ICV include si MAC (previne redirectarea)
Nu repara: inca foloseste RC4
222
WPA 2
Acelasi mecanism de autentificare ca la WPA
Remediaza folosirea RC4 prin inlocuirea cu AES Remediaza folosirea RC4 prin inlocuirea cu AES
Foloseste CBC-Mac pentru integritate
223
WPA2 Confidentialitatea
Foloseste AES in modul counter cu avantajele:
Streamul de chei este independent de mesaj (tolerant la
pierderea de mesaje)
Permite criptarea in paralel
224
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
WPA2 - Integritatea
Foloseste CBC-MAC cu AES
225
Poza din [Praphul Chandra, 2005]
Diagrama de ansamblu
226
Poza din [Praphul Chandra, 2005]
Imbunatatiri aduse de WPA2
Repara problema confidentialitatii (AES) si a integritatii (CBC) Repara problema confidentialitatii (AES) si a integritatii (CBC)
227
Anonimitate 802.11
Superficial tratata:
Identitatea protejata prin NAT Identitatea protejata prin NAT
228
Curs 11. Securitate hardware si atacuri side-
channel. Dispozitive uzuale: smart-carduri si
FPGA. Clasificarea atacurilor. Fault induction.
Atacuri prin temporizare. Atacuri prin analiza Atacuri prin temporizare. Atacuri prin analiza
consumului de putere. Masuri de prevenire.
Bibliografie obligatorie:
Franois Koeune, and Franois-Xavier Standaert. A Tutorial on Physical Security
and Side-Channel Attacks, Foundations of Security Analysis and Design III :
FOSAD 2004/2005, Volume 3655 of Lecture Notes in Computer Science, pages 78-
108, November 2006 (fara atacuri prin corelare)
Dispozitive hardware uzuale
SmartCard mici, usor de transportat, capabilitati identice cu
ale unui calculator (la putere redusa) si deci inevitabile pentru
securitate puternica
FPGA circuite dedicate utilizate pentru a implementa functii
criptografice hardware inevitabile pentru criptografie la scara
230
criptografice hardware inevitabile pentru criptografie la scara
mare
nVidia mai nou placile video pot fi folosite si ele ca
acceleratoare cripto, totusi rezultatele sunt slabe comparativ cu
alternativa FPGA (singurul avantaj este ca au un numar mare
de utilizatori)
Smart Card
Computer Embedded in a Safe
Nu au baterie interna sunt alimentate din exterior => consumul usor de
monitorizat
Nu au generator de tact folosesc din exterior => timpul de calcul usor de
monitorizat
Au un micro pe 8, 16 sau 32 biti, ROM, EEPROM si RAM
Liniile din figura (poza wiki http://en.wikipedia.org/wiki/Smart_card)
231
Liniile din figura (poza wiki http://en.wikipedia.org/wiki/Smart_card)
reprezinta:
VCC tensiunea de alimentare
RST reset
CLK ceas
GND ground
I/O intrare iesire
VPP pentru programare
FPGA (Field-Programmable Gate Array)
Se programeaza intr-un limbaj de descriere hardware, de ex.
VHDL (Very High Speed Integrated Circuit Hardware
Description Language)
Un array de circuite logice programabile care pot executa functii
combinatoriale sau simple functii logice AND, OR, XOR etc.
232
Modelul general al unui atac
Atacurile fizice adreseaza vulnerabilitati provenite din modul de
implementare:
Sunt mai putin generale decat atacurile criptanalitice
(matematice)
Pot fi mult mai puternice
233
Pot fi mult mai puternice
Pot fi descompuse in 2 faze (exista studii dedicate pentru
ambele):
Interactiunea cu dispozitivul hardware (cuelegerea datelor)
Exploatarea datelor
Spre deosebire de alte atacuri, tinta este aproape intotdeauna
recuperarea cheii secrete (algoritmul fiind cunoscut conform
dezideratelor lui Kerckhoff)
Tipuri de atac (teoretica)
Atacuri invazive si non-invazive. Cele invazive necesita acces
la circuite. Cele non-invazive masoara doar din exterior: timp de
calcul, putere consumata etc. Sunt considerate mai periculoase
234
calcul, putere consumata etc. Sunt considerate mai periculoase
deorece cele invazive implica in general costuri mai mari.
Active si pasive. Cele active incearca sa altereze
comportamentul uzual al dispozitivului (de ex. introducand
erori). Cele pasive nu perturba comportamentul.
Tipuri de atac (in sens practic)
Probing atac invaziv si pasiv prin care sunt masurate valori
din sistem. Statiile de probing dispun de microscop si micro-
manipulatoare, costa mii, zeci de mii de dolari
235
manipulatoare, costa mii, zeci de mii de dolari
Fault induction atac activ si invaziv sau non-invaziv prin care
sunt introduse erori pentru a vedea comportamentul sistemului.
Speranta este ca eroarea va aduce informatii cu privire la cheia
secreta
Timing attacks atacuri prin temporizare
Power analysis atacuri bazate pe puterea consumata
Electromagnetic analysis analiza campului electromagnetic
din timpul procesarii
Fault induction
Carcateristici
Permanente sau trecatoare
Localizarea erorilor
Momentul aparitiei
Tipul erorii: inversarea unui bit, blocarea unei celule de
memorie, eliminarea unui salt etc.
236
Tipul erorii: inversarea unui bit, blocarea unei celule de
memorie, eliminarea unui salt etc.
Metode
Tensiunea: alimentarea la o tensiune necorespunzatoare
Ceasul
Temperatura
Radiatii
Lumina (poate influenta zone de memorie)
Inductie electromagentica
Atac RSA prin introducere de erori in RSA-CRT
Pentru a creste viteza de calcul la decriptarea RSA se foloseste uzual CRT.
Acelasi lucru se foloseste si la semnarea digitala
( ) ( )
1 1 1
1 2
mod
mod mod mod
mod
dp
dq
x c p
m q q p x p p q x n
x c q

= +

237
Daca apare o eroare in pasul de decriptare modulo p sau q modulul poate fi
factorizat
( ) ( ) 1 2
2
mod mod mod
mod
dq
m q q p x p p q x n
x c q
= +

( )
( )
mod gcd ,
mod gcd ,
s m p s m n q
s m q s m n p


=
=
Atacuri prin temporizare (timing attacks)
Idee introdusa de Kocher in 1996, folosita de Dhem et al. asupra smart-
cardurilor
Se colecteaza un set de mesaje si timpul de rulare pentru acestea, in
speranta ca timpul spune ceva despre cheia secreta
238
Exemplu asupra reducerii modulare
1. t = 2^(l1-l2)*N
Reducerea modulara este o operatie frecventa in criptografia
asimetrica (e.g. RSA)
Codul sursa de mai jos returneaza x mod N, unde l1 si l2 sunt
dimensiunile lui x respectiv N
239
1. t = 2^(l1-l2)*N
2. for i=0 to l1-l2 do
3. if x>=t then x = x t
4. t = t/2
5. end for
5. return x
Principiul atacului: linia 3 nu se execut daca x<t, deci este posibil
a afla valoare lui n dupa timpul de calcul pentru diverse valori ale
lui x
RSA Montgomery
In mod uzual decriptarea RSA se face folosind reducerea
Montgomery (vezi HAC cap. 14)
In principiu, multiplicarea Montgomery presupune pasi care pot
fi scurti sau lungi dupa cum rezultatul este mai mic sau mai
mare ca modulul
240
Principiul unui atac este ilustrat pe algoritmul RSM (Repeated
Square and Multiply)
1. for i=w-2 downto 0 do
2. x = x*x mod n
3. if d_i = 1 then r = r * x
4. end for
5. return x
Ideea unui atac prin temporizare asupra Montgomery
Presupune urmatorii pasi:
Se presupune ca un bit necunoscut (primul de la stanga la
dreapta) este 1
Se creeaza doua multimi de mesaje A in care mesajele
241
Se creeaza doua multimi de mesaje A in care mesajele
presupun executarea pasului scump si B in care mesajele
nu necesita executarea pasului scump
Se ruleaza algoritmul (black-box) pe cele 2 seturi
Daca T(A)>T(B) atunci bitul necunoscut este 1, altfel este 0
Atacuri prin temporizare asupra SSL/TLS
Demonstrate de Brumley si Boneh pentru prima oara in 2003,
reusind sa extraga cheia privata pe baza temporizarilor la
decriptare
Se observa discontinuitati la multipli de p si q Se observa discontinuitati la multipli de p si q
242
Poza din Brumley & Boneh 2003
Atacuri asupra IPSEC
Cercetare promovata de Patterson & Yau si Degabriele &
Paterson incepand din 2006
Atacuri exploateaza faptul ca in IPSec se poate folosi
confidentialitate fara autenticitate
243
Analiza puterii consumate
Cele mai eficiente atacuri si cel mai simplu de efectuat
(necesita doar un osciloscop)
Tiparul consumului de putere indica structura functiei de
criptare/decriptare
In poza de mai jos se remarca cele 16 runde ale unei criptari
DES
244
DES
In cazul in care operatia era decriptare RSA cu RSM se vedeau
bitii exponentului privat
Analiza diferentiala a puterii consumate
Kocher et al. Differential Power Analysis, Crypto99 (vezi si
poza, a doua curba corespunde valorii corecte)
Acelasi principiu divide-et-impera
Se separa mesajele in 2 seturi A si B pentru care bitul tinta este
0 respectiv 1
Exemplu asupra unui bit de S-Box din runda 16 a DES (explicat
245
Exemplu asupra unui bit de S-Box din runda 16 a DES (explicat
la tabla)
Differential Fault Analysis
Introduse de Biham si Shamir asupra codurilor bloc
Principiu pentru coduri bloc: introducerea unei erori intr-o
runda de criptare cauzeaza in rezultat erori specifice pentru
246
runda de criptare cauzeaza in rezultat erori specifice pentru
fiecare valoare a cheii
Bazate pe metoda divide-et-impera
DES
16 runde Feistel
Functia de runda construita pe
o E expansiune, S box
(substitutii), P - permutare
247
Pozele din HAC, p. 254 si 255
Detalii IP, E, P
248
Poza HAC
Detalii S-box
Poza HAC
249
Ideea unui atac cu eroare diferentiala asupra DES
Presupunem o eroare care afecteaza un singur bit din R15
Bitul urmeaza 2 trasee: 1) in L16 si 2) in R16
Traseul din R16 trece prin E, face XOR cu Ki, intra intr-un Sj si
introduce o eroare de 4 biti
250
introduce o eroare de 4 biti
Presupunand cheia perfect aleatoare inseamna ca exista 2^6
valori pentru Ki
Prin repetarea experimentului se elimina acele chei care nu pot
produce eroarea obtinuta
Conform Biham si Shamir in medie raman doar 4 valori posibile
dupa un singur experiment
Alte atacuri
Atacuri prin corelare: corelation power analysis (CDA)
optimizeaza DPA pentru a afla mai multi biti deodata
251
Atacuri bazate pe campuri electromagnetice introduse de
Quisquater si Samyde
Masuri de prevenire
Introducerea de straturi protectoare (lipici etc.) pentru a
preveni accesul fizic la dispozitiv
Introducerea de detectoare pentru comportament anormal al
circuitului (alimentare/tact anormal, lumina etc.)
Introducerea de zgomot in algoritm
252
Introducerea de pasi suplimentari in algoritm: square and
multiply always, reduce always
1. t = 2^(l1-l2)*N
2. For i=0 to l1-l2 do
3. If x>=t then x = x t
4. Else u = x - t
5. t = t/2
6. return x
Curs 12. Controlul accesului. Matrici si liste
de control a accesului. Capabilitati. RBAC.
Protectii hardware. Secret sharing. Protectii hardware. Secret sharing.
Securitate Multinivel. Securitate Multilaterala.
Atacuri DoS. Sisteme de supraveghere
Bibliografie obligatorie (fara tematicile care nu se regasesc in slideuri):
Cap 4.1., 4.2.1 4.2.6, si 4.3 din Ross Anderson, Security Engineering - A Guide to
Building Dependable Distributed Systems, Wiley, 640 p., ISBN 0-471-38922-6,
2001. (facultativ capitolele: 7 si 8 pentru consolidarea notiunilor de
multilevel/multilateral, 10 pentru monitorizare, 13 pentru biometrie)
Cap 15 (doar pentru formalism) din Matt Bishop, Computer Security: Art and Science,
1136 p., Addison-Wesley Professional, ISBN-10: 0201440997, ISBN-13: 978-
0201440997, 2002.
Controlul accesului
A determina ce entitate (utilizator, proces etc.) are acces si ce
tip de acces (scriere, citire, executie, partajare etc.) la o anume
resursa
254
resursa
Ross Andresson: access cotrol is the traditional center of
gravity in computer security
O vedere ierarhica (Anderson, p. 52)
Controlul accesului exista la toate nivelurile:
Construit la nivelul aplicatie, cu o politica complexa, cu
autorizari off sau on-line
Peste nivel middleware (de ex. o baza de date folosita de
aplicatie) care in general are un sistem propriu de protectie
Care foloseste facilitati ale sistemului de operare
Si care se bazeaza pe un hardware existent
255
Si care se bazeaza pe un hardware existent
Cu cresterea nivelului devine mai complex si mai putin
fiabil (complexitatea este dusmanul de baza al
securitatii)
Paradigma de baza
Entitatea/subiectul (utilizator sau proces) este
autentificata (pe baza unui protocol) si apoi accesul
catre obiect este mediat in baza unor drepturi de
acces
Pentru acordarea accesului pot fi folosite urmatoarele
256
Pentru acordarea accesului pot fi folosite urmatoarele
structuri de control a accesului: matrici, liste,
capabilitati, RBAC etc.
Matrici de control a accesului
Presupune existenta unei matrici care pe linii contine numele
utilizatorilor si pe coloane numele resursei
In M[i,j] se stocheaza abreviat drepturile utilizatorului fata de
acea resursa, de ex r/w/x/- (read, write, execute, - fara drepturi)
Deficienta de baza este dimensiunea ridicata a structurii (de ex.
257
Deficienta de baza este dimensiunea ridicata a structurii (de ex.
1000 de utilizatori si 1000 de fisiere inseamna 1 mil. de intrari in
matrice)
Grupuri, roluri, RBAC (Role Based Access Control)
Crearea de grupuri si roluri conduce la simplificarea matricii de
control a accesului
Se poate observa, chiar daca exista multi utilizatori rolurile de
care apartin sunt putine iar accesul poate fi dat in baza rolului
care este jucat de entitate
258
care este jucat de entitate
De ex. o firma de soft poatea avea 1000 de angajati, dar ei
apartin la cateva roluri: programator, testor, team leader, group
leader
Rol si grup sunt termeni utilizati intermitent, in sensul strict Rol
= un set de drepturi de acces, Grup = un grup de entitati
Liste de control a accesului
Presupune stocarea alaturi de resursa protejata a coloanei
259
Presupune stocarea alaturi de resursa protejata a coloanei
aferente din matricea de control a accesului
Frecvent utilizata pentru a asigura controlul accesului la fisiere
(de ex. Unix, Windows)
Potrivite acolo unde controlul este orientat pe date
Nepotrivite acolo unde numarul utilizatorilor variaza rapid, si
unde utilizatorii vor sa delege drepturi
Dificil de determinat toate resursele la care utilizatorul are
acces si dificil de a revoca drepturi la disparitia utilizatorului
Exemplu: SO Unix
Primul caracter desemneaza tipul resursei: - plain file,d
directory, c character device, b block device, l symbolic link, s
socket, = sau p FIFO
Apoi, atributele rwx sunt specificate pentru: owner, grup, alti
utilizatori deci sub forma:
d rwx rwx rwx
Exemplu, un director care poate fi citit/modificat de owner si
260
Exemplu, un director care poate fi citit/modificat de owner si
grup si doar citit de ceilalti:
d rw- rw- r--
Exemplu, un fisier executabil pe care doar owner il poate
modifica si ceilalti il pot doar executa:
- rwx r-x r-x
In plus, exista atributele suid (Set User Id) si sgid (Set Group
Id) care permit unui executabil sa ruleze cu permisiunile celui
care l-a creat nu ale celui care il apeleaza
Exemplu: SO Win
Sistemele vechi: DOS, Win95, 98, Me
foloseau doar atribute pentru fisier
Odata cu introducerea NTFS variantele noi
NT, 2000, XP, Vista, 7 folosesc liste de
control a accesului
Drepturile includ: Full control, Modify, Read
& execute, Read, Write, Special
Permissions (si List folder contents daca e
261
Permissions (si List folder contents daca e
director) si sunt orientate pe grupuri si
utilizatori
In plus exista si un set extins de permisiuni
speciale
Sistem mai complex decat in UNIX
(permite flexibilitate mai mare dar aduce si
probleme de securitate in plus)
Capabilitati
Opusul listelor de control a accesului
262
Opusul listelor de control a accesului
Sunt orientate pe utilizator si nu pe resursa stocheaza
matricea de control a accesului pe linii
Se pot folosi pentru a delega drepturi de acces
Devine ineficient cand o resursa isi schimba statutul (trebuie
determinati toti utilizatorii care aveau drepturi la ea)
Securitate multinivel
Origine in securitatea militara, dar ideea de baza poate fi
aplicata si in probleme uzuale (de ex. Firewall, OS etc.)
Datele apartin la 4 nivele: Unclassified, Confidential, Secret, Top
Secret
Utilizatorii pot accesa doar daca detin permsiune (clearence)
pentru un nivel mai mare sau egal cu nivelul documentului
263
pentru un nivel mai mare sau egal cu nivelul documentului
Modelul Bell-LaPadula propus in 1973 de David Bell si Len
LaPadula (confidentialitate) are la baza 2 principii:
Niciun proces nu poate citi date de la un nivel mai ridicat (no read up -
NRU)
Niciun proces nu poate scrie date la un nivel mai scazut (no write down -
NWD)
Modelul Biba (integritate) atribuit de multi lui Ken Biba,
principiul de baza:
Se citeste doar de la nivele superioare, se scrie doar pe nivele inferioare
Securitate multilaterala
Impiedica scurgerea de informatii intre compartimente aflate pe
acelasi nivel
Cateva modele utilizate: compartimentare, zidul chinezesc,
latici
Modelul zidului chinezesc
264
Modelul zidului chinezesc
Dezvoltat de Brewer si Nash
Un exemplu tipic de regula: daca cineva a lucrat pentru o companie intr-
un anume domeniu nu va avea acces la alta companie la documente din
acelasi domeniu
Formalism similar cu Bell-LaPadula, avand obiectul c, y(c) compania
care il detine si x(c) conflictele de interes care exista:
Subiectul s are acces la c, daca si numai daca pentru orice alt c la care are
acces, fie y(c) nu apartine lui x(c), fie y(c)=y(c)
Subiectul s poate scrie c, daca si numai daca s nu poate citi alt c cu y(c)!=
si y(c)=y(c)
Protectii hardware
Necesare pentru a preveni interferenta intre programe (de
exemplu suprascrierea zonelor de memorie care contin date
sau cod din alt program)
Un mecanism tipic este memoria segmentata (adresa
segment+deplasament in cadrul segmentului)
Procesorul 80286 este primul pe care apare conceptul de inel
(ring)
265
(ring)
Intr-un sistem cu inele, procedurile nu pot accesa obiecte
care se afla in inele mai mici (inelul 0 este al kernelului),
exista insa porti (gates) care pot fi folosite pentru asta
http://en.wikipedia.org/wiki/Ring_%28computer_security%29
Conceptul a fost introdus in sistemul de
operare Multics produs de MIT in anii 60
Partajarea Secretelor (Secret Sharing)
Distributia unui secret catre un grup astfel incat doar o anume combinatie de membrii
ai grupului sa aiba acces la secret
De ex. pentru a declansa o procedura de securitate este suficient acordul
presedintelui, sau a trei ministrii sau parlamentul daca exista acord unanim
Rezolvarea naiva ar fi ascunderea secretului sub chei diferite pentru fiecare
configuratie valida (nu este eficient datorita numarului ridicat de combinatii)
266
configuratie valida (nu este eficient datorita numarului ridicat de combinatii)
Problema a fost enuntata (si solutionata elegant) in criptografie initial de Shamir si
Blakely in 1979
Def. O schema de partajare a secretelor (t,n) este un sistem in care secretul este impartit la n
entitati din care este suficient t pentru a afla secretul.
Schema Shamir
Se bazeaza pe teorema lui Lagrange care spune ca
pentru a reconstitui un polinom de grad t-1 sunt
necesare t valori ale acestuia
Pentru partajarea secretului:
Se alege un numar prim p mai mare care n (numarul de
267
Se alege un numar prim p mai mare care n (numarul de
participanti) si S (secretul partajat)
Se genereaza un polinom
Se seteaza
Se calculeaza partile de cheie (shadow)
Pentru recuperarea secretului
Se reconstituie polinomul ca fiind
Se calculeaza valoarea in punctul 0
( )
0
, . ., 0 a S i e P S = =
1 2 1
1 2 1 0
( ) ...
t t
t t
P x a x a x a x a


= + + + + +
( ) ( )
1
1 ,...,
n
s P s P n = =
( )
1 1,
mod
t t
j
i
i j
i j j s
x x
P x s p
x x
= =


Schema Mignotte
Def. O secventa crescatoare de n intregi primi unul fata de celalalt se numeste secventa
Mignotte daca produsul a k celor mai mici intregi este mai mare decat produsul a k-
1 celor mai mari intregi
Secretul S trebuie sa fie o valoare in intervalul (numit limita autorizata)
( )
2 3 1 2
... ; ...
n k n k n k
m m m m m m
+ +

268
Secretul se reduce modulo fiecare numar din secventa Mignotte
Secretul poate fi recuperat de k parti din sistemul de mai jos folosind
teorema chineza a resturilor
( )
2 3 1 2
... ; ...
n k n k n k
m m m m m m
+ +

mod , 1,
i i
s S m i n = =
0 0
1 1
mod
mod
...
mod
k k
i i
i i
i i
x s m
x s m
x s m

Schema Asmuth-Bloom
Similar cu Mignotte dar ceva mai sigur
Avand o secventa crescatoare de intregi primi unul fata de celalalt
Secretul se alege ca fiind mai mic decat m
0
si se creaza shadow-uri
0 1 0 2 1
... , . ., ... ...
k n k n k
m m m a i m m m m m
+
< < < <
269
Secretul poate fi recuperat de k parti intai rezolvand sistemul de mai jos
folosind teorema chineza a resturilor, apoi facand o reducere modulo m
0
0 0
1 1
mod
mod
...
mod
k k
i i
i i
i i
x s m
x s m
x s m

0
mod
i i
s S m m = +
Atacuri Denial of Services (DoS)
Utilizatorii legitimi nu au acces la un serviciu
O cauza importanta sunt resursele consumate de server pentru
solicitari frauduloase: spam, flooding etc.
270
solicitari frauduloase: spam, flooding etc.
Solutia din ce in ce mai discutata sunt protocoalele Proof-of-
Work (PoW): pentru fiecare resursa solicitata, solicitantul
trebuie sa consume un anumit timp de calcul
Biometria - o alta tehnica de identificare in
controlul accesului
Identificarea pe baza unei trasaturi fizice
Metode de baza:
Semnaturi de mana cel mai frecvent utilizate, relativ usor
de fraudat
271
de fraudat
Recunoasterea fetei rata mare de erori
Amprente comun utilizate (in special in criminalistica),
rata mica de erori, sub 1%
Iris cea mai mica rata de erori
Recunoasterea vocii
Altele: termograma fetei, venele mainii
Criterii de evaluare a sistemelor biometrice
Universalitate daca apare sau nu la toti indivizii
Unicitate care e sansa sa mai existe indivizi similari
Permanenta cum se schimba/persista in timp
Colectabilitate daca poate fi masurata cantitativ
272
Colectabilitate daca poate fi masurata cantitativ
Performanta precizia de identificare
Acceptabilitate modul in care indivizii accepta testul
Circumventie cat de usor este de fraudat
Din lucrarea: Anil Jain, Lin Hong, Sharath Pankanti, Ruud Bolle, An
Identity-Authentication System Using Fingerprints, 1996
273
Sisteme de monitorizare
Cele mai comune instalatii de supraveghere a accesului sunt
alarmele si sistemele de supraveghere video
Sistemele de supraveghere video:
CCTV (Closed Circuit Television) cablate coaxial,
functioneaza in circuit inchis si inregistreaza pe hdd (mai
274
functioneaza in circuit inchis si inregistreaza pe hdd (mai
nou ofera si iesiri prin IP)
IP Camera camere web transmit prin IP, flexibile in
utilizare dar raportul calitate/pret mai prost ca la CCTV
Alarmele, constau intr-o centrala care are o linie telefonica de
comunicare cu exteriorul si mai multe intrari de la senzori de:
vibratii, comutatoare, infrarosu pentru caldura corpului, raze
infrarosu, presiune, zgomot
Curs 13, 14. Securitate in medii constranse.
Securitate in automotive: comunmicatii inter si
intra vehicul, V2V, V2X, adversari si atacuri intra vehicul, V2V, V2X, adversari si atacuri
specifice. Securitate in retele de senzori:
autentificari in regim broadcast.
Bibliografie obligatorie (partea cu privire la protocoalele din slideuri):
Capitolul 5 (partea II) Kerstin Lemke , Christof Paar, Marko Wolf et al., Embedded Security in
Cars: Securing Current and Future Automotive IT Applications, 273 pages, Springer; 1
edition (December 7, 2005),ISBN-10: 3540283846, ISBN-13: 978-3540283843.
Capitolul 2 (in limita variantelor de protocol din slideuri) din Donggang Liu, Peng Ning, Security for
Wireless Sensor Networks, 212 pages, Springer; 1 edition (November 9, 2006), ISBN-10:
0387327231, ISBN-13: 978-0387327235
Comunicatii in automotive
Intra-Vehicle Communication
In-Vehicle communication comunicatii in interiorul
vehicolului
Inter-Vehicle Communication
276
Inter-Vehicle Communication
V2V comunicatie intre vehicule (se foloseste adesea si
termenul de VANET Vehicular Area Network)
V2I sau V2X comunicatie intre vehicul si infrastructura
Problema generala
Retelele de comunicatii din automotive au rol in toate
functionalitatiile de la motor, frane pana la ambient
Retele au securitate in fata erorilor naturale: interferente,
defectari
277
defectari
Securitatea in fata adversarilor inteligenti (om) este aproape
inexistenta (singurul nivel la care exista este cel al controlului
accesului: cheie smart-card, rfid etc.)
Introducerea retelelor multimedia in vehicule: MOST, GigaStar,
Bluetooth, GSM deschid poarta pentru adversari inteligenti
Magistrale de date in automotive
LIN (Local Interconnect):
controleaza mici retele dedicate usilor, ferestrelor, senzori de ploaie, luminozitate etc.
folosit oriunde unde performanta CAN nu e necesara
sistem master-slave (pana la 16 slave)
pana la 20kb/s
securitate bazata pe biti de paritate si suma de control
CAN (Controller Area Network)
control real-time pentru ABS si motor
pana la 1Mb/s
fara master/slave, transmisie baza pe prioritatea mesajelor (de aici caracterul non-
278
fara master/slave, transmisie baza pe prioritatea mesajelor (de aici caracterul non-
determinist)
fara adrese emitator-receptor
securitate bazata pe coduri CRC
FlexRay
control real-time determinist (mai rar folosit fiind mai scump decat CAN)
Pana la 10 Mb/s
MOST (Media Oriented System Transport)
audio, video, voce
fibra optica
pana la 24 Mb/s (sincron) si 12 Mb/s (asincron)
Bluetooth
wireless in banda 2.45 GHz
GigaStar, D2B (Domestic Digital Bus) - entertaiment
Studiu de caz - CAN
Transmisia se bazeaza pe frame-uri ce reprezinta un plic in
care se afla mesajul
Fiecare frame are maxim 8 bytes de mesaj util
Daca mesajul e mai mare se distribuie pe mai multe frameuri
Exista 4 tipuri de frame-uri:
279 279
Exista 4 tipuri de frame-uri:
Data frame transporta date
Remote frame solicita date
Error frame transmis la aparitia unei erori
Overload frame - transmis pentru a asigura delayuri
Doua variante de frame CAN 2.0A CAN standard si CAN
2.0B CAN extins
Structura unui frame CAN
280 280
poza din Parret07)
Securitatea CAN
Pentru securitate intereseaza 3 mecanisme:
Arbitrarea sursa de DoS
Integritatea bazata pe CRC si usor de fraudat
281
Integritatea bazata pe CRC si usor de fraudat
Controlul erorilor mecanism ceva mai complex, nu va fi
discutat din lipsa de timp
Procedura de arbitrare
Castiga dreptul de a fi
transmis frame-ul cu prioritate
maxima
ID-ul frameului decide
prioritatea
Bitii dominanti suprascriu bitii
282 282
Bitii dominanti suprascriu bitii
recesivi
Fiecare nod scrie si daca
scrie recesiv si citeste
dominant se opreste din
transmisie pentru ca a pierdut
arbitrarea
(poza din Parret, 2007)
Exemplu
283 283
(poza din Parret, 2007)
CRC din CAN frame
Cod CRC de 15 biti cu distanta Hamming 6
Poate detecta:
Pana la 5 erori aleatoare
Erori de burst cu lungime mai mica de 15
Orice numar impar de erori de bit
284 284
Rata de erori nedetectate 4.7 * 10
-11
Foloseste polinomul de tip BCH (Bose and Ray-Chaudhuri)
Cunoscut ca si CRC-15
Aproape optimal
( )
15 14 10 8 7 4 3
1 P x x x x x x x x = + + + + + + +
Principiul de baza in utilizarea unui polinom CRC
Bitii unui frame devin coeficientii unui polinom, e.g.
1 01001001
3 6
+ + x x
285 285
Toate operatii algebrice (+,-,x,/) se fac modulo 2 (adunare
binara fara carry)
Se alege un polinom P (numit pattern) si se testeaza daca
mesajul primit este divizibil cu P
Astfel, fiecare mesaj transmis trebuie transformat intr-un mesaj
divizibil cu P
Daca nu e divizibil inseamna ca a aparut o eroare
Calculul codului CRC asupra unui mesaj
Avem T=M||CRC, M mesaj, CRC verificator, T mesaj
transmis, si
k n T
n CRC
k M
+ =
+ =
=
=
286 286
CRC M T
k
+ = 2
Prin impartirea la polinom a mesajului shiftat la stanga cu n
biti avem
R PQ M
n
+ = 2
Si avem: R M P
n
+ 2 |
Deci valoarea CRC este chiar R
Bitul de paritate
Exercitiu: demonstrati ca polinomul x+1, cunoscut si ca CRC-1,
este de fapt bitul de paritate!
287 287
este de fapt bitul de paritate!
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
Raport cost-viteza si zona utilizare
poze din Parret07
288
Atacuri comune
Modificarea kilometrajului, a tahometrelor, tunning-uri ale
chipului pentru a creste puterea etc.
289
Potentiali adversari
Proprietarul masinii, personalul unui service, alte companii
Tabel c.f. Wolf et al. 2005
290
Vulnerabilitatile se datoreaza la cateva cauze mari:
Preocuparea majora a domeniului a fost siguranta (fizica)
Puterea/infrastructura de calcul din masina nu permite operatii complexe (e.g.
criptografice)
Se doreste cost minim de productie (introducerea securitatii creste pretul)
Vulnerabilitati specifice ale protocoalelor
Pentru toate magistralele: nu exista teste de autenticitate, in
general orice mesaj se propaga catre toate controlerele (un
singur nod adversar poate distruge intreaga retea)
LIN frame-uri de sleep pot dezactiva intreaga retea
291
CAN un mesaj (fara sens) de prioritate maxima odata trimis
suprascrie orice alt mesaj
FlexRay orice controller poate fi dezactivat de bus-guardian
prin transmiterea de mesaje false de eroare
MOST frame-uri de sincronizare eronate conduc la pierderea
sincronizarii pe magistrala
Bluetooth parte din familia retelelor wireless, bine-cunoscuta
pentru problemele de securitate
Incercari de solutionare a problemelor
Rezolvarea a doua coordonate majore:
Autentificarea informatiei trimise de controllere
Confidentialitatea adica criptarea informatiei transmise de controllere
292
Protocoalele din Wolf et al. - se discuta in ora de curs
Studiu de caz din Wolf et al. 05
Se discuta in ora de curs
poza din Wolf et al. 05
293
Comunicatii in retele de senzori
Comun utilizati in aplicatii civile si militare
Formeaza retele ad-hoc si masoara
Din punct de vdere al securitatii reprezinta un mediu constrans
cu 2 probleme majore:
Puterea de calul scazuta
294
Puterea de calul scazuta
Autonomie (energie) scazuta
Modul principal de comunicare este broadcastul pentru care ar
fi posibile 2 solutii bazate pe criptografie:
MAC-uri implica n
2
chei secrete si cate n MAC-uri la
fiecare mesaj nefezabil
Semnaturi digitale de 1000 de ori mai scumpe ca un MAC
Protocolul TESLA Perrig et al. 01
Reprezinta o solutie pentru problemele anterioare
Schema Lamport nu are succes in practica, S/Key o utilizeaza dar din nou
fara succes, succesul major este in retele de senzori in TESLA
TESLA = Lamport + Sincronizare Temporala
Principiu: calculeaza MAC cu o cheie ce va fi eliberata doar ulterior
Receptorul primeste mesajul, si il stocheaza doar daca (pe baza
295
sincronizarii temporale) decide ca NU a fost eliberata cheia MAC-ului
Receptorul verifica autenticitatea intr-un interval de timp ulterior cand este
eliberata si cheia
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
Timed Efficient Stream Loss-tolerant Authentication - TESLA
Adrian Perrig, Ran Canetti, J. D. Tygar, Dawn Song, The
TESLA Broadcast Authentication Protocol, 2002
296
Protocolul TESLA
1
Derivat din TESLA, parte din SPINS: Security Protocols for
Sensor Networks
A. Perrig, R. Szewczyk, V. Wen, D. Culler, and J. D.
Tygar,SPINS: Security Protocols for Sensor Networks, Proc.
Of ACM MobiCom01, pp. 189-199, Rome, Italy, 2001.
297
Of ACM MobiCom01, pp. 189-199, Rome, Italy, 2001.
Variantele de protocol sunt expuse in continuare dupa Liu si
Ning deoarece cartea lor are un caracter ceva mai didactic,
cartea lui Perrig si Tygar nu este disponibila momentan
1 Cateva variante ale protocolului sunt precizate (sub forma de
avantaje/dezavantaje) in continuare dupa Liu si Ning deoarece cartea lor are
caracter didactic, cateva detalii absente pe slide-uri au fost expuse in orele
de curs, a se consulta bibliografia
TESLA Schema I Predetermined Key
Chain Commitment
Pentru a evita dezavantajul initializarii lantului de chei se
propune: initializarea lanturilor de chei si a temporizarilor intr-un
stadiu off-line
298
stadiu off-line
Dezavantaj: pentru un lant mare de chei (sau mai multe lanturi),
BS (emitatorul) trebuie sa stocheze prea multe chei
TESLA Schema II Nave Two-Level
TESLA
Pentru a evita lantul prea mare de chei de la Schema I, se
propune utilizarea de lanturi multiple
299
propune utilizarea de lanturi multiple
Varianta cea mai simpla Two-Level, propune utilizarea unui lant
special (primul nivel) pentru autentificarea commitmentului de
cheie si altui lant (al doilea nivel) pentru autentificare efectiva a
pachetelor
TESLA Schema III Fault Tolerant
Two-Level TESLA
Problema schemei II este ca la pierderea unui mesaj, mesaje
ulterioare nu mai pot fi autentificate
300
ulterioare nu mai pot fi autentificate
Pentru a rezolva problema se propune derivarea cheilor de
autentificare din lantul de commitement
TESLA si autentificarea imediata
Problema este aceea ca un receptor nu poate testa
autenticitatea unui mesaj la momentul receptiei (deorece inca
nu a sosit cheia)
Astfel un adversar poate trimite mesaje false pe care receptorul
301
Astfel un adversar poate trimite mesaje false pe care receptorul
va fi nevoit sa le stocheze (fiind imposibil sa le verifice pe
moment) si in acest fel apare un DoS prin epuizarea resurselor
Autentificare imediata este o varianta ce face posibila testare
autenticitatii mesajului la momentul receptiei: se trimite MAC-ul
mesajului intr-o sesiune anterioara trimiterii mesajului
Curs Facultativ. Securitate in sisteme
complexe: sisteme distribuite si grid,
sisteme de telecomunicatii, sisteme
Nota: Slide-urile contin doar informatie complementara si/sau
redundanta cu bibliografia obligatorie prezentata in orele de curs
complexe: sisteme distribuite si grid,
sisteme de telecomunicatii, sisteme
bancare, sisteme de comert electronic
Lectura facultativa, nu constituie subiect de examen, potentiala discutie pe baza
materialului:
Capitolele 6, 9, 17, 19 din Ross Anderson, Security Engineering - A Guide to Building
Dependable Distributed Systems, Wiley, 640 p., ISBN 0-471-38922-6, 2001.