Documente Academic
Documente Profesional
Documente Cultură
Infrastructur
a cu chei publice (P KI)
1.1
Prezentare general
a
Intr-un sistem de criptare cu cheie publica, cheia de criptare nu este secreta; deci este
necesara o autentificare a sa, pentru a-i garanta integritatea si a elimina o serie de atacuri,
cum ar fi man-in-the-middle.
Cheia publica a unui utilizator trebuie autentificata (semnata) de o autoritate de
certificare (CA). Rolul acesteia este de a garanta autenticitatea si integritatea unei chei
publice (unica) pentru fiecare utilizator. Dupa certificare, utilizatorul poate trimite cheia
sa publica oricarui alt utilizator, care i poate verifica autenticitatea.
Un certificat se poate elibera nu numai pentru autentificarea unei chei, ci n general
pentru orice bloc de identificare.
Definitia 1.1. Un bloc de identificare este o structur
a asociat
a unui utilizator.
Ea poate contine numarul serial al PC-ului, num
arul de telefon, num
arului retelei, num
arul
de certificare, data de expirare a certificatului, diverse autorizatii.
Certificatul este creat prin legarea cheii publice cu blocul de identificare. Atunci cand
doi utilizatori stabilesc ntre ei o comunicare, ei si trimit unul altuia certificatele, si fiecare
valideaza identitatea partenerului.
Ca mod de implementare. componentele cheii publice si blocul de identificare al unui
utilizator pot fi scrise pe un smartcard. Cu ajutorul acestuia, componentele pot fi transportate fizic (electronic) la o autoritate de certificare. Aceasta genereaza un certificat care
va fi ncarcat de asemenea pe smartcard.
Ulterior toate aceste componente sunt ncarcate pe calculator.
Obiectivele pe care trebuie sa le ndeplineasca un sistem atunci cand apeleaza la CA
sunt n mare:
Sa fie capabil sa estimeze scopul si valoarea certificatelor si a procesului de certificare;
1
1.2
X.509 este cel raspandit format de certificat utilizat pentru o structura P KI. Poate fi
ntalnit n protocoale SSL, IP sec, S/M IM E, SET, P GP .
Standardul RF C 4325 listeaza urmatoarele zone cuprinse ntr-un certificat X.509 (Santesson & Housley, 2005):
Version: Versiunea certificatului.
Certificate serial number (maxim 20 octeti): ntreg pozitiv (unic) asignat de CA
fiecarui certificat.
Signature algorithm identifier: Identificatorul algoritmului folosit de CA pentru
semnatura digitala a certificatului. Algoritmul folosit este RSA sau DSA.
CA issuer name: Identifica autoritatea de certificare care a semnat si a eliberat
certificatul.
Validity period: Intervalul de timp n care CA asigura validitatea certificatului.
Campul respectiv este o seventa de doua date: data nceperii perioadei de validitate
si data expirarii validitatii certificatului.
Subject name: Identifica entitatea a carei cheie publica este autentificata.
Subject public-key information: Prezinta cheia publica mpreuna cu parametrii
publici asociati. Daca este necesar, este depus si identificatorul sistemului de criptare
utilizat (de exemplu: RSA, DSA, Dif f ie Hellman).
Issuer unique ID: Zona optionala alocata numelor CA aparute n CA Issuer
name (pentru o eventuala reutilizare).
Subject unique ID: Zona optionala care permite utilizarea ulterioara a numelor
din Subject name.
Extensions: Acest camp apare numai daca versiunea certificatelor este 3.
Extensiile pentru certificatele X.509 v3 ofera metode de asociere de atribute suplimentare referitoare la utilizatori si chei publice pentru gestionarea unei ierarhii de
certificare, cum ar fi CA Key Identifier si Subject Key Identifier.
Informatia scrisa pe aceste campuri este semnata folosind cheia secreta a lui CA. Aceste
doua elemente (semnatura si continutul zonelor) sunt apoi
1. concatenate;
2. scrise cu ajutorul unui sistem de notatie sintactica numit Abstract Syntax One1 ;
3. transformate n date binare folosind sistemul de codificare DER (Distinguish Encoding Rules);
4. convertite n caractere ASCII folosind codificarea base64.
Observatia 1.1. DER este un sistem de codificare a c
arui sintax
a este specificat
a n
standardul X.690. Codificarea DER utilizat
a de X.509 este un standard international
rezultat din codificarea BER (Basic Encoding Rules). De fapt, DER difer
a de BER
doar prin faptul ca ignora optiunile expeditorului (care n cazul unor certificate nu sunt
necesare).
Scopul principal este oferirea unei codific
ari unice, asigur
and astfel CA c
a structura de
date pe care o semneaza va produce o reprezentare serial
a unic
a. Multe lucr
ari considera
DER ca o forma canonica pentru BER (numit
a de aceea si CAR Canonical Encoding
Rules).
De exemplu, n BER o valoare boolean
a de Adev
ar poate fi codificat
a n 255 moduri
diferite (n timp ce Fals este codificat prin valoarea 0), iar n DER exist
a un singur mod
de a codifica valoarea logica Adevar.
Pentru detalii privind ASN.1 si DER se poate folosi [5].
1.3
1.3.1
Variante de certificare
Certificare RSA
Abstract Syntax Notation One (ASN.1) este un standard si o notatie definita prin reguli formale,
utilizata n retelele de calculatoare si n telecomunicatii. Descrie structuri de date utilizate pentru
reprezentarea, codificarea, transmiterea si n final decodificarea datelor.
(1)
(2)
Cand Alice doreste sa stabileasca o comunicare securizata cu alt utilizator din retea,
ea i va trimite acestuia certificatul CA ; destinatarul Bob avand acces la P ubca si Nca
va determina IDA kP ubA calculand (2), dupa care va compara rezultatul cu primele doua
valori concatenate din CA .
Aceasta varianta asigura autenticitatea si integritatea cheii publice. Daca vrem sa
avem si confidentialitate, se renunta la primele doua componente ale certificatului. In
acest caz nsa trebuie sa existe o modalitate clara care sa separe IDA de P ubA din secventa
binara concatenata.
1.3.2
VA
caA
2. Calculeaza SA = P ubC
(mod p) CcaA
(mod p) (mod p)
ca
C
mod
p
(mod p)
caA
ca
si verificand congruenta aMA SB (mod p).
De remarcat ca prin acest protocol, Bob nu poate deduce identificatorul lui Alice.
1.3.3
Daca congruentele sunt verificate de ambele parti, atunci Alice si Bob stiu ca certificatele
sunt eliberate de autoritatea de certificare CA, iar partenerii sunt autentificati.
1.3.4
Variant
a a protocolului de certificare ElGamal
HX
g P rivca
VcaX
Aceasta varianta de certificare este mai robusta decat versiunea anterioara, deoarece:
Factorul VcaX este inclus atat la baza cat si ca exponent;
Cheia publica a autoritatii apare explicit n procedura de verificare.
1.4
Managementul unui P KI
1.4.1
Utilizatorii P KI
RS
2
?
Alice
5
Mesaj criptat 4
Semnatura digitala
6
?
Bob
7
1.4.2
Autoritatea de certificare
Intr-un sistem cu cheie publica, secretul acestei chei nu este obligatoriu; este nsa necesara
o autentificare a cheii publice, pentru a garanta integritatea si autenticitatea ei.
Identitatea si cheia publica a unui utilizator P KI este autentificata (semnata) de o
autoritate de certificare.
Termenul CA se refera la entitatea scrisa n zona Issuer name a unui certificat. Un
CA poate emite diverse tipuri de certificate, cum ar fi: certificat pentru un utilizator,
pentru alt CA (CA - certificat), sau cross - certificat (un proces de autentificare trecand
prin diverse domenii de securitate).
Un domeniu de securitate este un domeniu logic n care un CA emite si gestioneaza
certificate.
In general, un utilizator P KI este certificat de un CA, iar un CA este certificat de
alt CA. Se construieste astfel o retea arborescenta de certificare, care are ca radacina un
root - CA.
Nu este obligatoriu ca o unitate de certificare sa fie a treia parte; frecvent, CA
apartine aceleiasi organizatii ca si utilizatorul pe care l certifica.
1.4.3
10
11
1.4.4
1.4.5
12
1.4.6
Este posibil ca cei doi utilizaotri care doresc sa intre n contact sa aiba certificatele eliberate de autoritati distincte. Astfel, Alice are certificatul eliberat de CA1 , iar certificatul
lui Bob este eliberat de CA2 . Fiecare din ei are ncredere numai n autoritatea care i-a
eliberat certificatul. In plus, chiar daca unul din ei doreste sa l certifice pe celalalt, acest
lucru nu ar fi posibil deoarece domeniile de certificare sunt diferite.
Mecanismul folosit pentru a rezolva acest impediment este numit certificare ncrucisat
a: CA1 l certifica pe CA2 , extinzand ncrederea lui Alice si asupra certificatelor emise
de CA2 (n particular, al lui Bob).
Procesul poate fi rafinat, n sensul ca domeniul lui CA1 se poate extinde asupra tuturor
certificatelor emise de CA2 sau doar pentru anumite certificate (care apartin unei singure
organizatii, care sunt ntr-un anumit grup etc).
1.5
Standardul RF C 4325 (Internet X.509 Public Key Infrastructure Certificate and Revocation List (CRL) Profile) descrie detaliat formatul si semantica unei liste de revocare
pentru P KI.
In formatul X.509, un CA emite periodic o structura semnata numita CRL (Certificate
Revocation List). In esenta, un CRL este o lista cu stampila de timp, emisa si semnata
de un CA si facuta publica printr-un site RS.
Fiecare certificat revocat este identificat prin numarul sau serial. Cand se verifica un
certificat, nafara de semnatura si perioada sa de valabilitate, se acceseaza si CRL-ul
curent, verificand daca aici este mentionat numarul serial al certificatului.
De mentionat ca numai CA-ul care emite un certificat poate sa l revoce. Din acest
motiv, datele cu care lucreaza o unitate de certificare (algoritmul de semnatura, cheile
etc) trebuie securizate prin protocoale suplimentare (deoarece compromiterea unui CA
conduce automat la revocarea tuturor certificatelor emise de acesta).
Componentele unei liste de revocare sunt:
Versiune: X.509 admite n prezent doua versiuni. Pentru aceasta componenta este
rezervata locatie numai daca se lucreaza cu versiunea 2.
13
Semn
atur
a: contine ID-ul algoritmului folosit de CA pentru a semna CRL-ul.
Nume emitent: Identifica CA-ul care emite si semneaza CRL-ul.
Actualizare: Indica data emiterii. Informatia se poate codifica n doua moduri:
U T CT ime2 sau Timp generalizat3 .
Urm
atoarea actualizare: Indica data emiterii urmatorului CRL. Acesta poate
apare nainte de data indicata, dar n nici un caz nu va apare ulterior datei.
Certificatele revocate: Listeaza numerele seriale ale certificatelor revocate n
intervalul dintre aparitia CRL-ului anterior si cel actual. Pentru fiecare certificat
trebuie mentionata si data revocarii.
Daca nu exista certificate revocate, aceasta locatie trebuie sa lipseasca.
In faza urmatoare, locatiile care contin aceste componente ale CRL-ului sunt:
1. concatenate;
2. scrise n format standard bazat pe Abstract Syntax One ([4]);
3. convertite n binar folosind sistemul de codificare DER (Distinguish Encoding Rules)
(pentru detalii a se vedea [6]);
4. transformate n caractere ASCII cu ajutorul codificarii base64.
1.6
Modele de ncredere
Coordinated Universal Time: un compromis ntre timpul dat de meridianul 0 (numit Timp Universal)
si timpul fizic determinat cu cea mai mare precizie (Timpul Atomic International - T AI); a se vedea
http://ro.wikipedia.org/wiki/Ora universal
a coordonat
a.
3
Reprezentare sub forma standard Y Y Y Y M M DDHHM M SS.
14
Din aceste motive, apar diverse structuri formate din mai multe autoritati de certificare;
aceste structuri se numesc modele de ncredere. In prezent sunt utilizate mai multe
tipuri de modele de ncredere: ierarhice, mesh, Web, si centrate pe utilizator.
1.6.1
Intr-un astfel de model exista o autoritate de certificare (Root CA) considerata apriori
sigura; celelalte CA-uri sunt organizate ntr-o structura arborescenta ale carei noduri
terminale sunt utilizatorii (entitati care nu sunt abilitate sa emita certificate).
Toate entitatile au ncredere n root CA. Inafara de el, fiecare entitate dispune de (cel
putin) un certificat eliberat de un CA situat pe drumul (unic) de la el spre root CA.
Avantajul acestui model este simplitatea sa si usurinta de implementare. Dezavantajul
este acela ca nu permite certificari ncrucisate ntre CA-uri diferite.
Un exemplu de model ierarhic este:
CA
Root
CA1
N ivel 1
CA2
N ivel 2
Utilizator A
Utilizator B
CA4
N ivel 1
CA3
N ivel 2
Utilizator C
Utilizator D
Utilizator F
Utilizator E
Certificatul lui A este emis de CA2 , iar al lui F este emis de CA4 . Daca cei doi vor
sa stabileasca o legatura, iar A (de exemplu) nu are ncredere n CA4 , el va trebui sa
gaseasca alt CA n care sa aiba ncredere. Singurul care poate fi folosit aici este Root CA.
Daca contactul trebuie facut ntre utilizatorii A si D, ei pot folosi ca autoritate de
certificare comuna pe CA1 .
1.6.2
1.6.3
15
Pentru un numar mare de utilizatori, modelul de ncredere cel mai utilizat este cel de tip
lista, numit si Web model.
Fiecare browser Internet actioneaza ca un Root CA virtual, deoarece utilizatorii au
ncredere n CA-ul instalat n softul browserului. Browserele sunt distribuite mpreuna cu
un set initial de certificate; la acestea utilizatorii pot adauga certificate noi sau pot elimina
certificate. Browserele pot utiliza certificatele pre-instalate pentru a semna, verifica, cripta
sau decripta mesajele de e-mail scrise n S/M IM E si de a stabili sesiuni T LS sau SSL.
De asemenea, ele sunt abilitate sa verifice semnaturile n cazul codurilor semnate.
Pentru un utilizator obisnuit, gestionarea numeroaselor certificate instalate n browserconstituie o problema extrem de dificila4 ; mai mult, nu exista nici o modalitate practica
de a preveni o modificare neautorizata (din partea utilizatorilor sau celor care au acces la
statiile de lucru) a listei de certificate.
In acest tip de model de ncredere nu exista o modalitate practica de a revoca certificate. Astfel, daca Firefox sau Microsoft (cei doi lideri actuali pe piata browserelor
Internet) instaleaza din greseala un CA care nu este de ncredere, nu exista nici o modalitate de a-i revoca certificatul din milioanele browsere aflate n uz.
1.6.4
1.7
De exemplu, browserele Firefox si Microsoft Explorer sunt distribuite mpreuna cu aproximativ 100
chei publice pre-instalate, fiecare cheie fiind nsotita de un certificat.
16
Aloritmul de criptare Diffie - Hellman acceptat de X.509 este definit n ANSI X.9.42, publicat n
2003.
Bibliografie
[1] M. Mogollon - Cryptography and Security Services: Mechanisms and Applications,
Cybertech Publishing, 2007.
[2] D.B. Newman, J.K. Omura, R.L. Pickholtz - Public key management for network
security IEEE Network Magazine, 1(2), 1987, pp. 12-13
[3] Simmons, G. J. - Contemporary Cryptology, IEEE Press, 1992.
[4]
http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One
[5]
http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
[6] http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
17
Capitolul 2
Servicii terte de ncredere (T T P )
2.1
2.1.1
Schimbul de informatie electronica ntre doua entitati implica prezenta unui element de
ncredere care sa asigure unele servicii, cum ar fi autenticitatea acelor entitati. Mai mult,
uneori nivelul de ncredere asteptat de entitati nu se poate obtine decat cu ajutorul unei
parti terte, care sa faciliteze schimbul de informatie.
Definitia 2.1. (X509) O entitate are ncredere n alta c
and are siguranta c
a partenerul
se va comporta exact conform astept
arilor sale.
Un tert de ncredere (T T P - Trusted Third Party) este o entitate specific
a care furnizeaz
a unul sau mai multe servicii electronice si este considerat
a de ncredere de c
atre
celelalte entitati.
Exemplul 2.1. Exemple de servicii furnizate prin intermediul tertilor de ncredere: servicii de marcare temporala, servicii de arhivare electronic
a, servicii de administrare a
cheilor si certificatelor de chei, servicii suport pentru identificare, autentificare si nonrepudiere, servicii de acordare de privilegii, servicii de notariat public electronic, servicii
de directoare etc.
Conform recomandarilor ISO 14516, un tert de ncredere trebuie:
sa ofere servicii clar definite;
sa respecte politici bine definite de utilizare si de securitate, care sunt facute public;
sa opereze ntr-un cadru perfect legal n ceea ce priveste serviciile pe care le ofera si
entitatile carora se adreseaza;
sa opereze n conformitate cu standardele nationale si internationale n vigoare;
1
2.1.2
In general, cerintele formulate asupra unui tert de ncredere difera n functie de serviciile
furnizate.
Pentru a castiga ncrederea partilor interesate, un T T P trebuie sa demonstreze ca
(ISO 14516):
exista si aplica o politica de securitate potrivita;
problemele de securitate sunt rezolvate printr-o combinatie de mecanisme si proceduri de securitate corect implementate;
operatiile sunt realizate corect si n stransa legatura cu un set de roluri si responsabilitati clar definite;
procedurile si interfetele de comunicare cu entitatile sunt potrivite cu scopul lor si
sunt aplicate corect;
regulile si regulamentele sunt corect aplicate si sunt consistente cu nivelul de ncredere dorit;
calitatile operatiilor si practicilor de lucru au fost corect acreditate;
respecta obligatiile contractuale n raport cu utilizatorii sai;
exista o ntelegere si acceptare clara a responsabilitatilor;
2.1. CERINT
E ALE SERVICIILOR TERT
E DE INCREDERE
2.1. CERINT
E ALE SERVICIILOR TERT
E DE INCREDERE
14. Managementul cheilor: Utilizatorii pot cere unui T T P diverse servicii de gestiune
privind cheile lor de semnatura si criptare. Generarea cheilor, distributia acestor
chei, mecanisme de recuperare de chei (key - recovery), backup pentru chei, key
- escrow, rennoirea automata sau la cerere a cheilor (la expirare sau n caz de
compromitere) pot fi cerinte functionale la nivelul unui T T P .
15. Publicarea datelor: Serviciile de publicare din T T P -uri sunt necesare pentru
pu-blicarea unor informatii folosite de utilizatorii sistemelor. Distribuirea cheilor
publice sau a certificatelor digitale pentru utilizatori, distribuirea listelor de certificate revocate sunt informatii esentiale proceselor de certificare si validare.
Serviciile de publicare pot fi implementate prin intermediul unor protocoale cum ar
fi LDAP, HT T P, X.500, DN S etc.
16. Scalabilitatea si modularitatea: Serviciile furnizate de T T P -uri trebuie sa fie
scalabile si usor gestionabile n implementari pe scara larga. Structura modularizata
permite adaugarea sau scoaterea cu usurinta a unor componente de functionalitate
la nivelul T T P -ului.
17. Compatibilitatea si portabilitatea: Presupune compatibilitatea implementarilor T T P -urilor cu standardele, tehnologiile si platformele software/hardware cerute.
Cerinte privind politica de securitate
Politica de securitate a unui T T P trebuie sa acopere toate aspectele de securitate privind
administrarea T T P ului si operarea serviciilor sale, fiind un instrument vital pentru generarea ncrederii catre entitatile client.
O politica de securitate nglobeaza toate elementele principale de functionare ale
tertului de ncredere. Orice politica de securitate ar trebui sa contina:
1. O componenta privind politica de securitate generala, n care care sunt stabilite
toate aspectele non-tehnice privind securitatea si ncrederea n serviciile tertului;
2. O componenta privind politica de securitate tehnica, n care sunt stabilite aspectele
tehnice privind securitatea si functionalitatea tertului. Aici sunt descrise rutinele,
procedurile si aspectele tehnice ale sistemului.
Continutul efectiv al politicii depinde de serviciile oferite de T T P . In orice politica de
securitate sunt incluse urmatoarele elemente:
conceptele generale privind serviciile furnizate;
definirea entitatilor participante;
cerintele de securitate (confidentialitatea, integritatea, disponibilitatea, autenticitatea, responsabilitatea);
2.2
Din punct de vedere al pozitionarii tertului de ncredere n cadrul comunicatiei dintre entitatile client, precum si al implicarii sale directe sau indirecte la protocolul de comunicatie,
se pot realiza trei configuratii diferite:
1. Configuratie cu T T P in-line:
Un tert de ncredere in-line poate exista atunci cand doua entitati apartinand la
doua domenii de securitate diferite doresc sa schimbe ntre ele mesaje securizate.
In aceasta situatie, tertul este pozitionat ntre cele doua entitati, actionand ca un
intermediar n toate interactiunile dintre ele si facilitand schimburile lor securizate
de informatii.
Entitate Alice
TTP
in line
Entitate Bob
Entitate Alice
Entitate Bob
Astfel de configuratii pot include servicii de autentificare, certificare, controlul privilegiilor etc.
Tertul de ncredere poate juca de asemenea un rol n furnizarea de servicii de nonrepudiere, controlul accesului, managementul cheilor, marcare temporala, confidentialitate si integritate pentru datele transmise.
3. Configuratie cu T T P off-line: Tertul de ncredere off-line nu interactioneaza direct cu entitatile n timpul schimburilor de mesaje securizate. In schimb, entitatile
comunica ntre ele folosind date generate anterior de catre T T P .
TTP
on line
Entitate Alice
?
Entitate Bob
T T P -urile off-line pot include servicii de autentificare, certificare, controlul privilegiilor, non-repudiere, distribuirea cheilor, recuperarea cheilor etc.
2.3
Inter-operarea serviciilor T T P
Un T T P poate avea acorduri de ncredere stabilite cu alte T T P -uri pentru a forma o retea
care sa permita entitatilor sale sa comunice securizat cu entitatile acestea. In situatiile
n care T T P -ul nu poate oferi anumite servicii solicitate, se pot stabili protocoale de
(1)
(2)
TTP A
TTP B
6
-
(3)
(3)
(1)
?
Alice
(4)
Domeniu Alice
Bob
Domeniu Bob
(a) Alice cere de la T T P -ul A o cheie secreta pentru a comunica cu Bob (1).
(b) T T P -ul A transfera cheia secreta catre Alice (3) si catre T T P -ul B (2).
(c) T T P -ul B transmite apoi cheia catre Bob (3).
(d) Avand stabilita o cheie comuna, cele doua entitati pot comunica securizat (4).
2.4
Servicii de Non-Repudiere
10
AE
>"!
Comunicare indirecta
#
#
~
Comunicare direct
a
-
"!
"!
11
12
Politica: Toate regulile si toti parametrii necesari n cadrul serviciului de nonrepudiere trebuie definite corect si complet.
Transparenta T T P -ului: In anumite situatii este de dorit ca implicarea T T P -ului
n cadrul protocolului (sau a rezolvarii disputelor) sa fie invizibila. Astfel, dovezile
obtinute prin implicarea T T P -ului vor fi similare celor obtinute fara ajutorul acestuia.
Verificabilitatea T T P -ului: Proprietate necesara n situatia cand T T P -ul nu este
considerat de ncredere de ambele entitati.
2.4.1
Exista mai multe abordari si propuneri privind protocoale care sa asigure cerintele definite
mai sus pentru un serviciu de non-repudiere. Unele presupun obtinerea dovezilor de nonrepudiere fara a implica terte parti n comunicarea dintre Alice si Bob; cele mai multe
protocoale se bazeaza nsa pe conectarea la un T T P .
Rolul T T P -urilor n protocoalele de non-repudiere
In functie de mecanismele de non-repudiere folosite si de politica aplicata, T T P -urile pot
participa sub diverse roluri la generarea, verificarea, validarea sau transferarea dovezilor
de non-repudiere si la arbitrarea disputelor.
Din punct de vedere al implicarii T T P -ului n cadrul derularii unui protocol de nonrepudiere, pot fi identificate trei situatii (ISO 10181 4):
1. Protocoale de non-repudiere bazate pe T T P -uri in-line. Acest tip de terti de ncredere actioneaza ca intermediari n toate tranzactiile efectuate ntre entitati. Toate
mesajele schimbate n cadrul protocolului trec pe la T T P .
2. Protocoale de non-repudiere bazate pe T T P -uri on-line. T T P -urile participa activ
la generarea si verificarea dovezilor de non-repudiere.
3. Protocoale de non-repudiere bazate pe T T P -uri off-line. In aceasta situatie, tertii
de ncredere nu participa activ n cadrul serviciului de non-repudiere (vor fi invocati
doar n anumite situatii de exceptie).
Un T T P implicat n gestionarea dovezilor de non-repudiere se poate afla n una din
situatiile de mai jos ([30]):
Ca Autoritate de Certificare. Un CA genereaza certificate digitale pentru cheile
utilizatorilor, autentificandu-le astfel pentru a fi folosite n protocoalele de nonrepudiere. CA-ul furnizeaza de asemenea listele de certificate revocate, pentru a
putea fi determinata validitatea cheilor folosite.
13
Autoritatile de Certificare sunt folosite ntotdeauna n situatiile cand pentru generarea dovezilor de non-repudiere sunt utilizate semnaturile digitale. In general,
T T P -urile cu rol de CA sunt utilizate off-line n protocoalele de non-repudiere. Ele
pot fi folosite si ca T T P -uri on-line, daca semnaturile electronice folosesc formate
avansate de semnatura electronica si contin informatii bazate pe servicii on-line de
validare a certificatelor.
Ca Notar Electronic. Similar cazului non-electronic, un T T P cu rol de notar electronic poate fi utilizat pentru asigurarea unor servicii de non-repudiere.
Daca pentru generarea dovezilor de non-repudiere sunt folosite mecanisme bazate pe
criptografia simetrica, T T P -ul implicat n protocol poate fi activat pentru a genera
dovezile de non-repudiere n numele participantilor. Daca dovezile de non-repudiere
se obtin pe baza de semnaturi digitale, notarul ar trebui sa furnizeze marci temporale
privind momentul generarii dovezilor.
In general T T P -urile cu rol de Notar Electronic sunt utilizate n protocoalele de
non-repudiere ntr-o arhitectura on-line.
Ca Autoritatea de Expediere. O astfel de Autoritate constituie un tert de ncredere
n ceea ce priveste expedierea mesajelor.
Acest tip de T T P -uri este utilizat n cadrul protocoalelor de non-repudiere ntr-o
arhitectura in-line.
Ca Autoritatea de Arbitrare. Un T T P cu acest rol nu va fi implicat n protocoale decat n situatiile n care apar dispute, principalul sau scop fiind judecarea
si rezolvarea acestora. Judecarea disputelor presupune evaluarea dovezilor puse la
dispozitie de participanti si luarea n consideratie a unei politici de non-repudiere.
Protocoale de non-repudiere f
ar
a T T P -uri
Protocoalele de acest tip pot asigura doar probabilistic cerintele de non-repudiere.
Chiar daca n implementare se aleg corect parametrii protocolului, gradul de risc este
foarte mic iar probabilitatea de nesolutionare a disputelor este neglijabila, totusi aceste
protocoale sunt ineficiente, fiind greu de aplicat.
Exemplul 2.2. Primele protocoale f
ar
a T T P apar la jum
atatea anilor 80, dezvoltate
initial pentru schimbul de secrete (de exemplu chei criptografice) ntre entit
ati. Ideea de
baz
a era ca fiecare entitate sa transmit
a pe r
and biti succesivi din informatia secret
a care
trebuia furnizata celeilalte entitati, p
an
a la epuizarea informatiei. Dac
a o entitate stopa
procesul, cealalta proceda similar; n acest mod, efortul de calcul pentru aflarea restului de
cadrul acestor protocoale de
informatie era sensibil echivalent pentru ambele entit
ati. In
schimb de date pot fi identificate mecanisme clare de non-repudiere.
14
15
Dupa epuizarea rundei n si primirea lui EORrn1 , Alice anunta terminarea protocolului,
dezvaluind practic numarul de runde ales si faptul ca n aceasta ultima runda a trimis cheia
simetrica k prin care Bob poate obtine mesajul M = Dk ((c). Dovada de non-repudiere a
originii va fi:
N RO = (EOOc , EOOrn1 ),
iar dovada de non-repudiere a receptiei va fi N RR = (EORc , EORrn1 ).
In cazul unei dispute:
Bob poate dovedi non-repudierea originii:
EOOc : dovedeste ca Alice i-a trimis mesajul criptat cu o cheie simetrica;
EOOrn1 : dovedeste ca Alice i-a trimis si cheia simetrica de decriptare.
Alice poate dovedi non-repudierea receptiei:
EORc : dovedeste ca Bob i-a confirmat primirea mesajului criptat cu o cheie
simetrica;
EORrn1 : dovedeste ca Bob i-a confirmat si primirea cheii simetrice de decriptare, adica obtinerea mesajului M .
Protocolul se bazeaza pe pastrarea secretului privind numarul de runde si cheia secreta k,
alese de Alice pana la epuizarea ntregului set de runde. Bob, nestiind dinainte numarul
de runde fixat de Alice, n ultima runda nu va sti ca a primit cheia simetrica decat dupa
ce va fi anuntat de Alice, furnizand la randul lui informatia necesara de non-repudiere.
Observatia 2.1.
La fiecare din ultimele n 1 runde, nainte de a trimite dovada non-repudierii
receptiei corespunzatoare, Bob ar putea ncerca decriptarea mesajului primit n prima
rund
a; daca reuseste, poate alege s
a nu mai trimit
a aceast
a dovad
a, ceea ce l-ar pune
n avantaj fata de Alice. Aceast
a problem
a se poate rezolva printr-o implementare
care sa contorizeze timpii de raspuns ai lui Bob. Astfel, dac
a apare o nt
arziere mai
mare n cadrul unui raspuns de la Bob, protocolul esueaz
a. Pentru asta, trebuie ales
un algoritm de criptare n care operatia de decriptare s
a dureze un timp suficient ca
s
a poata fi detectat de Alice. Solutia este ineficient
a practic din mai multe motive
(stadiul actual face ca timpii de calcul s
a fie insezizabili; sau, dac
a entit
atile utilizeaz
a o retea de comunicatie instabil
a unde pot apare nt
arzieri nepredictibile, f
ara
ca ele sa fie induse de Bob).
Pentru ca protocolul sa fie functional, valorile aleatoare r1 , . . . , rn1 trebuie s
a fie
independente, egal distribuite, de lungimi aproximativ echivalente cu lungimea lui k.
16
17
Faza 1
?
?
TTP
Emitent Alice
? ?-
Faza 2
Receptor Bob
Alice T SA :
T SA Alice :
Alice N RS :
N RS Alice :
Alice N RS :
N RS Bob :
Bob T SA :
T SA Bob :
Bob N RS :
N RS Bob :
N RS Alice :
P KT SA (N ROp)
P KAlice (N RO)
N R req
P KAlice (n1 )
P KN RS (SigAlice (n1 , N RO, N RRp))
P KBob (SigN RS (n2 , N RRp))
P KT SA (N RRps)
P KBob (N RR)
P KN RS (SigBob (n2 , N RR))
P KBob ((N RO))
P KAlice (N RR)
18
19
Observatia 2.2.
1. Ideea principala a protocolului Coffey - Saidha este aceea c
a dovezile de non-repudiere a originii si respectiv a receptiei nu sunt trimise celor dou
a entit
ati p
an
a ce acestea
nu depun aceste dovezi semnate la Serverul de Non-Repudiere.
2. Dovezile de non-repudiere detinute de Alice si Bob nu contin semn
atura N RS-ului.
Acestea sunt:
N RO = SigT SA (SigAlice (Alice, Bob, M ), T SA, ts1 );
N RR = SigT SA (SigBob (Bob, Alice, h(N RO)), T SA, ts2 ).
3. Cele doua entitati nu comunic
a niciodat
a direct; schimbul de mesaje (mesajul M
si dovezile de non-repudiere) se face numai prin intermediul Serverului de NonRepudiere.
4. Mesajul M ajunge la Bob odat
a cu dovada de non-repudiere a originii N RO si nu
nainte ca N RS sa detina dovada de non-repudiere a receptiei N RR.
cazul solutionarii unei dispute n care Alice sustine c
5. In
a Bob a primit mesajul
M , arbitrul cere N RS-ului dovada de non-repudiere a receptiei (N RR) precum si
dovada de non-repudiere a originii (N RO).
Dac
a aceste dovezi nu pot fi oferite, afirmatia lui Alice este respins
a. Altfel, arbitrul verifica semnatura lui Alice si marca temporal
a aplicat
a de T SA pe aceast
a semnatura. De asemenea verific
a valoarea h(N RO) din cadrul dovezii N RR,
semn
a-tura lui Bob si marca temporal
a aplicat
a peste aceasta.
20
9. Atacurile de tip replay n relatia N RS - Entitate sunt ocolite prin utilizarea unor
secvente de tip provocare -raspuns, bazate pe informatii de tip nonce transmise de
N RS.
Concluzie: Utilizarea de T T P -uri in-line (pentru asigurarea dovezilor necesare n
serviciile de non-repudiere) poate fi o solutie viabila. Exista nsa cateva dezavantaje
majore care descurajeaza punerea n practica a acestui tip de arhitectura:
1. T T P -ul trebuie sa gestioneze baze de date destul de mari n care sa stocheze mesajele
pe care le primeste pentru a le retransmite.
2. La nivelul T T P -ului, gatuirea tranzactiilor este maxima.
3. Gestiunea centralizata de informatii sensibile n cantitati mari poate constitui o
problema, necesitand un nivel suplimentar de confidentialitate la nivelul tertului.
Protocoale de non-repudiere bazate pe T T P -uri on-line
In cazul protocoalelor de non-repudiere bazate pe T T P -uri on-line, T T P -ul nu actioneaza
ca Agent de Expediere (intermediar pentru fiecare tranzactie ntre entitati). El intervine
totusi n cadrul fiecarei sesiuni a protocolului.
Dintre protocoalele de acest tip vom detalia pe cel propus de Zhou si Gollmann ([32]) n
1996. Aici T T P -ul functioneaza ca un director de publicare read-only, de unde entitatile
participante si obtin informatii necesare pentru dovezile de non-repudiere.
Protocolul este descris de urmatoarele tranzactii:
1. Alice (ca entitate emitenta):
(a) cripteaza mesajul M folosind cheia simetrica k : c = Ek (M );
(b) genereaza dovada originii lui c:
EOOc = SigAlice (Bob, l, t, c)
unde l = Hash(M, k)
21
4. T T P :
(a) trimite spre ambele entitati confirmarea faptului ca detine cheia k:
Con = SigT T P (Alice, Bob, l, t, k)
(b) trimite lui Bob cheia simetrica k.
(c) Bob poate recompune mesajul M = Dk (c).
Dovada de non-repudiere a originii va fi:
N RO = (EOOc , Con)
Dovada de non-repudiere a receptiei va fi:
N RR = (EORc , Con)
In cazul unei dispute:
Bob poate dovedi non-repudierea originii:
EOOc dovedeste ca Alice i-a trimis mesajul criptat cu o cheie simetrica;
Con dovedeste ca Bob a putut obtine de la T T P cheia simetrica de decriptare,
deci a putut obtine si mesajul.
Alice poate dovedi non-repudierea receptiei:
EORc dovedeste ca Bob i-a confirmat primirea mesajului (criptat cu o cheie
simetrica);
Con dovedeste ca T T P -ul a publicat cheia simetrica, deci Bob a avut acces
la aceasta cheie, pentru decriptarea si obtinerea lui M .
T T P -ul poate dovedi ca Alice i-a trimis cheia simetrica, prezentand Sub.
Observatia 2.3.
Dup
a epuizarea primului pas, dac
a Bob nu r
aspunde cu dovada primirii mesajului
criptat EORc sau comunicatia se ntrerupe, Alice va opri protocolul f
ar
a a transmite
cheia simetrica de decriptare c
atre T T P .
Astfel Bob nu va avea acces la aceast
a cheie si implicit nici la mesaj.
Toate mesajele din cadrul protocolului sunt legate ntre ele prin intermediul etichetei
l.
22
Dup
a primirea dovezii de confirmare a mesajului criptat, Alice trebuie s
a compare
eticheta din confirmare cu cea trimis
a odat
a cu mesajul criptat. Altfel va pierde o
eventuala viitoare disputa.
Dac
a Alice nu trimite catre T T P cheia simetric
a k, protocolul se ncheie si niciunul
din parteneri nu este n avantaj.
Bob nu are mesajul si nici dovada complet
a a originii lui (i lipseste Con), iar lui
Alice i lipseste Con, deci nu are dovada c
a T T P -ul a publicat cheia simetric
a de
decriptare si nu poate dovedi non-repudierea receptiei.
Dup
a primirea cheii k si a lui Sub, T T P -ul va publica tuplul (Alice, Bob, l, k, Con)
ntr-o intrare specifica lui Alice, de unde Bob poate obtine cheia de decriptare.
Protocolul este protejat la atacuri de tip denial-of-service. Entit
atile r
au intentionate
nu pot trimite chei false n numele lui Alice, deoarece acestea trebuie semnate de
ea.
Ca o concluzie, n obtinerea de servicii de non-repudiere, T T P -urile on-line pot constitui o solutie mai buna decat cele in-line. Motive:
1. T T P -ul nu actioneaza ca Agent de Expediere ci ca un Agent de Certificare pentru
cheile de decriptare.
2. Entitatile nu schimba mesajele prin intermediul T T P -ului, nsa acesta participa
activ n cadrul fiecarei instante a protocolului.
3. In cadrul schimbului de mesajelor exista si un parametru (optional) de timp t.
Pentru a evita o ncarcare prea mare a T T P -ului, parametrul t agreat de Alice
si Bob nca din primele doua mesaje specifica o perioada de timp cat T T P -ul va
pastra disponibila informatia de cheie si dovada publicarii ei.
Protocoale de non-repudiere bazate pe T T P -uri off-line
Un T T P este off-line ntr-un protocol de non-repudiere daca nu intervine decat n situatii
n care apar probleme n cadrul protocolului.
T T P -urile de acest tip au fost introduse n protocoale unde n general nu apar probleme. Din acest motiv protocoalele cu T T P off-line se numesc si protocoale optimiste.
Primele protocoale care folosesc T T P -uri off-line sunt descrise de Asokan ([2],[3]).
De asemenea, Micalli propune ([21]) un protocol de certificat e-mail cu cerinte de nonrepudiabilitate bazat pe T T P -uri off-line transparente (invizibile)1 .
1
23
Totusi, primele protocoale dedicate clar ideii de non-repudiere cu T T P -uri off-line sunt
descrise de Kremer, Markowitch ([14]) si de Jhou ([31]).
In general toate protocoalele de non-repudiere cu T T P -uri off-line contin cel putin
doua sub-protocoale diferite:
Un protocol principal (main) utilizat n cazurile normale n care entitatile se
comporta corect una fata de cealalta.
T T P -ul nu intervine n acest protocol.
Un protocol de recuperare (recovery) pentru situatiile cu probleme.
In acest caz este necesara interventia T T P -ului pentru furnizarea dovezilor de nonrepudiere.
In plus, unele protocoale contin si:
un protocolul aditional de iesire fortata (abort), care poate fi declansat de una
din entitati n anumite situatii; n urma acestuia se va apela ulterior protocolul de
recuperare (recovery) pentru rezolvarea disputelor.
Vom prezenta ca studiu de caz protocolul de non-repudiere cu T T P off-line propus de
Kremer-Merkowitch ([14])).
El se desfasoara ntre Alice (ca entitate emitenta) si Bob (ca entitate receptoare), iar
daca apar probleme de non-repudiere este implicat si T T P -ul.
Dovezile de non-repudiere sunt obtinute pe baza mecanismului de semnatura digitala.
In cadrul protocolului sunt generate urmatoarele dovezi:
dovada originii mesajului criptat:
EOO = SigAlice (Bob, T T P, h(c))
dovada expedierii cheii k de criptare a mesajului (criptata cu cheia publica a T T P ului): Sub = SigAlice (Bob, P KT T P (k)).
dovada de non-repudiere a receptiei mesajului criptat si a cheii de criptare a mesajului (criptata cu cheia publica a T T P -ului):
N RR = SigBob (Alice, T T P, h(c), P KT T P (k))
dovada originii cheii k de criptare a mesajului: EOOk = SigAlice (Bob, k).
dovada cererii de recuperare:
Rec = SigBob (Y )
24
25
26
Acest lucru l plaseaza pe Bob pe o pozitie avantajata fata de Alice, deoarece Bob
nu poate fi niciodata n situatia de a depinde de Alice. Se spune despre un astfel
de protocol ca nu este oportun.
Concluzie:
Arhitectura bazata pe T T P -uri off-line constituie cea mai buna solutie pentru asigurarea dovezilor necesare de non-repudiere deoarece:
Implicarea T T P -ului poate fi doar ocazionala. In majoritatea timpului, tranzactiile
se desfasoara doar ntre entitatile emitator si receptor.
T T P -ul nu trebuie sa stocheze informatiile primite de la entitati decat n anumite
situatii ceea ce diminueaza necesarul de resurse.
Caracterul off-line al protocoalelor elimina dezavantajele cu care se confrunta serviciile on-line (redundanta serviciului si a conectivitatii, amenintari cu diverse atacuri
cum ar fi cele de tip Denial-of-Service, intruziune etc.).
2.5
Servicii de Marc
a Temporal
a
Definitia 2.3. Marcarea temporala a documentelor este un mecanism prin care se poate
determina daca un document electronic a fost creat nainte de un moment de timp dat.
Exemplul 2.3. Fara un astfel de mecanism nu putem avea ncredere n documente semnate electronic cu primitive criptografice de semn
atur
a care au fost dep
asite tehnologic.
F
ar
a cunoasterea momentului la care a fost creat
a semn
atura, aceasta poate fi oric
and
repudiat
a.
Dup
a semnarea documentului, certificatul semnatarului poate fi revocat pe motiv de
compromitere a cheii private, ceea ce permite acestuia s
a afirme c
a nu el a fost cel care a
semnat documentul.
Validarea unei semnaturi trebuie s
a se poat
a realiza si dup
a revocarea sau expirarea
certificatului de semnare.
Multe din serviciile si tehnicile de securitate existente (semnaturile electronice, autentificarea, arhivarea electronica a documentelor, protocoale de non-repudiere etc.) sunt
bazate pe posibilitatea de a putea stabili cu exactitate momentul de timp cand anumite
date au fost supuse unor operatii.
Atunci cand exista termene de predare/primire, exista necesitatea de a dovedi ca un
document a fost predat la termen, acesta constituind un alt caz de utilizare a marcilor de
timp.
Orice forma de notariere electronica include si o marca temporala. Cu toate ca marcile
temporale constituie o solutie pentru diverse aplicatii, n multe cazuri adevarata problema
o constituie obtinerea lor ntr-o maniera sigura si eficienta ([19]).
TEMPORALA
27
Marcarea temporala a unui document se face prin adaugarea unei amprente (stampile)
de timp la documentul respectiv.
In general, majoritatea schemelor de marcare temporala folosesc:
1. un rezumat al documentului care trebuie marcat (marca temporala se calculeaza pe
rezumatul documentului)
2. un tert de ncredere de tip on-line numit Autoritate de Marc
a Temporal
a (T SA
Time Stamping Authority).
T SA - ul genereaza marcile temporale pentru documente si garanteaza ca parametrul de
timp inclus este corect. Entitatile care verifica marca temporala trebuie sa aiba ncredere
n T SA.
2.5.1
Entitate
T SA
Scheme simple
Definesc doar un mecanism prin care se pot obtine marcile temporale; ele genereaza marci
temporale independente (nu includ informatii din alte marci generate anterior).
Exemple de utilizare al acestui tip de schema sunt cele propuse de standardele elaborate
de IETF n T SP Time-Stamping Protocol (RF C 3161) si de ISO n ISO 18014 2.
Solutia cea mai utilizata de generare a amprentelor de timp se bazeaza pe criptografie,
folosind semnaturile digitale.
Astfel, pentru obtinerea unei marci temporale pentru un document X:
28
TEMPORALA
29
30
In opinia autorilor singura solutie de a ataca schema este aceea de a falsifica un lant
suficient de lung de legaturi.
Pentru a prentampina acest lucru, pasul de publicare devine obligatoriu .
Publicarea nu este eficienta daca se face pentru fiecare marca generata.
De aceea schemele cu legaturi sunt totusi vulnerabile n intervalul petrecut de la ultima
publicare pana la urmatoarea publicare. In acest interval, un T SA compromis poate
antedata orice document si poate reface lantul de legaturi.
O solutie de auditare ar putea fi realizata doar cu colaborarea tuturor clientilor din
acest interval, ceea ce nu este deloc practic.
Schemele distribuite
Sunt obtinute prin utilizarea mai multor T SA-uri pentru generarea amprentelor de timp.
In acest mod ncrederea ntr-un singur T SA poate fi redusa.
Pentru falsificarea unei amprente de timp a unui document trebuie sa colaboreze mai
multe T SA-uri.
Schemele distribuite pot fi obtinute prin combinarea schemelor simple si a schemelor
nlantuite. De exemplu, o schema distribuita se poate obtine prin serializarea unei scheme
simple cu o schema nlantuita care ruleaza la doua T SA-uri diferite.
Schemele distribuite prezinta cel mai mare grad de securitate, dar au o complexitatea
ridicata. In consecinta fiabilitatea sistemului scade, deoarece toate componentele sale
trebuie sa fie functionale.
Exemple de scheme distribuite putem gasi n [1], [7].
2.5.2
Nici una din schemele de marca temporala prezentate nu este perfecta, fiecare din ele
avand avantajele dar si dezavantaje sale. In [20] sunt indicate o serie de probleme cu care
se confrunta schemele actuale de marca temporala:
Schemele simple nu prezinta control asupra parametrului de timp. Din aceasta
cauza nu exista posibilitatea de a contracara un comportament fraudulos al T SAului, acesta putand antedata documentele.
Caracterul on-line caracteristic T SA-urilor face ca acestea sa devina vulnerabile la
problemele specifice acestui tip de serviciu: atacuri de intruziune, disponibilitatea
serviciilor, resurse de retea redundante etc.
In cazul schemelor cu nlantuire, T SA-ul poate antedata documente n intervalul
dintre pasii de publicare. Singura solutie de verificare a procesului ar fi prin identificarea si colaborarea tuturor utilizatorilor sistemului din acest interval, ceea ce face
schema nepractica.
TEMPORALA
31
Metoda cea mai folosita pentru generarea marcilor de timp se bazeaza pe semnaturi
digitale. In cazul schemelor simple, compromiterea cheii private invalideaza toate
marcile generate. Pentru schemele cu nlantuire, sunt invalidate toate marcile care
nu au fost nca incluse n legatura publicata.
La schemele cu legaturi, pentru verificarea lanturilor de amprente, acestea trebuie
arhivate pe o perioada suficient de mare, iar operatia de verificare necesita implicarea
T SA-ului.
Datorita faptului ca n general procesul de marcare temporala se bazeaza pe un
singur serviciu T SA, schemele devin vulnerabile la atacuri de tip Denial-of-Service.
Este foarte greu de implementat solutii de balansare a cererilor bazate pe servicii
T SA redundante, deoarece marcile de timp trebuiesc corelate.
Pasul de publicare necesar schemelor de nlantuire nu este ntotdeauna usor de
realizat. In general pentru procesul de publicare sunt preferate diverse mijloace
cum ar fi reviste sau ziare cu circulatie publica, iar n acest caz publicarea nu poate
fi automatizata.
Nu toate schemele sunt echivalente ca nivel de securitate. Anumite scheme sunt
succeptibile la diverse atacuri.
Tehnic, schemele de marcare sunt bazate pe primitive criptografice cum ar fi functiile
de dispersie criptografica sau criptografia cu chei publice.
Compromiterea acestora implica automat si compromiterea schemelor de marcare.
Inter-operabilitatea constituie o alta problema a schemelor. Pentru foarte multe
scheme, formatul cererilor, al marcilor de timp si al legaturilor nu sunt bine specificate.
Standardul T SP (RF C 3161) trateaza doar schemele simple, propunand un format
ASN.1 pentru cereri si marcile temporale. In [29] este o propunere mai generala
bazata pe formate XM L (care acopera si mecanisme de nlantuire), nsa nu exista
nca un standard n acest sens.
In acest moment majoritaea aplicatiilor sunt bazate pe standardul T SP , iar unele
autoritati de marcare temporala folosesc si elemente de nlantuire.
Schemele distribuite prezinta cel mai bun grad de securitate, nsa acestea sunt greu
si scump de implementat practic. Verificarea marcilor presupune implicarea tuturor
T SA-urilor din cadrul sistemului de marcare.
Cerintele actuale privind realizarea semnaturilor digitale obliga folosirea marcilor
temporale pentru a garanta validitatea semnaturilor electronice pe termen lung
32
2.5.3
TEMPORALA
33
34
Un T SA poate functiona dupa una sau mai multe politici care trebuie sa fie clar definite, publicate si unic identificabile prin intermediul unui ObjectIdentifier (OID). Clientul
poate alege n cerere una din politicile T SA-ului sau l poate lasa pe acesta sa foloseasca
una din politicile sale.
Standardul stabileste si cateva cerinte de securitate asupra T SA-ului:
foloseste o sursa de timp exacta si de ncredere;
include informatia de timp de ncredere n fiecare marca de timp emisa;
accepta din partea clientului numai cereri de marcare bazate pe una dintre politicile
sale de functionare;
verifica si accepta din partea clientului numai functii de dispersie considerate de
ncredere la momentul cererii;
nu asociaza parametrul de timp niciodata cu datele ci doar cu amprenta acestora;
semneaza fiecare token de timp emis ca raspuns si foloseste o cheie dedicata n acest
sens;
identifica n mod unic fiecare marca de timp emisa, folosind numere ntregi;
pastreaza caracterul anonim al clientului; marca de timp generata nu trebuie sa
identifice n nici un fel clientul.
Standardul propune mai multe mecanisme posibile de transport bazate pe protocoalele
HT T P, F T P, eM ail sau T CP/IP . In practica, standardele de securitate care folosesc
protocolul T SP pentru obtinerea marcilor temporale necesare aleg de obicei varianta
HT T P .
Protocolul descris n RF C3161 prezinta cateva slabiciuni care se pot transforma n
falii de securitate ([27]):
1. Nu se precizeaza nici un mecanim de protectie mpotriva unui comportament fraudulos al T SA-ului. Este folosita schema simpla de generare a marcilor, schema care
este cea mai putin sigura din acest punct de vedere. Verificatorii trebuie sa accepte
T SA-ul ca fiind de ncredere n totalitate.
Implementarile T SA pot fi mbunatatite prin adaugarea unor mecanisme specifice
schemelor nlantuite, nsa standardul nu contine nici un astfel de element pentru a
asigura un nivel de interoperabilitate n acest sens.
2. Standardul nu prevede alte metode mai rapide comparativ cu semnatura pentru
obtinerea marcilor temporale. Operatia de semnare este mare consumatoare de timp
ceea ce face sistemul vulnerabil la atacuri de tip Denial-of-Service.
TEMPORALA
35
36
2.6
2.6.1
Cerintele de functionare formulate asupra unui serviciu de arhivare pot sa difere n raport
cu utilizatorii care folosesc serviciul respectiv si cu necesitatile acestora.
Cateva cerinte generale specifice unui serviciu de arhivare pe termen lung (RF C4810):
1. Un serviciu de arhivare trebuie sa permita clientilor sai realizarea operatiilor de baza
privind:
(a) depunerea datelor pentru a fi arhivate;
(b) obtinerea datelor din arhiva;
(c) stergerea datelor din arhiva (optional).
Datele pot fi transmise n diverse forme (date brute, date semnate si/sau criptate
etc.) si folosind diverse formate de prezentare (documente PDF, XML, Microsoft
Office Word, PPT etc.).
2.6. SERVICII DE ARHIVARE DIGITALA
37
38
Ca exemple: o semnatura digitala mpreuna cu documentul semnat, sau un document mpreuna cu o serie de traduceri ale sale. In aceste cazuri operatiile de arhivare
trebuie realizate nu pentru un singur obiect, ci pentru un grup de obiecte arhivate.
8. Eficienta serviciului.
Serviciile de arhivare pot avea cantitati mari de date arhivate pe care trebuie sa le
gestioneze ntr-un mod eficient. Operatiile de conservare a datelor si de (re)generare
a dovezilor de integritate pot fi costisitoare ca timp, putere de calcul si resurse de
stocare. O solutie eficienta n acest sens este furnizata n RF C 4998.
9. Asigurarea non-repudierii originii datelor poate fi de asemenea un obiectiv al unui
serviciu de arhivare.
Pot fi folosite mecanisme specifice protocoalelor de non-repudiere, cu sau fara implicarea altor T T P -uri.
2.6.2
2.6. SERVICII DE ARHIVARE DIGITALA
39
40
TTP
T AA - T SA
(3)Client
(4)
unde:
1. Clientul trimite o cerere de arhivare a datelor (inclusiv datele care trbuie arhivate).
2. T AA raspunde la cererea de arhivare, trimitand printre altele si un token de
arhivare.
3. Clientul face o cerere de obtinere a datelor (incluzand tokenul de arhivare).
4. T AA raspunde la cerere, incluzand tokenul de arhivare, nregistrarea de arhivare si
datele solicitate din arhiva.
Modelul foloseste schema T T P (RF C 3161) pentru obtinerea marcilor temporale necesare
n vederea garantarii integritatii datelor. Protocolul este de tip client - server sincron, iar
tranzactiile din cadrul protocolului sunt bazate pe mesaje CM S (RF C 3852). Toate
raspunsurile primite din partea T AA sunt semnate electronic, fiind ncapsulate ntr-o
structura de tip SignedData.
Toate datele pentru structurile definite n T AP sunt descrise folosind notatia ASN.1
(ISO 8824).
Datele arhivate sunt pastrate mpreuna cu dovezile de arhivare ntr-un Pachet de
Arhivare. Acesta contine:
Datele primite de la client.
Un token de arhivare, generat de T AA la momentul arhivarii datelor. El este
furnizat clientului ca raspuns la depunerea datelor, pentru a putea identifica si
realiza operatii ulterioare asupra datelor arhivate (obtinerea, stergerea datelor din
arhiva etc.).
Inregistrarea de arhivare, cu informatia criptografica actualizata de T AA prin care se
asigura integritatea datelor. Aceasta este o structura de marci temporale imbricate.
Initial structura contine marca temporala calculata pentru datele transmise pentru
arhivare. La fiecare actualizare, nregistrarea de arhivare cea mai recenta devine
subiectul unei noi marcari temporale.
2.6. SERVICII DE ARHIVARE DIGITALA
41
42
Arbore de
amprente
T SA
a5 = h(a1 ka2 )
a6 = h(a3 ka4 )
> I
I
a1 = h(D1 )
6
Document
D1
a2 = h(D2 )
a3 = h(D3 )
Document
D2
Document
D3
a4 = h(D4 )
6
Document
D1
a1 = h(D1 )
a2 = h(D2 )
a6 = h(a3 , a4 )
Periodic marcile temporale si arborii de dispersie trebuie regenerati (re-nnoiti). Motivul este deprecierea n timp a proprietatilor de securitate ai algoritmilor si parametrilor
folositi la generarea marcilor de timp si a nodurilor arborelului (functii de dispersie, algoritmi de semnatura, lungimi de chei).
Regenerarea se face doar pentru marcile temporale aplicate nodurilor radacina sau
pentru tot arborele de dispersie.
Rennoirea marcilor temporale se face n situatia cand algoritmul de semnatura sau
cheia privata folosite de T SA devin slabe. Avand n vedere ca marca temporala veche
43
include deja toate amprentele documentelor din arbore, procesul de rennoire este foarte
eficient, iar documentele referite nu mai trebuie ncarcate de pe mediile de stocare pentru
a li se recalcula amprentele.
Sistemul de arhivare va calcula doar amprenta marcii temporale vechi si o va insera ntr-un
arbore nou, pentru care va obtine o marca temporala actualizata.
Rennoirea unui arbore de amprente se face n situatia cand algoritmul de dispersie
utilizat devine nesigur. Operatia de nlocuire a functiei de dispersie este costisitoare,
deoarece necesita refacerea amprentelor tuturor documentelor implicate.
Sistemul de arhivare trebuie sa pastreze lantul complet de dovezi generate pentru fiecare
document de la momentul initial al depunerii sale n arhiva. Din acest motiv regenerarea
fiecarui arbore va tine cont atat de amprenta documentului cat si de amprenta ultimului
arbore redus calculat.
Pentru siguranta sistemului de arhivare este recomandat sa se genereze doua structuri
arborescente paralele, folosind functii de dispersie diferite (de exemplu SHA 256 si
RIP EM D 160). Daca una din ele va fi compromisa, cealalta ofera ragazul necesar
pentru rennoire.
Stergerea unui document din arhiva nu influenteaza restul arhivei. Toate celelalte
documente pot fi verificate folosind pentru fiecare, arborele sau redus.
Relativ la formatul datelor pentru structurile definite n ERS (RF C 4998), acestea
sunt descrise folosind notatia ASN.1 (ISO 8824).
2.7
Servicii de Directoare
44
- Login
Entitate
Profile
-
Auditor
6
6
?
?
-
Serviciu
- Fisiere de log
de autentificare
6
?
Administrator
baza de date
Sistem de
autorizare
Administrator
de securitate
6
?
Manager de cereri
6
?
Baza de date
Nu este obligatoriu ca toate informatiile sa fie localizate ntr-o singura baza de date
locala. Pentru administrarea securitatii serviciului de directoare pot fi definite urmatoarele
roluri (ISO 14516):
1. Administratorul de securitate este responsabil pentru definirea regulilor de autorizare conforme cu politica de securitate adoptata.
In acest sens, regulile de acces pot fi diferite, n functie de scopul serviciului de
directoare (de exemplu, serviciul poate fi de natura publica sau poate fi restrictionat
unei comunitati controlate de entitati care platesc pentru acest serviciu).
2. Administratorul bazei de date este responsabil de ntretinerea acestei componente
a serviciului de directoare. El are drepturi de acces la baza de date si poate scrie,
citi sau sterge informatie din baza de date.
3. Auditorul revede periodic jurnalele din fisierele de loguri pentru a detecta posibilele
intruziuni sau atacuri de securitate.
2.8
Serviciile publice de notariat electronic sunt servicii de nivel nalt care folosesc anumite
servicii de baza: servicii de marca temporala, de certificare, de directoare, de arhivare
digitala si non-repudiere etc.
Un document va fi trimis T T P -ului care-l va atesta (sau certifica) utilizand semnaturi
digitale sau alte mecanisme. Un serviciu de directoare poate fi o componenta a serviciului
de unde se pot obtine documentele certificate.
Un serviciu public de notariat poate atesta si certifica anumite clase de documente
(de exemplu faptul ca un document a existat la un anumit moment de timp sau ca este
autentic). Un astfel de serviciu poate fi folosit pentru medierea unei dispute ntre doua
entitati, fiind autorizat n acest sens de o anumita autoritate.
45
Serviciile de notariat electronic lucreaza ca un notar public traditional. Ele pot stoca
documente semnate digital si marcate temporal. Aceste documente vor fi nregistrate
ntr-un registru electronic propriu serviciului notarial.
Exista nsa multe aspecte delicate legate de aceste tipuri de servicii cum ar fi cele
legate de autoritatea si responsabilitatea notarului electronic, de evidenta, jurisdictie si
mai ales legale.
Definitia 2.5. O Autoritate Notarial
a (N A) este un tert de ncredere care nregistreaza
date la un anumit moment de timp si poate verifica corectitudinea unei informatii nregistrate n raport cu politica sa de securitate.
Autoritatea Notariala actioneaza ca un serviciu de nregistrare; acest rol poate fi nsa
extins pentru a functiona si ca serviciu de validare. Atunci cand Autoritatea Notariala face
verificari asupra unui document ea poate adauga informatii noi la documentul respectiv.
In acest mod entitatile care se ncred n N A pot fi sigure ca documentul a fost verificat de
catre Autoritate la un moment dat de timp si este n concordanta cu o anumita politica
a Autoritatii Notariale.
Exemplul 2.5. O Autoritate Notarial
a poate notariza un certificat digital de chei publice
n raport cu o politica de validare.
acest caz N A verifica daca certificatul din cerere este sau nu valid si determina
In
starea de revocare la momentul respectiv. Autoritatea verific
a calea de certificare p
ana
la un punct de ncredere, folosind mecanisme de validare bazate pe CRL-uri, ARL-uri
sau pe servicii de validare on-line de tip OCSP (RF C 2560) sau SCV P (RF C 5055).
Informatiile privind starea certificatului se vor introduce mpreun
a cu o marc
a temporala
de ncredere ntr-un token notarial final.
Exemplul 2.6. Autoritatea Notarial
a poate notariza si date formatate. N A verifica
corectitudinea datelor si creaza tokenul notarial.
acest caz, corectitudinea datelor nu se refer
In
a neap
arat la valabilitatea unei semn
aturi
digitale. Particularitatea acestui aspect depinde de politica de verificare a Autorit
atii
Notariale si de tipul documentului.
De exemplu, documentul poate contine una sau mai multe semn
aturi (n acest caz,
corectitudinea documentului se bazeaz
a pe verificarea acestora), poate contine presupuneri
(corectitudinea se bazeaza pe valoarea lor de adev
ar) sau documentul poate fi de fapt un
contract (iar corectitudinea sa este legat
a de valabilitatea legal
a a documentului).
Autoritatea Notariala poate semna fiecare token notarial emis, folosind o cheie generat
a exclusiv n acest scop si care are mentionat
a aceast
a calitate n certificatul de chei
publice corespunzator.
46
2.9
2.9.1
Este folosit pentru generarea ntr-o forma sigura a cheilor necesare anumitor algoritmi criptografici. Generarea de informatie secreta si/sau nepredictibila, cu anumite proprietati,
este fundamentala pentru generarea cheilor.
Obtinerea aleatorismului reprezinta una din componentele cele mai dificile ale unui
sistem de generare de chei criptografice. Numerele aleatoare pot fi generate fie utilizand
un generator de numere pseudo-aleatoare securizat criptografic sau o sursa cu adevarat
aleatoare (T RN G - True Random Number Generator).
Gestiunea numerelor aleatoare presupune generarea lor, validarea gradului de aleatorism,
generarea si validarea parametrilor de domeniu, generarea perechilor de chei si validarea
cheilor publice. Recomandari utile privind numerele aleatoare si implicatiile acestora n
generarea de chei pot fi gasite n RF C 1750.
Atat pentru tehnicile simetrice cat si pentru cele asimetrice, trebuie avut n vedere
urmatoarele aspecte:
cheile posibil slabe pentru algoritmul tintit;
folosirea ntregului spatiu de chei.
2.9.2
47
Cheile publice trebuie sa fie certificate de una sau mai multe Autoritati de Certificare.
Pentru a creste disponibilitatea acestui serviciu, cheile certificate ar trebui distribuite pe
mai multe directoare accesibile si de ncredere caz n care directoarele ar trebui sa se
reactualizeze pentru a pastra consistenta.
Serviciile oferite de o autoritate de nregistrare sunt nregistrarea si de-nregistrarea
cheilor.
2.9.3
In acest caz, T T P -ul este o Autoritate de Certificare acreditata care creeaza certificate
de chei. CA-ul marcheaza temporal si semneaza cheile publice sau atribute, pentru a le
valida si autentifica ntr-o infrastructura de chei de ncredere.
Entitatile care folosesc certificatele trebuie sa aiba ncredere ntr-o Autoritate de Certificare comuna.
Cheile certificate pot fi generate fie de un serviciu de generare al T T P - ului fie de
catre entitatea utilizatoare. Serviciul poate include de asemenea rennoirea certificatelor
expirate (re-certificarea).
Sunt importante:
obtinerea dovezii asupra posesiei cheii private din partea presupusului posesor;
obtinerea dovezii asupra validitatii valorii cheii publice candidate (si validitatea
parametrilor acolo unde este cazul).
2.9.4
2.9.5
Furnizeaza stocarea securizata a cheilor utilizate pentru folosirea lor curenta sau pe termen
scurt, sau pentru backup ntr-o locatie fizica separata, pentru a asigura confidentialitatea
si integritatea cheilor.
Este esential ca orice ncercare de compromitere sa fie detectata.
48
2.9.6
Este utilizat pentru a crea un numar potential larg de chei (plecand de la o cheie initiala
secreta numita cheie de derivare), date variabile nesecrete si un proces de transformare.
Cheia de derivare necesita mijloace speciale de protectie, iar procesul de transformare
trebuie sa fie ireversibil si nepredictibil pentru ca n cazul compromiterii unei chei
derivate sa nu fie compromiee cheia de derivare sau alte chei derivate.
2.9.7
Acest serviciu este similar cu cel de stocare a cheilor, cu deosebirea ca stocarea cheilor se
face pe termen lung.
Serviciul este destinat pentru cheile care trebuie obtinute dupa o perioada mare de
timp pentru o anumita operatie.
2.9.8
Scopul acestui tip de serviciu este de a asigura dezactivarea securizata a cheilor atunci
cand se stie (sau se suspecteaza) ca acele chei sunt compromise.
O lista de chei revocate ar trebui sa fie distribuita regulat. Revocarea unei chei poate
fi ceruta de proprietarul cheii, de o alta persoana autorizata sau de o entitate de ncredere
daca exista orice suspiciune ca acea cheie ar putea fi compromisa.
Conform ISO/IEC 11770 1, fiecare intrare ntr-o lista de revocare a cheilor trebuie
sa includa timpul revocarii, timpul cererii si timpul la care cheia era cunoscuta sau supecta
de a fi compromisa.
In anumite cazuri, revocarea poate fi datorata anumitor restrictii de timp. Trebuie sa
fie un interval mic de timp ntre momentul cererii de revocare si anuntarea listei de chei
revocate. Un T T P poate fi responsabil numai cu revocarea cheilor pentru clientii sai.
2.9.9
In acest caz, T T P -ul este o autoritate de nregistrare acreditata care furnizeaza servicii
de distrugere a cheilor care nu mai sunt utile.
Acest T T P trebuie sa furnizeze ntai un serviciu de scoatere din evidenta, pentru a
sterge asocierea dintre o cheie si entitatea sa.
Dupa acest pas, se trece la distrugerea efectiva a cheii.
Distrugerea cheii presupune distrugerea tuturor informatiilor care tin de ea, astfel
ncat sa nu existe nici un mijloc de a recupera cheia respectiva. Acest lucru presupune si
distrugerea tuturor copiilor arhivate ale cheii nu nainte de a verifica faptul ca nu mai
exista informatie arhivata protejata de aceasta cheie.
Bibliografie
[1] A. Ansper, A. Buldas, M. Saarepera, J. Willemson Improving the availability of
time-stamping services, The 6th Australasian Conference on Information Security
and Privacy ACISP, 2001.
[2] N. Asokan, M. Schunter, M. Waidner Optimistic protocols for fair exchange, T.
Matsumoto (Ed.), 4th ACM Conference on Computer and Communications Security,
ACM Press, Zurich, 1997.
[3] N. Asokan, V. Shoup, M. Waidner Optimistic fair exchange of digital signatures,
Advances in Cryptology: Proc. of Eurocrypt 99, Vol. 1403 of LNCS, Springer Verlag,
1998.
[4] D. Bayer, S. A. Haber, W. S. Stornetta Improving the efficiency and reliability of
digital time-stamping, In Sequences 91: Methods in Communication, Security, and
Computer Science, Springer-Verlag, 1992.
[5] J. Benaloh, M. De Mare Ecient Broadcast Time-Stamping, Technical Report TRMCS-91-1, Clarkson University, Department of Mathematics and Computer Science,
April 1991.
[6] I. Bica Protocoale si instrumente pentru confidentialitatea si autenticitatea documentelor n retele de calculatoare, Teza de doctorat, Academia Tehnica Militara,
Bucuresti, 2004.
[7] A. Bonnecaze, P. Liardet, A. Gabillon, K. Blibech A Distributed Time Stamping
Scheme, Proc. of the IEEE Conference on Signal and Image Technology and Internet
Based Systems, Cameroon, 2005.
[8] A. Buldas, P. Laud, H. Lipmaa, J. Villemson Time-stamping with binary linking
schemes, Advances in Cryptology CRYPTO 98, Springer-Verlag, August 1998.
[9] T. Coffey, P. Saidha Non-repudiation with mandatory proof of receipt, ACMCCR:
Computer Communication Review, 1996.
49
50
BIBLIOGRAFIE
[10] S. Chokhani, C. Wallace Trusted Archive Protocol, PKIX Internet Draft, February
2003.
[11] D. Lekkas, S. Katsikas, D. Spinellis, P. Gladychev, A. Patel User Requirements of
Trusted Third Parties in Europe. In Proc. of the Joint IFIP WG 8.5 and WG 9.6
Working Conference on User Identification & Privacy Protection, Stockholm, 1999
[12] S. A. Haber, W. S. Stornetta How to time-stamp a digital document, Journal of
Cryptology, Springer-Verlag, 1991.
[13] Y. Han Investigation of non-repudiation protocols, ACISP: Information Security and
Privacy: Australasian Conference, Vol 1172 of Lecture Notes in Computer Science,
Springer-Verlag, 1996.
[14] S. Kremer, O. Markowitch Optimistic non-repudiable information exchange, J.
Biemond (Ed.), 21st Symp. On Information Theory in the Benelux, 2000
[15] S. Kremer, O. Markowitch, J. Zhou An intensive survey of fair nonrepudiation
protocols. Computer Communications 25, 2002.
[16] R. Kotla, M. Dahlin, L. Alvisi SafeStore: A durable and practical storage system.
In Proceedings of the 2007 USENIX Annual Technical Conference, USENIX, June
2007
[17] M. Kallahalla, E. Riedel, R. Swaminathan, Q. Wang, K. Fu Plutus: scalable secure
file sharing on untrusted storage. In Proc. of the Second USENIX Conference on File
and Storage Technologies (FAST), San Francisco, CA, 2003.
[18] O. Markowitch, Y. Roggeman Probabilistic non-repudiation without trusted third
party, Proc. of 2nd Workshop on Security in Communication Networks, 1999.
[19] C. Marinescu, N. T
apus A Survey of the Problems of Time-Stamping or Why It Is
Necessary to Have Another Time-Stamping Scheme, Proc. of the IASTED Conference
on Software Engineering 2007, SE2007, Austria.
[20] C. Marinescu Semnarea electronic
a a datelor. Schem
a hibrid de realizare a
stampilelor digitale de timp, Teza de doctorat, Universitatea Politehnica Bucuresti,
2008.
[21] S. Micali Certified E-mail with invisible post offices, Invited presentation at the
RSA 97 conference, 1997.
[22] J Mitsianis A new approach to enforcing non-repudiation of receipt, Manuscript,
2001.
BIBLIOGRAFIE
51
[23] E. L. Miller, D. D. E. Long, W. E. Freeman, B. C. Reed Strong security for networkattached storage. In Proc. of the 2002 Conference on File and Storage Technologies
(FAST), Monterey, CA, 2002.
[24] P. Maniatis, M. Roussopoulos, T. J. Giuli, D. S. H. Rosenthal, M. Baker The
LOCKSS peer-to-peer digital preservation system, ACM Trans. on Computer Systems
(TOCS), Vol. 23, 2005.
[25] J. Onieva, J. Zhou, J. Lopez Multi-Party Non-repudiation: A Survey, ACM Computing Surveys, 41(1), December 2008
[26] P. Syverson Weakly secret bit commitment: Applications to lotteries and fair
exchange, Proc. of the 1998 IEEE Computer Security Foundations Workshop
(CSFW11), 1998.
[27] M. Togan Contributii privind dezvoltarea unor servicii de tert de ncredere n retelele
de calculatoare, Teza de doctorat, Academia Tehnica Militara, Bucuresti, 2009.
[28] J. J. Wylie, M. W. Bigrigg, J. D. Strunk, G. R Ganger, H. Kiliccote, P. K. Khosla
Survivable storage systems, IEEE Computer, August 2000.
[29] K. Wouters, B. Preneel, A. I. Gonzlez-Tablas, A. Ribagorda Towards an XML
format for time-stamps, Proc. of the 2002 ACM Workshop on XML security, 2002.
[30] N. Zang, Q. Shi Achieving non-repudiation of receipt, The Computer Jurnal, 1996.
[31] J. Zhou, R. Deng, F. Bao Evolution of fair non-repudiation with TTP, ACISP:
Information Security and Privacy: Australasian Conference, Vol. 1587 of LNCS,
Springer-Verlag, 1999
[32] J. Zhou, D. Gollmann Observations on Non-repudiation, Proc. of the International
Conference on the Theory and Applications of Cryptology and Information Security:
Advances in Cryptology, Korea, 1996.
Capitolul 3
Securitatea postei electronice
In mediile electronice de transmitere a informatiei, posta electronica ocupa o pozitie
centrala. Ea permite utilizatorilor sa comunice prin mesaje, folosind facilitatile oferite
de retelele de calculatoare existente. In general serviciul de e-mail este cea mai utilizata
aplicatie, dar n acelasi timp este si cea mai putin sigura.
Astfel, pentru a trimite sau primi un mesaj, Alice trebuie sa fie conectata la un
server de e-mail. Serverul stocheaza mesajul, dupa care l trimite spre alt server care
face acelasi lucru. In acest fel, e-mailurile pot traversa mai multe servere pana ajung la
destinatie, fiecare din acestea pastrand cate o copie a mesajului. Alice (sau Bob) nu poate
sterge mesajul din aceste servere intermediare; ele raman aici pana cand administratorul
severului decide acest lucru1 .
Un mod de a proteja mesajele este criptarea lor folosind diverse produse, cum ar fi
Privacy Enhanced Mail (P EM ), MIME Object Security Services (M OSS), X.400, P GP
sau S/M IM E. Ultimele doua vor fi prezentate n acest capitol. P GP este o specificatie,
iar S/M IM E este un protocol; ambele sunt compatibile cu serviciile Internet actuale.
3.1
Este un protocol2 creat de Phil Zimmenmann ([8]) n 1991 pentru posta electronica si
pentru aplicatii legate de stocarea fisierelor. In acest moment este cel mai utilizat sistem
de securitate oferit de serviciile de posta electronica. O parte din cauzele care au condus
la aceasta suprematie sunt:
1. Este accesibil free n versiuni care functioneaza pe o gama larga de platforme (inclusiv WINDOWS, UNIX, MacIntosh).
1
Unele companii s-au orientat spre aceasta posibila piata si dezvolta softuri capabile sa stearga emailurile stocate n serverele intermediare. Aceste servicii necesita nsa costuri suplimentare.
2
Numele Pretty Good Privacy a fost inspirat de numele unui magazin, Ralphs Pretty Good Grocery, aflat ntr-un oras imaginar, Lake Wobegon, dintr-un foileton radiofonic scris de Garrison Keillor.
3.1.1
Autentificare
De obicei semnaturile sunt atasate mesajului (sau fisierului) pe care-l semneaza. Sunt
posibile totusi si semnaturi detasate. Acestea sunt pastrate de expeditor pentru a fi
folosite n diverse scopuri. De exemplu, daca mai multe parti semneaza un contract,
fiecare semnatura este independenta si se aplica doar documentului initial (altfel ntrun lant de semnaturi dependente fiecare semnatura ar conduce la aparitia unui nou
mesaj, diferit de cel anterior).
Sau ca un alt exemplu semnatura unui program executabil poate detecta o posibila
virusare ulterioara.
3.1.2
Confidentialitate
ambele p
arti sa foloseasca o cheie de sesiune comun
a nu este util; fiecare mesaj este nsotit
de propria sa cheie, securizata printr-o criptare cu o cheie public
a.
Generarea unei chei de sesiune se realizeaz
a n modul urm
ator: Alice introduce o
parol
a, folosind tastatura sau mouse-ul. P GP foloseste parola si timpii de scriere la
tastatur
a (respectiv de miscare al mouse-ului) pentru a genera o cheie aleatoare care va fi
folosit
a de un sistem simetric de criptare.
Cele doua utilizari ale P GP (autenticitate si confidentialitate) pot fi asociate pentru
acelasi mesaj. In prima faza se genereaza o semnatura a textului clar, care se adauga
mesajului. Apoi perechea (text clar, semn
atur
a) este criptata folosind un sistem simetric
(CAST 128, IDEA sau 3DES), iar cheia de sesiune se cripteaza folosind un sistem cu
cheie publica (RSA sau ElGamal).
Principalele motive pentru care este preferata aceasta ordine (si nu invers: criptarea
mesajului, urmata de semnarea textului criptat) sunt:
1. In general este mai convenabil sa stocam semnatura unui text clar si nu a unui text
criptat (a carui cheie ar trebui retinuta de asemenea).
2. Daca se cere si verificarea de catre o terta parte, de obicei aceasta nu trebuie implicata n procesul de decriptare, ci doar n cel de verificare a semnaturii.
Deci, daca se cer ambele servicii P GP , Alice va semna ntai mesajul cu cheia sa secreta,
apoi l va cripta cu cheia de sesiune, iar pe aceasta o va cripta cu componenta publica a
cheii lui Bob.
3.1.3
Compresie
In general, P GP face o compresie a mesajului dupa semnarea lui, dar naintea criptarii.
Aceasta duce la o optimizare a spatiului folosit atat n mesajele e-mail cat si n stocarea
fisierelor.
Algoritmul de compresie folosit de P GP este ZIP , descris n Anexa 1.
Observatia 3.3. Semnatura este generat
a naintea compresiei deoarece:
1. Este preferabil sa semnam un mesaj necomprimat, deoarece pentru verific
ari va fi
caz contrar, sau se va p
oferit textul clar. In
astra n memorie doar o versiune
comprimata a mesajului, sau acesta va fi comprimat ori de c
ate ori se va solicita
verificarea semnaturii.
2. Chiar daca este usor de recomprimat mesajul ori de c
ate ori este necesar
a verificarea, apare o dificultate datorit
a faptului c
a ZIP este un algoritm nedeterminist:
diverse implementari duc la rate de compresie diferite si deci la forme diferite.
Aceste versiuni sunt totusi inter-operabile: orice versiune poate decompresa corect
3.1.4
Segmentare si reasamblare
3.1.5
P GP -ul foloseste patru tipuri de chei: chei de sesiune (simetrice, one-time), chei publice,
chei private si chei (simetrice) bazate pe parola.
Identificatori de chei
Cheia de sesiune este criptata cu cheia publica a lui Bob, astfel ncat numai acesta este
capabil sa recupereze cheia de sesiune si mai departe sa decripteze mesajul. Daca
fiecare parte implicata foloseste o singura pereche de chei publice/private, atunci Bob va
sti ce cheie sa foloseasca pentru a recupera cheia de sesiune: cheia sa privata (unica).
Daca nsa fiecare utilizator poate dispune de mai multe perechi de chei publice/private
problema nu mai este la fel de simpla.
O solutie ar fi transmiterea cheii publice odata cu mesajul. Bob ar putea verifica la
primire daca ntr-adevar cheia trimisa se regaseste printre cheile sale publice si n caz
afirmativ sa treaca la decriptarea mesajului.
Aceasta schema poate fi implementata usor, dar consuma foarte mult spatiu, deoarece o
cheie criptata cu RSA poate avea cateva sute de cifre.
A doua rezolvare consta n asocierea unui identificator fiecarei chei publice, care sa fie
unic pentru raporturile cu un anumit utilizator. In acest mod, o combinatie ntre ID-ul
utilizatorului si ID-ul cheii ar fi suficienta pentru a identifica n mod unic o cheie.
Aceasta solutie ridica, totusi o alta problema: ID-ul cheii trebuie alocat si stocat astfel
ncat atat Alice cat si Bob sa poata realiza transferul ntre ID-ul cheii si cheia publica.
Solutia adoptata de P GP consta n alocarea unui ID fiecarei chei publice care sa fie
cu o probabilitate mare unica n raport cu un anumit destinatar. ID-ul fiecarei chei
publice consta din cei mai putin semnificativi 64 biti ai acesteia. Astfel, ID-ul cheii publice
KPa este KPa (mod 264 ). Aceasta este o dimensiune suficienta pentru ca probabilitatea
existentei duplicatelor sa fie redusa.
Servere (Inele) de chei
Cheile trebuie sa fie stocate si organizate ntr-un mod care sa permita o utilizare efectiva
si sistematica de catre toate partile. P GP -ul furnizeaza o pereche de structuri de date
fiecarui utilizator: una pentru a stoca perechile de chei publice/private detinute de utilizatorul respectiv si una pentru a stoca perechile de chei publice corespunzatoare celorlaltor
utilizatori.
Aceste structuri de date sunt cunoscute sub numele de serverul de chei private si respectiv serverul de chei publice3 .
Timestamp
..
.
ID cheie
..
.
Cheie publica
..
.
Cheie privata
..
.
ID utilizator
..
.
Ti
..
.
P Ui (mod 264 )
..
.
P Ui
..
.
eh(Pi ) (P Ri )
..
.
Utilizator i
..
.
In tabelul de mai sus este prezentata structura serverului de chei private. Fiecare linie
reprezinta o pereche de chei publice/private detinute de un utilizator; ea este formata din:
3
1. Semnarea mesajului:
(a) P GP -ul alege cheia privata a lui Alice din serverul cheilor private,
folosind ID-ul ei de utilizator. Daca acest ID nu este dat ca parametru
al comenzii, se trimite prima cheie privata din server.
(b) P GP -ul cere lui Alice parola, pentru a recupera cheia privata necriptata.
(c) Este generata componenta mesajului care contine semnatura.
2. Criptarea mesajului:
(a) P GP -ul genereaza o cheie de sesiune si cripteaza mesajul.
(b) P GP -ul primeste cheia publica a lui Bob din serverul de chei publice,
folosind drept index ID-ul acestuia.
(c) Este generata componenta mesajului care contine cheia de sesiune.
10
1. Decriptarea mesajului:
(a) P GP -ul primeste cheia privata a lui Bob din serverul de chei private.
(b) P GP -ul cere lui Bob parola, pentru a recupera cheia privata necriptata.
(c) P GP -ul recupereaza cheia de sesiune si decripteaza mesajul.
2. Autentificarea mesajului:
(a) P GP -ul primeste cheia publica a lui Alice din serverl de chei publice,
folosind ca index ID-ul cheii din semnatura mesajului.
(b) P GP -ul recupereaza continutul necriptat al mesajului.
(c) P GP -ul cripteaza acest continut necriptat si-l compara cu mesajul primit.
Daca cele doua sunt identice, mesajul este autentic; n caz contrar,
mesajul initial a fost alterat de un posibil intrus.
3.1.6
3.2. OP EN P GP
11
Semnaturile detasate sunt calculate ntr-un fisier separat care nu contine nici
unul dintre campurile din antetul componentei mesaj.
3. Cei mai semnificativi octeti ai amprentei mesajului: acestia l ajuta pe Bob sa
determine daca s-a folosit cheia publica corecta pentru decriptarea amprentei.
4. ID-ul cheii publice a lui Alice: serveste la identificarea cheii publice care ar
trebui folosita pentru a decripta amprenta; identifica de asemenea si cheia
privata utilizata pentru criptarea amprentei.
Pachetelor mesaj si semnatura li se poate aplica o compresie folosind ZIP si pot fi
criptate cu ajutorul unei chei de sesiune.
Un pachet cheie de sesiune. Pachetele cheie de sesiune includ cheia de sesiune si
identificatorul cheii publice a lui Bob care a fost utilizata de Alice pentru a cripta
cheia de sesiune.
In interiorul pachetului principal se afla un pachet cu cheia publica de sesiune criptata. Pachetele de date (criptate identic) sunt precedate de un pachet ce contine
cheia publica de sesiune criptata pentru fiecare cheie utilizata n criptarea mesajului. Mesajul este criptat cu cheia de sesiune, care este la randul ei criptata si stocata
n pachetul cheii de sesiune.
Corpul pachetului cheii de sesiune este alcatuit din:
1. Un octet reprezentand cifra 3.
2. 8 octeti ai ID-ului cheii publice cu care este criptata cheia de sesiune.
3. 8 octeti care indica algoritmul folosit pentru cheia publica.
4. Un sir de octeti reprezentand cheia publica criptata. Continutul acestui sir
este dependent de algoritmul utilizat pentru cheia publica:
- pentru RSA: un M P I (ntreg n precizie multipla reprezentand valoarea
criptata a lui me (mod n);
- pentru ElGamal: doua M P I unul pentru valoarea g k (mod p) si altul
pentru m y k (mod p).
Daca se foloseste compresia, atunci criptarea se aplica dupa compresia pachetului
format din pachetul mesaj si pachetul semnatura.
3.2
OpenP GP
Una din problemele pe care P GP (prin compania PGP Inc.) a trebuit sa le rezolve a
fost aceea de a combina caracterul de produs free cu posibilitatea de a utiliza cele mai
bune sisteme de criptare, functii de dispersie si de compresie. Cum algoritmi ca RSA sau
12
ElGamal nu pot fi utilizati fara licenta, iar standardul intern al companiei mentioneaza
explicit: nu se va folosi nici un algoritm cu dificultati de licenta, au aparut mai multe
idei:
Deoarece criptarea este una din componentele de baza din P GP , ar fi bine sa se
scrie propriul soft de securitate, care sa fie inclus n produs.
Sa se construiasca o varianta sub forma unui standard de tip open.
In final, Zimmermann a font convins de avantajele celei de a doua variante si n iulie 1997,
PGP Inc. a propus IET F (Internet Engineering Task Force societatea care dezvolta
si promoveaza standardele Internet) un standard nou numit OpenP GP . IET F obtine
dreptul de a folosi numele OpenP GP pentru a descrie acest standard si protocoalelele
suportate de acesta.
OpenP GP este o varianta legalizata a P GP si se dezvolta permanent. Specificatia
actuala este RF C 4880 (aparuta n noiembrie 2007).
Exista si variante de OpenP GP dezvoltate de diverse societati. Cea mai cunoscuta
n acest moment este GNU Privacy Guard (GnuP G sau GP G) propusa de Free Software
Foundation.
GnuP G este free mpruna cu codul sursa, sub licenta GP L (GN U General Public License).
3.3
Comentarii finale
3.4. M IM E
13
3.4
M IM E
M IM E (Multipurpose Internet Mail Extension) ([2]) este un standard care are ca scop
redefinirea formatelor mesajelor e-mail, permitand:
Folosirea n mesaje de caractere dinafara setului ASCII;
Un set extins de formate pentru mesaje (nafara modului text);
Mesaje compuse (Multipart message bodies);
Headere cu informatii care folosesc caractere dinafara setului ASCII.
S/M IM E (Secure MIME) este o suplimentare (bazata pe tehnologia RSA Data Security)
a securitatii formatului standard M IM E destinat cresterii securitatii mesajelor postei
electronice. In general specificattia4 S/M IM E este utilizata n standardul pentru uzul
comercial si institutional, pe cand P GP este folosit pentru utilizatorii obisnuiti ai emailului.
Standardul M IM E a aparut ca urmare a necesitatii transmiterii prin intermediul
postei electronice de imagini, nregistrari video sau mesaje text scrise n alte limbi
decat cea engleza. Inaintea acestuia, transferul informatiilor multimedia ntre parteneri
putea fi realizat doar n anumite circumstante, cu programe de translatare speciale, efort
si costuri, iar cea mai mare parte a traficului postei electronice era limitat la folosirea
caracterelor ASCII. Mai mult, fiecare client de mail avea posibilitatea de a trimite si de a
receptiona imagini, dar nu ntr-un format recognoscibil de catre celelalte sisteme. M IM E
extinde posta electronica la caractere U N ICODE ntr-o maniera simpla, compatibila cu
versiunile anterioare si totodata deschisa posibilitatii de extindere n continuare ([2]).
La scurt timp de la aparitie, formatul M IM E si-a gasit aplicatii si nafara domeniului
postei electronice. Cand fondatorii World Wide Web au creat functionalitatea hypertext,
s-a considerat usor de ntrebuintat framework-ul M IM E pentru definirea noului tip de
date hypertext si pentru specificarea scripturilor HT M L. In momentul n care s-a trecut
la definirea regulilor pentru HT M L, ncorporarea imaginilor n paginile web a devenit
o simpla formalitate, deoarece pentru M IM E se realizase deja definirea centralizata a
formatelor tipurilor de imagini.
4
14
3.4.1
Formatul RF C 822
Este formatul standard pentru mesajele text trimise prin posta electronica. In contextul
RF C 822 mesajele sunt privite similar scrisorilor obisnuite: un text pus ntr-un plic.
Plicul contine informatia necesara pentru realizarea unei transmisii si receptonari corecte.
Continutul este obiectul care va fi livrat destinatarului. Standardul RF C 822 se aplica
doar continutului.
Continutul include o multime de campuri de antet care vor fi utilizate de sistem pentru
crearea plicului, iar standardul este astfel creat ncat sa faciliteze accesarea automata a
acestor informatii de catre diverse programe. Standardul RF C a fost descris pentru prima
oara n 1982 de catre Davin Crocker n Standard for the Format of ARPA Internet Text
Messages.
Un mesaj n format RF C 822 are doua parti: un antet (header) utilizat de agentul
care asigura serviciul de e-mail, si un text ASCII (corp).
O linie de antet are forma:
< cuvant cheie >:< atribute >
Formatul permite ca o linie mai mare sa fie scrisa pe mai multe linii. Cele mai utilizate
cuvinte cheie sunt: From, To, Subject si Date.
In functie de mesaj, pot apare si alte linii de antet, cum ar fi CC, List Info etc.
Exemplul 3.3.
From: Cipher Editor < cipher editor@ieee security.org >
Subject: [Cipher Newsletter] Electronic CIPHER, Issue 60, May 18, 2004
Date: Tue, 18 May 2004 13:20:49 -0600
To: < cipher@mailman.xmission.com >
CC: < adrian@galaxyng.com >
List Info: subscriptions for the IEEE online newsletter, Cipher
Show details...
Alt camp care apare frecvent n antetele formatului RF C 822 este Message ID.
Aceasta linie contine un identificator unic asociat mesajului.
3.4.2
Structura formatului M IM E
SM T P
SM T P (Simple Mail Transfer Protocol) este unul din primele protocoale (apare la nceputul
anilor 80) folosite pentru transmiterea mesajelor n format electronic pe Internet. Avantajul sau comparativ cu alte protocoale contemporane (de exemplu U U CP ) era
3.4. M IM E
15
robustetea sa n cazul cand partenerii de dialog erau legati la retea tot timpul. Dupa
2001 existau cel putin 50 implementari SM T P (atat servere cat si clienti), cele mai cunoscute fiind Postfix, qmail, Novell GroupWise, Exim, Novell NetMail si Microsoft Exchange
Server.
In SM T P , comunicarea ntre client si server se realizeaza numai n format ASCII
pe 7 biti, numit N V T (Network Virtual Terminal). Cel mai raspandit format N V T este
N V T ASCII. Acesta opereaza cu un set de caractere pe 8 biti, n care cei mai putin
semnificativi 7 biti sunt identici cu cei din ASCII, iar bitul cel mai semnificativ este 0.
Protocolul de comunicare ntre Alice si server se desfasoara astfel:
1. Initial Alice lanseaza protocolul de conexiune cu serverul si asteapta ca acesta sa-i
raspunda cu mesajul 220 Service Ready.
2. Dupa primirea mesajului cu codul 220, Alice trimite comanda HELO prin care se
identifica.
3. Odata ce comunicarea a fost stabilita, Alice poate trimite unul sau mai multe
mesaje, poate ncheia conexiunea sau poate folosi diverse servicii (de exemplu verificarea adreselor de e-mail).
Serverul trebuie sa raspunda dupa fiecare comanda, indicand daca aceasta a fost
acceptata, daca se asteapta si alte comenzi sau daca exista erori de scriere.
4. Pentru a trimite un mesaj se foloseste ntai comanda M AIL prin care se specifica
adresa lui Alice. Daca aceasta comanda este corecta serverul va raspunde cu 250
OK.
5. Alice trimite apoi o serie de comenzi RCP T prin care specifica destinatarii mesajului. Serverul va raspunde cu 550 No such user here, sau 250 OK, n functie de
corectitudinea comenzii primite.
6. Dupa ce destinatarii sunt identificati, Alice trimite comanda DAT A, prin care
anunta serverul ca va ncepe sa scrie continutul mesajului.
Serverul poate raspunde cu mesajul 503 Command out of sequence sau 554 No
valid recipients daca nu a primit comenzile M AIL sau RCP T sau aceste comenzi
nu au fost acceptate.
Daca serverul raspunde cu 354 Start mail input, Alice poate introduce textul mesajului.
7. Sfarsitul comunicarii este marcat cu < CR >< LF > . < CR >< LF >.
Rezumand, un server SM T P trebuie sa cunoasca cel putin urmatoarele comenzi:
16
Trecerea de la SM T P la M IM E
M IM E este o extensie a formatului RF C 822, construit cu scopul de a elimina o serie
de restrictii ale protocolului SM T P . Astfel:
1. SM T P nu poate transmite fisiere executabile sau alte obiecte binare.
Desi exista diverse scheme de conversie a fisierelor binare n fisiere text care sunt
folosite de SM T P , niciunul din ele nu este standard (nici macar de facto).
2. SM T P nu poate transmite texte care contin caractere specifice diverselor limbi
(reprezentate prin coduri pe cel putin 8 biti) deoarece este limitat la ASCII pe 7
biti.
3. Serverele SM T P accepta doar mesaje limitate ca marime.
4. Unele implementari SM T P nu sunt pe deplin conforme chiar si cu standardele
SM T P definite n RF C 822. Cele mai frecvente probleme aparute se refera la:
Stergerea, adaugarea sau reordonarea comenzilor < CR > (Carriage Return)si
< LF > (Line Feed).
Trunchierea sau stergerea liniilor mai lungi de 76 caractere;
Eliminarea spatiilor albe (T ab-ul sau caracterul spatiu);
Aranjarea liniilor din mesaj la o lungime standard;
Conversia caracterului T ab ntr-un multiplu de caractere spatiu.
In figura de mai jos sunt reprezentate o serie de functii care permit transformarea caracterelor nonASCII n caractere ASCII si invers.
Specificatiile sunt cuprinse n standardele RF C 2045, . . . RF C 2049.
3.4. M IM E
17
#
-
7-bit
NVT ASCII
Date
non-ASCII
Server SM T P
M IM E
Bob
"!
6
7-bit
NVT ASCII
7-bit
NVT ASCII
Date
non-ASCII
Alice
M IM E
Client SM T P
18
Tip
Text
Multipart
Message
Image
Video
Audio
Application
Descriere
Un text neformatat (de exemplu ASCII)
Ofera o flexibilitate sporita a formatului.
Diferitele componente ale mesajului sunt independente
dar sunt transmise mpreuna. Ele sunt prezentate
destinatarului n ordinea n care apar n mesaj.
Parallel
Difera de Mixed prin faptul ca ordinea componentelor
n mesaj este aleatoare.
Alternative
Componentele sunt versiuni alternative pentru aceeasi
informatie. Ele sunt ordonate crescator dupa similitudinea cu originalul, iar sistemul de mail al destinatarului va lista varianta cea mai buna.
Digest
Difera de Mixed prin faptul ca tipul principal al fiecarei
parti este message/rf c822.
rfc822
Corpul este un mesaj conform cu RF C 822.
Partial
Permite fragmentarea unui mesaj mare ntr-un mod
accesibil sistemului de mail al destinatarului
External-body Contine un pointer la un obiect care exista n alta
parte.
jpeg
Imaginea este n format JP EG, codificata JF IF .
gif
Imaginea este n format GIF .
mpeg
Format M P EG.
Basic
Se foloseste un canal ISDN pe 8 biti, codificat la o
rata standard de 8 kHz.
PostScript
Postscript Adobe
octet-stream
Date reprezentate n binar pe 8 biti.
Sunt sapte tipuri generale de date si 15 subtipuri (care specifica un anumit format pentru
tipul de date respectiv).
3.4. M IM E
19
7bit
8bit
binary
3.4.3
Securitatea M IM E bazat
a pe OP EN P GP
20
3.5. S/M IM E
21
3.4.4
Controverse legate de M IM E
3.5
3.5.1
S/M IM E
Comparatii cu P GP si OpenP GP
S/M IM E are o utilizare limitata doar la posta electronica, n timp ce P GP -ul are si alte
aplicatii cum ar fi n V P N (Virtual Private Network), criptarea volumelor hard-disk-ului,
arhivarea si criptarea fisierelor, batch processing etc.
Lungimea cheilor are o importanta deosebita pentru P GP si S/M IM E; din acest
punct de vedere securitatea oferita de S/M IM E este mult mai scazuta: chei de pana la
22
1024 biti n timp ce specificatia AN SI recomanda chei de minim 1024 biti pentru RSA
si Diffie-Hellman (DH).
Una din specificatiile S/M IM E ([3]), descrie o facilitate numita P oP (Proof of Possesion of Private Key) care permite transmiterea si stocarea cheilor private de catre autoritatea de certificare, n momentul n care utilizatorul solicita un certificat (a se vedea
capitolul dedicat P KI). P GP -ul nu are o astfel de problema de securitate legata de recuperarea cheilor, dar are un mecanism care a starnit multe controverse, numit Additional
Key Recovery (ADK). Aceasta facilitate nu este inclusa nsa n specificatia OpenP GP .
Se pot construi versiuni ale protocolului S/M IM E care sunt exemple clare ale notiunii
de cleptografie7 prin care se implementeaza rutine de generare a cheilor DH sau RSA
care produc chei aparent normale dar care contin o trapa secreta prin care un tert poate
recupera cheia privata. Acest proces reprezinta o extindere interesanta a conceptului de
canale subliminale. Astfel de canale nu pot exista nsa n cazul P GP -ului: orice inspectare
a codului sursa ar depista rapid orice problema de acest tip.
Utilizatorii S/M IM E dinafara SUA trebuie sa utilizeze chei simetrice RC2/40 cu o
lungime de 40 biti si chei publice mai mici de 582 biti.
Deci, din perspectiva securitatii P GP -ul poate fi considerat de departe mai sigur decat
S/M IM E, cel putin din doua motive:
S/M IM E este limitat la chei publice de 1024 biti; P GP -ul poate utiliza chei pana
la 4096 biti.
Specificatia P GP -ului este publica, fiind asadar supusa unei permanente revizuiri
de catre toti specialistii, n timp ce utilizatorii S/M IM E pot doar sa aiba ncredere
n eficienta implementarii.
3.5.2
Din acest punct de vedere, S/M IM E si P GP seamana foarte mult. Amandoua ofera
posibilitatea de a semna si/sau cripta mesaje.
Sa detaliem aceste functii pentru S/M IM E:
Poate cripta orice tip de continut si orice cheie de criptare, pentru unul sau mai
multi destinatari (enveloped data).
Poate semna date (signed data). O semnatura digitala este generata folosind amprenta corpului mesajului care va fi criptat cu cheia secreta a expeditorului. Perechea
formata din corpul mesajului si semnatura sunt apoi codificate cu base64.
Aceasta functie poate fi prelucrata numai daca destinatarul este dotat cu facilitati
S/M IM E.
7
Cleptografia reprezint
a studiul sustragerii de informatii n mod securizat si subliminal, constituind o
extensie natural
a a teoriei canalelor subliminale.
3.5. S/M IM E
23
3.5.3
24
accepta numai texte criptate cu sisteme slabe, Alice trebuie sa decida daca poate trimite
mesajul folosind o criptare slaba. Pentru aceasta, toti partenerii trebuie sa anunte n
prealabil capacitatile solicitate pentru decriptarea mesajelor pe care le trimit, n ordinea
descrescatoare a preferintelor.
Fiecare destinatar poate stoca aceste informatii pentru a le folosi ulterior.
Pentru a trimite un mesaj, Alice trebuie sa verifice urmatoarele variante (n ordine):
1. Daca ea are o lista de capacitati de decriptare ale lui Bob, va alege primul sistem
de criptare pe care este capabila sa-l foloseasca.
2. Daca nu are lista lui Bob, dar detine cel putin un mesaj de la el, atunci mesajul
trimis de Alice va folosi acelasi algoritm de criptare folosit n mesajele respective.
3. Daca nu detine nici o informatie despre capacitatile de decriptare ale lui Bob, dar
este dispusa sa riste ca mesajul sa nu poata fi citit, va trimite un mesaj criptat cu
3DES.
4. Daca nu detine nici o informatie despre capacitatile de decriptare ale lui Bob, si nu
vrea sa riste ca mesajul sa nu poata fi citit de acesta, atunci Alice va trimite un
mesaj criptat cu RC2/40.
In plus, mesajele trimise prin posta electronica (n special pentru S/M IM E) beneficiaza si de o serie de protectii P KI (certificari, semnaturi ale unei autoritati centrale etc)
recomandate de laboratoarele RSA.
3.5.4
3.5. S/M IM E
25
Semnatura exterioara asigura autenticitatea si integritatea informatiei procesate saltcu-salt8 , fiecare salt reprezentand o entitate intermediara un agent de mail de exemplu.
Semnatura exterioara asociaza atribute corpului criptat. Aceste atribute pot fi folosite
pentru controlul accesului si luarea deciziilor de rutare.
26
3.6
P EM
3.7
Iesire
B1
27
?
B2
Surs
a
3.8
Informatiile transferate prin comunicatiile digitale sunt secvente de biti, fara nici o formatare. Algoritmii de receptie formateaza bitii n blocuri de 64, 32 sau 8 biti.
Deoarece sistemele de e-mail permit transmiterea si receptia doar a codurilor ASCII
pe 8 biti, protocoalele de e-mail convertesc textul criptat alocand fiecarui grup de 6
biti, un caracter ASCII printabil. Algoritmul de codificare folosit de ambele protocoale
(P GP, S/M IM E) este numit radix 64 ([1]).
Principalele sale caracteristici sunt:
Domeniul de definitie este format din multimea caracterelor reprezentabile binar
(atentie ! nu o anumita codificare binara, ci orice caracter reprezentabil n binar).
Multimea valorilor este formata din 65 caractere printabile: unul este pentru legatura (pad), iar celelalte 26 = 64 sunt reprezentate pe 6 biti.
Nu exista caractere de control; deci un mesaj codificat n radix 64 va trece fara
probleme prin sisteme de posta care scaneaza secventele pentru depistarea caracterelor de control.
Caracterul (cu semnificatie n multe sisteme, inclusiv RF C 822) nu este folosit;
deci el trebuie eliminat anterior.
Codificarea celor 64 caractere din sistemul radix 64 este data de tabelul urmator. Sunt
folosite cele 52 litere (mari si mici), cele zece cifre si caracterele +, /.
28
Cod
Caracter
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Valoare
6-biti
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Cod
Caracter
Q
R
S
T
U
V
W
X
Y
Z
a
b
c
d
e
f
Valoare
6-biti
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Cod
Caracter
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
Valoare
6-biti
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
pad
Cod
Caracter
w
x
y
z
0
1
2
3
4
5
6
7
8
9
+
/
=
Procedura de codificare este simpla: fiecare secventa de 3 octeti (24 cifre binare) este
mpartita n patru secvente de 6 biti fiecare. Apoi fiecare grup de 6 biti este codificat prin
caracterul din tabel.
Deci o intrare de 24 biti este expandata la iesire pe 32 biti.
Exemplul 3.5. Fie secventa de 24 biti
00100011 01011100 10010001
(235C91 n hexazecimal). Aranjata n grupuri de c
ate 6 biti, ea este
001000 110101 110010 010001.
Valorile zecimale ale acestor patru secvente binare sunt 8, 53, 50 si 17.
Folosind acum tabela radix 64 se obtine I1yR.
Trecut
a n format ASCII (8 biti, cu 0 pe bitul de paritate), avem
01001001 00110001 01111001 01010010
Sau n hexazecimal 49317952.
Altfel spus, codificarea radix 64 transform
a 235C91 n 49317952.
3.9
Exercitii
3.9. EXERCIT
II
In modul CBC :
In modul CF B :
29
Ci = eK (Ci1 Pi ),
Pi = Ci1 dK (Ci )
Ci = eK (Ci1 ) Pi ,
Pi = Ci eK (Ci1 )
Ambele moduri ofera acelasi grad de securitate. Sugerati un motiv pentru care
P GP prefera folosirea modului CF B.
2. Comprimati folosind codul LZ77 textul
A fost odata ca-n povesti, A fost ca niciodat
a.
3. Formalizati n pseudocod algoritmul LZ77. Scrieti un program pentru implementarea lui.
4. Scrieti programe pentru codificarea si decodificarea mesajelor folosind radix 64.
30
Bibliografie
[1] D. Atkins, W. Stallings, P. Zimmermann P GP mesage exchange formats (RFC
1001), http://www.ietf.org/rfc/rfc1991.txt?number=1991
[2] N. S. Borenstein MIME: A Portable and Robust Multimedia Format for Internet
Mail, Springer-Verlag, 1993.
[3] M. Myers, X. Liu, B. Fox, H. Prafullchandra, J. Weinstein Certificate Request Syntax,
(1997) http://tools.ietf.org/html/draft-ietf-smime-crs-00
[4] M. Mogollon Cryptography and Security Services: Mechanisms and Applications,
Cybertech Publishing, 2007.
[5] M. Y. Rhee Internet Security - Cryptographic Principles, Algorithms and Protocols,
Wiley Interscience, 2003.
[6] B. Schneier Applied Cryptography, ed. II-a, Wiley Interscience, 1996
[7] W. Stallings Cryptography and Network Security: Principles and Practice, Prentice
Hall, Second Editoon, 1999.
[8] P. Zimmermann An introduction to Cryptography, Network Associates, 2(2003)
http://www.pgpi.org/doc/guide/6.5/en/intro/
31
Capitolul 4
Smart Carduri
4.1
Prezentare general
a
4.1.1
Istoric
4.1.2
Clasific
ari
octeti) sub forma unei benzi magnetice si sunt destinate unei singure aplicatii. Cele
mai cunoscute sunt cartelele telefonice.
Carduri cu procesor (smartcarduri):
Contin un mini-procesor, ceeea ce le da posibitatea de a rula mai multe aplicatii
prezente pe acelasi card. Avantajul unui smartcard fata de un card magnetic este
acela ca poate sa proceseze datele din memorie.
Ca o comparatie ntre aceste doua tipuri, cardurile cu banda magnetica nu au capacitati de procesare, sunt semnificativ mai nesigure decat smartcard-urile dar costa
mai putin. In schimb, cititoarele de cartele magnetice sunt mult mai scumpe decat
terminalele pentru smartcard-uri, fiind si mai putin sigure.
Carduri hibride:
Sunt o combinatie ntre celelalte doua tipuri.
Din 1982, bancile franceze au folosit carduri cu chip si banda magnetica pentru
operatii de credit, care permit bancilor sa migreze catre smartcard-uri. S-au obtinut
astfel avantajele unor cartele mai sigure, rezervand n acelasi timp o perioada rezonabila modernizarii infrastructurii bazate pe cartele magnetice.
n prezent exista carduri hibride care contin simultan micro-cip, banda magnetica,
cod de bare, memorie optica, poza si tabela de semnatura.
Din punct de vedere al modului de legatura cu exteriorul, smartcardurile se mpart n:
Cardurile cu contacte.
Transferul de date se face prin intermediul unui cititor de card, cu care se stabileste
un contact direct.
Cardurile fara contacte contin pe langa un cip cu micro-procesor un dispozitiv
de emisie-receptie radio cu antena. Pot functiona numai la distante foarte mici de
cititorul de carduri.
Aceste carduri sunt de obicei mai costisitoare si sunt dedicate unor aplicatii specifice
cum ar fi pentru transporturi sau pentru accesul n cladiri.
Cipul nglobat ntr-un smartcard este un microprocesor (M CU ). Deci un M CU este
un sistem de calcul miniatural integrat pe o singura piesa de silicon. Resursele sale sunt
separate complet de interfetele cu utilizatorul sau alt sistem de calcul; lipsesc componente
I/O cum ar fi tastatura, monitor, discuri, drivere etc.
Cipul de pe un smartcard este un M CU securizat: deoarece lucreaza doar sub controlul software-ul din ROM, programele sale nu sunt accesibile sub nici o forma unui
utilizator extern. Prin constructia sa, un M CU securizat este capabil sa previna accesul neautorizat la CP U (unitatea centrala de prelucrare), memorie, magistrale sau date
stocate/prelucrate n interior.
4.2
4.2.1
Un card are o forma dreptunghiulara, ale carei dimensiuni sunt stabilite de standardul
ISO/IEC 7816: 85.60 53.98 mm, iar grosimea este 0.76 mm1 . De exemplu:
Oricare ar fi cip-ul inserat, el este pozitionat conform standardului de mai sus, astfel:
Pentru cardurile f
ar
a contacte exist
a un alt standard: ISO 14443.
Detaliind, cele opt zone de contact ale unui cip sunt aranjate:
C5
GND
Inpamantare
C6
VPP
Legatura pentru voltaj extern
C7
I/O
Legatura seriala input/output
C8
RFU
Rezervata pentru utilizare ulterioara
Contactul V P P este o reminiscenta; a fost utilizat pentru a suplimenta voltajul la
EEP ROM n operatiile de programare si stergere. Din ratiuni de securitate, n prezent
se face apel la el extrem de rar.
Contactul V CC asigura un voltaj standard de 5 volti 10%, dar se prevede construirea
unei tehnologii operationale la un standard de 3 volti. Motivul este asigurarea unei
compatibilitati ntre piata smartcardurilor si cea a telefoniei mobile. Un telefon mobil
lucreaza pe o configuratie de 3 volti, iar cardurile au ramas singura componenta care
solicita telefonului mobil sa aiba un convertor de ncarcare.
4.2.2
Sistemul de calcul dintr-un smartcard este format dintr-un singur circuit integrat, care
include unitatea centrala de procesare (CP U ), memoria si liniile de Intrare/Iesire (I/O).
5
ROM
RST
CLK
I/O
V CC
4.2.3
Control
I/O
CP U
NV M
Memorie non-volatila
RAM
Memorie volatila
Memoria
4.2.4
Unitatea central
a de procesare (CP U )
rata de 400.000 de instructiuni pe secunda (400 KIP), desi viteze de pana la 1 milion de
instructiuni pe secunda (1 MIP) devin disponibile la cipurile de ultima generatie.
Evolutia smartcard-urilor este extrem de rapida. Astfel, dimensiunea memoriei creste
iar arhitecturile procesoarelor se muta de pe configuratii pe 8 biti, pe unele de 16 sau
chiar 32 biti.
4.2.5
Iesirile/intr
arile unui smartcard
Canalul de intrare/iesire al unui smartcard este unul serial uni-directional. Hardwareul smartcardului poate suporta transfer de date de pana la 115.200 biti/secunda, dar
cititoarele de carduri comunica de obicei la viteze mult mai mici.
Comunicarea dintre terminal si card se bazeaza pe o relatie master (terminal) - slave
(smartcard): terminalul trimite comenzi catre card si asteapta raspunsul. Smartcard-ul
nu trimite niciodata date catre terminal decat sub forma unui raspuns la o comanda
data de terminal.
4.3
4.3.1
Cea mai mare parte a softului pentru smartcarduri consta n programele scrise pentru
terminale. Aceste programe acceseaza smartcard-urile existente integrandu-le n sisteme
mai mari. Software-ul gazda include de obicei:
aplicatii pentru utilizatori,
card. El este constient doar de continutul unui anume smartcard si de entitati (precum
oamenii, computerele, terminalele, consolele de jocuri etc.) care ncearca sa-l acceseze.
Software-ul gazda conecteaza smartcard-urile si posesorii lor la sisteme mai mari. De
exemplu, software-ul dintr-un bancomat foloseste smartcard-urile introduse de clientii
bancii pentru a-i identifica si a-i conecta la conturile bancare pe care le detin.
Software-ul gazda este compatibil cu multe smartcard-uri si si va adapta raspunsul n
functie de smartcard-ul prezent.
Spre deosebire de software-ul obisnuit, care depinde de suportul serviciilor din contextul care-l nconjoara, software-ul de card porneste de la premiza ca se afla ntr-un context
ostil, n care nu poate avea ncredere.
Pana cand nu li se prezinta o dovada convingatoare a contrariului, smartcard-urile nu
au ncredere n terminalele unde sunt introduse, si reciproc: terminalele nu au ncredere
n cardurile prezente. Un program de smartcard are ncredere numai n el nsusi. Orice se
afla nafara programului trebuie sa se autentifice nainte ca programul sa interactioneze
cu el.
4.4
Cardul trebuie sa fie sigur ca operatiile sunt efectuate de proprietarul de card, sau ca
anumite comenzi primite au fost formulate de emitatorul de card. O serie de mecanisme
si tehnici de la P IN sau M AC pana la scheme sofisticate de semnatura electronica
sunt utilizate de card pentru a controla aceste lucruri.
Aceste mecanisme sunt bazate atat pe tehnici criptografice cat folosind si tehnici empirice.
Cardul poate reactiona la unele tipuri de ncercari de frauda. De exemplu, trei P IN uri gresite vor duce la blocarea cardului
Cresterea dimensiunii memoriei si a vitezei de calcul asociate cu proceduri sofisticate de
securitate fac posibila elaborarea unui set sporit de mecanisme care sa asigure securitatea
logica2 a smartcardului.
Exemplul 4.1. Smartcardurile emise de unele unit
ati bancare au memoria nonvolatila
segmentat
a (fizic) n mai multe zone:
- O zon
a deschisa, accesibila fara restrictii;
- O zon
a protejata unde citirea este liber
a, dar pentru scriere este necesar
a cunoasterea
unei parole;
- O zon
a confidentiala, unde accesul la citire este permis doar cu parol
a;
- O zon
a secreta care contine P IN -uri, parole si chei criptografice.
Cardurile actuale au memoria nonvolatila organizata diferit la nivel logic fata de nivelul
fizic. In acest fel, zonele sunt mult mai putin vizibile: locatia fizica exacta a unui fisier n
N V M poate diferi pe diverse carduri si deci este mult mai greu de depistat.
4.5
10
Mentinerea fiabilitatii, n special n cazul consistentei datelor, secventelor de ntrerupere si revenirea dupa o eroare.
Dupa cum s-a precizat, relatia de baza dintre terminal si smartcard este de tip master slave: terminalul trimite o comanda smartcard-ului, acesta o executa, ntoarce rezultatul
catre terminal si apoi asteapta alta comanda.
In plus, standardele referitoare la smartcarduri (ISO 7816 si CEN 726) descriu o gama
larga de comenzi pe care smartcardurile le pot implementa. Majoritatea fabricantilor de
smartcard-uri ofera produse cu sisteme de operare ce implementeaza aceste comenzi standard (sau o parte din ele) mpreuna cu extensii si mbunatatiri specifice producatorului.
4.5.1
11
Fisier
radacina
Fisier
elementar
Fisier
dedicat
Fisier
elementar
Fisier
dedicat
Fisier
elementar
Fisier
dedicat
Fisier
elementar
Fisier
elementar
4.5.2
Protocolul de baza n stabilirea unei linii de comunicatie ntre smartcard si terminal este
pachetul Application Protocol Data Units (AP DU ).
Un AP DU poate fi considerat un pachet de date care contine o cerere completa sau
un raspuns complet dat de un smartcard.
ISO 7816 4 defineste doua tipuri de APDU - uri:
12
P 1 P 2 Lc
Date optionale
Le
unde:
1. CLA: Identifica clasa instructiunii; de exemplu, instructiunea poate fi standard
ori particulara.
2. IN S: Octet care determina comanda respectiva.
3. P 1, P 2: Doi octeti folositi pentru a transfera parametri specifici comenzii.
4. Lc: Octet care codifica lungimea datelor optionale transmise card-ului cu acest
AP DU .
5. Date optionale: sirul de octeti cu lungimea Lc care poate contine datele
propriu-zise ce vor fi procesate de card.
6. Le: Octet care specifica lungimea datelor ce se asteapta a fi returnate de catre
AP DU -ul de raspuns urmator.
Daca Le = 0x00, gazda se asteapta ca toate datele disponibile sa fie trimise n
raspunsul la comanda.
De r
aspuns: trimise napoi de smartcard, ca reactie la comenzi.
Formatul AP DU -urilor de raspuns este:
Date optionale
SW 1 SW 2
unde:
1. Date optionale: un sir de Le octeti daca acest AP DU este raspunsul unui
AP DU comanda ce avea octetul Le setat pe o valoare nenula.
Altfel numarul octetilor este variabil.
2. SW 1, SW 2: Doi octeti de stare, care contin informatii de stare definite conform ISO 7816-4.
Aplicatia software foloseste un protocol bazat pe AP DU -uri pentru schimbul de control si informatie ntre card si cititorul de carduri. Aceste AP DU -uri sunt schimbate
folosindu-se protocoalele la nivel de conexiune T = 0 si T = 1. Protocolul T = 0 este
orientat pe octeti, iar T = 1 este orientat pe blocuri de octeti. Mai exista si alte protocoale alternative pentru smartcardurile fara contacte (bazate pe tehnologia JavaCard)
cum ar fi T = U SB sau T = RF .
O componenta software de pe card interpreteaza aceste AP DU -uri si executa operatiile
specificate; aceasta arhitectura este ilustrata mai jos:
I IMPLICATE IN CONSTRUCT
4.6. ENTITAT
IA/UTILIZAREA UNUI SMARTCARD13
Aplicatie
Functii specifice
Raspuns
AP DU
Comanda
AP DU
Terminal
Raspuns
(Protocolul T = 0 sau T = 1)
4.6
Card
6
K
?
U
'$
/
Procesor
de
AP DU
Raspuns &%
Entit
ati implicate n constructia/utilizarea unui
smartcard
Exista mai multe entitati implicate potential ntr-un sistem bazat pe smartcard.
1. Proprietarul cardului este persoana care poseda cardul n mod uzual; acesta
decide daca si cand sa-l foloseasca.
Proprietarul poate controla datele de pe card oferite de sistem, dar extrem de rar
are si controlul protocoalelor, softului sau hardului ncorporate n card.
2. Proprietarul datelor este componenta care detine controlul datelor aflate pe card.
In anumite cazuri, el coincide cu proprietarul cardului.
Pentru cardurile de plati, proprietarul datelor este cel emite platile cash; aceasta
diferentiere ntre cele doua componente deschide anumite oportunitati de atac.
3. Terminalul este componenta care asigura interactiunea smartcardului cu exteriorul.
Terminalul controleaza toate intrarile si iesirile spre si dinspre smartcard: tastatura
prin care datele sunt ncorporate n smartcard si monitorul pe care este vizualizat
smartcardul.
La un card telefonic, aceasta componenta este chiar aparatul telefonic. Pentru un
card de plati, terminalul este ATM-ul la care este facuta conexiunea.
4. Emit
atorul de card este componenta care emite smartcardul.
El controleaza sistemul de operare al smartcardului, precum si datele stocate initial.
Exemple: pentru un card telefonic, aceasta componenta este compania de telefoane.
Pentru un card de serviciu, emitatorul este institutia la care este angajat proprietarul
cardului.
In anumite cazuri, emitatorul doar emite cardul, dupa care dispare din sistem;
alteori, el ramane implicat n functionarea cardului.
In unele carduri multifunctionale, emitatorul de card nu are nici o legatura cu
aplicatiile care ruleaza pe smartcard; n altele, el are controlul tuturor aplicatiilor.
14
4.7
Sa trecem n revista cateva din cele mai utilizate sisteme de smartcard, privite din punct
de vedere al controlului efectuat de componentele sale.
Cardul de pl
ati (Digital Stored Value Card): Este un card folosit pentru nlocuirea
modului de plata cash. Exemplu: Both Mondex, VisaCash.
Aici comerciantul este proprietarul terminalului, iar cumparatorul este proprietarul
de card. Atat propietarul datelor cat si emitatorul de card sunt institutia financiara
(de obicei o banca) care sprijina sistemul.
Cardul digital (Digital Check Card): Este similar cardului de plati, cu diferenta
ca proprietarul cardului este acelasi cu proprietarul datelor.
Cartel
a telefonic
a Prepaid: Este un card de plati cu utilizare specificata. Proprietarul cardului este utilizatorul. Terminalul, datele si emitatorul cardului sunt
asigurate de o singura entitate: compania de telefoane.
Cartel
a telefonic
a: In acest sistem, smartcardul stocheaza doar un numar de cont
un pointer la o baza de date. Proprietarul cardului si al datelor este utilizatorul,
iar cel care emite cardul, detinand si terminalul, este compania de telefoane.
15
4.8
Componente criptografice
4.8.1
16
4.8.2
17
4.8.3
Codul P IN
Cea mai simpla metoda de identificare a unui utilizator este de a-i atasa un numar secret,
numit Personal Identification Number3 (P IN ). Un P IN este un numar de 4 cifre zecimale4 El este introdus folosind un terminal sau o tastatura de calculator si directionat
3
18
spre smartcard. Cardul compara valoarea primita cu cea stocata n interior si reporteaza
spre terminal rezultatul compararii.
Un P IN poate fi de doua feluri: static sau modificabil.
Un P IN static nu poate fi schimbat de utilizator; deci el trebuie memorat. Daca
devine public, utilizatorul trebuie sa distruga cardul si sa obtina un card nou, cu
alt P IN .
Un P IN modificabil poate fi modificat la solicitarea utilizatorului sau schimbat
de acesta cu un numar mai usor de memorat. Acest lucru comporta un anumit
risc, deoarece utilizatorul va prefera un P IN de forma 0 12340 , sau legat de date
personale (data nasterii, casatoriei etc). Smartcardul nu poate controla alegerea
numerelor triviale, deoarece nu are suficienta memorie pentru a construi o tabela
cu ele. In schimb un terminal poate interzice introducerea unor numere de forma
0
12340 , 0 99990 , 0 11110 , 0 00000 etc.
Exista si chei personale de deblocare (P U K), numite si super-P IN . Ele au mai mult
de 4 cifre (6 cifre de obicei) si sunt folosite pentru resetarea counterului unui smartcard
atunci numarul de ncercari a fost depasit. Odata cu utilizarea unui P U K se va defini un
nou P IN , deoarece un numar mare de ncercari cu P IN -uri gresite este un indiciu n
varianta optimista ca utilizatorul a uitat propriul P IN .
Alte aplicatii folosesc P IN -uri de transport. Smartcardul este personalizat cu un
P IN generat aleator, pe care proprietarul de card l primeste ntr-o scrisoare trimisa prin
posta. In momentul folosirii pentru prima oara a cardului, el nlocuieste acest P IN cu
unul propriu.
O metoda similara este P IN -zero: cardul este prencarcat cu un P IN banal, cum ar fi
0
00000 , valoare care este nlocuita obligatoriu la prima utilizare a cardului.
4.9
Criptanaliza smartcardurilor
Nu vom discuta aici metodele de atac legate de softul introdus pe smartcard (atacurile
asupra RSA, DES sau asupra SHA1 etc.). Acestea au fost studiate odata cu prezentarea sistemelor respective. Vom trece n revista o serie de atacuri specifice structurii smartcardului.
4.9.1
19
20
Apararea contra acestui tip de atac consta n definirea unor functii care sa nu permita
accesul proprietarului de card la datele din interiorul cardului.
Atacuri ale proprietarului de card contra proprietarului de date
In multe smartcarduri (mai ales cele folosite n sisteme comerciale), datele stocate pe card
trebuie protejate fata de proprietarul de card. De obicei acestuia nu i este permis sa aiba
acces la datele respective.
De exemplu, o cartela de acces ntr-o cladire poate contine o valoare secreta; cunoasterea ei va permite proprietarului sa construiasca un acces multiplu (pe mai multe zone
ale cladirii). Sau cunoasterea unei chei secrete de pe un card de comert electronic poate
permite proprietarului sa efectueze tranzactii ilegale.
In alte cazuri, se permite cunoasterea valorii de catre proprietarul cardului, dar nu si
modificarea ei. Este cazul unui card de debit: daca proprietarul poate modifica valoarea,
el poate scoate bani pe care nu i are n cont.
Aceste atacuri au doua proprietati majore:
Cardul actioneaza ca un perimetru de securitate, limitand strict accesul proprietarului la datele aflate n interiorul cardului.
Atacatorul are acces la card n conditii stabilite de el: poate sa-l supuna oricaror
verificari si experimente doreste, pentru a avea acces la informatiile stocate. In
particular, poate distruge cardul, pentru a vedea cum este construit.
Exista multe tipuri reusite de atac contra datelor stocate pe card; cea mai mare parte a
lotr vor fi prezentate n sectiunile urmatoare.
Multe astfel de atacuri s-au materializat efectiv contra cardurilor de acces pay-TV si
a cartelelor de telefon. De asemenea, sunt unele ncercari reusite de sustrageri de date
din carduri folosite n comertul electronic.
Atacuri ale proprietarului de card contra emit
atorului de card
Sunt cunoscute mai multe atacuri de acest fel; toate sunt de fapt atacuri care au ca tinta integritatea si autenticitatea informatiilor stocate pe card. Multe din aceste informatii sunt
cunoscute de proprietarul de card; acesta doreste sa le modifice fara acordul emitatorului
de card (si implicit al fabricantului de card).
De exemplu, la o cartela de telefon prepaid, proprietarul (nu neaparat cel legal) poate
ncerca sa modifice contul, cu scopul de a putea vorbi mai mult cu aceeasi suma. In
acest caz, securitatea poate fi asigurata adaugand un mecanism de tip provocare/raspuns
(utilizat frecvent la protocoalele de comert electronic) sau un lant de functii de dispersie
inverse.
Daca emitatorul de card prefera sa puna pe card biti care sa permita utilizarea sistemului, evident ca principalul atac va fi construit pentru a-i afla. In general acesti biti
21
autentifica contul, sau formeaza un sistem bazat pe o cheie stocata pe card, cheie care nu
poate fi extrasa fara a distruge fizic cardul.
Evident, toate aceste precautii se bazeaza pe presupunerea (discutabila) ca perimetrul
de securitate al cardului este suficient de sigur.
Atacuri ale proprietarului de card contra programatorului de software
Precautiile ce se pot lua n aceasta situatie folosesc diverse protocoale preliminare de
recunoastere, bazate pe transformari neinversabile, pentru a avea siguranta ca nu este
posibil accesul la softul de pe card. Ele folosesc prezumtia ca nu exista nici o legatura
ntre proprietarul cardului si proprietarul softului.
Totusi, n acest caz, intrusii dovedesc o abilitate deosebita n constructia unor structuri
hard adecvate lansarii unor astfel de atacuri, structuri oferite adesea gratis pe Internet.
Atacuri ale proprietarului de terminale contra emit
atorului de carduri
Intr-un sistem nchis la exterior (cum este cel al cartelelor de telefon prepaid), proprietarul
de terminale este de asemenea si emitatorul de carduri (compania de telefoane ndeplineste
ambele functii).
La sistemele deschise (cand cele doua entitati sunt distincte), terminalul controleaza
toate comunicatiile ntre card si emitatorul de carduri (aflat n general la capatul sistemului). Deci el poate totdeauna sa falsifice mesajele care nu au legatura cu continutul
smartcardului; de exemplu sa refuze nregistrarea tranzactiei, sa lanseze comenzi false etc.
De asemenea, terminalul poate omite intentionat completarea unor pasi dintr-o tranzactie,
facilitand astfel o frauda sau creind dificultati de management emitatorului de card.
Astfel, daca nu modifica suma de pe card (scazand suma cheltuita), terminalul poate
genera o paguba; sau daca completeaza o tranzactie dar nu ofera serviciul respectiv (de
exemplu, scoate banii, dar nu ofera marfa) creaza prejudicii atat emitatorului cat si
proprietarului de card.
Aceste atacuri nu sunt legate de natura sistemului de utilizare a smartcardurilor; sunt
atacuri contra relatiei dintre proprietarul de terminale si emitatorul de carduri. De obicei
ele sunt prevenite printr-o monitorizare permanenta la ambele capete a protocoalelor de
comunicare.
Atacuri ale emit
atorului de carduri contra proprietarului de card
Cele mai multe sisteme de smartcard se bazeaza pe supozitia ca emitatorul de carduri
slujeste interesele proprietarilor de card. Acest lucru nu este totdeauna adevarat si un
emitator de carduri are posibilitatea de a lansa mai multe tipuri de atac mpotriva proprietarilor de carduri.
Majoritatea lor ncalca sub o forma oarecare conceptul de confidentialitate (privacy).
Astfel smartcardurile care efectueaza plati trebuie sa asigure mentinerea proprietatilor de
22
23
Fabricantul de carduri are numeroase posibilitati de a-si asigura baza unor atacuri
ulterioare asupra informatiilor de pe card. Nici un fabricant de carduri nu a asigurat pana
acum un sistem de operare sigur, fara vulnerabilitati (mai mult sau mai putin evidente).
In plus, prin implementarea diverselor protocoale, el poate aranja unele canale subliminale
care sa permita aflarea cheilor sau a altor date de pe card.
Mai mult, este posibil ca pentru o aplicatie pe smartcard sa existe o alta aplicatie care
sa ruleze simultan pe acelasi smartcard. S-a demonstrat ca daca avem un protocol sigur,
se poate crea alt protocol tot sigur care sa-l sparga pe primul, daca ambele ruleaza
pe acelasi echipament si folosesc aceleasi chei.
4.9.2
24
25
?
load
Semnal CLK
+1
Contor
program
Decodor
instructiuni
load
6 6
6
mpamantare
6
out
Microsonda
EEP ROM
Odata ce aceste masuri au fost luate, Oscar are nevoie de un singur ac pentru microsondare, sau o sonda electro-optica pentru a citi ntregul continut al EEP ROM ului. Aceasta abordare face programul mult mai usor de analizat decat n cazul
atacurilor pasive, care produc doar o urmarire a executiei; de asemenea nlatura
dificultatile mecanice de a avea simultan mai multe sonde inserate pe circuite (cu o
latime de un micron).
Pentru unele configuratii ale cipului, acest atac nu functioneaza. De exemplu, cardurile bancare citesc date critice din memorie doar dupa ce se asigura ca se afla
ntr-o tranzactie cu un cititor autorizat. Se pot adauga contoare auxiliare care sa
reseteze procesorul daca nu se executa instructiuni jump, call sau return ntr-un
anumit interval de timp.
Totusi astfel de dispozitive pot fi dezactivate prin modificari minore ale circuitelor,
asa ca de obicei protectia este incorporata n structura cip-ului; de exemplu prin
folosirea unui contor de program care sa nu poata acoperi ntregul spatiu de adrese.
Un contor de program pe 16 biti poate fi nlocuit usor cu o combinatie dintr-un
contor O de deplasare pe 7 biti si un registru de segment R pe 16 biti, astfel ncat
adresa accesata sa fie S +O. Contorul de deplasare reseteaza procesorul daca ajunge
la valoarea maxima. Procesorului i va fi astfel imposibil sa execute mai mult de
127 octeti de cod-masina fara jump, si acest lucru nu poate fi schimbat de catre
un atacator prin mijloace simple. Un post-procesor de cod - masina poate fi folosit
ulterior de programator pentru a insera jump-uri la urmatoarea adresa atunci cand
ramurile neconditionate depasesc lungimea de 127 octeti.
Daca nu mai poate folosi de contorul de program, Oscar poate ncerca sa creasca
numarul de iteratii din cicluri software care citesc siruri de octeti din memorie, pentru a avea acces la toti octetii. Acest deziderat se poate obtine folosind o microsonda
care sa produca o perturbatie direct pe magistrala de date. Programatorii care vor
sa utilizeze contoare pe 16 biti trebuie sa tina cont de acest lucru. Ca o prima linie
de aparare mpotriva acestui tip de atac, cele mai multe sisteme de operare pentru
smartcard-uri cripteaza datele importante de pe EEP ROM ; astfel este dificil pentru un intrus sa obtina text clar direct din EEP ROM .
26
Aceasta nu este de fapt o solutie, decat daca criptarea depinde de un secret (cum
ar fi P IN -ul introdus de utilizator).
Proiectantii de dispozitive bazate pe EEP ROM mai au de nfruntat urmatoarea
problema: stergerea unei celule de memorie necesita un voltaj relativ ridicat. Daca
Oscar poate preveni acest lucru, atunci informatia va fi imposibil de sters. Primele
smartcard-uri primeau voltajul necesar programarii printr-o conexiune dedicata cu
gazda, folosind contactul C6. Acest mod de alimentare extern a dus la atacuri
mpotriva sistemelor de televiziune cu plata, n care cardurile erau initial activate
pentru toate canalele, iar acele canale pe care abonatul nu le platea erau dezactivate
prin semnale difuzate. Acoperind contactul cardurilor cu banda izolanta abonatii
puteau preveni ca aceste semnale sa reprogrameze cardul. Ei puteau apoi sa-si
anuleze abonamentul fara ca prestatorul sa-i poata anula serviciul.
Cardurile folosite astazi sunt capabile sa genereze cei 12 volti necesari functionarii
din tensiunea de 5 volti obtinuta de la cititor. Aceasta ridica sensibil costul unui atac
dar nu-l face imposibil: condensatorii mari necesari transformarii pot fi identificati
usor la microscop si distrusi folosind laser, ultrasunete sau fascicule concentrate de
ioni.
Acest tip de atac nu este caracteristic cartelelor telefonice sau TV. Un cip modificat
n acest fel poate fi investigat fara riscul de a sterge din greseala EEP ROM -ul, sau
din cauza unei functii de protectie incorporate.
4.9.3
Un atac non-invaziv asupra unui dispozitiv smartcard este oarecum mai limitat, dar
prezinta un pericol major: din moment ce nu face nici o modificare asupra smartcardului, este foarte greu de descoperit. De exemplu, daca s-ar gasi cheia privata a unui
dispozitiv de semnatura fara ca Alice sa observe, se pot falsifica documente n numele ei
mult timp nainte de a se descoperi infractiunea.
Unele atacuri non-invazive pot decurge ntr-un timp scurt si folosind resurse hardware uzuale (eventual modificate putin). Dar aceste tehnici nfrunta limitari puternice:
deoarece ele trebuie sa aiba loc n timp ce cardul opereaza n conditii normale, orice manipulare va avea ca obiect conditiile de mediu sau octetii care intra si ies din smartcard.
In general, n cazul atacurilor non-invazive, este necesar ca Oscar sa cunoasca structura
software si hardware a smartcard-ului.
Atacul prin cronometrare:
In acest atac descris de Paul Kocher n [3] diferite secvente de octeti sunt trimise
card-ului pentru a fi semnate cu cheia privata. Informatii cum ar fi timpul necesar
efectuarii unei operatii si numarul de 0 si 1 din sirul de intrare sunt folosite ulterior
de Oscar pentru a obtine cheia privata.
27
Fiind un atac cu text clar ales, este necesar ca Oscar sa cunoasca P IN -ul cardului sau sa-l pacaleasca pe utilizator sa semneze sirurile de biti pe care acesta i le
furnizeaza.
Exista masuri de aparare la nivel hard mpotriva acestui tip de atac dar nu toti
producatorii de smartcard-uri le implementeaza.
Unele variante de atac prin cronometrare pot fi executate via software. De exemplu,
ar putea fi folosita o aplicatie cal troian, nfiltrata printr-un procedeu oarecare
pe o statie de lucru a lui Alice. Calul troian asteapta pana cand Alice introduce
un P IN valid dintr-o aplicatie de ncredere, activand astfel folosirea cheii private;
apoi cere smartcard-ului sa semneze digital niste date (de exemplu un contract).
Operatia se ncheie dupa acest schimb de mesaje, dar utilizatorul nu stie ca cheia
sa privata a fost folosita fara consimtamantul sau.
Masura de protectie mpotriva acestui tip de atac este folosirea arhitecturii single
- access device driver. Pe acest tip de arhitectura, sistemul de operare se asigura
ca, la orice moment, doar o singura aplicatie poate avea acces la un dispozitiv
(smartcardul n cazul nostru).
Acest lucru mpiedica atacul dar va afecta folosirea smartcard-ului, deoarece limiteaza accesul la serviciile smartcardului.
O alta cale de a preveni astfel de atacuri este folosirea unui smartcard care solicita
introducerea P IN -ului pentru fiecare utilizare a cheii private. In acest model, Alice
trebuie sa introduca P IN -ul de fiecare data cand cheia privata trebuie folosita, si
deci calul troian nu va avea acces automat la cheie. Acest lucru este nsa rareori
convenabil pentru utilizatorii comozi.
Atacuri prin analiza consumului de energie:
Se bazeaza pe masurarea fluctuatiilor n curentul consumat de dispozitiv. Diferite
instructiuni provoaca nivele diferite de activitate n decodorul de instructiuni si
unitatile de calcul aritmetic; ele pot fi adesea distinse clar, iar pe baza lor pot fi
reconstituite parti din algoritmi.
Aceste tehnici intra in categoria monitorizarii informatiei si constituie o amenintare
reala datorita faptului ca pe piata exista un numar mare de produse vulnerabile.
Atacurile sunt usor de implementat, pot fi automatizate, au un cost scazut si sunt
non-invazive.
Analiza simpla a consumului de curent (Supply Power Analysis SP A) presupune
observarea directa a consumului de energie al sistemului pentru obtinerea de informatii despre secventa de instructiuni executata. Daca Oscar are acces doar la o
singura tranzactie, poate fi decelat un numar limitat de indicii.
Atacatorii cu acces la tranzactii multiple si care poseda informatii despre mecanismele interne specifice arhitecturii cip-ului folosit, pot fi periculosi. Kocher arata
28
cum poate fi spart sistemul de criptare DES n cazul unei implementari hardware
slabe, dar si cum poate fi evitat acest atac daca sunt ndeplinite cateva conditii,
cum ar fi de exemplu nelasarea bitilor din cheie sa fie folositi n alegerea dintre doua
ramuri ale unui jump.
Analiza diferentiala a consumului (Differential Power Analysis - DP A) se bazeaza
pe faptul ca memorarea unui bit 1 ntr-un flip - flop necesita de obicei mai multa
energie decat memorarea unui bit 0. De asemenea, schimbarea de stare cauzeaza un
consum sporit de energie. In plus, fata de variatiile la scara mare datorate secventei
de instructiuni, exista efecte corelate cu valorile datelor manipulate. Aceste valori
tind sa fie mai mici si sunt uneori mascate de erori de masurare si alte interferente,
dar exista tehnici pentru rezolvarea acestor probleme.
Diferite instructiuni produc nivele variate de activitate n decodorul de instructiuni
si n unitatile aritmetice; adesea ele pot fi diferentiate clar, si pe baza lor pot fi
reconstruite parti din algoritm. Componentele procesorului si schimba valorile temporare stocate n momente diferite relativ la intervalul de oscilatie al ceasului si pot
fi separate prin masuratori de nalta frecventa.
Algoritmii cu cheie publica pot fi analizati folosind DP A prin corelarea valorilor
candidat pentru calculele intermediare cu masuratorile consumului de energie ([4]).
Astfel, pentru operatiile de exponentiere modulara, este posibil sa se testeze biti
ghiciti prin verificarea daca valorile intermediare prezise sunt corelate cu calculele
reale.
Prin aceasta metoda este posibil un atac reverse engineering pentru un protocol sau un algoritm necunoscut. In general, semnalele care se scurg n timpul unei
operatii asimetrice tind sa fie mult mai puternice decat acelea provenite de la algoritmii simetrici de exemplu, din cauza complexitatii computationale relativ ridicate
a operatiilor de multiplicare.
De aceea implementarea masurilor de aparare mpotriva SP A si DP A poate fi dificila.
DP A poate fi folosita pentru a sparge implementari ale aproximativ tuturor algoritmilor de criptare. De exemplu, o cheie secreta T wof ish de 128 biti (lungime
considerata sigura) a fost recuperata dintr-un smartcard dupa ce s-au monitorizat
100 criptari independente. In acest caz se poate observa ca DP A descopera 1 2
biti de informatie per criptare.
Singura solutie de ncredere presupune proiectarea de criptosisteme avand o imagine
clara a hardware-ului aflat la baza.
Exista tehnici de prevenire a DP A si a atacurilor nrudite. Ele se pot mparti n
trei categorii:
Se poate reduce dimensiunea semnalului folosind cai de executie constanta a
29
codului, alegand operatii care permit scurgerea a cat mai putina informatie
sau adaugand porti suplimentare care sa compenseze consumul.
Din nefericire semnalul nu se poate reduce la zero, iar un atacator cu un numar
(teoretic) infinit de mostre va fi capabil sa foloseasca cu succes un atac bazat
pe DP A.
Se pot introduce interferente n masurarea consumului de energie; ca si n cazul
precedent, un numar foarte mare de mostre va ajuta analiza statistica.
Folosirea procedurilor neliniare de actualizare a cheii. De exemplu, aplicarea
functiei SHA 1 unei chei de 160 biti ar trebui sa ascunda efectiv toate
informatiile partiale pe care un atacator le-a putut afla despre cheie. Similar,
pot fi folosite modificari ad-hoc n procesele de utilizare a exponentilor si de
modificare a modulelor n cadrul sistemelor cu cheie publica (pentru a mpiedica
atacatorii sa adune date n timpul unui numar mare de operatii). De asemenea
se pot utiliza contori ai folosirii cheilor, pentru a preveni obtinerea unui numar
mare de mostre criptate.
Un atac similar cu DP A este analiza electromagnetica (EM A ElectroMagnetic
Analysis). Atacul consta n masurarea campului radiat de procesor si corelarea
rezultatelor cu activitatea procesorului respectiv.
Un astfel de atac poate obtine cel putin acelasi rezultat ca cel prin analiza consumului de energie.
Atacuri prin generarea de erori:
Atacurile prin generare de erori se bazeaza pe exercitarea de presiuni asupra procesorului cardului, pentru a-l forta sa execute operatii ilegale sau sa dea rezultate
gresite.
Exista o mare varietate de forme pe care le pot lua astfel de atacuri.
O modalitate este aceea de a modifica tensiunea de alimentare si semnalul ceasului. Subtensionarea si supratensionarea pot fi folosite pentru a dezactiva circuitele
de protectie sau pentru a forta procesoarele sa efectueze operatii gresite. In alte
conditii, unii parametri fizici (cum ar fi temperatura) sunt modificati pentru a obtine
acces la informatii sensibile de pe smartcard.
Un alt atac fizic posibil presupune o fluctuatie intensa a unor parametri fizici, exact
n momentul n care se efectueaza verificarea P IN -ului. Astfel, functii sensibile ale
cardului pot fi folosite chiar daca P IN -ul este necunoscut.
Desi nu se poate descrie exact cum este posibil ca o perturbare sa cauzeze executarea
de catre procesor a unor instructiuni gresite, perturbarea se poate afla relativ usor
printr-o cautare sistematica.
Exemplul 4.3. O subrutina des nt
alnit
a n procesoarele de securitate este un ciclu
care scrie continutul unei zone limitate de memorie c
atre un port serial:
30
1
2
3
4
5
6
7
8
b = answer_address
a = answer_length
if (a == 0) goto 8
transmit(*b)
b = b + 1
a = a - 1
goto 3
4.9.4
Analiza diferential
a a erorilor
31
DF A poate sparge DES folosindu-se de 200 texte criptate n care s-au introdus erori
de un bit, un numar infim comparativ cu numarul de texte solicitat de atacurile standard
(criptanaliza diferentiala sau liniara).
Modelul folosit a fost propus de Boneh si dezvoltat ulterior de Biham si Shamir. Se
presupune ca prin expunerea unui procesor la o sursa slaba de radiatie ionizanta, acele
erori de un bit pot fi induse n datele folosite si n special n corpul sub-cheii generate
n rundele succesive DES. Metoda poate fi extinsa pentru a realiza reverse engineering
pentru algoritmi a caror structura este necunoscuta.
1. Cu aceasta metoda a perturbatiilor se poate efectua un atac direct (propus de
Lenstra) asupra algoritmului RSA (sau DSA):
Presupunem ca un smartcard calculeaza o semnatura RSA, S pe un mesaj M ,
modulo n = pq, calculand ntai modulo p si q separat si apoi combinand rezultatele
cu Teorema Chineza a Resturilor. Daca poate fi indusa o eroare n oricare din aceste
calcule, atunci se poate factoriza n. Mai exact, daca e este exponentul public, iar
semnatura S = M d (mod pq) este corecta modulo p dar incorecta modulo q, atunci
p = cmmdc(n, S e M ).
2. Si atacurile asupra DES sunt destul de directe, daca Oscar poate alege ce instructiune va avea de suferit n urma unei perturbatii.
De exemplu el poate opta sa nlature una din operatiile XOR pe 8 biti folosite pentru
a combina cheia de runda cu intrarile n S boxurile provenite de la ultimele doua
runde ale textului, si repeta aceasta procedura pe rand pentru fiecare octet din
cheie. Fiecare din textele criptate alterate obtinute ca rezultat al acestui atac va
diferi de textul criptat autentic n iesirile a doua sau trei S boxuri.
Folosind tehnicile criptanalizei diferentiale, intrusul poate obtine ca rezultat al
erorii induse n jur de 5 biti de informatie despre cei 8 biti ai cheii care nu au fost
XOR-ati.
Astfel, de exemplu, 6 texte criptate folosind runde finale gresite pot demasca aproximativ 30 biti din cheie, permitand o cautare exhaustiva destul de usoara a cheii.
3. Un atac mai rapid se obtine daca se reduce numarul de runde din DES la maxim
2, prin coruperea unei anumite variabile sau a unui salt conditionat. Astfel, cheia
poate fi aflata printr-un atac simplu. Aplicabilitatea acestui atac consta n detaliile
de implementare.
4. DF A poate fi folosit chiar si pentru un sistem necunoscut de criptare. Biham si
Shamir arata ca n anumite conditii structura unui sistem de criptare similar
cu DES poate fi schitata folosind aproximativ 500 texte criptate; mai mult daca
numarul lor ajunge la 10.000, atunci se pot reconstitui toate detaliile legate de
S-boxuri.
32
O metoda de aparare mpotriva DF A consta n adaugarea unor rutine pentru detectarea erorilor.
Daca iesirile nu contin niciodata erori, DF A devine imposibil de aplicat, iar daca iesirile
eronate sunt destul de rare, DF A devine nepractic.
Exista numeroase propuneri pentru construirea rutinelor de detectie a erorilor.
1. O prima abordare este ca textul sa fie criptat de doua sau mai multe ori, iar rezultatele obtinute sa fie comparate si respinse daca nu coincid. Este o metoda destul
de ineficienta practic.
2. Verificarea paritatii:
Paritatea bitilor dintr-o secventa nu se schimba daca bitii sunt permutati. Verificarea paritatii poate proteja deci orice operatie criptografica care presupune permutare de biti. Se acopera astfel cateva operatii cum ar fi permutarile la nivel de
octeti sau blocuri, deplasari circulare, programarea cheilor pentru IDEA sau pentru
cateva versiuni de CAST . Sunt acoperite de asemenea toate operatiile echivalente
cu permutarea nula, cum ar fi stocare si recuperare sau transmisie si receptie a unei
valori.
Bitul de paritate al concatenarii a doua sau mai multe siruri de biti este XOR-ul
bitilor de paritate ai secventelor initiale. Verificarea paritatii poate proteja astfel
orice operatie criptografica bazata pe concatenare de biti sau invers pe spargere
n subblocuri.
Chiar si operatia XOR poate beneficia de pe urma verificarii paritatii, deoarece
bitul de paritate al unui XOR este egal cu XOR-ul bitilor de paritate ai intrarii.
3. Verificare prin aritmetica modular
a:
Orice operatie aritmetica pe Z ramane adevarata modulo orice baza (convenabila).
Folosirea unei baze mari, sau verificarea calculelor n mai multe baze duce la cresterea sanselor gasirii unei erori.
O tehnica buna de verificare a calculelor consta n adaugarea de grupuri de n cifre
binare, pentru a obtine valori modulo 2n 1.
Bibliografie
[1] Atanasiu, A. Securitatea Informatiei, vol 1 (Criptografie), Ed. InfoData, Cluj, 2007.
[2] Biham, E., Shamir. A. Differential Fault Analysis of Secret Key Cryptosystems. In
Burton S. Kaliski Jr. ed., Advances in Cryptology - CRYPTO 97, LNCS vol. 1294,
Springer - Verlag, 1997, pp. 513 - 525.
[3] Kocher, P. Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS and
Related Attacks, Proceedings of Advances in Cryptology - CRYPTO96, SpringerVerlag, 1996, pp. 104-130
[4] Kocher, P., Jaffe, J., Jun, B. Differential Power Analysis, Advances in Cryptology Crypto 99 Proceedings, LNCS vol. 1666, M. Wiener, ed., Springer-Verlag, 1999
[5] Schneier, B, Shostack, A - Breaking Up Is Hard to Do: Modeling Security Threats for
Smart Cards, USENIX Workshop on Smartcard Technology Chicago, Illinois, USA,
May 1011, 1999
[6] Shamir, A. Protecting Smart Cards from Passive Power Analysis with Detached
Power Supplies, LNCS, Springer - Verlag, 2000
[7] Simmons, G. J. Contemporary Cryptology, IEEE Press, 1992
33
Capitolul 5
Securitatea comunicatiilor GSM
5.1
GSM (Global System for Mobile Communications) a fost dezvoltat de 3GP P (3rd Generation Partnership Project) ca standard pentru comunicatiile celulare digitale. Lucrarile de
proiectare au nceput n anul 1987, sistemul fiind realizat n forma finala prin cooperarea
a 17 tari europene; punerea n functiune a primelor retele GSM s-a realizat n 1991.
Desi initial GSM era destinat doar ca un standard european, el s-a raspandit rapid
n ntreaga lume; de remarcat ca la nivel mondial exista de asemenea si ADC (American
Digital Cellular) sistemul digital nord-american si JDC (Japonese Digital Cellular)
sistemul digital din Japonia. Se estimeaza ca n acest moment 82% din piata mobila la
nivel global foloseste standardul GSM . La sfarsitul anului 2005 sistemul dispunea de 1, 5
miliarde utilizatori, iar astazi numai cateva tari printre care Japonia si Coreea de Sud
nu se afla sub acoperirea sistemului GSM .
Printre motivele care au stat la baza acestei expansiuni putem aminti mbunatatirile
din domeniul tehnologiei telecomunicatiilor, precum si reducerile constante de preturi
atat pentru infrastructura cat si pentru telefoanele mobile. Sistemul GSM este bazat
pe o tehnologie celulara de a doua generatie 2G (ofera voce digitala, spre deosebire de
tehnica analogica folosita n sistemele anterioare). Multi operatori continua sa investeasca
n dezvoltarea retelelor GSM , acest lucru nempiedicand preocuparile de a introduce noi
functionalitati si de a micsora costul lor operational.
Standardul GSM s-a dezvoltat continuu, asa ncat versiunea 97 a fost mbogatita cu
GP RS serviciul de transfer pe pachete de date care permite ca informatia digitala
sa circule printr-o retea de telefonie mobila. Sistemele celulare 2G combinate cu GP RS
sunt de multe ori descrise ca 2.5G. Acesta completeaza transferul rapid de date (CDS) si
SM S-ul, ajungand pana la o viteza teoretica de 171.2 kbps (kilobiti pe secunda). O viteza
si mai mare pentru transmiterea de date n GSM a fost introdusa de EDGE (tehnologie
a retelei GSM /GP RS, destinata sa mbunatateasca calitatea serviciilor de date), care
asigura o viteza de pana la 236 kbps.
1
5.1.1
5.1.2
5.1.3
Statia mobil
a
Statia mobila consta dintr-un echipament mobil (cunoscut si sub denumirea de terminal)
si un smartcard SIM (Subscriber Identity Module).
Echipamentul mobil
Cel mai cunoscut echipament mobil este telefonul celular folosit initial numai pentru
apeluri vocale; astazi nsa, tendinta este de a-i asocia tot mai multe dispozitive mobile n
care telefonul este doar o componenta:
P DA cu telefon mobil pentru transmisii vocale si de date.
Console pentru jocuri cu telefon mobil integrat pentru voce si date.
Telefoane mobile pentru voce cu interfata Bluetooth integrata, care permite dispozitivelor de tip P DA sau notebook sa foloseasca telefonul pentru conexiune la
Internet.
Echipamentul mobil este identificat n mod unic de IM EI (International Mobile Equipment Identity) un cod care se gaseste de obicei tiparit pe telefon, sub bateria de alimentare si este folosit strict pentru identificare, neavand o relatie permanenta cu abonatul.
Componenta principala a unui telefon mobil este procesorul care contine o unitate
centrala RISC (cu set minimal de instructiuni) si un procesor cu semnal digital (DSP ).
Procesorul RISC este responsabil de urmatoarele actiuni:
1. Manevrarea informatiei primite prin diversele canale (BCCh, P Ch etc).
2. Stabilirea apelului si administrarea mobilitatii (cautarea retelei, reactualizarea locatiei, decalajul n timp etc).
3. Conexiunile prin interfetele externe ca Bluetooth, U SB etc.
Cum multe dintre aceste sarcini trebuie efectuate n paralel, procesorul RISC foloseste
un sistem de operare multitasking n timp real, capabil sa furnizeze informatii pentru
transmisiile prin interfata radio conform structurii si coordonarii n timp impusa de GSM .
Toate celelalte sarcini ca manevrarea tastaturii, actualizarea ecranului si interfata
grafica au o prioritate redusa.
Cartela SIM
Cartela SIM (Subscriber Identity Module) este un smartcard care stocheaza informatii
esentiale, cum ar fi IM SI (International Mobile Subscriber Identity), M SI un numar
unic asociat fiecarui abonat, Ki (cheia secreta folosita pentru autentificare) si alte informatii
despre utilizator. In general, informatiile sunt protejate printr-un numar personal de identificare (P IN ).
De fapt, un card SIM este mai mult decat o simpla memorie; el contine un microcontroller care poate fi folosit pentru scopuri aditionale, cum ar fi generarea valorii SRES
n procesul de autentificare (descris ulterior). Este obligatoriu ca SRES sa fie calculat
n interiorul SIM -ului si nu n telefonul mobil, pentru a proteja cheia secreta Ki , care
intervine de asemenea n procesul de autentificare.
Din punct de vedere logic, datele sunt stocate pe SIM n directoare si fisiere ntr-o
maniera similara stocarii pe hard-ul unui PC.
In specificatia tehnica 3GP P (3GP P T S), directorul root se numeste fisierul principal
(M F ). Urmatoarele directoare se numesc fisiere dedicate (DF ) iar fisierele normale se
numesc fisiere elementare (EF ). Datorita faptului ca memoria unui SIM este extrem
de limitata, fisierele nu pot fi identificate prin numele directorului si fisier. Sunt folosite
numere hexazecimale care ocupa numai 2 octeti de memorie fiecare. Standardul asigneaza
identificatori pentru aceste numere dar nu le stocheaza pe SIM .
Exemplul 5.1. Directorul root este identificat, de exemplu, prin 0x3F 00, directorul GSM
prin 0x7F 20, iar fisierul care contine IM SI, de pild
a, este identificat prin 0x6F 07.
5.1.4
Daca functionalitatea subsistemului retea pentru GSM este n cea mai mare parte definita
de soft-ul aditional, subsistemul Statie de baz
a este specific. Vechile generatii de sisteme
se bazau pe transmisii analogice prin interfata radio.
Subsistemul Statie de baza este responsabil pentru asigurarea traficului si a semnalului
ntre statia mobila si centrul de comutatie a serviciilor mobile. El este compus din:
Banda de frecvente
In sistemul GSM ea este formata din doua sub-benzi:
1. 890 915 MHz: comunicarea de la Statia Mobila la Statia de Baza (uplink);
2. 935 960 MHz: comunicarea de la Statia de Baza la Statia Mobila (downlink).
Aceste sub-benzi (fiecare de cate 25 MHz) sunt mpartite n 124 perechi de frecvente
purtatoare, fiecare pereche avand alocata o banda de 200 kHz.
Fiecare frecventa purtatoare este utilizata pentru transportul a 8 canale telefonice
distincte, multiplexate n timp (T DM A).
Deci numarul de cai telefonice este de 8 124 = 992.
Acest lucru este posibil deoarece datele si semnalele audio sunt codate si transmise digital.
Transmisia se face n pachete n interiorul intervalului de timp alocat, cu o rata de 271
kbps.
Datorita cererii tot mai mari din tarile europene, ulterior s-a adaugat un interval
suplimentar de frecvente pentru GSM , care foloseste pentru uplink banda de frecvente
1710 1785 MHz iar pentru downlink 1805 1880 Mhz. In locul latimii de banda de 25
MHz normala frecventei 900 MHz frecventa 1800 Mhz ofera o latime de banda de 75
Mh, care permite nca 375 canale aditionale1 .
GSM foloseste diverse canale pentru transmiterea datelor. Acestea sunt mpartite n
1
Frame TDMA
Prin combinarea procedeelor F DM A si T DM A se poate calcula capacitatea totala a
unei statii de baza.
Controllerul Statiei de baz
a (BSC)
In timp ce statia de baza este un element de interfata care conecteaza statia mobila cu
reteaua, controlerul statiei de baza (Base Station Controller - BSC) este responsabil de
stabilirea, ntreruperea si mentinerea conexiunilor celulelor care sunt conectate la el.
Functii ndeplinite de un BSC:
Daca un utilizator doreste sa efectueze un apel vocal, sa trimita un SM S etc, statia
mobila trimite un mesaj de cerere de canal catre BSC, care verifica daca exista
vreun canal SDCCh disponibil, si n caz afirmativ, l activeaza. Apoi BSC trimite
un mesaj de asignare statiei mobile prin AGCh, care include si numarul canalului
SDCCh asignat.
Stabileste canalele de semnalizare pentru apelurile primite sau mesajele scurte.
Mentine conexiunea. Cum utilizatorii se pot plimba liberi n retea n timpul unei
convorbiri, se poate ntampla ca ei sa depaseasca acoperirea celulei n care a fost
initiat apelul. In acest caz BSC intervine, directionand apelul catre cea mai
apropiata celula.
Pentru a reduce interferenta, raspunde de controlul puterii de transmisie pentru
fiecare conexiune prin interfata radio.
Pentru statia mobila, un control activ al puterii poate reduce puterea de transmisie
2
Perioada de gard
a este o perioad
a n care nu se transmite informatie; deoarece distanta unui utilizator
fata de statia de baz
a se poate schimba, se evita astfel suprapunerea ntre semnale.
5.1.5
Subsistemul retea
Este denumit si Retea de telefonie pe teritoriu public - P LM N (Public Land Mobile Network).
10
11
Num
arul de telefon al utilizatorului numit si num
arul ISDN al utilizatorului n
standardul GSM are o lungime de maxim 15 cifre; el contine codul t
arii, codul national
destinatie (corespunzator operatorului respectiv) iar restul cifrelor reprezint
a num
arul utilizatorului.
Centrul de autentificare (AC)
AC detine o cheie secreta Ki pentru fiecare utilizator, care este o copie a cheii Ki de
pe cartela sa SIM . Pentru anumite operatii din retea (cum ar fi stabilirea unui apel),
utilizatorul este identificat prin Ki .
In AC se afla de asemenea cheile de autentificare si de criptare pentru toti utilizatorii
din HLR si din V LR-urile aflate n reteaua furnizorului. In particular, de aici sunt trimise
triplete de tipul (RAN D, SRES, Kc ) necesare pentru procesul de autentificare.
Registrul de identificare a echipamentului (EIR)
EIR este o baza de date care stocheaza o lista cu toate echipamentele mobile valide n
retea, fiecare telefon fiind identificat prin IM EI (International Mobile Equipment Identity). Un IM EI este marcat ca fiind invalid daca a fost declarat furat sau daca tipul sau
este unul neaprobat.
EIR mentine actualizate trei liste:
1. Lista alb
a: contine echipamentele mobile conforme cu cerintele impuse de operatorul de retea.
2. Lista neagr
a: contine echipamentele mobile care au fost raportate ca furate sau
cele care afecteaza bunul mers al retelei; acestea nu au voie sa acceseze reteaua.
3. Lista gri: contine echipamentele mobile care nu sunt conforme standardelor; ele
atent supravegheate, dar au voie sa acceseze reteaua.
5.2
Utilizatorii telefoanelor mobile sunt prin definitie mereu n miscare; de aceea mecanismele pe care le foloseste reteaua GSM pentru a-i localiza sunt foarte importante. Sa
detaliem modul de rutare al apelurilor catre statia mobila.
5.2.1
Inregistrarea locatiei
Actualizarea locatiei este cel mai important instrument care permite gasirea telefoanelor
mobile n reteaua GSM . Locatia unei statii mobile este identificata n mod unic de codul
t
arii respective (mobile country code)(M CC), codul retelei mobile (M N C) si identitatea
12
locatiei (LAI). M CC-ul este o valoare de trei cifre ce identifica tara n care este situata
reteaua. M N C-ul este o valoare de doua cifre care identifica retele (concurente) din
aceeasi tara. LAI-ul identifica regiunea fizica n care este localizata statia mobila (o
regiune consta dintr-una sau mai multe celule fizice). Aceste trei valori formeaza mpreuna
IMSI-ul care identifica n mod unic un utilizator.
O retea poate avea mai multe centre de comutare a serviciilor mobile (M SC) dar numai
cele conectate la un ISDN sau PSTN sunt folosite ca gateway pentru centrele de comutare
(GM SC) dintr-o retea mpreuna cu un HLR. Apelurile sosite pentru telefoanele mobile
pot fi rutate corect numai dupa ce este verificata (n HLR) locatia mobilului tinta precum
si serviciile autorizate ale acestuia. GM SC si M SC au fiecare propriul V LR. Dupa ce
s-a efectuat actualizarea locatiei, mesajul de la statia mobila ce contine informatia despre
locatia sa este trimis prin M SC la V LR-ul atasat. Acesta verifica daca exista deja o
nregistrare cu acea statie mobila, si i actualizeaza locatia daca aceasta este diferita de
cea existenta. Daca statia mobila este necunoscuta pentru V LR, atunci acesta va avertiza
HLR despre locatia statiei mobile si despre informatiile de rutare, emitand anterior o
cerere despre datele de baza ale utilizatorului, pe care V LR le va folosi pentru a finaliza
initierea apelului.
Exista trei tipuri diferite de proceduri disponibile pentru actualizarea locatiei:
1. Inregistrarea: are loc atunci cand este deschisa o statie mobila. Dupa cateva
initializari interne, ea va cauta retele disponibile; cand va gasi o astfel de retea,
statia mobila va citi informatii despre locatie si va trimite IM SI-ul sau retelei
respective.
2. Actualizarea periodic
a a locatiei: este efectuata dupa o perioada de timp predefinita de retea si este trimisa constant tuturor statiilor mobile active care monitorizeaza canalul de control.
Daca statia mobila nu se nregistreaza n acest timp (de pilda, datorita faptului ca
utilizatorul a ajuns ntr-un spatiu cu semnal foarte slab), atunci reteaua va presupune ca statia mobila nu mai este disponibila si o va marca drept inaccesibila
n HLSR si V LR. Ca urmare, apelurile primite vor fi blocate n GM SC n loc sa
fie rutate spre regiunea n care se afla localizata. Apelul poate fi directionat catre
alt numar daca utilizatorul a setat n prealabil aceasta optiune.
3. Cand statia mobila detecteaza o schimbare a regiunii n care se afla, va anunta
reteaua despre aceasta schimbare.
5.2.2
13
1. (In cazul n care apelul este initiat de retea) Reteaua notifica telefonul cu un PAGING REQUEST prin IM SI-ul corespunzator pe canalul de paging.
Daca apelul este initiat de telefonul mobil, se trece direct la pasul urmator.
2. Procedura de alocare directa:
(a) Telefonul trimite pe canalul RACh un mesaj RANDOM REQUEST de 8
biti. El este format dintr-o valoare aleatoare pe 5 biti, iar restul de 3 biti contine
establishment cause (tipul de apel care urmeaza a fi stabilit). Acest mesaj
solicita statiei de baza alocarea resurselor radio pentru realizarea conexiunii.
(b) Reteaua trimite un mesaj IMMEDIATE REQUEST pe canalul P AGCh.
Acesta contine valoarea aleatoare primita de la telefon, detalii despre canalul
alocat telefonului mobil, mpreuna cu alte informatii tehnice.
Mobilul se va racorda imediat la canalul de trafic alocat.
3. Cererea de servicii:
(a) Mobilul trimite un mesaj de cerere a serviciilor, incluzand T M SI-ul sau si
versiunile de A5 suportate
(b) Reteaua certifica acest mesaj si repeta T M SI-ul.
4. Autentificarea:
(a) Reteaua trimite o cerere de autentificare care include valoarea RAN D si un
numar care va stoca cheia Kc rezultata;
(b) Mobilul raspunde cu valoarea SRES calculata;
(c) Reteaua cere mobilului prin comanda CIP HM OD sa nceapa criptarea; ea
poate specifica algoritmul de criptare folosit si eventual cheia de criptare.
Reteua ncepe sa decripteze informatiile primite.
Mesajul poate fi folosit si pentru a cere mobilului sa trimita IM EI-ul si versiunea de software.
(d) Mobilul ncepe criptarea si decriptarea si raspunde cu mesajul
CIP HM ODCOM criptat. La cerere, el trimite si IM EI-ul.
5. Reteaua si mobilul comunica pe canal. Reteaua poate sa schimbe canalul n
functie de tipul apelului efectuat.
5.2.3
Cand Alice initiaza un apel mobil catre Bob, apelul va fi rutat catre GM SC-ul retelei.
Daca reteaua are mai multe astfel de porti de intrare, apelul este rutat catre GM SC-ul
de care apartine Bob, adica spre acel GM SC al carui HLR atasat contine o nregistrare
14
cu datele lui Bob. GM SC-ul va afla locatia utilizatorului Bob prin lansarea unei cereri de
localizare, la care raspunde un HLR. Acesta va transmite catre GM SC zona sau M SCul corespunzator lui Bob. Cu aceasta informatie, GM SC-ul poate ruta apelul catre acel
M SC care poate finaliza initierea apelului. M SC-ul fiind acoperit de mai multe BSC
si BT S va trebui sa verifice locatia exacta a lui Bob din V LR si va primi un raspuns
continand datele exacte.
Mai departe, M SC este capabil sa trimita apelul spre Bob, folosind BT S-ul corect.
5.3
Securitatea GSM
Conform cerintelor, un sistem GSM trebuie sa fie cel putin la fel de sigur ca P ST N
(Public Switched Telephone Network) reteaua de telefonie publica bazata pe circuite de
comutatie.
5.3.1
Cerinte de securitate
15
Pentru asigurarea acestor cerinte, sistemul este proiectat astfel ncat sa ofere retelei wiireless aceeasi siguranta pe care o are reteaua fixa, siguranta care nseamna autentificare
si confidentialitate mpotriva ascultarilor nedorite n retea.
Specificatiile GSM identifica urmatoarele trei aspecte ale securitatii pe care le acopera
sistemul:
Autentificarea utilizatorilor: telefonul mobil trebuie sa-si dovedeasca dreptul de
acces la un anumit cont din reteaua operatorului dorit.
Anonimitatea utilizatorilor: identificarea unui utilizator n retea devine o problema dificila pentru cineva din afara sistemului.
Confidentialitatea: informatiile comunicate wireless trebuie sa fie protejate, iar
accesarea lor sa fie posibila doar utilizatorilor destinati.
5.3.2
Anonimitatea
In momentul in care utilizatorul si deschide echipamentul mobil pentru a-l folosi n reteaua
operatorului contractat, el trebuie sa se identifice n retea.
Identificarea se face cu ajutorul numarului unic IM SI aflat pe SIM . Cum IM SI este
elementul cheie n rutarea apelurilor, reteaua trebuie sa stie la orice moment unde se afla
telefonul identificat. Aceasta functionalitate a retelei se numeste gestionarea locatiei
(location management.
Cum IM SI-ul identifica n mod unic un utilizator al retelei iar aceasta informatie
este publica este suficient ca cineva sa-l intercepteze n aer, pentru a identifica utilizatorul
corespunzator si a-i afla locatia.
Acest lucru este contracarat prin proprietatea de anonimitate, care protejeaza identitatea
utilizatorului fata de cineva care dispune de IM SI-ul sau. Identitatea protejata n cadrul
retelei implica si ascunderea locatiei, precum si a apelurilor efectuate.
GSM asigura anonimitatea folosind un identificator temporar pentru client T M SI
(Temporary Mobile Subscriber Identity) care, spre deosebire de IM SI (unic la nivel
global), este valid numai local si este asignat utilizatorului atunci cand cartela SIM
s-a autentificat n retea. Pentru comunicarea cu acel SIM , reteaua va folosi n continuare
numai T M SI-ul alocat.
Atunci cand este nregistrata o modificare a locatiei, reteaua asigneaza un nou T M SI
pentru statia mobila, care este stocat n retea mpreuna cu IM SI. Statia mobila si
reteaua vor folosi de acum pentru comunicare numai T M SI-ul. La nchidere, statia
mobila memoreaza T M SI-ul actual pe cartela SIM , pentru a fi accesibil atunci cand
este repornita.
Pe de alta parte, se poate vorbi ntr-un schimb de informatii ntre utilizatori despre
anonimitatea transmitatorului si a receptorului.
Anonimitatea transmitatorului se refera la ascunderea identitatii expeditorului unui mesaj,
16
iar anonimitatea receptorului ofera posibilitea de a-l contacta pe destinatar chiar daca
acesta ramane anonim.
[?] este prezentat un mecanism care s
Exemplul 5.4. In
a permit
a utilizatorului unei
statii GSM sa efectueze/primeasca apeluri astfel nc
at furnizorul s
au de telefonie mobila
s
a nu poata determina identitatea celeilalte p
arti implicate n convorbire.
Pentru aceasta, autorii folosesc un Trusted Third Party Privacy Proxy iar solutia propusa
implic
a folosirea de alias-uri (identificatori unici asociati abonatilor) astfel nc
at reteaua
s
a nu poat
a face legatura ntre acestea si transmit
atorul/receptorul real dec
at pentru scopuri de facturare.
In sistemul GSM exista o serie de probleme legate de stabilirea anonimitatii:
Un abonat trebuie sa poata fi accesat oricand: reteaua trebuie sa i stie mereu
locatia pentru a putea ruta apelurile sosite catre el. Chiar daca receptorul nu
cunoaste identitatea apelantului, reteaua trebuie sa cunoasca informatiile ambelor
parti, pentru a putea stabili si deschide canale de comunicare.
Numarul de telefon al unei persoane odata stiut poate fi considerat public: poate
fi divulgat si altor persoane, chiar fara consimtamantul proprietarului.
Apelurile GSM trebuie sa se desfasoare n timp real si sunt facturate n functie de
timp, de regulile stabilite n contract etc. Transmitatorul trebuie sa fie legat de o
anume entitate ce poate fi identificata, astfel ca dupa un anumit interval de timp
(de obicei lunar), operatiunile efectuate de el n retea sa poata fi facturate.
5.3.3
17
Monitorizare activ
a
In acest caz Oscar poate comunica cu statia mobila, ceea ce presupune existenta unui
echipament mai sofisticat decat n cazul unei monitorizari pasive. El va folosi o procedura de identificare, n care reteaua va efectua un IDENTITY REQUEST, cerand statiei
mobile, IM SI, IM EI sau T M SI.
Deoarece GSM nu verifica autenticitatea unui mesaj, Oscar poate pretinde ca este
statie de baza, obtinand astfel prin intermediul unui astfel de mesaj informatia dorita.
Dupa ce detine IM SI-ul, atacatorul si poate identifica victima.
Urmatorul pas este gasirea T M SI-ului pe care reteaua l aloca statiei mobile, astfel
ca Oscar sa-l poata asocia IM SI-ului; aceasta i permite ulterior sa urmareasca miscarile
statiei mobile.
T M SI-ul este criptat nainte de a fi transmis, deci Oscar va trebui ntai sa-l decripteze.
El va genera o situatie n care cele doua entitati legitime care comunica sa creada ca
dispun de capabilitati diferite de criptare. Oscar poate face acest lucru deoarece poate
insera, distruge sau fabrica mesaje dupa bunul plac lucru posibil datorita faptului ca
GSM nu asigura integritatea mesajelor si nici autentificarea retea-utilizator.
5.3.4
Autentificarea
Prin autentificare se evita situatiile cand persoane neautorizate patrund n retea pretinzand ca sunt utilizatori acceptati ai retelei. Inainte de a avea acces la serviciile unei
retele GSM , un utilizator trebuie sa isi dovedeasca autenticitatea.
Vom descrie procedura de autentificare, reprezentata n figura urmatoare:
18
19
O implementare frecvent
a a lui A3/A8 (COM P 128)
Cheia secreta Ki , identificatorul IM SI, functiile A3 si A8 sunt stocate si implementate n cartela SIM a telefonului; Ki nu paraseste niciodata cartela SIM .
Este remarcabila relatia de ncredere ntre componentele retelei ntre care se transmit informatiile confidentiale (centrul de comutare - registrul de locatii, BSC M SC). Aceasta ncredere evidentiaza o caracteristica a retelei GSM : ncercarea de
a securiza numai partea wireless. Motivul: GSM a evoluat din reteaua de telefonie
publica P ST N si si propune sa fie cel putin la fel de sigura. Partea centrala a
P ST N este securizata prin restrictionarea accesului fizic la retea. Ideea a fost aplicata si n GSM , unde componenta centrala din arhitectura sistemului se refera la
reteaua ce se gaseste dincolo de statia de baza (BSC), considerata sigura deoarece
este controlata numai de furnizorii de telefonie mobila, iar accesul la ea se afla sub
control foarte atent.
Totusi, exista o relatie ntre componente nafara retelei centrale: BT S - BSC. Ea
ramane o cale de atacuri posibile; de altfel, GSM nu specifica nici o metoda de
securizare a acesteia.
In GSM , entitatea autentificata este cartela SIM iar nu utilizatorul n sine. Ce
se ntampla daca echipamentul ce se doreste a fi utilizat n retea este unul furat ?
Atunci cand un client a pierdut echipamentul sau cartela SIM , el are responsabilitatea de a comunica aceasta catre furnizorul sau de telefonie mobila. Cum reteaua
mentine o baza de date cu echipamentele valide prin extrapolare furnizorul de
servicii ar putea avea si o baza cu SIM -urile valide.
Un detaliu mai ascuns al procesului de autentificare n GSM este folosirea a cinci
triplete de securitate pe care MSC le obtine de la HLR. Desi unul singur este necesar pentru autentificarea unui utilizator n retea, MSC cere mai multe triplete pentru
a evita repetarea acestei actiuni de fiecare data cand utilizatorul doreste autentificarea,
mbunatatind astfel performanta sistemului prin detinerea n stoc a nca patru triplete
de rezerva pentru o folosire ulterioara.
20
5.3.5
21
Versiunea COM P 128 a devenit COM P 1281 si doua versiuni noi COM P 1282 si
COM P 1283 au fost propuse pentru corectarea acestor probleme de securitate. Aceste
ultime versiuni sunt algoritmi care nu au fost supusi criptanalizei publice. COM P 128 3
rezolva problema celor 10 biti nuli din cheia de sesiune Kc . Operatorii de telefonie mobila
migreaza spre acesti algoritmi noi, dar deoarece A3 si A8 sunt stocati pe SIM se impune schimbarea cartelelor abonatilor. Interesant este faptul ca, dupa ce n 1998 Briceno,
Goldberg si Wagner au publicat atacul asupro COM P 128, majoritatea furnizorilor de
telefonie mobila nu au adoptat noua varianta COM P 128 2, ci au pastrat-o pe prima,
aplicand o restrictie asupra cartelei SIM : au fixat un numar maxim de invocari asupra
cartelei (sub 150.000), dupa care aceasta se bloca.
Datorita faptului ca algoritmul se afla pe cartela SIM care este un smartcard,
orice descoperire asupra vulnerabilitatilor acestuia are repercusiuni asupra securitatii
informatiilor stocate pe SIM : IM SI si Ki .
5.3.6
O metoda prin care cheia Ki poate fi extrasa fara a avea acces fizic la SIM este atacul
printr-o metoda foarte eficienta, numita atac side channel.
Atacurile side channel sunt atacuri criptanalitice care gasesc relatia ntre informatia
de intrare si cea de iesire transmisa n timpul calculelor din canalele anexe; de exemplu
sincronizarea operatiilor, consumul de energie, emanatii electromagnetice etc.
S-a constatat ca prin analiza acestor caracteristici se pot obtine informatii confidentiale.
Foarte multe atacuri bazate pe canalele anexe necesita cunostinte tehnice relativ la operatiile
interne ale sistemului care are integrata partea de criptografie.
Un algoritm puternic mpotriva acestui tip de atac trebuie sa aiba semnalul pe canalele
anexe independent statistic de intrare, iesire si alte informatii sensibile. O implementare
adecvata poate asigura rezistenta n fata unui astfel de atac, dar pot ramane unele relatii
statistice dependente care pot fi atacate usor. In general, eliminarea unor astfel de atacuri
consta n limitarea producerii de informatii de tipul emanatiilor electromagnetice sau sunet
si limitarea accesului la relatiile ntre acestea.
Partitioning attacks este o clasa descoperita de cercetatorii de la IBM si folosita
pentru a ataca implementari de algoritmi care altfel ar rezista la atacurile side channel.
Cu ajutorul lor, toata cheia de 128 biti din COM P 128 poate fi extrasa de pe un SIM
folosind mai putin de 1000 invocari cu intrari aleatoare, sau 255 intrari alese, sau doar 8
intrari special alese. Prin urmare, un adversar care se afla un posesia cartelei SIM poate
extrage cheia secreta Ki n maxim un minut.
Atacul prin partitionare poate fi folosit mai ales contra algoritmilor bazati pe cautari n
tabele foarte mari. COM P 128 este un astfel de exemplu; el utilizeaza cautari n 5 tabele
de cate 512, 256, 128, 64 si repectiv 32 biti.
22
5.3.7
Faptul ca nu ntotdeauna este posibil sa avem acces fizic la SIM a creat posibilitatea
unui atac wireless (pe calea undelor radio). Desi aceasta abordare pare mai atractiva, ea
introduce alt tip de obstacole. In primul rand, Oscar trebuie sa poata simula BT S-ul
ca unul legitim. Aceasta nseamna ca el are nevoie de o statie de baza falsa, capabila
sa genereze un semnal suficient de puternic asa ncat sa depaseasca semnalul BT S-ului
legitim. Numai n acest caz ar fi posibila comunicarea ntre BT S si statia mobila. O
posibila rezolvare a acestei probleme ar fi lansarea atacului atunci cand semnalul statiei
legitime este foarte slab (la metrou, n lift, n zone izolate etc).
5.4. CONFIDENT
IALITATE IN GSM
23
Atacul functioneaza pe orice telefon mobil din GSM , fara nici un acces anterior la
acesta (si fara a cunoaste vreun IM SI). Prin monitorizarea traficului, poate fi ales un
T M SI la ntamplare. Fiind un atac wireless, el se poate desfasura de la distanta.
Daca Oscar obtine cheia Ki (prin clonarea cartelei) si intercepteaza valoarea RAN D
prin wireless n timpul stabilirii apelului, el poate calcula cheia Kc (daca este folosit
algoritmul COM P 128 sau un alt algoritm cunoscut) si poate asculta convorbirea n timp
real.
Dupa aparitia primelor atacuri, GSM a reactionat imediat si a creat alte doua noi versiuni pentru COMP128. Daca pana atunci furnizorii foloseau n continuare COM P 128
1 limitand doar numarul de provocari, n urma aparitiei atacului ce necesita doar 8
provocari, aceasta restrictie nu mai este posibila: o cartela SIM trebuie sa raspunda
la mai mult de 8 provocari pe parcursul unei zile.
Ultima versiune a lui COM P 128 a patra este complet noua si se bazeaza pe un
algoritm ce foloseste standardul AES. Ea este implementata n retelele U M T S, ceea ce
presupune emiterea de noi cartele pentru abonatii retelei, o reactualizare a soft-ului HLR
si securitate contra clonarii cartelei SIM .
Si noul algoritm este pasibil de atacuri; chiar si partitioning attacks. Cautarea n
tabele mari este folosita frecvent n algoritmi precum DES, AES si COM P 128, care
aplicate pe dispozitive limitate cum sunt smartcard-urile raman sensibile la atacuri side
channel. Cercetatorii IBM au propus o metodologie pentru a crea rezistenta n fata unor
astfel de atacuri. Ideea consta n nlocuirea unei cautari ntr-o tabela cu o serie de cautari
n locatii complet aleatoare folosind un tabel auxiliar, ceea ce nu permite nici o scurgere de
informatii. Metoda poate fi implementata cu succes n dispozitivele cu memorie limitata
cum sunt telefoanele mobile, pentru ca foloseste foarte putina memorie RAM .
5.4
Confidentialitate n GSM
Confidentialitatea n GSM nseamna protejarea informatiei schimbate n timpul conversatiei si a informatiilor de control asociate cu stabilirea unui apel.
Contextul de securitate este cheia de sesiune Kc pe 64 biti, rezultata n urma aplicarii
algoritmului A8 sau COM P 128 daca acesta este folosit pentru a combina ambii algoritmi
A3 si A8. Aceasta cheie ofera confidentialitate pe interfata wireless BT S - M E, deci
securizeaza comunicarea ntre echipamentul mobil si statia de baza.
Reamintim ca GSM foloseste tehnica de diviziune n timp pentru a face posibila
folosirea aceluiasi canal radio pentru 8 utilizatori simultan. Fiecare utilizator va transmite
si primi informatii numai pe durata unuia din cele 8 sloturi de timp disponibile n fiecare
frame. Fiecare frame dureaza 4.6 milisecunde si este indentificat printr-un numar asociat.
O conversatie GSM foloseste 2 frame-uri: unul mergand de la statia de baza spre statia
mobila si celalalt parcurgand aceeasi cale n sens invers. Fiecare din aceste frame-uri
contine 114 biti de informatie.
24
Deci la fiecare 4.6 milisecunde, statia mobila primeste 114 biti de informatie de la statia
de baza si trimite alti 114 biti de informatie catre aceasta. Acesti 228 biti au nevoie de
protectie mpotriva interceptarii.
Algoritmul folosit pentru criptarea pachetelor de informatii transmise wireless este A5.
Acesta este un algoritm de criptare specificat de standardul GSM (spre deosebire de A3
si A8 care sunt doar niste nume) pentru a ncuraja roaming-ul4 ntre retelele de telefonie
oferite de diversi operatori. Alegerea lui A3 si A8 este la libera alegere a operatorului,
datorita faptului ca procesul de autentificare se desfasoara ntre SIM si registrul de locatii
al utilizatorilor (HLR) aferent furnizorului de telefonie mobila. Pe de alta parte, procesul
de criptare trebuie sa se desfasoare ntre statia de baza (BT S) si statia mobila (M E)
(aceasta fiind prima ruta pe care circula pachetul de date ce contine informatiile trimise
de utilizator); deci informatia trimisa trebuie sa fie deja criptata.
Algoritmul A5 este un sistem de criptare fluid ([?]) care genereaza o cheie unica pentru fiecare pachet de date folosind la intrare cheia de sesiune Kc pe 64 biti si numarul
de secventa asociat frame-ului respectiv. Deoarece numarul de secventa al unui frame
este usor de aflat, confidentialitatea datelor transmise se bazeaza numai pe mentinerea
secretului cheii de sesiune Kc .
Cheia de sesiune poate fi schimbata la intervale regulate sau dupa cum considera furnizorul
de servicii de telefonie.
Dupa ce a fost obtinuta cheia de sesiune, criptarea va ncepe imediat ce reteaua GSM
trimite echipamentului mobil o cerere de criptare. Spre deosebire de A3 si A8 care sunt
implementati n SIM , algoritmul A5 se afla implementat hardware direct n echipamentul mobil.
In prezent exista trei versiuni dezvoltate pentru A5:
1. Prima, numita A5/1, este folosita n tarile membre ale CEP T (organizatie care
cuprinde 48 tari din Europa) si n Statele Unite. A fost lansata n 1987 si ofera cel
mai nalt nivel de criptare wireless. Desi oficial foloseste 64 biti, practic cheia nu
depaseste 54 biti, ultimii 10 biti fiind setati pe zero.
2. Al doilea algoritm, A5/2, dezvoltat n 1989, este mai slab decat A5/1 si este folosit
preponderent n Asia.
Schita celor doi algoritmi a fost tinuta secret, dar a fost descoperita prin inginerie
inversa de catre Briceno ([?]) n 1999 si este disponibila pe Internet.
3. In 2002 apare versiunea A5/3. Ca securitate, el este mai puternic decat primele
doua versiuni, dar este folosit numai n retelele U M T S pentru generatia a treia
(3G). Spre deosebire de versiunile precedente, schema lui A5/3 a fost facuta publica,
constructia lui fiind bazata pe sistemtul de criptare bloc KASUMI.
4
Prin roaming se ntelege extinderea conectivitatii serviciilor n locatii diferite de locatiile de baza n
care acestea au fost nregistrate.
5.4. CONFIDENT
IALITATE IN GSM
25
Inafara acestora mai exista o versiune ieftina si deci mai putin complexa numita A5/0,
care nu presupune nici o criptare.
5.4.1
Algoritmul A5/1
3. For i = 0 to 21 do
(a) Aplica un tact pentru toti registrii
(b) R1[0] R1[0] f [i];
26
Structura intern
a a algoritmului A5/1
Generarea cheii fluide se efectueaza n 328 tacti, la fiecare tact producandu-se un bit
de iesire. La fiecare tact, iesirea este un XOR ntre cei mai din dreapta biti ai celor trei
registri. Cheia fluida de 228 biti este generata astfel:
1. Executa initializarea cu cheia Kc si numarul de frame f .
2. Executa A5/1 pentru 100 tacti, fara a pastra iesirea.
3. Executa A5/1 pentru 228 tacti, bitii rezultati formand cheia fluida.
Mecanismul de calcul a bitului de iesire la fiecare tact foloseste regula majoritatii:
fiecare registru are o pozitie aproape de mijloc (locatiile R1[8], R2[10] si respectiv
R3[10]) marcata special. La fiecare tact se calculeaza valoarea majoritara din aceste
trei pozitii, iar apoi, fiecare registru avanseaza o pozitie daca si numai daca celula sa
marcata (un D flip-flop) este identica cu valoarea majoritara calculata.
Deci, la fiecare tact se vor deplasa cel putin doi registri; statistic, fiecare registru are
probabilitatea 1/4 de a ramane nemiscat si probabilitatea 3/4 de a se deplasa ([?]).
5.4.2
Algoritmul A5/2
A5/2 este construit pornind de la arhitectura lui A5/1: se folosesc patru registri (de
lungimi 19, 22, 23 si 17 biti), iar functiile de ntoarcere ale primilor trei sunt identice ca
pentru A5/1.
Algoritmul accepta la intrare aceeasi parametri ca si A5/1: o cheie Kc pe 64 biti si o
valoare publica f pe 22 biti, derivata din numarul de frame (cunoscut public). Valoarea
lui f este obtinuta din numarul asociat frame-ului T DM A:
5.4. CONFIDENT
IALITATE IN GSM
27
Obtinerea valorii f
unde T 1 este catul mpartirii numarului de frame la 51 26 = 1326, T 2 este restul
mpartirii numarului de frame la 26 si T 3 este restul mpartirii numarului de frame la 51.
A5/2 este initializat cu Kc si f n patru pasi dupa cum urmeaza:
1. Seteaza R1 = R2 = R3 = R4 = 0.
2. For i = 0 to 63 do
(a) Aplica un tact pentru cei patru registri.
(b) R1[0] R1[0] Kc [i];
R3[0] R3[0] Kc [i];
3. For i = 0 to 21 do
(a) Aplica un tact pentru primii trei registri.
(b) R1[0] R1[0] f [i];
R3[0] R3[0] f [i];
4. Seteaza bitii R1[15] 1,
R3[18] 1,
R4[10] 1.
28
Si n acest algoritm, la fiecare tact avanseaza cel putin doi registri, n functie de valorile
a trei biti din R4. Apoi avanseaza R4 un tact.
La nceputul fiecarui tact se calculeaza valoarea
x = maj{R4[3], R4[7], R4[10]}
Apoi, R1 avanseaza daca x = R4[10], R2 avanseaza daca x = R4[3] si R3 avanseaza daca
x = R4[7].
Procesul de generare a cheii poate fi sumarizat astfel:
1. Executa initializarea cu cheia Kc si valoarea f .
2. Executa A5/2 pentru 99 tacti, ignorand iesirea.
3. Executa A5/2 pentru 228 tacti, iar bitii rezultati formeaza cheia fluida.
Procedura de criptare este identica cu cea a algoritmului A5/1.
5.4.3
De-a lungul timpului s-au descoperit o serie de slabiciuni ale arhitecturii de criptare a
sistemului GSM , slabiciuni care pot fi exploatate usor.
Partea de criptare a fost specificata ca o caracteristica optionala a retelei. Prin
urmare, operatorul de retea poate alege daca doreste folosirea criptarii sau nu. Unele
telefoane mobile cum sunt cele din seria Siemens S afiseaza pe ecran un simbol de
tipul *!* daca optiunea de criptare este dezactivata ([?]).
Criptarea este utilizata numai pentru securizarea interfetei dintre statia mobila si
BT S. Aceasta este singura legatura protejata criptografic, ceea ce expune restul
retelei la atacuri. Una dintre cele mai expuse interfete neprotejata prin criptare este
BT S - BSC. Cum aceasta legatura nu face parte din reteaua de baza si cum de
obicei este o legatura fara fir (bazata pe microunde, pe satelit s.a.m.d.), ea devine o
tinta atragatoare, interceptarea de apeluri fiind posibila cu un echipament adecvat.
Chiar si algoritmul folosit pentru criptarea legaturii statie mobila - BT S nu este
sigur, datorita puterii tot mai mare a hardware-lui. Folosind un simplu atac prin
forta bruta, securitatea algoritmului poate fi compromisa n cateva ore.
Principala problema este lungimea mica a cheii de sesiune Kc : doar 54 biti efectivi
(plus alti 10 biti setati pe zero). Puterea hardware permite n prezent nregistrea
pachetelor transmise ntre statia mobila si BT S si decriptarea lor la un moment
ulterior.
29
GSM foloseste o procedura de autentificare ntr-un singur sens: numai reteaua are
dreptul sa verifice identitatea abonatului (mai exact, a statiei mobile). In schimb,
statia mobila nu poate verifica autenticitatea retelei. Aceasta permite punerea n
practica a unui atac n care BT S este falsificat.
Poate una dintre cele mai vizibile vulnerabilitati ale sistemului GSM este faptul ca
nu asigura protectia integritatii pentru informatiile transmise. Securitatea GSM
vorbeste despre autentificare si confidentialitate dar nu mentioneaza absolut nimic
despre integritate. Absenta unui mecanism care sa o asigure nseamna ca la receptie
nu se poate verifica daca mesajul primit a fost modificat sau nu. Se lasa astfel cale
libera pentru numeroase atacuri de tipul man-in-the-middle.
Algoritmii de criptare GSM nu sunt publicati n standardul GSM , ceea ce nseamna
ca nu sunt disponibili pentru analiza comunitatii de securitate. Acest lucru a fost criticat
pentru ca ncalca principiul lui Kerckhoffs (securitatea sistemului rezida numai n cheie).
Se considera indicat ca algoritmul de criptare sa fie analizat public, asa ncat eventualele
fisuri existente sa fie descoperite si publicate.
5.5
30
6. Aceeasi valoare RAN D poate fi folosita ori de cate ori doreste reteaua.
5.5.1
In cel mai simplu atac asupra protocolului, Oscar schimba informatia din mesajul classmark pe care telefonul l trimite retelei la nceputul conversatiei; astfel, reteaua crede ca
telefonul suporta numai A5/2. Desi poae reteaua prefera sa lucreze cu A5/1, ea trebuie
sa foloseasca numai A5/2 sau A5/0 (fara criptare).
Intrusul are mai multe moduri de a modifica mesajul class-mark. El poate trimite
simultan cu utilizatorul un mesaj alternativ class-mark, folosind nsa un semnal radio
mult mai puternic; astfel, la BT S semnalul lui Oscar depaseste semnalul mesajului original.
Sau, Oscar poate efectua un atac de tipul man-in-the-middle (se interpune ntre statia
mobila si BT S folosind o statie mobila falsa si o statie de baza falsa), asa ncat toate
mesajele sa treaca pe la el. Apoi poate pur si simplu nlocui un mesaj class-mark cu un
alt mesaj.
5.5.2
Este un atac care recupereaza cheia de criptare a unei conversatii criptate nregistrata
n trecut. Ea ar putea fi valida pentru convorbiri ulterioare daca reteaua alege sa nu
efectueaze protocolul de stabilire a unei noi chei.
Calea cea mai simpla de a decripta conversatii nregistrate este cand Oscar are acces la
cardul SIM al utilizatorului. Atunci el l poate alimenta cu RAN D-ul folosit anterior n
conversatie. SIM -ul calculeaza si ntoarce spre intrus valoarea lui Kc (atacul este posibil
pentru ca GSM permite refolosirea valorii RAN D).
Singura problema este obtinerea accesului fizic la cardul SIM al utilizatorului. Exista
un atac man-in-the-middle care simuleaza un astfel de acces, prin folosirea unei statii de
baza false.
1. In faza de pregatire a atacului, Oscar nregistreaza conversatii criptate ale victimei.
2. La momentul atacului, el initiaza o sesiune wireless cu telefonul victimei, prin statia
de baza falsa, iar apoi o procedura de autentificare, folosind valoarea RAN D din
timpul conversatiei criptate. Telefonul va returna un SRES cu aceeasi valoare ca
SRES-ul conversatiei nregistrate.
3. Oscar cere telefonului sa nceapa criptarea cu A5/2.
Aparatul trimite o certificare (criptata cu A5/2) cu acelasi Kc din conversatia
nregistrata (Kc depinde de RAN D, care este identic cu cel din conversatia nregistrata).
31
4. In final, intrusul poate folosi un atac cu text criptat pentru A5/2 (un astfel de
atac este prezentat mai tarziu), care poate fi repetat de mai multe ori pentru toate
valorile RAN D existente n nregistrare.
Atacul prezentat lasa urme, pentru ca telefonul retine ultimul Kc pentru a-l folosi n
urmatoarea conversatie.
Oscar poate aduce telefonul la starea anterioara atacului, prin efectuarea unei noi
proceduri de autentificare folosind ultima valoare (legitima) RAN D emisa telefonului.
Sau, Oscar poate recupera valoarea curenta Kc stocata pe telefon prin efectuarea atacului,
dar omitand procedura de autentificare.
El poate folosi cheia Kc pentru a patrunde n conversatii ulterioare, pana cand reteaua
initiaza o noua procedura de autentificare.
5.5.3
Oscar poate intercepta conversatiile n timp real prin lansarea unui atac man-in-themiddle.
Pentru aceasta, el foloseste o statie de baza falsa pentru a comunica cu telefonul tinta,
pretinzand retelei ca este statia mobila .
1. Cand reteaua initiaza protocolul de autentificare, ea trimite lui Oscar o cerere de
autentificare, pe care acesta sub chipul statiei de baza o trimite mai departe
utilizatorului.
2. Utilizatorul calculeaza SRES pe care l returneaza lui Oscar, care l va retine
temporar, fara a-l retrimite retelei.
3. Oscar cere telefonului sa nceapa criptarea folosind A5/2.
Aceasta cerere pare legitima telefonului, ntrucat intrusul joaca rolul retelei. Telefonul ncepe criptarea folosind A5/2 si trimite o certificare (acknowledgment numit
CIP HM ODCOM - Cipher Mode Complete, care confirma ca a nceput criptarea)
criptata.
4. Oscar foloseste atacul cu text criptat din sectiunea ?? pentru a gasi Kc (n mai
putin de o secunda).
5. Abia acum Oscar trimite valoarea SRES spre reteaua reala.
6. Acum Oscar este autentificat n retea, care i cere sa nceapa criptarea folosind
A5/1.
Intrusul cunoaste deja cheia Kc si poate trimite raspunsul criptat cu A5/1.
32
5.6
33
5.6.1
34
Notand cu g1 (R1) g2 (R2) g3 (R3) bitul de iesire din A5/2, se observa ca functiile
g1 (), g2 () si g3 () sunt patratice (obtinute prin aplicarea functiei maj).
3. Goldberg, Wagner si Green au mai observat ca XOR-ul dintre bitii de iesire poate
fi exprimat ca functie liniara ntre bitii starii interne din primul frame.
XOR-ul dintre bitii de iesire (la ciclul i) ai celor doua frame - uri este:
g1 (L1l1 R11 ) g1 (L1l1 R11 d1 ) g2 (L2l2 R21 ) g2 (L2l2 R21 d2 )
g3 (L3l3 R31 ) g3 (L3l3 R31 d3 ) = gd1 (L1l1 R11 ) gd2 (L2l2 R21 ) gd3 (L3l3 R31 )
unde gd1 (), gd2 (), gd1 () se pot defini ca functii liniare.
Deci XOR-ul de iesire este liniar n R11 , R22 , R33 . Mai ramane de vazut daca
functiile gd1 (), gd2 (), gd1 () sunt liniare.
Mai general, ramane de aratat ca pentru o functie patratica g(x1 , ..., xn ) si
d = d1 , ..., dn cu xi , di {0, 1}, functia
gd = g(x1 , ..., xn ) g(x1 d1 , x2 d2 , ..., xn dn )
este liniara n x1 , ..., xn .
4. Deoarece g este patratica si xi xi = xi , g poate fi scris astfel:
g(x1 , ...xn ) =
ai,j xi xj a0,0
1i,jn
1i,jn
X
1i,jn
ai,j (xi xj xi xj xi dj di xj di dj )) =
ai,j (xi dj di xj di dj ))
1i,jn
35
O solutie mai rapida este posibila daca se filtreaza valorile corecte pentru R4.
Starea interna initiala a lui R1, R2 si R3 este pe 61 biti (trei biti din R1, R2, R3 sunt
setati pe 1).
Prin urmare, sunt necesari 61 biti din k1 k2 pentru a construi Kc , n timp ce k1 k2 are
o lungime de 114 biti.
Este deci posibila construirea unui sistem liniar unic determinat, a carui solutie este
starea interna. Cele 114 61 = 53 ecuatii dependente se reduc prin eliminare gaussiana.
Ele depind de valoarea lui R4; deci, pentru fiecare valoare a lui R4 se pot scrie 53 ecuatii
VR4 (k1 k2 ) = 0 unde VR4 este o matrice de 53 114 biti iar 0 este un vector cu 53
valori nule.
Redundanta se foloseste pentru filtrarea valorilor gresite pentru care VR4 (k1 k2 ) 6= 0.
O implementare directa a atacului pe un calculator de 2GHz pe 32 biti n care toate
matricile posibile VR4 sunt prencarcate, consuma aproximativ 15 MBs de memorie RAM
si necesita cateva milisecunde CP U pentru filtrarea valorilor corecte pentru R4.
Odata ce s-a aflat R4, se pot rezolva ecuatiile liniare pentru valoarea sa, obtinand
astfel valorile pentru R11 , R21 si R31 .
Stocarea acestor sisteme de ecuatii dupa eliminarea Gauss necesita cam 60 MBs de
memorie.
Timpul de preprocesare necesar (pentru calculul ecuatiilor si al matricilor VR4 ) pe un
P C este de cateva minute.
Ramane o problema a acestui atac obtinerea acelor frame-uri care se afla exact la
distanta ceruta, cunoscand si XOR-ul dintre cheile fluide calculate pentru criptarea lor.
Atacul Petrovici - Fuster - Sabater
Un alt atac cu text clar cunoscut este propus de Petrovic si Fuster-Sabater ([?]) n anul
2000.
El necesita patru frame-uri (nu neaparat separate de o anumita distanta) din secventa
de iesire pentru reconstructia urmatorilor biti de iesire. Desi atacul nu descopera starea
interna a lui A5/2, este totusi capabil sa recupereze restul conversatiei.
Atacul mizeaza pe reinitializarile dese care au loc n cadrul convorbirii (pentru fiecare
frame transmis) si distributia proasta a valorilor speciale marcate din LF SR pentru a
reconstrui relatiile liniare dintre bitii de iesire.
Dupa ce este realizata initializarea algoritmului si cele 100 de cicluri care se ignora, se
scrie sistemul de ecuatii neliniare avand ca necunoscute starile registrilor care au avansat
un tact. Pentru fiecare tact cu deplasare al algoritmului, sistemului i se adauga o noua
ecuatie. Probabilitatea ca rangul matricii sa fie apropiat de numarul de variabile este
destul de mica. Dar chiar si asa este posibila stabilirea relatiilor liniare ntre bitii
necunoscuti care urmeaza a fi aflati si multimea de biti cunoscuti.
36
Atacul propus se bazeaza pe analiza sistemului de ecuatii asociat fiecarei stari initiale
a registrului R4.
Dupa primul set de operatii din partea de initializare (cel n care se aplica XOR ntre
primii biti din registre si cheia secreta), se poate scrie un sistem de ecuatii neliniare avand
ca variabile starile interne ale primilor trei registri la acel moment. Aceste variabile
se noteaza x1 , .., x64 unde primele 19 variabile corespund starii din R1, urmatoarele 22
corespund starii din R2 iar ultimele 23 corespund starii din R3. Ecuatiile obtinute sunt
patratice. Numarul maxim de variabile din sistemul liniarizat asociat este:
n = 64 +
19
2
22
2
23
2
Sistemul de ecuatii obtinut este liniarizat prin nlocuirea termenilor neliniari cu noi
variabile compuse. Oscar poate folosi ecuatiile liniar dependente pentru a reconstrui bitii
necunoscuti de la iesire care apar la foarte scurt timp dupa bitii cunoscuti.
5.6.2
37
din alte frame-uri, cu conditia ca ele sa fie definite peste aceleasi variabile: valorile initiale
ale lui R1, R2, R3 din frame-ul f1 .
Odata combinate ecuatiile din patru frame-uri, sistemul se rezolva prin liniarizare. Se
construiesc astfel de sisteme pentru fiecare din cele 216 valori posibile pentru R41 si se
rezolva pana se gaseste o solutie consistenta.
Solutia este starea initiala interna a frame-ului f1 .
Din modul de calcul, functia majoritara opereaza pe bitii aceluiasi registru. Deci,
termenii patratici constau din perechi de variabile din acelasi registru. R1 contribuie cu 18
21 20
17 18
= 153 produse ale lor, R2 contribuie cu 21+
= 21+210
variabile si toate cele
2
2
22 21
variabile, iar R3 contribuie cu 22+
= 22+231 variabile; deci dupa liniarizare rezulta
2
655 variabile. La acestea se adauga constanta 1 care reprezinta partea afina a ecuatiilor.
Multimea acestor 656 variabile pentru frame-ul fi se noteaza cu Si .
Ramane de aratat cum se pot descrie bitii de iesire din frame-urile f2 , f3 , f4 drept
combinatii liniare de variabile din multimea S1 . Se presupune cunoscuta valoarea lui R41
si faptul ca initializarea este liniara n valoarea publica f .
Cum R11 , R21 , R31 sunt necunoscute, stim numai XOR-ul dintre R11 , R21 , R31 si
respectiv R12 , R22 , R32 .
Fiecare valoare din S2 va fi translatata n S1 astfel:
Fie 1 valoarea concatenata a variabilelor liniare din S1 si g o functie patratica astfel
ncat S = g(1 ). Stim ca valoarea concatenata a variabilelor liniare din S2 poate fi scrisa
ca 2 = 1 d1,2 si deci S2 = g(2 ).
La fel ca n primul atac, XOR-ul dintre S2 si S1 este liniar n bitii lui 1 , deci S2 poate
fi scris n termeni liniari n variabilele lui S1 .
Se poate construi deci un sistem de ecuatii patratice folosind cheile fluide din cele patru
frame-uri, cu variabile luate numai din S1 . Se va crea un sistem de ecuatii de forma
SR41 S1 = k unde SR41 este matricea sistemului de dimensiune 456 656, iar k =
k1 kk2 kk3 kk4 (de 456 biti).
Odata obtinute 656 ecuatii liniar independente, sistemul poate fi rezolvat prin eliminare gaussiana. Se observa nsa ca practic este dificil sa colectionam 656 ecuatii
liniar independente (datorita frecventelor initializari ale algoritmului A5/2 odata la
fiecare 228 biti). Nu trebuie aflate nsa toate variabilele, ci numai cele liniare. Autorii
au ajuns experimental la concluzia ca aproximativ 450 ecuatii liniar independente sunt
suficiente pentru a determina valorile variabilelor liniare originale din S1 .
De asemenea se mai pot obtine 13 ecuatii liniare aditionale, datorita cunoasterii lui
R41 si a numarului de frame. Fie R12341 = R11 kR21 kR31 kR41 un vector de 77 biti
(neluand n considerare cei patru biti setati pe 1 n cadrul procedurii de initializare).
Cum R12341 este liniar n bitii lui Kc si f1 , putem scrie:
R12341 = NK Kc Nf f1
(1)
38
componenta de initializare din A5/2. Spatiul liniar generat de coloanele lui NK este de
dimensiune 64, dar cum fiecare vector are 77 de biti, raman 13 ecuatii liniare n NK Kc .
Fie HK matricea acestor ecuatii, de dimensiune 13 77:
H K Nk = 0
unde 0 este matricea nula de dimensiuni 13 64.
Prin multiplicarea relatiei (1) la stanga cu HK se obtine:
HK R12341 = HK NK Kc HK Nf f1 = HK Nf f1
R
L
astfel ncat:
si HK
HK se poate mparti n HK
L
R
HK R12341 = HK
R1231 HK
R41
R
L
R
L
de dimensiune 13 16 si R1231 =
de dimensiune 13 61, HK
, cu HK
kHK
unde HK = HK
R11 kR21 kR31 .
Rezulta:
L
R
HK Nf f1 = HK R12341 = HK
R1231 HK
R41
Deci, pe baza lui R41 si a lui f1 se pot obtine 13 ecuatii liniare peste bitii din registrii
R1, R2, R3.
Recapituland, atacul consta n:
1. Se ncearca toate cele 216 valori;
2. Pentru fiecare valoare se rezolva sistemul liniarizat de ecuatii care descriu bitii de
iesire pentru patru frame-uri.
3. Solutia obtinuta plus valoarea lui R41 reprezinta o sugestie pentru starea interna.
Majoritatea valorilor lui R41 pot fi identificate usor datorita inconsistentelor aparute
la eliminarea gaussiana.
Complexitatea timp a atacului se poate calcula astfel: sunt 216 valori aleatoare pentru
bitii din R41 . Pentru fiecare valoare se rezolva un sistem liniar binar de 656 variabile,
care presupune 6563 228 operatii XOR.
Deci, complexitatea totala este de aproximativ 244 operatii XOR.
Autorii spun ca implementarea algoritmului pe un sistem Linux 800 MHz Pentium
III gaseste starea interna n aproximativ 40 de minute (estimare 2003) si necesita putina
memorie (sistemul liniarizat ocupa aproximativ 54 KB).
39
40
candidat pentru R41 , ncarcarea matricei solutie relevante de pe disc dureaza cateva zeci
de milisecunde.
In implementarea autorilor, atacul dureaza mai putin de o secunda pe un P C.
Atac cu text criptat
In aceasta sectiune este prezentat un atac care transforma atacurile anterioare ntr-unul
cu text criptat cunoscut, si care verifica anumite combinatii liniare de biti dinainte de
criptare, bazandu-se pe teoria codurilor corectoare de erori.
GSM foloseste corectarea erorilor pentru a rezista la erorile de canal. In timpul
transmisiei, un mesaj este ntai transformat cu un cod corector de erori, ceea ce mareste
considerabil lungimea mesajului. In faza a doua, mesajul este criptat si ulterior transmis.
Aceasta procedura inversata contrazice practica obisnuita: de a cripta ntai un mesaj
si apoi de a-l codifica cu un cod corector de erori. Tocmai aceasta trecere a mesajului
prin codurile corectoare de erori nainte de criptare introduce o redondanta exploatata n
atacul curent.
Exista diverse scheme de corectare a erorilor n GSM , pentru diferite canale. Autorii
atacului s-au concentrat asupra codurilor corectoare de erori aplicate canalului SACCh,
folosite de asemenea si pentru canalul SDCCh. Ambele canale sunt utilizate la nceputul
apelului. Alte canale sunt accesate n alte etape ale conversatiei, iar atacul propus poate
fi adaptat si la acestea (desi este suficient sa gasim cheia pe canalul SDCCh la nceputul
apelului, pentru ca aceasta nu se schimba n timpul conversatiei).
In SACCh, mesajul sursa (care se codifica) are o lungime fixa de 184 biti; dupa
codificare, va avea 456 biti. Acestora li se aplica procedura de interleaving5 , dupa care
sunt mpartiti n patru frame-uri, ulterior criptate si transmise.
Operatiile de codificare si interleaving pot fi modelate mpreuna ca o multiplicare
a mesajului sursa (reprezentat ca un vector binar P de 184 biti) cu o matrice G de
dimensiune 456 184 peste GF (2) si apoi XOR-area rezultatului cu un vector constant
g:
M = (G P ) g
(2)
Vectorul M este mpartit apoi n patru frame-uri, iar fiecare este criptat conform
procedeului corespunzator algoritmului A5/2.
Cum G este o matrice binara, pentru orice vector M care verifica (2) exista 456184 =
272 ecuatii liniar independente.
Fie H o matrice definita prin relatia
H (M g) = 0
unde M este dat de (2) (n teoria codurilor, H se numeste matrice de control).
5
41
Inmult
im acest sistem la stanga cu H si obtinem
(H SR41 ) S1 = (H k).
H este matricea fixata prezentat
a anterior iar H k este calculat din textul criptat.
Prin urmare, acest sistem se poate rezolva si atacul continu
a ca n sectiunea anterioara.
atacul cu text clar cunoscut, se ncearc
In
a toate cele 216 sisteme de ecuatii posibile S.
atacul cu text criptat cunoscut, se ncearc
In
a toate cele 216 sisteme de ecuatii posibile
faza sa de precalcul, pentru fiecare astfel de sistem se g
H SR41 . In
asesc dependentele
liniare ale liniilor (prin eliminare gaussian
a). C
and se trece la faza de atac, se elimina
valorile gresite ale lui R41 verificand dac
a dependentele liniare g
asite n etapa de precalcul
se mentin pe bitii lui H k.
O diferenta tehnica ntre atacul cu text criptat si atacul cu text clar cunoscut este
aceea ca n timp ce pentru cel din urma atac, patru frame-uri de text clar furnizeaza
suficiente ecuatii, pentru primul atac sunt necesare opt frame-uri.
Motivul este ca n atacul cu text criptat, din 456 biti de text criptat se extrag numai 272
de ecuatii.
42
Complexitatea timp a atacului cu text criptat optimizat este aceeasi ca n cazul atacului cu text clar optimizat. Autorii au implementat o simulare a atacului si au certificat
experimental aceste rezultate.
5.6.3
Atacul prezentat n aceasta sectiune a fost publicat ntr-un articol din 2007 ([?]). Autorii
pornesc de la atacul cu text criptat cunoscut si arata ca atacul bazat pe hardware aduce
mbunatatiri n termeni de timp, memorie si flexibilitate.
Abordarea este similara cu cea descrisa n atacul anterior, dar fara a folosi precalcule
si fara a impune conditii asupra frame-urilor de text criptat. Mai mult, autorii au creat o
arhitectura care sa atace direct canalul de vorbire. In particular, pentru atac se folosesc
frame-uri de text criptat din canalele de trafic pentru vorbire (T Ch) n loc de canale
de control specifice (SDCCh). Avantajul este ca monitorizarea (pentru receptionarea de
frame-uri) poate ncepe oricand n timpul apelului, fara a fi nevoie sa se astepte trimiterea
pachetelor de date printr-un canal de control specific.
Atacul asupra canalului de vorbire necesita 16 frame-uri de text criptat la intrare, iar la
iesire va gasi starea initiala (secreta). Principalele parti ale arhitecturii hard constau n 3
generatori de ecuatii si un bloc care se ocupa de rezolvarea sistemelor liniare. Componenta
hardware propusa pentru cel din urma bloc se numeste SM IT H si poate rezolva orice
sistem supra-determinat de ecuatii liniare, efectuand extrem de rapid eliminari gaussiene.
Ea a fost construita pe un F P GA (retea de porti logice reconfigurabile) de cost redus
iar ideea matematica este urmatoarea: un sistem liniar de ecuatii de forma A x = b se
transforma (prin aplicarea operatiilor elementare asupra liniilor) n sistemul echivalent
U x = b0
(3)
43
SDCCh.
Ideea generala este de a ghici starea interna a registrului R4 chiar dupa initializare, si
de a scrie fiecare bit al cheii generate folosita pentru criptarea celor l frame-uri de text
criptat n termeni de starile initiale ale registrilor R1, R2, R3.
Folosind anumite informatii despre bitii cheii, se construieste un sistem supradeterminat
patratic de ecuatii, care apoi este liniarizat si rezolvat prin eliminari gaussiene.
Procedura se repeta pentru diverse valori ale lui R4 pana este gasita solutia corecta.
Cu aceasta se poate construi usor starea interna a lui A5/2 dupa initializare, pentru
frame-uri arbirare care au fost criptate folosind cheia K.
Apoi se pot decripta toate celelalte frame-uri si gasi, n final, cheia de sesiune.
Arhitectura necesara pentru realizarea atacului este schitata n figura de mai jos; ea accepta la intrare 16 frame-uri de text criptat si cele 16 numere f de frame corespunzatoare;
iesirea contine starea initiala interna a celor 4 registri, formata din 77 biti 0 , ...77 (s-au
exclus cei 4 biti setati pe valoarea 1).
Arhitectura propus
a pentru atacul A5/2
Cele 16 frame-uri mpreuna cu numerele de frame corespunzatoare, notate IV
sunt stocate n Ciphertext Module (CM ). Fiecare din cei trei generatori de ecuatii (EG)
genereaza 185 ecuatii liniare avand bitii i (0 i 60) ca variabile.
EG primesc bitii de text criptat si numerele de frame IV de la CM . Fiecare ecuatie
generata este trecuta n bufferul din blocul care rezolva ecuatiile (LSE - Solver). Bufferul
este necesar pentru ca LSESolver-ul accepta o ecuatie la fiecare tact, iar cele trei EG-uri
produc simultan cate o ecuatie. Dupa ce cele 555 ecuatii se acumuleaza n LSE Solver,
acesta lanseaza etapa de rezolvare, producand un candidat pentru starea secreta.
44
Candidatul este trimis din LSE Solver catre Key Tester, care verifica daca a fost gasita
o stare corecta.
Procesul de verificare se desfasoara n paralel cu determinarea unui nou candidat. Mai
precis, n timp ce ecuatiile pentru al j-lea candidat sunt generate de EG, al (j 1)-lea
candidat este testat de catre KT . Toate procesele sunt controlate de Unitatea Logica
de Control, care efectueaza sincronizarea si clocking-ul pentru CM, EG, LSE Solver si
KT . Principala sa sarcina este de a verifica daca ecuatiile contin combinatii corecte de
biti de text criptat si cheie.
5.7
Concluzii
Modelul de securitate propus de standardul GSM este compromis pe mai multe nivele si
este deci vulnerabil la atacuri care tintesc anumite parti ale retelei operatorului. Algoritmii
de securitate (nepublicati) ncorporati n sistem s-au dovedit nesiguri. Algoritmul A5/2
folosit pentru criptare este vulnerabil la atacuri cu text clar si chiar cu text criptat, iar
dimensiunea redusa a spatiului cheii si a registrilor LF SR din arhitectura algoritmilor de
criptare permit chiar un atac prin forta bruta.
Exista mai multe atacuri publicate pentru ambii algoritmi A5/1 si A5/2.
Atacul pentru algoritmul A5/2 care necesita numai 4 frame-uri de text clar cunoscut
si se bazeaza pe o etapa masiva de precalculeori reuseste obtinerea cheii si decriptarea
ntr-un timp foarte scurt, de numai o secunda. Etapa de precalcul poate fi efectuata pe
majoritatea computerelor actuale.
Pe de alta parte, atacul bazat pe hardware aduce mbunatatiri n complexitatea timp; el
se bazeaza pe o arhitectura hardware masiv paralela, care elimina necesitatea unei etape
premergatoare de calcule.
Atacurile asupra algoritmului A5/1 sunt si mai numeroase, ridica probleme mai mari,
dar chiar si n acest caz progresele tehnice simplifica mult lucrurile. Cea mai recenta propunere de atac pentru A5/1 ([?]) este de asemenea bazata pe hardware si este remarcabila
pentru ca este complet pasiva, costul total pentru harware se situeaza n jurul sumei de
numai 1000 dolari, iar timpul total de spargere a cheii este de 30 de minute (putand
ajunge si la cateva secunde, daca se mareste puterea hardware).
Slabiciunile dovedite ale algoritmilor de criptare GSM nu sunt singurele existente n
sistem. Anonimitatea poate fi atacata activ, folosind echipamente care pot fi achizitionate
la preturi relativ modice (de pilda, daca se foloseste o statie de baza uzata).
Amenintarile legate de clonarea SIM par sa fie destul de reale. Este adevarat ca
metoda cea mai usoara este prin acces fizic la cartela tinta, astfel ncat nu poate fi o
amenintare foarte serioasa. Pe de alta parte, pentru a clona o cartela SIM fara a avea
acces fizic la ea devine mult mai costisitor. In principiu, atacatorul are nevoie de o statie
de baza cu semnal puternic, costul acesteia putand fi astazi n jurul a cateva zeci de mii
de dolari.
Bibliografie
[1] A. Atanasiu Securitatea informatiei, vol. 1 (Criptografie), Ed. Infodata, Cluj (2007)
[2] A. Atanasiu Teoria codurilor corectoare de erori, Ed. Universitatii Bucuresti (2001)
[3] P. Chandra BULLETPROOF WIRELESS SECURITY: GSM , UMTS, 802.11,
and Ad Hoc Security (Communications Engineering), Elsevier (2005).
[4] A. Mihaita Securitatea sistemelor GSM , Lucrare dizertatie, 2009.
[5] S. Martin Communication Systems for the Mobile Information Society, Wiley
(2006).
[6] S. Redl, M. Weber, K. Matthias, M. Oliphant GSM and Personal Communications
Handbook, Artech House, 1998.
[7] E. Barkan, E. Biham, N. Keller Instant Ciphertext-Only Cryptanalysis of GSM
Encrypted Communication , Journal of Cryptology, vol. 21, nr.3 (2008).
[8] E. P. Barkan Cryptanalysis of Ciphers and Protocols, PhD Thesis, Technion Israel
Institute of Technology (2006)
[9] P. Yousef GSM Security: a Survey and Evaluation of the Current Situation, Master
Thesis, Linkping, 2004
[10] A. Bogdanov, T. Eisenbarth, A. Rupp A Hardware-Assisted Realtime Attack on
A5/2 without Precomputations, Cryptographic Hardware and Embedded Systems CHES 2007, LNCS, Sprnger Verlag (2007).
[11] P.T. Ngarm, P. Poocharoen GSM Security Vulnerability, http://islab.
oregonstate.edu/koc/ece478/03Report/toparkngarm-poocharoen-project578.pdf
[12] M. Briceno, I. Goldberg, D. Wagner A pedagogical implementation of the GSM
A5/1 and A5/2 voice privacy encrypted algorithms, http://cryptome.org/GSM a512.htm, 1999
45
46
BIBLIOGRAFIE
[13] N. Courtois, W. Meier Algebraic Attacks on Stream Ciphers with Linear Feedback.
In: Biham, E. (ed.) EUROCRYPT 2003. LNCS, vol. 2656, pp. 346359, Springer,
Heidelberg (2003).
[14] J. Neil Croft, S. O. Martin The use of a Third Party Proxy in Achieving GSM
Anonymity, Southern African Telecommunication Networks and Applications Conference 2004 (SATNAC 2004), D Browne (ed), Stellenbosch, Africa de Sud (2004).
[15] S. Petrovic, A. Fuster-Sabater Cryptanalysis of the A5/2 Algorithm, IACR ePrint,
Report 200/52 (2000)
[16] B. Schneier http://www.schneier.com/blog/
Capitolul 6
Securitate pe Internet (IP Sec)
6.1
Introducere
Un gateway de securitate este un sistem intermediar care implementeaza diverse protocoale IP Sec.
A se vedea Definitia 6.1.
6.2
Arhitectura IP Sec
Asa cum s-a stablit, IP Sec este compus dintr-un set de protocoale interconectate, al caror
scop este asigurarea unor servicii de securitate.
In termeni generali, arhitectura unui IP Sec este descrisa de figura de mai jos:
Pachet IP
?
-
Motor ESP/AH
Baze de date
IP Sec
Nivel 1A
Protocoale de securitate
ncapsulate
Antet de Autentificare
Nivel 2
6
?
Criptare
Autentificare
si Integritate
Managementul cheilor
Nivel 3
Nivel 1B
ESP
AH
z
Algoritmi
de
criptare
?+
- IKE v2
6
Algoritmi
de
autentificare
Gestiune chei
6.3
Negociere IP Sec
In momentul cand un pachet de date este transmis ntre doi utilizatori, are loc un protocol
de negociere lansat de expeditor (notat Alice), respectiv destinatar (Bob).
6.3.1
Pachetul de iesire
Serverul Alice vrea sa trimita pachetul de date spre serverul Bob. Pentru aceasta se deschide o aplicatie IP Sec, care functioneaza dupa urmatorul protocol (numit negociere):
1. Aplicatia apeleaza stiva T CP/IP pentru a prelua .
2. este preluat de un algoritm de negociere AN , care construieste un nvelis de
protectie.
3. AN cauta pachetul n baza de date a protocoalelor de securitate si decide daca
este necesara o protejare a sa sau doar un permis de trecere IP Sec. In final, poate
fi
(a) protejat folosind serviciile IP Sec;
(b) eliminat;
(c) asociat cu un permis de trecere IP Sec.
4. Daca trebuie protejat, AN trimite aplicatiei adresa lui Bob, care o cauta n SA
si SP I din bazele sale interne de date.
5. Daca nu a fost negociat nca un SA pentru adresa respectiva, atunci aplicatia
lanseaza o negociere IKE cu adresa respectiva, pentru crearea unui SA.
6. Dupa terminarea negocierii, aplicatia trimite SP I si SA spre AN ; acesta va construi
o protectie pentru folosind cheia negociata de aplicatie.
6.3.2
Pachetul de intrare
Daca Bob primeste un pachet de date n portul rezervat negocierii IKE (de obicei acest
port este 500 sau 4500), atunci:
1. Daca pentru adresa primita nu a fost negociat nca nici un SA, atunci AN va
transmite pachetul aplicatiei de negociere.
2. Daca are un SP I asociat, atunci este cautat SA-ul corespunzator n baza de date
IP Sec. Daca SP I nu are corespondent n baza de date, pachetul este respins.
3. Daca nu contine nici un SP I, atunci AN poate deduce ca nu are asociat nici
un SA si l respinge.
6.4
6.4.1
Antet IP
Next HA
AH
Date curente
8 biti
Lungimea campului
de date curente
Rezervat
Cuvant 1
Cuvant 2
Numarul de secventa
Cuvant 3
32 biti
Cuvant 4, . . .
-
unde:
Next HA: zona de 8 biti care identifica tipul antetului pe care l are urmatorul
camp de date curente (payload).
Lungimea c
ampului de date curente: Daca AH este format din s cuvinte,
contintul acestui camp este s 2. In cazul standard (ca n figura) al unui AH de
4 cuvinte, tot antetul de autentificare are 6 cuvinte, deci continutul acestui camp
este valoarea 4 (scrisa pe 8 biti).
Rezervat: Camp de 16 biti, rezervat pentru o utilizare ulterioara.
Indexul parametrilor de securitate (SP I): indica protocoalele de securitate,
algoritmii si cheile folosite. Impreuna cu adresa IP a destinatarului si protocolul de
securitate (AH), el identifica n mod unic asocierea de securitate pentru o comunicare. Valoarea SP I este selectata de (sistemul) destinatar n momentul stabilirii SA,
din intervalul [1, 255] (codificarea este asigurata de IAN A The Internet Assigned
Numbers Authority).
Num
arul de secvent
a: spune cate pachete au fost trimise si asigura protectie
non-reply. Campul contine un contor monoton crescator.
Prezenta lui este obligatorie, chiar daca destinatarul Bob nu alege o optiune
non-replay pentru un anumit SA.
La initierea unei asocieri de securitate, contoarele lui Alice si Bob sunt setate
pe 0. Primul pachet trimis folosind un SA fixat va avea numarul 1.
Daca este activat un non-replay (lucru realizat de obicei by default), numarul
de secventa nu se aloca niciodata ntr-un ciclu.
Numarul maxim de pachete transmise ntr-un SA este 232 . Cele doua contoare
trebuie resetate (stabilind un nou SA si deci o noua cheie) nainte ca ele sa
ajunga la aceasta valoare.
ICV: Este valoarea de control a integritatii pachetului de date transmis. Este o
variabila ntreaga scrisa ca un multiplu de 32 biti (pentru IP v4) sau 64 biti (IP v6),
variante selectate printr-un camp suplimentar, inclus explicit. Toate implementarile
trebuie sa asigure acest camp suplimentar.
Pentru a calcula ICV -ul unui AH se tine cont de:
Campurile antetelor IP , care sunt sau neschimbate n trafic, sau sunt predictibile ca valoare (pentru un AH) n momentul receptiei.
Toate datele din antetul AH.
Datele oferite de nivelul de protocol si setul de date curente despre care se
presupune ca sunt neschimbate n trafic.
Algoritmii folositi pentru implementarea antetului de autentificare sunt:
HM AC SHA1 96; obligatoriu.
AES XBCB M AC 96; recomandabil.
HM AC M D5 96; optional.
6.4.2
ESP
Protocolul ESP (RF C 4303) ofera pe langa serviciile asigurate de un AH confidentialitatea datelor, si ntr-o forma limitata a traficului pe canal (deci criptarea datelor).
Principala diferenta dintre autentificarea asigurata de ESP si cea oferita de AH
consta n extinderea ariei de acoperire: ESP nu protejeaza nici un antet IP care nu
este ncapsulat prin ESP (modul tunel).
Setul de servicii ESP depinde de optiunile selectate n momentul stabilirii asocierii de
securitate si de locul implementarii.
Autentificarea originii datelor si corectitudinea informatiilor de conectare sunt servicii
auxiliare numite integritate. Pentru protocol trebuie selectat cel putin unul din serviciile
de confidentialitate sau integritate.
Serviciul non-replay poate fi ales doar mpreuna cu cel de integritate, iar aceasta
alegere este n totalitate la dispozitia destinatarului.
Confidentialitatea fluxului din trafic necesita alegerea modului tunel si ea este realizata
efectiv daca se include n securitatea la nivel de gateway unde agregarea traficului poate
masca pachetele de informatie sursa - destinatie.
Autentificare
Criptare
Antet IP Original
Antet ESP
Rezumat ESP
Date curente
ICV ESP
32 biti
ESP asigura criptarea unui IP la nivel de pachet, folosind algoritmi de criptare simetrici. Sunt admisi diversi algoritmi cel recomandat de standard fiind AES.
Sa dam o descriere a campurilor dintr-o ncapsulare ESP (conform figurii de mai sus):
SPI: Identic cu formatul AH.
Num
arul de secvent
a: Identic cu formatul AH.
Date curente (Payload data): Camp de lungime variabila care contine datele descrise de campul Next Antet.
ESP foloseste algoritmi de criptare simetrici si deoarece pachetele IP pot veni
ntr-o ordine arbitrara fiecare pachet va contine si informatii de sincronizare criptografica (de exemplu un vector de initializare).
Algoritmii de criptare utilizati n implementari sunt:
3DES CBC: obligatoriu.
6.4.3
IP Sec poate fi implementat pe doua tipuri de echipament: pe server gazda sau pe poarta
(gateway) de securitate.
Definitia 6.1. Un gateway de securitate este un sistem intermediar ntre dou
a retele.
Canalul de intrare ntr-un gateway este nesigur, iar canalul de iesire este securizat.
Un gateway implementeaza IP Sec pe interfata nesigura, pentru a permite comunicatii
securizate ntre servere gazda de pe ambele laturi.
Astfel, serviciile de securitate pot fi asigurate:
10
6.5
11
Definitia 6.2. Protocolul IKE (Internet Key Exchange) stabileste proceduri si formate
de pachete de date care stau la baza definirii, negocierii, modific
arii si elimin
arii asocierilor de securitate (SA). El asigur
a cadrul de securitate pentru transferul de chei si
autentificarea datelor, independent de mecanismul de generare al cheilor, algoritmii de
criptare sau mecanismele de autentificare.
Protocolul IKE este utilizat free n doua versiuni: IKE v1 (definit de RF C 2409) si
IKE v2 (definit n prima varianta n decembrie 2005 cu RF C 4306, iar forma completa
n septembrie 2010, prin RF C 5996). Ambele au fost dezvoltate si cu drept de copyright
de ISOC (The Internet SOCiety).
Datele curente ale unui SA propun un set de algoritmi de criptare, mecanisme de
autentificare si algoritmi de stabilire a cheilor care sa fie utilizati n IKE, ESP si/sau
AH. Protocolul IKE nu se limiteaza la anumiti algoritmi; el permite constructii pentru
accesarea upgradarilor sau a altor mecanisme care pot fi preferate de utilizatori. Aceste
noi obiecte cu care va lucra IP Sec nu necesita dezvoltarea unui nou IKE sau nlocuirea
celui vechi.
Vom prezenta n aceasta sectiune elementele principale din IKE; v2, , urmaand ca
ulterior sa abordam si IKE v1.
In mod obisnuit, o asociere de securitate include obligatoriu urmatorii parametri (fara
a se limita doar la acestia):
1. Tipul de protectie folosit (ESP sau AH).
2. Algoritmul de autentificare folosit cu AH.
3. Cheile folosite cu algoritmul de autentificare din AH.
4. Algoritmul de criptare si modul, utilizate cu ESP .
5. Cheia utilizata de algoritmul de criptare n ESP .
6. Vectorul de initializare pentru algoritmul de criptare utilizat n ESP .
7. Algoritmul de autentificare si modul, utilizate cu ESP .
8. Cheia de autentificare utilizata cu algoritmul de autentificare n ESP .
9. Durata de valabilitate a cheii utilizate sau data cand ea trebuie schimbata.
10. Algoritmii de dispersie pentru crearea amprentei care va fi semnata.
11. Informatii despre grupul peste care se va defini schimbul de chei Diffie - Hellman.
12. Perioada de valabilitate a asocierii de securitate curente.
13. Adresa sursei care a construit asocierea de securitate.
12
6.5.1
Selectarea algoritmilor
6.5.2
Alice (care initiaza comunicarea) propune un set de algoritmi pe care poate sa i suporte
sistemul sau; Bob va selecta din ei algoritmii pe care i agreaza, crend astfel un IKE SA
(asocierea de securitate corespunzatoare IKE). Acesta este utilizat pentru protejarea
negocierii pentru formarea protocolului SA.
In general, doua entitati (de exemplu doua servere IP Sec) pot negocia mai multe
SA-uri.
Comunicarile IKE constau din perechi de mesaje: o cerere urmata de un raspuns.
Primul schimb de mesaje consta totdeauna din doua cereri/raspuns: IKE SA IN IT
si IKE AU T H.
13
IKE-SA-INIT
In acest prim schimb de mesaje, initiatorul Alice si destinatarul Bob negociaza utilizarea
algoritmilor de criptare (definind un IKE SA) si schimba informatiile necesare stabilirii
unui schimb de chei (trimitand nonce-uri si valorile Diffie - Hellman). Cheile alese sunt
utilizate pentru protejarea schimbului urmator IKE AU T H.
La primul pas (Pas 1), Alice trimite un mesaj de forma
HDRkSAA 1kKEA kNA
unde
HDR Zona care contine SP I, numarul versiunii IKE, si alti identificatori
(cum ar fi datele curente pentru KEA si SAA 1).
SAA 1 Informatia propusa de Alice pentru crearea IKE SA: generatorul
de numere pseudo-aleatoare si algoritmii criptografici agreati, precum si grupul
de baza pentru protocolul Diffie - Hellman.
KEA Cheia Diffie - Hellman g a a lui Alice.
NA un nonce generat de Alice (pentru protejarea contra unui atac reply).
Bob raspunde (Pas 2) cu mesajul
HDRkSAB 1kKEB kNB k[CERT REQ]
unde
Continutul HRD, SAB 1, KEB sunt similare cu informatiile analoge ale lui
Alice. Sirul algoritmilor propusi de Bob sunt o selectie din intersectia listei
trimise de Alice si proprii sai algoritmi agreati. Cheia Diffie - Hellman g b si
nonce-ul NB completeaza informatia curenta.
Optional, Bob poate solicita un anumit tip de certificat (de exemplu X.509),
trimitand aceasta cerere n CERT REQ.
Dupa acest prim schimb de mesaje, partenerii au stabilit un IKE SA continut n SAB 1,
neautentificat nca.
Similar, dupa schimbul de chei Diffie-Hellman, ei au generat o cheie de sesiune neautentificata SKEY SEED din care vor deriva ulterior toate cheile necesare pentru IKE SA:
SKe cheia de criptare (cate una pentru fiecare directie);
SKa cheia pentru autentificarea si verificarea integritatii mesajului (cate una pentru
fiecare directie);
SKd cheia pentru derivarea cheilor necesare asocierilor de securitate derivate;
SKp cheia pentru crearea datelor curente din schimbul de mesaje urmator.
De remarcat ca n acest moment Alice si Bob au stabilit algoritmii care vor fi utilizati
n comunicarile ulterioare, dar nca nu s-au autentificat reciproc.
14
IKE-SA-AUTH
In acest al doilea schimb de mesaje Alice si Bob se autentifica reciproc folosind diverse
mecanisme de autentificare (semnaturi digitale, certificate, EAP Extensible Authentication Protocol, chei partajate). Acum se creaza primul IKE SA si asocierea sa de
securitate IP Sec; ele se numesc generic child SA.
Alice trimite (Pas 3) lui Bob
HDRkSK{IDA , [CERT ], [CERT REQ], [IDB ], AU T H, SAA 2, T SA , T SB }
unde:
HDR antetul; include SP I-urile celor doi parteneri, numarul versiunii IKE,
identificatorii de mesaje folositi n IKE SA IN IT .
SK{. . .} se asigura criptarea si integritatea datelor folosind SKe si SKa .
CERT un certificat al lui Alice, eliberat de o entitate P KI.
CERT REQ O lista de autoritati de certificare de ncredere.
IDA , IDB identificatorii celor doi parteneri (Alice, Bob).
AU T H autentificarea (un mesaj semnat).
SAA 2 Informatia propusa de Alice pentru crearea primului childSA; poate
contine de exemplu antetul de autentificare (AH sau ESP ), protocoalele utilizate etc.
T SA , T SB selectori de trafic. Transmit celor doi parteneri adresele de contact,
porturile si protocolul IP folosit.
CERT, CERT REQ si IDB sunt optionale.
Exemplul 6.2. Daca Alice trimite T SA = {192.0.1.0 192.0.1.255},
T SB = {192.0.2.0 192.0.2.255}, nseamn
a c
a ea doreste ca toat
a informatia s
a i
fie trimisa la o adresa IP din domeniul {192.0.1.0 192.0.1.255} si solicit
a ca
tot ce transmite pe adresa lui Bob s
a fie la o adres
a IP din domeniul T SB =
{192.0.2.0 192.0.2.255}.
Bob raspunde (Pas 4) cu mesajul
HDRkSK{IDB , [CERT ], AU T H, SAB 2, T SA , T SB }
unde
HDR include SP I-ul lui Alice si Bob, versiunea IKE si identificatorul de
mesaj trimis de Alice.
15
16
HDRkSK{SA, NA , [KeA ]}
HDRkSK{SA, NB , [KeB ]}
2. Daca CREAT E child SA este folosit n obtinerea noilor chei pentru child SA,
atunci are loc schimbul de mesaje
(a) Alice Bob :
De remarcat ca Alice identifica child SA ale carui chei trebuie schimbate notificand
datele curente prin N (REKEY SA).
6.5.3
17
Dupa crearea unui IKESA, Alice si Bob si pot transmite mesaje de control privind erori
sau diverse notificari. Mesajele schimbate pot fi notificari (N ), stergeri (D) si configurari
de date (Configuration Payloads - CP ).
Schimbul de informatii poate sa nu contina mesaje sa fie doar o verificare daca partenerul
mai este prezent (ceva de tipul Mai esti acolo ?).
Un schimb de informatii este de forma:
Alice
Bob
HDRkSK{[N ], [D], [CP ], . . .}
HDRkSK{[N ], [D], [CP ], . . .}
6.5.4
18
6.5.5
Daca n CREAT E child SA se genereaza un nou child SA, componentele cheii sunt
generate astfel:
KEY COM P = prf + (SKd , NA kNB )
sau
KEY COM P = prf + (SKd , g ab kNA kNB )
In primul caz, NA si NB sunt nonce-urile generate n comunicarea CREAT E childSA.
In al doilea caz, apare si cheia partajata g ab obtinuta din acelasi schimb de informatii,
componenta legata de Diffie-Hellman.
6.5.6
19
Pentru autentificare, IKEv2 foloseste algoritmi de semnatura digitala, partajare de secrete si metode EAP (definite n RF C 3748).
Pentru autentifcarea datelor curente, AU T H dispune de doua informatii: metoda de
autentificare folosita si datele de autentificat. IKEv2 foloseste drept metode de autentificare: semnatura digitala RSA, semnatura digitala DSS si codul de integritate a mesajelor
bazat pe partajare.
Pentru a detalia, sa revedem Pasii 1 4 din IKE IN IT si IKE AU T H.
1. La Pasul 3, datele de autentificat pe care Alice le semneaza n AU T H includ
mesajul trimis la Pasul 1, completat cu NB si cu valoarea prf (SKpB , IDBB ). Aceste
ultime doua valori nu au fost trimise explicit ci erau incluse n mesajul semnat
AU T H. IDBB este ID-ul datelor curente ale lui Bob, din care s-a eliminat antetul.
2. Similar, la Pasul 4, datele de autentificat pe care Bob le semneaza n AU T H
includ mesajul trimis la Pasul 2, completat cu NA si cu valoarea prf (SKpB , IDAA ).
Aceste ultime doua valori nu au fost trimise explicit ci erau incluse n mesajul
semnat. IDAA este ID-ul datelor curente ale lui Alice, din care s-a eliminat antetul.
Mesajele din IKEAU T H pot include un certificat sau o autoritate de certificare CA care
legalizeaza semnaturile digitale folosite de parteneri. IKEv2 permite lui Alice sa indice
autoritatile de certificare si tipurile de certificate pe care le foloseste (X.509, P KCS #7,
P GP, DN S SIG etc). Dupa selectarea unui CA, protocolul accepta autentificarile acestuia asupra metodelor folosite.
Daca Alice prefera o autentificare extinsa, ea nu va include la Pasul 3 datele AU T H.
Atunci Bob va include la Pasul 4 un camp EAP si trimite SAB 2, T SA , T SB pana
cand autentificarea este completa.
In aceasta varianta, IKE IN IT si IKE AU T H vor avea forma urmatoare:
1. Alice Bob :
2. Bob Alice :
3. Alice Bob :
4. Bob Alice :
5. Alice Bob :
HDRkSK{EAP }
6. Bob Alice :
HDRkSK{EAP (succes)}
7. Alice Bob :
HDRkSK{AU T H}
8. Bob Alice :
HDRkSK{AU T H, SAB 2, T SA , T SB }
20
6.5.7
Schimbul de chei Diffie-Hellman este folosit n IKE pentru a genera componentele cheilor.
Dupa nchiderea conexiunii, ambii parteneri uita nu numai cheile folosite, dar si secretele
care au stat la baza calculelor acestora.
IKE foloseste trei reprezentari de grupuri: de exponentiere modulara (numite M ODP ),
grupuri pe curbe eliptice peste GF (2n ) (numite EC2N ) si grupuri pe curbe eliptice peste
GP [P ] (numite ECP ). Pentru fiecare reprezentare sunt posibile diverse implementari, n
functie de parametrii selectati.
Standardele pentru IKEv1 si IKEv2 specifica urmatoarele grupuri:
Grup 2: Grup de exponentiere modulara cu un modul de 1024 biti.
Este definit de:
- generatorul g = 2,
- modulul p = 21536 21472 1 + 264 {[21406 ] + 741804} (primalitatea lui a fost
demonstrata riguros).
Valoarea n hexazecimal a acestui numar este:
FFFFFFFF
29024E08
EF 9519B3
E485B576
EE386BF B
C2007CB8
83655D23
670C354E
FFFFFFFF
8A67CC74
CD3A431B
625E7EC6
5A899F A5
A163BF 05
DCA3AD96
4ABC9804
C90F DAA2
020BBEA6
302B0A6D
F 44C42E9
AE9F 2411
98DA4836
1C62F 356
F 1746C08
2168C234
3B139B22
F 25F 1437
A637ED6B
7C4B1F E6
1C55D39A
208552BB
CA237327
C4C6628B
514A0879
4F E1356D
0BF F 5CB6
49286651
69163F A8
9ED52907
FFFFFFFF
80DC1CD1
8E3404DD
6D51C245
F 406B7ED
ECE45B3D
F D24CF 5F
7096966D
FFFFFFFF
21
6.6
Dupa cum s-a vazut, sistemul de gestiune al cheilor reprezinta o componenta fundamentala
a IP Sec-ului. Reamintim, pentru o sesiune de comunicari ntre Alice si Bob sunt necesare
patru chei.
In general exista doua tipuri de management al cheilor:
Manual: un administrator de sistem configureaza manual fiecare sistem cu fiecare
cheie personala si cu cheile altor sisteme de comunicare;
Automat: un sistem automat permite la cerere crearea de chei pentru SA si
faciliteaza folosirea cheilor ntr-un sistem larg distribuit, cu o configuratie evolutiva.
Managementul de distributie automata de chei folosit n IKEv1 (standard RF C 2408)
este ISAKM P/Oakley si se refera numai la protocolul Diffie-Hellman. El consta din:
1. Oakley Key Determination Protocol.
2. Internet Security Associations and Key Management Protocol (ISAKM P ):
ISAKM P furnizeaza un cadru pentru schimbul de chei prin intermediul retelei
Internet si furnizeaza protocolul de suport specific, incluzand formatele, negocierea
atributelor de securitate etc.
ISAKM P n sine nu aloca un anumit algoritm de generare a cheilor; mai degraba,
el consta dintr-un set de tipuri de mesaje care permite folosirea unui set de algoritmi
de schimb de chei. Oakley este algoritmul de schimb de chei folosit de versiunea
initiala a ISAKM P .
22
6.6.1
132.
23
24
Primele trei grupuri implementeaza algoritmul Diffie-Hellman folosind exponentiere modulara, iar ultimele doua grupuri aplica Diffie-Hellman pe curbe eliptice.
Oakley foloseste un numar prim mpotriva atacurilor prin replay. Fiecare numar este
un pseudoaleator generat local. Numerele apar n raspunsuri si sunt criptate de-a lungul
anumitor portiuni a schimbului de mesaje.
Pentru autentificare, Oakley foloseste trei metode distincte (pentru fiecare existand
diverse variante):
1. Semn
aturi digitale: Schimbul de chei este autentificat prin semnarea unei amprente; fiecare entitate cripteaza amprenta cu cheia sa privata. Amprenta este generata peste parametri importanti ai comunicarii, cum ar fi ID User si nonce-uri.
2. Criptare cu cheie public
a: Schimbul este autentificat prin criptarea parametrilor
(ID-uri, nonce-uri) cu cheia privata a lui Alice
3. Criptare cu cheie simetric
a: O cheie generata de un mecanism extern poate fi
folosita pentru autentificare schimbului de mesaje, prin criptarea simetrica a schimbului de parametri.
Exemplu de schimb de chei Oakley
Prezentam schimbul de chei n specificatii (varianta agresiva) numit astfel datorita
celor trei mesaje care sunt schimbate ntre parteneri.
1. Alice
Bob :
2. Alice
Bob :
Bob :
unde
CKA , CKB Cooky-urile celor doi parteneri (pachete de date care contin informatii
despre SA si schimbul curent de chei);
CKYA , CKYB Ecouri ale acestor cookie;
OK KEY Tipul mesajului de schimb de chei;
GRP Tipul grupului peste care este definit protocolul Diffie-Hellman;
25
26
6.6.2
ISAKM P
Flags
ID - mesaj
Lungime
Campurile acestui antet ISAKM P sunt:
Cookie de initiere (64 biti): reprezinta cookie-ul lui Alice (care initiaza, notifica sau
elimina un SA).
Cookie de raspuns (64 biti): cookie-ul lui Bob, care raspunde; n primul mesaj trimis
de Alice, el este null.
Next Payload (8 biti): indica tipul primului pachet de date curente din mesaj.
MjVer (4 biti): indica versiunea curenta de ISAKM P .
MnVer (4 biti): indica versiunea secundara de folosire ISAKM P .
Tip de schimb (8 biti): indica tipul de schimb.
Flags (8 biti): indica optiunile specifice acestui schimb de mesaje ISAKM P . Cel
putin doi biti sunt deja definiti: bitul de criptare este setat daca toate datele
curente de dupa antete sunt criptate folosind unul din algoritmii de criptare asociati
acestui SA, si bitul de asociere folosit pentru a asigura ca mesajul criptat nu este
primit naintea stabilirii unui SA.
ID - mesaj (32 biti): un ID unic pentru acest mesaj.
27
Lungime (32 biti): lungimea totala a mesajului (antet plus toate datele curente
asociate) n octeti.
Tipuri de date curente
Toate datele curente din ISAKM P ncep cu acelasi antet generic:
0
8
16
Next payload
REZERVAT
31
Lungime
Next Payload: are valoarea 0 daca acesta este ultimul set de date curente din mesaj;
altfel valoarea sa este tipul urmatorului set de date curente.
Lungime: indica lungimea n octeti a setului de date curente, inclusiv antetul
generic.
Sunt posibile urmatoarele tipuri de date curente:
1. Date SA (SA): folosit pentru nceperea negocierii unei asocieri de securitate. Drept
parametri se folosesc: Domeniu de interpretatare (DOI) sub care are loc negocierea, si Situatia n care are loc negocierea.
2. Date Propuse (P ): contine informatii folosite n timpul negocierii SA-ului. Setul
de date curente indica protocolul pentru acest SA (ESP sau AH) pentru care sunt
negociate serviciile si mecanismele. Aici mai sunt incluse SP I (identitatea lui Alice)
si numarul de transformari. Fiecare transformare este continuta ntr-un set de date
curente de transformare.
3. Date de transformare (T ): defineste o transformare de securitate folosita pentru
securizarea canalului de comunicatii. Parametrii folositi sunt: Transform Number care serveste pentru identificarea acestui set de date, astfel ca Bob sa l
poata folosi pentru a identifica acceptarea acestei transformari; Transform - ID
si SA - Attributes identifica o transformare specifica (de exemplu 3DES pentru
ESP, HM AC SHA 1 96 pentru AH) mpreuna cu atributele asociate (de
exemplu lungimea amprentei).
4. Date pentru schimb de chei (KE): este utilizat pentru o paleta larga de tehnici
de schimb de chei, inclusiv protocoalele Oakley, Diffie-Hellman si RSA. Are un singur parametru (Key Exchange data) care contine datele necesare pentru generarea
unei chei de sesiune si este dependent de cheia algoritmului de schimb utilizat.
5. Date de identificare (ID): este folosit pentru a determina identitatea comunicarii
si eventual pentru autentificarea informatiei. Are doi parametri: ID - Type
si ID - Data (de obicei aici este o adresa IP v4 sau IP v6).
28
29
(1)
(2)
(3)
(4)
Bob
Primele doua mesaje furnizeaza cookie-uri si stabilesc tipul de protocol SA; ambele
parti folosesc un nonce pentru a se proteja mpotriva atacurilor prin replay. Ultimele
doua mesaje stabilesc cheia de criptare si verifica autenticitatea userilor, folosind un
protocol de autentificare bazat pe ID-uri si informatiile din primele doua mesaje.
2. Identity Protection Exchange: este o varianta extinsa a tipului anterior, pentru
a ntari protejarea identitatilor celor doi utilizatori 4 .
(1)
(2)
(3)
(4)
(5)
(6)
Alice Bob : SA
Bob Alice : SA
Alice Bob : KE; N once
Bob Alice : KE; N once
Alice Bob : IDA ; Auth
Bob Alice : IDB ; Auth
Primele doua mesaje stabilesc SA-ul. In plus, Bob foloseste al doilea mesaj pentru
a transmite ID-ul sau si un nonce poentru autentificare. Alice trimite un al treilea
mesaj pentru a transmite prin ID propria sa autentficare.
4. Aggressive exchange: minimizeaza numarul schimburilor de mesaje, cu pretul
nefurnizarii protectiei identitatii.
4
Notatia semnific
a faptul c
a datele curente sunt criptate dupa antetul ISAKM P .
30
Alice
6.7
6.7.1
Analiza IP Sec
Performante IP Sec
Atunci cand se foloseste IP Sec, dimensiunea pachetului IP creste din cauza adaugarii
antetelor specifice (ESP, AH, noul antet IP n cazul modului tunel). Acest lucru duce la
cresterea raportului ntre dimensiunea antetelor si cea a datelor, reducand banda efectiva
de comunicare.
In plus, timpul necesar pentru constructia antetelor si aplicarea algoritmilor criptografici conduce la o ntarziere suplimentara n transmisia pachetelor.
Acest dezavantaj devine suparator mai ales cand capacitatile de procesare sunt mici.
6.7.2
Complexitate IP Sec
IP Sec prezinta dezavantajul unei complexitati extrem de mari; este pretul platit
pentru numarul mare de optiuni si de flexibilitatea sa mult crescuta.
Complexitatea reprezinta un dusman al securitatii, din mai multe puncte de vedere.
Algoritmii complecsi conduc la erori greu de remediat. In plus, un sistem complex
este mult mai dificil si mai costisitor de realizat si ntretinut.
De multe ori exista mai multe posibilitati de a implementa facilitati identice sau
similare.
31
6.7.3
Documentatie IP Sec
32
6.7.4
Eliminarea functionalit
atilor duplicate
IP Sec are doua moduri de operare (transport si tunel) si doua protocoale (AH si ESP ),
fapt ce conduce la o complexitate ridicata. Doua servere care doresc sa comunice pot
alege ntre 4 modalitati diferite. Diferenta dintre acestea este minora, atat din punct de
vedere al functionalitatii cat si din punct de vedere al performantei.
Exista propunerea a renunta la modul transport, fapt care ar conduce eliminarea
diferentelor dintre echipamentele de retea n host-uri si porti de securitate (security gateways). Principala diferenta dintre acestea este ca portile de securitate nu pot opera n
modul transport.
Multi dintre cei care au analizat IP Sec sunt de parere ca protocolul AH poate fi
eliminat. Functionalitatile oferite de AH si ESP sunt similare. In modul transport, AH
ofera o autentificare mai puternica ntrucat autentifica si campuri ale antetului IP . Dar
utilizat n mod tunel ESP ofera acelasi nivel de autentificare.
Protocolul AH autentifica indirect si antetele de la nivelele inferioare, fapt care atrage
dupa sine o multitudine de probleme, fiindca exista campuri care se pot modifica pe
parcursul drumului de la sursa la destinatie. Deci protocolul AH trebuie sa fie constient
de ce se ntampla la nivelele inferioare, pentru a evita utilizarea acestor campuri. Ca o
consecinta, constructia obtinuta este total neeleganta, cu probleme la extensiile viitoare
ale protocolului IP care pot adauga campuri pe care AH le ignora.
6.7.5
Utilizarea deficitar
a
6.7.6
Atunci cand sunt realizate atat autentificarea cat si criptarea, IP Sec realizeaza ntai
criptarea si apoi autentificarea textului criptat. Ordinea este exact inversa fata de cea
normala: mai ntai trebuie realizata autentificarea textului clar, si apoi se cripteaza textul
autentificat.
Autentificarea textului dupa criptare are totusi un avantaj: receptorul sterge pachetele
de date care nu se pot autentifica rapid, fara a fi nevoie de decriptarea lor. Acesta poate
constitui un avantaj n cazul atacurilor de tip DoS (Denial of Service), cand un numar
33
6.7.7
Simetrizarea SA-urilor
Un SA (Security Association) poate fi folosit numai ntr-o directie; deci pentru o comunicare bidirectionala sunt necesare doua SA-uri. Fiecare din ele implementeaza un singur
mod de operare si un singur protocol. Daca se folosesc doua protocoale (AH si ESP )
pentru un acelasi pachet, atunci sunt necesare 2 SA-uri. Utilizarea a doua protocoale si
a doua moduri de operare conduce la cresterea complexitatii SA-urilor.
In practica exista foarte putine situatii n care traficul este necesar sa fie securizat
ntr-o singura directie. De aceea, SA-urile sunt negociate n pereche. Pare mult mai logic
ca SA-urile sa devina bidirectionale; astfel s-ar njumatatii numarul de SA-uri din sistem
si s-ar evita de asemenea configurari asimetrice, care pot fi uneori suparatoare.
6.7.8
6.7.9
Incompatibilit
ati cu Internet Protocol
34
6.7.10
Atacuri
Duplicarea mesajelor
In mod ideal, daca se transmit mai multe copii ale aceluiasi mesaj, atunci raspunsurile
trebuie sa fie identice. Mai mult, sistemul ar trebui sa recunoasca faptul ca primeste copii
identice si sa replice primul raspuns transmis.
O implementare mai putin atenta poate crea falii de securitate. De exemplu, se transmit mai multe mesaje cu zona de date modificata. Se presupune ca implementarea Diffie
- Hellman modulo p se realizeaza peste un subgrup de dimensiune q, unde q|p 1 si p 1
are multi divizori mici. Oscar poate determina cheia secreta prin repetarea datelor KE
care contin elemente de ordin mic si verificand care din setul de chei posibile este utilizat
la criptare. Aceasta i releva ordinul elementului trimis ca date KE.
Combinand mai multe rezultate, se determina cheia secreta Diffie - Hellman.
Atacul de tip DoS
Utilizarea elementelor de tip cookie elimina o parte din atacurile de tip DoS.
Masura implica cresterea n dificultate a realizarii unui astfel de atac, dar nu-l elimina
n totalitate. Impactul introducerii acestor mijloace de aparare are ca revers cresterea
complexitatii.
6.8
Concluzii
Cu toate criticile care i se aduc, IP Sec constituie cel mai bun protocol de securitate
existent n momentul de fata.
Comparat cu alte protocoale de securitate, IP Sec ofera multe avantaje din punct de
vedere arhitectural si o foarte mare flexibilitate. Detaliile securitatii retelei sunt de obicei
ascunse aplicatiilor. In plus, IP Sec poate fi transparent si utilizatorilor finali, eliminand
necesitatea instruirii persoanelor n vederea utilizarii mecanismelor de securitate.
Un canal sigur poate fi configurat de la un cap la altul (protejand traficul dintre doua
entitati), route-to-route (protejand traficul care trece peste o multime particulara de
legaturi) etc.
Deci IP Sec poate realiza securizarea utilizatorilor individuali (daca acest lucru este
necesar).
Bibliografie
[1] Atanasiu, A. Securitatea Informatiei, vol. 1 (Criptografie), ed. InfoData, Cluj 2007
[2] Craig A. Shue, Minaxi G. IPSec: Performance Analysis and Enhancements,
http://www.csiir.ornl.gov/shue/research/icc07.pdf
[3] Stallings, W. Network Security Essentials, Applications and Standards, Third Edition,Pearson Prentice Hall, 2007
[4] Stallings, W. Cryptography and Network Security Principles and Practices, Fourth
Edition, Prentice Hall, 2005
[5] Ferguson, N., Schneier, B. A cryptographic Evaluation of IPSec,
http : //www.schneier.com/paper IP Sec.pdf
[6] Frankel, S., Herbert, H. (2003) The AES-XCBC-MAC-96 algorithm and its use
with IPSec (RFC 3566), http : //www.ietf.org/rf c/rf c3566.txt?number = 3566
[7] Gleeson, B., Lin A., Heinanen, J., Armitage, G., Malis, A. (2000) A framework for
IP based virtual private networks (RFC 2764),
http : //www.ietf.org/rf c/rf c2764.txt?number = 2764
[8] Hoffman, P. (2004) The AES-XCBC-PRF-128 algorithm fo the internet key exchange protocol (IKE) (RFC 3664),
http : //www.ietf.org/rf c/rf c3664.txt?number = 3664
[9] Hoffman, P. (2005) Cryptographic suites for IPSec (RFC 4308),
http : //www.ietf.org/rf c/rf c4308.txt?number = 4308
[10] Kaufman, C. (Ed.). (2005) Internet key exchange (IKEv2) (RFC 4306),
http : //www.ietf.org/rf c/rf c4306.txt?number = 4306
[11] Kent, S. (2005a) IP Authentication header (RFC 4302),
http : //www.ietf.org/rf c/rf c4302.txt?number = 4302
[12] Kent, S. (2005b) IP Encapsulating security payload (ESP) (RFC 4303),
http : //www.ietf.org/rf c/rf c4303.txt?number = 4303
35
36
BIBLIOGRAFIE
[13] Kent, S., Seo, K. (2005) Security architecture for the Internet protocol (RFC 4301),
http : //www.ietf.org/rf c/rf c4301.txt?number = 4301
[14] Kent, S., Atkinson, R. Security Architecture for Internet Protocol.
[15] Kivinen, T., Kojo, M. (2003) More modular exponential (MODP) Diffie-Hellman
Groups for IKE (RFC 3526), http://www.ietf.org/rfc/rfc3526.txt?number=3526
[16] Perlman, R., Kaufman, C. Analysis of the IPSec Key Exchange Standard,
http://warlord.nologin.org/papers/IPSec-analysis.pdf
[17] Orman, H. (1998) The OAKLEY key determination protocol (RFC 2412),
http://www.ietf.org/rfc/rfc2412.txt?number=2412
[18] Schiller, J. (2005) Cryptographic algorithms for use in the Internet key exchange
version 2 (IKEv2) (RFC 4307), http://www.ietf.org/rfc/rfc4307.txt?number=4307
[19] An Introduction to IP Security Encryption (IPSec Negotiation/IKE Protocols) Cisco
Systems, http://www.cisco.com/en/US/tech/tk583/tk372/technologies tech note
09186a0080094203.shtml
[20] Red ISAKMP and Oakley Information, http://www.cisco.com/en/US/tech/tk583/tk372/
technologies tech note09186a0080093c2b.shtml
[21] Group Domain of Interpretation (GDOI), http://en.wikipedia.org/wiki/GDOI
[22] ISAKM P , http://en.wikipedia.org/wiki/ISAKMP
[23] Securing Data in Transit with IPSec,
http://www.windowsecurity.com/articles/Securing Data in Transit with IPSec.html
[24] H3C ItoIP Solutions Expert, http://www.h3c.com/portal/Products Solutions/
Technology/Security and VPN/Technology Introduction/200701/195610 57 0.htm
[25] IPSec, http://cis.poly.edu/ ross/networksecurity/IPSec.ppt
[26] An Illustrated Guide To IPSec, http://unixwiz.net/techtips/iguide-IPSec.html
Capitolul 8
Alte protocoale de securitate
8.1
Introducere
de acord sa comunice pe baza unui protocol SSL sau T SL, ei trebuie sa cada de acord
(prin protocoale de tip handshake1 ) si asupra altor puncte:
1. Protocolul si versiunea (T SL 1.0, T SL 1.1, SSL2, SSL3).
2. Sistemul de criptare.
3. Daca vor autentificare sau nu.
4. Sistemul de criptare cu cheie publica folosit pentru generarea pre-cheii master.
5. Cum se vor genera cheile de sesiune pentru criptarea mesajelor.
Anvantaje al protocoalelor SSL si T LS:
Asigura o confidentialitate si o integritate a datelor convenabila.
Au abilitatea de a negocia chei de criptare unice, ntre parteneri care nu au comunicat anterior.
Se pot aplica independent, toate deciziile privind detaliile de aplicare fiind luate in
mod amiabil (handshacking).
8.2
T SL
Un protocol T LS este format din doua etape, privite ca o stiva cu doua straturi (layers):
protocolul T LS de nregistrare si cel de handshaking.
Protocolul T LS de nregistrare ia mesajele care trebuie transmise, fragmente de date
din diverse blocuri interne, le arhiveaza (optional), aplica o functie M AC, le cripteaza si
transmite rezultatul.
Protocolul handshaking permite serverului si clientului sa se autentifice reciproc si sa
negocieze un algoritm de criptare si o cheie de criptare, nainte de a se transmite/primi
prinul bit de date.
In T LS este stabilita ntai o sesiune ntre client si server, iar apoi se realizeaza o
conexiune.
Definitia 8.1. O sesiune T LS este o asociere ntre un client si un server, cu scopul
de a defini un set de parametri de securitate pentru o perioad
a mai lung
a. Sesiunile sunt
create prin protocoale de tip handshaking, scopul lor fiind de a evita negocieri lungi pentru
stabilirea parametrilor de securitate la fiecare conexiune.
1
Un protocol handshake este un set de comenzi ntre doi parteneri, cu scopul de a controla fluxul de
informatii transmise. Este un protocol simplu de comunicare, care nu solicita autentificarea partenerilor.
8.2. T SL
8.2.1
Protocolul de nregistrare T LS
Pentru criptarea simetrica se foloseste unul din sistemele de criptare: RC4 cu cheie
pe 128 biti, DES cu cheie de 56 biti, 3DES cu cheie de 168 biti, sau AES cu cheie de
128/256 biti. Majoritatea implementarilor T LS negociaza sistemul si cheia, n functie de
nivelul suportat de dotarea celui mai slab dintre parteneri.
Marimea cheilor folosite de sistemul de criptare cu cheie publica depinde de autoritatea
de certificare.
8.2. T SL
Exemplul 8.1. V erySign utilizeaza chei de 512 sau 1024 biti, n functie de softwareul serverului. Cheia privata V erySign folosit
a la semnarea certificatelor este de 1024
biti, iar cheile de sesiune folosite n tranzactiile T LS sunt cele mai puternice permise de
legislatia SU A (n general 128 sau 256 biti).
Dupa protocolul de nregistrare, T LS cuprinde alte patru protocoale: handshake,
alerta, specificatii de schimbare a sistemului de criptare si de prelucrare a datelor.
8.2.2
Protocolul handshake
Parametrii criptografici ai starii de sesiune sunt generati prin protocolul handshake, care
constituie primul strat din T LS. Cand un client T LS vrea sanceapa o comunicare cu
serverul, ei cad de acord asupra unei versiuni a protocolului, selecteaza algoritmii criptografici, se autentifica reciproc (optional) si folosesc tehnici de criptare cu cheie publica
pentru a genera secretele partajate.
Protocolul este mpartit n patru faze:
1. Mesaje de salut.
2. Autentificare si schimb de chei client.
3. Autentificare si schimb de chei server
4. Sfarsit.
Sa detaliem fiecare din aceste faze.
Mesaje de salut
In specificatii aceste mesaje sunt numite Client hello, respectiv Server hello. Scopul lor
este de a stabili capacitati sigure de legatura ntre client si server; anume versiunea protocolului T LS, ID-ul sesiunii, sistemele de criptare si compresie. In plus, se mai genereaza
si se transmit ntre parteneri doua numere aleatoare: NC si NS .
Cand un client vrea sa se conecteze la un server, i se cere sa trimita un mesaj
Client hello. Acest mesaj contine:
Versiunea protocolului T LS sau SSL pe care doreste clientul sa l foloseasca n
timpul sesiunii. Aceasta trebuie sa fie cea mai recenta versiune suportata de softul
clientului.
N once Client (pentru evitarea atacurilor replay), format din:
Timpul curent si data n standard UNIX pe 32 biti conform cu ceasul intern
al clientului.
8.2. T SL
8.2. T SL
8.2.3
Calculul cheii
10
8.2. T SL
11
Construirea M AC-ului
M AC-ul folosit de T LS este construit astfel:
HM AChash (secretM AC , num seqkT ipkV ersiunekLungimekF ragment))
unde
hash este algoritmul de dispersie specificat de parametrii de securitate,
num seq este numarul de secventa pentru nregistrarea corespunzatoare,
Tip, Versiune si Lungime se refera la caracteristicile respective ale algoritmului de
compresie specificat n T LS, iar Fragment este o portiune compresata din datele
asociate.
8.2.4
Protocolul de alert
a
12
8.2.5
8.2.6
Cateva comparatii ntre cele doua aplicatii prezentate IP sec si SSL/T LS care asigura
securitatea comunicatiilor Internet:
IP sec instalat pe retele ofera un acces total la resurse, fiind indicate pentru conectarea
unei game extrem de variate de utilizatori (birouri, retele intranet, acces la cerere
client, extranet controlat de client etc). Pentru orice resursa si aplicatie de retea,
IP sec asigura un foarte buin acces securizat.
Principalul sau dezavantaj consta n complexitatea solicitarii vis-a-vis de clinet:
clientul trebuie sa posede un software adecvat si trebuie sa foloseasca cunostionte
avansate pentru a putea lucra cu acesta.
Pe de-alta parte SSL implementat prin standardul T LS nu solicita nici un
software pe partea client, asa ca aplicatia poate fi accesata de pe orice calculator
conectat la Internet. Dezavantajul consta ;intr-o securitate mai slaba. SSL este
recomandat pentru e-Comert, portaluri de aplicatii Web, retele extranet cu parteneri
multipli.
Retelele virtuale private IP sec ofera canale tip tunnel de la parteneri externi spre
retelele interne. SSL asigura o modalitate simpla de conectare a clientilor externi
la aplicatii ale serverelor interne.
O implementare SSL ofera mai multa flexibilitate decat IP sec. Pentru ca nu este
necesar nici un software client, orice angajat poate avea acces la retelele unei companii, folosind orice computer si orice browser Internet.
Deoarece SSL nu solicita retelelor dificultatea configuraii, instalarii si functionarii
IP sec pentru fiecare utilizator, n general, se considera ca o aplicatie SSL este mai
usoara si mai putin costisitoare pentru client, decat o aplicatie IP sec.
In general, o retea V P N dotata cu SSL implementat prin standardul T LS are
urmatoarele caracteristici:
8.2. T SL
13
14
8.3
8.3.1
15
4. Cump
ar
ator: Este institutia financiara care stabileste un cont cu un comerciant
si proceseaza platile autorizate de cardul asociat acestui cont.
5. Gateway de plat
a: Un sistem cu care opereaza cumparatorul sau o componenta
comuna stabilita de comun acord, al carui rol este de a procesa toate mesajele de
plata (inclusiv instructiuni de plata venite de la detinatorul cardului). El permite
cumparatorului sa accepte tranzactii SET prin Internet si sa le pregateasca pentru a
fi trimise la retele comerciale de plata (cum sunt retelele M asterCard ale bancilor).
Internet
Comerciant
Internet
Gateway de plata
Detinator card
Emitent
8.3.2
Retea
de plata
Cumparator
Tranzactii SET
16
8.3.3
Criptare
RSA
Semnatura
digitala
Criptare
RSA
?
Envelopare digitala
?
SHA 1
6
-
-Criptare simetric
a
Mesaj criptat
si semnat
Certificat Alice
6
Mesaj
17
Destinatar (Bob):
?
Decriptare
Cheie publica
Decriptare Alice
DSS/RSA
Certificat AliceY
6
SHA 1
Semnatura
Mesaj
+
decriptat
Decriptare
(simetrica)
6
Cheie de sesiune
?
Mesaj criptat
si semnat
Dispersie
?-
Verificare
Da/Nu
8.3.4
In mediul SET exista o ierarhie bine stabilita a autoritatilor de certificare. In varf se afla
SET Root CA detinuta si gestionata de Secure Electronic Transactions LLC. Toate
certificatele contin cheia sa publica.
Certificatul proprietarului de card:
Un certificat al proprietarului de card functioneaza ca o reprezentare electronica
a unui card de plati. El este aprobat de banca emitatoare, nu contine numarul
contului si nici data expirarii. Acest certificat este transmis comerciantilor nsotit
18
Semnatura
Brand
?
Semnatura
CA Gateway
CA
Emitent
CA
Cumparator
Semnatura
posesor card
+
Semnatura
comerciant
Q
Q
CA
Gateway de plata
Q
s
Q
Schimb chei
comerciant
+
Semnatura
gateway de plata
Q
Q
Q
s
Q
Schimb chei
gateway de plata
8.3.5
19
Tranzactii SET
Atunci cand un client comanda un produs unui comerciant, protocolul SET desfasoara
trei tranzactii:
1. Cererea de cumparare;
2. Autorizarea de plata;
3. Efectuarea platii.
A. Cererea de cump
arare:
In aceasta faza protocolul este format din 4 mesaje schimbate ntre client si comerciant:
A1. Initierea cererii
Protocolul SET este invocat cand posesorul de card este gata sa lanseze un oridn de
cumparare: a selectat produsele pe care le doreste, a completat forma de vanzare a comerciantului si a fost de acord cu termenii si conditiile acestuia. In primul sau mesaj, clientul
initiaza cererea de cumparare solicitand comerciantului certificatul propriu si certificatul
emis de gateway-ul de plata afiliat.
A2. Initierea r
aspunsului
1. Software-ul comerciantului primeste initierea cererii de cumparare.
2. Genereaza un raspuns RI, i aplica o functie de dispersie h (standardul este SHA1)
si l cripteaza (standardul este RSA) cu cheia secreta K a comerciantului. In acest
fel produce o semnatura digitala dK (h(RI)) a mesajului de raspuns RI.
3. Trimite clientului (RI, dK (h(RI)), CERTCom , CERTGateway ).
Software-ul clientului verifica acest raspuns:
1. Decripteaza semnatura folosind cheia publica a comerciantului (aflata n CERTCom ):
eK (dK (h(RI))) = h(RI).
2. Aplica functia de dispersie lui RI si verifica daca rezultatul h(RI) este egal cu ce a
obtinut anterior.
20
21
Autorizare de raspuns.
Gateway-ul autentifica comerciantul, decripteaza si cripteaza informatia de plata si o
transmite bancii cumparatoare. Aceasta lanseaza si ea o cerere de autorizare pe baza
careia banca emitenta poate aproba sau respinge tranzactia posesorului de card. Banca
cumparatoare primeste decizia si o trimite gateway-ului de plata care emite comerciantului
o autorizare de raspuns.
B1. Cererea de autorizare
Software-ul comerciantului:
1. Genereaza o cerere de autorizare AR care include suma solicitata, identificatorul
tranzactiei (din CI), si alte informatii specifice.
2. Semneaza cererea: = dK (h(AR))
3. Genereaza aleator o cheie de sesiune K2 si calculeaza
P = eK2 (, AR), E = eKGateway (K2 ).
4. Trimite spre gateway-ul de plata mesajul
(P, E, P D, eK1 (P IkC ), CERTCom , CERTClient )
B2. Autorizare de r
aspuns
Gateway-ul de plata:
1. Verifica CERTCom , din care scoate cheia publica K a comerciantului.
2. Verifica cecerea de autorizare:
(a) Afla K2 , pe care o foloseste pentru a determina AR si .
(b) Calculeaza h(AR) si compara rezultatul cu eK ().
3. Verifica CERTClient , din care scoate cheia publica K 0 a clientului.
4. Obtine infoirmatia de plata data de client si verifica semnatura duala.
(a) Din P D obtine cheia K1 pe care o foloseste pentru a gasi P I si C .
(b) Calculeaza eK 0 (C ) = h(h(P I)kh(CI)).
(c) Calculeaza h(P I), apoi h(h(P I)kh(CI)), pe care l compara cu rezultatul anterior.
(d) Verifica consistenta dintre cererea de autorizare a comerciantului si P I trimis
de client.
22
23
24
Bibliografie
[1] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J., Wright, T. (2006) Transport layer security (TLS) extensions (RFC 4366).
http://www.ietf.org/rfc/rfc4366.txt?number=4366
[2] Dierks, T., Rescorla, E. (2006) - The transport layer security (TLS) protocol version
1.1 (RFC 4346)
http://www.ietf.org/rfc/rfc4346.txt?number=4346
[3] Freier, A., Karlton, P., Kocher, P. (1996) The SSL protocol version 3.0
http://wp.netscape.com/eng/ssl3/3-SPEC.HTM#1
[4] Santesson, S. (2006) - TLS handshake message for supplemental data (RFC 4680)
http://www.ietf.org/rfc/rfc4680.txt?number=4680
[5] Santesson, S., Ball, J., Medvinsky, A. (2006) - TLS user mapping extension (RFC
4681).
http://www.ietf.org/rfc/rfc4681.txt?number=4681
[6] SET Secure Electronic Transaction Specification Book 1: Business Description (1997)
25
Capitolul 9
OpenID
9.1
Prezentare general
a
CAPITOLUL 9. OPENID
Sa aleaga seturile de informatie (numite profiluri sau carduri) care pot fi trimise
site-urilor web, n functie de nivelul de solicitare si risc.
Implementarea autorizarii graduate si bazate pe risc.
Implementarea unei semnaturi unice pentru aplicatii multiple.
Integrarea de aplicatii ntr-un sistem OpenId unitar, folosind mecanisme simple.
Un cost redus de implementare si maintenanta.
OpenID nu este unic prin scopul propus sau metodele folosite. Exista si alte specificatii
simple de autentificare a utilizatorilor, cu aproximativ aceleasi scopuri; cel mai utilizat
este probabil SAML Web Browser Single Sign On. Principala diferenta este aceea ca
SAM L solicita ca aplicatiile web pentru autentificare sa fie acceptate anterior de cele
doua parti, iar autentificarea este o componenta a unei constructii mai largi. Specificatia
SAM L a fost realizata de companii, n timp ce OpenID este un proiect coordonat public
de comunitatea Internet (oarecum similar cu P HP de la posta electronica).
Alte specificatii similare sunt OAuth ([17]), WS-Trust ([10]) si Information Card ([12]).
9.2
Schema general
a a unui protocol OpenID
A UNUI PROTOCOL OP EN ID
9.2. SCHEMA GENERALA
(1)
U RL
OP
(5)
h
(8)
6 (7)
(3)
(2)
(4)
RP
(6)
- UA
CAPITOLUL 9. OPENID
2.0 acesta poate fi un link static continand OP -ul si identitatea locala sau un document XRDS care ofera lui Bob posibilitatea de specifica mai multe OP -uri (pentru
protocoale diferite). In acest caz se face apel la Y adis1 pentru a gasi OP si versiunea
protocolului care se va folosi.
Stabilirea unei asocieri. Asocierea este folosita pentru a garanta ca numai OP -ul
stabilit a autentificat identitatea locala a utilizatorului. Eventual, RP poate alege
sa omita acest pas si sa valideze identitatea la sfarsitul executiei protocolului.
Intre RP si OP O este stabilita asociere formata din doua componente: un Identificator de asociere (unic) si un cod M AC pentru semnarea mesajelor. Sunt doua
metode de stabilire a unei asocieri: printr-un schimb de chei Diffie-Hellman sau prin
solicitarea unui canal securizat (de exemplu SSL). Vom detalia aceasta construtie
ntr-o sectiune ulterioara.
Redirectare spre OP . Dupa aflarea OP -ului tinta si stabilirea (optional) unei
asocieri, RP forwardeaza cererea utilizatorului spre OP (via o redirectare Web).
Cererea contine o serie de parametri (detaliati n sectiunea 4), cei mai importanti
fiind identitatea, Identificatorul de asociere (daca a fost folosit), domeniul RP care
trebuie alocat (realm) si un U RL la RP -ul unde trebuie redirectat utilizatorul dupa
autentificare (return to).
Redirectare spre RP . Dupa ce OP a autentificat identitatea locala a lui Bob,
iar acesta a permis utilizarea identitatii sale n domeniul realm specificat, la pasul
urmator OP redirecteaza utilizatorul spre RP , mpreuna cu anumiti parametri.
Acestia includ Identificatorul de asociere (daca a fost folosit), un server-time bazat
pe un nonce (pentru prevenirea atacurilor replay) si o semnatura peste valorile unora
din parametri (cei mentionati sunt obligatoriu semnati).
Daca a fost stabilita o asociere, atunci semnatura foloseste codul M AC si algoritmul
de semnatura specificate de aceasta.
Verificarea r
aspunsului. Daca nu a fost stabilita nici o asociere, atunci RP
trebuie sa se asigure ca raspunsul a fost generat de OP , Pentru aceasta, RP trimite
parametrii primiti direct spre OP , iar acesta raspunde printre altele cu un
parametru valid care sa-i certifice semnatura.
9.3
Autentificarea
Protocolul Y adis (Yet Another Distributed Identity System) a fost dezvoltat n aceeasi comunitate
ca si OpenID, dar f
ar
a a fi legate functional ntre ele. OpenID s-a numit intial Y adis.
9.3. AUTENTIFICAREA
Versiunea 2.0 protocolului de autentificare ([18]) foloseste pentru comunicatie protocolul HT T P (sau HT T P S), iar mesajele sunt codificate cu U T F 8.
1. U A RP : Prezentare Identificator de asociere.
2. RP OP : [Optional] Negocierea unei chei secrete.
3. RP U A: Redirectarea U A catre OP .
4. U A OP : Trimiterea credentialelor pentru autentificare.
5. OP U A: Redirectarea U A spre RP .
6. U A RP : Trimite decizia de autentificare semnata de OP .
7. RP OP : [Optional] Verificarea rezultatelor autentificarii (daca s-a trecut de
pasul 2)
8. RP U A: Permite sau respinge accesul la resursa protejata.
Descriere:
1. Primul pas n realizarea autentificarii este asa cum s-a vazut trimiterea Identificatorului utilizatorului (U RL) prin U A catre RP -ul care solicita autentificarea.
2. RP si OP stabilesc o cheie secreta ce va fi stocata de RP .
3. RP redirecteaza U A-ul utilizatorului catre OP , pentru ca bob sa se poata autentifica
direct. Metoda de autentificare poate varia, dar de obicei un furnizor OpenID (OP ) va
cere utilizatorului o parola (sau un InfoCard) si apoi l va ntreba daca are ncredere ca
RP -ul sa primeasca detaliile necesare privind identitatea sa.
4. 5. Daca utilizatorul nu are ncredere n RP, U A-ul sau va fi redirectat catre
RP cu un mesaj indicand respingerea autentificarii, iar RP va refuza la randul sau sa-l
autentifice pe Bob.
Daca utilizatorul decide sa aiba ncredere n RP atunci U A-ul va fi redirectat catre
RP mpreuna cu credentialele sale. RP trebuie sa confirme lui Bob daca credentialele au
venit de la OP .
Daca RP si OP au stabilit anterior o cheie secreta, atunci RP poate valida identitatea OP -ului comparand copia cheii secrete (pe care a stocat-o) cu cea primita mpreuna
cu credentialele utilizatorului. Compararea se face n varianta 2.0 printr-o operatie
XOR ().
Acest tip de RP se numeste stateful deoarece stocheaza cheia secreta ntre sesiuni,
spre deosebire de cel stateless care trebuie sa mai faca o cerere (check authentication)
pentru a se asigura ca datele au venit de la OP .
6. Dupa ce identitatea a fost verificata, autentificarea este terminata cu succes iar
utilizatorul este considerat a fi conectat la RP cu identitatea autentificata de OP . RP
va stoca identitatea utilizatorului mpreuna cu alte informatii de sesiune.
Pentru negocierea cheii secrete ntre RP si OP (de la pasul 2):
CAPITOLUL 9. OPENID
9.4
Toate aceste tipuri de mesaje sunt protocoale de tip cerere/raspuns, fiecare dintre ele
putand avea diferiti parametri. De asemenea, n functie de tipul mesajului, utilizatorul
Bob si serverul OP pot apela la metode de comunicare directe sau indirecte.
In cazul celor directe, se foloseste protocolul HT T P de tip POST, iar pentru cele indirecte
protocolul HT T P de tip GET.
9.4.1
Cererea de asociere
Acest tip de mesaj este trimis de Identificatorul de asociere (U RL) spre serverul OP
(pasul 4). Scopul principal al acestor mesaje este de a stabili o cheie secreta comuna ntre
Utilizator si OP . Utilizatorul poate trimite acest mesaj ori de cate ori este cerut de OP .
Avand n vedere ca cei doi parteneri comunica direct, metoda folosita din cadrul
protocolului HT T P este POST. In timp ce se initiaza cererea de asociere, OP va trimite
odata cu ea si o serie de parametri. Lista cu parametrii care pot fi trimisi este: openid.ns,
openid.mode, openid.assoc type, openid.session type, openid.dh modulus, openid.dh gen si
openid.dh consumer public.
openid.ns.
Acest parametru (optional) defineste versiunea protocolului folosit. Utilizarea versiunii OpenId 2.0 se specifica prin valoarea http://specs.openid.net/auth/2.0.
Daca acest parametru lipseste sau are alta valoare, atunci se foloseste automat
versiunea 1.1 a protocolului din motive de compatibilitate cu implementari ce
utilizeaza versiuni mai vechi.
openid.mode.
Acest parametru permite destinatarului sa stie cu ce tip de mesaj are de a face. Din
acest motiv, Bob trebuie sa fie prezent n cadrul tuturor mesajelor; n caz contrar
mesajul nu face parte din procesul de autentificare OpenID.
Pentru mesajul de asociere, valoarea parametrului este associate.
openid.assoc type.
Prin acest parametru, cele doua parti care comunica se pun de acord asupra algoritmului folosit la semnarea mesajelor.
In momentul de fata sunt utilizate doua tipuri de algoritmi:
HM AC SHA1: lungimea cheii este de 160 biti, valoarea parametrului fiind
HM AC SHA1 (conform RF C2104/RF C3174);
HM AC SHA256: lungimea cheii este de 256 biti, valoarea parametrului
fiind HM AC SHA256 (RF C2104/F IP S180 2).
Recomandarea este folosirea algoritmului pe 256 biti daca acest lucru este posibil.
CAPITOLUL 9. OPENID
openid.session type.
Prin intermediul acestui parametru se stabileste tipul de sistem criptare folosit n
cadrul mesajului, pentru a cripta M AC-ul. Trei valori sunt valide pentru acest
parametru:
no-encription. Valoare folosita daca se doreste ca M AC-ul sa fie trimis necriptat. Acest lucru nu este recomandat, deoarece un atacator ar putea modifica
cu usurinta mesajul prin metode de tip eavesdropping.
Se poate nsa utiliza aceasta valoare daca pentru comunicare se folosesc canale
securizate prin SSL, care asigura deja criptarea continutului.
DH SHA1. In acest caz algoritmul folosit pentru schimbul de chei este
Difie-Hellman, mpreuna cu functia de dispersie de tip SHA 1.
DH SHA256. Si aici se foloseste algoritmul Difie-Hellman, combinat nsa cu
functia de dispersie SHA pe 256 biti.
Pentru valorile bazate pe algoritmul DH si functia de dispersie SHA, M AC-ul
trebuie sa aiba aceeasi lungime cu rezultatul functiei de dispersie (160 biti pentru
DH SHA1, respectiv 256 biti pentru DH SHA256), precum si cu rezultatul
algoritmului folosit pentru semnarea asocierii.
Detaliind, RP specifica un numar prim mare p si un generator q. De asemenea, tot
el genereaza aleator o cheie secreta xA , iar serverul OP alege tot aleator o cheie
secreta xB , ambele din intervalul [1, p 1].
Astfel, cheia secreta folosita pentru criptarea M AC-ului va fi
g xA xB (mod p) = (g xA )xB (mod p) = (g xB )xA (mod p)
Parametrii openid.dh modulus, openid.dh gen si openid.dh consumer public.
Daca pentru tipul asocierii s-a ales una din cele doua variante bazate pe algoritmul
Difie-Hillman si pe una din functiile de dispersie SHA, acesti trei parametri trebuie
sa fie prezenti.
Valoarea lui openid.dh modulus retine numarul prim p (modulul) si trebuie sa fie n
forma base64 (btwoc(p)). Valoarea default a acestuia n hexazecimal este:
DCF 93A0B883972EC0E19989AC5A2CE310E1D37717E8D9571BB7
623731866E61EF 75A2E27898B057F 9891C2E27A639C3F 29B608
14581CD3B2CA3986D2683705577D45C2E7E52DC81C7A171876E
5CEA74B1448BF DF AF 18828EF D2519F 14E45E3826634AF 1949E5
B535CC829A483B8A76223E5D490A257F 05BDF F 16F 2F B22C583AB
Valoarea lui openid.dh gen retine numarul ales g si trebuie sa fie tot n forma
base64 (btwoc(g)), iar valoarea sa default este g = 2.
openid.dh consumer public are ca valoare base64 (btwoc(g xA (mod p))).
9.4.2
R
aspunsul la cererea de asociere
Mesajul de raspuns la cererea de asociere este trimis de OP spre U A (site-ul care a initiat
cererea). Codul HT T P pentru raspuns este 200 si poate reprezenta succesul sau esecul
asocierii.
In cazul succesului, raspunsul va contine un token valid si intervalul (n secunde) de
validitate; altfel va fi returnat un mesaj de eroare.
Parametrii ce trebuie sa faca parte din raspuns (pentru ca asocierea sa reuseasca) sunt:
openid.ns, openid.assoc handle, openid.session type, openid.assoc type, openid.expires in,
openid.mac key, openid.dh server public, openid.enc mac key.
openid.assoc handle
Este folosit n mesajele ulterioare, pentru a identifica asocierea deja reusita. Valoarea este un sir de cel mult 255 caractere ASCII, avand coduri n intervalul
[33, 126].
De asemenea, acest parametru este folosit si pentru a identifica ce cheie va fi
(re)folosita pentru criptare/decriptare.
openid.session type.
Pentru ca asocierea sa fie acceptata, valoarea acestui parametru trebuie sa fie aceeasi
ca cea primita la trimiterea cererii. In cazul n care utilizatorul propune pentru
acesta folosirea unui algoritm pe care serverul nu-l are, valoarea lui va fi de tip
r
aspuns nereusit, iar asocierea va pica.
openid.assoc type.
Similar situatiei anterioare, si valoarea acestui parametru de raspuns trebuie sa fie
identica cu cea primita ca lerere. In caz contrar, asocierea va pica, iar valoarea
parametrului va fi de tip raspuns nereusit.
openid.expires in.
Reprezinta perioada de timp n secunde cat este valabila asocierea. Dupa expirarea ei, aplicatia nu va mai lua n considerare asocierea.
openid.mac key.
Acest parametru se foloseste doar daca n timpul cererii s-a optat pentru tipul
sesiunii fara criptare. Valoarea trebuie sa fie n format base64.
openid.dh server public.
Reprezinta cheia publica a serverului OP . Va fi folosita n cadrul algoritmului DifieHellman.
10
CAPITOLUL 9. OPENID
9.4.3
Aceste doua mesaje sunt folosite pentru a primi informatii de la OP . Trimiterea mesajelor
se face de catre U RL, comunicarea fiind de tip indirect deci se utilizeaza protocolul
HT T P de tip GET.
Exista totusi o diferenta ntre cele doua cereri. Mesajul checkid immediate este
folosit de utilizatorii care suporta comunicarea prin AJAX (Asynchronous JavaScript
and XML), n timp ce checkid setup este specific celorlalti utilizatori (care nu suporta
AJAX).
In ambele situatii sunt folositi parametrii openid.ns, openid.mode, openid.claimed id,
openid.identity, openid.assoc handle, openid.return to, openid.realm.
openid.mode.
Valorile posibile sunt checkid immediate si checkid setup. Daca Identificatorul
de asociere doreste ca utilizatorii sa poata interactiona cu OP , valoarea folosita este
checkid setup.
In general, interactiunea ntre Bob si OP nu este dorita n cazul comunicarii asincrone.
openid.claimed id si openid.identity.
Acesti parametri trebuie sa fie prezenti amandoi sau nici unul. Primul contine
valoarea identificatorului pe care utilizatorul pretinde ca-l detine si deci trebuie
verificat.
openid.assoc handle.
Este un parametru optional; prezenta lui semnifica faptul ca a fost realizata o
asociere ntre parti si ca aceasta trebuie folosita.
openid.return to.
Dupa procesarea cererii, serverul OP trebuie sa ntoarca un raspuns. Daca este
specificata o valoare pentru acest parametru (o adresa U RL), atunci browserul va
fi redirectat catre aceasta adresa, cu tot cu raspuns.
openid.realm.
11
9.4.4
R
aspunsul la cererile checkid setup si checkid immediate
12
CAPITOLUL 9. OPENID
openid.signed.
Contine o lista cu parametrii care au fost semnati, despartiti prin virgula.
openid.sig.
Acest parametru contine semnatura mesajului, n format base64.
9.4.5
Verificarea autentificarii este poate pasul cel mai important n tot acest proces, deoarece
el asigura ca toate mesajele sunt trimise ntr-adevar de OP si nu de altcineva (care
impersoneaza acest server). Exista cateva observatii privind acest mesaj:
1. Mesajul este trimis doar daca nu exista deja o asociere stabilita ntre utilizatorul
Bob si OP .
2. Daca se foloseste o asociere deja existenta, cererea lui Bob trebuie sa contina parametrul openid.assoc handle, iar OP va avea n raspuns aceeasi valoare de asociere.
3. Se poate ntampla si cazul n care serverul OP nu este de acord cu asocierea primita
de la utilizator; atunci raspunsul va contine parametrul openid.invalidate handle,
precum si un alt parametru (openid.assoc handle) pentru a fi folosit de Bob.
9.4.6
R
aspunsul la cererea de verificarea autentific
arii
Raspunsul serverului OP este foarte scurt, avand doar trei parametri: openid.ns, openid.is
valid, openid.invalidate handle.
openid.ns:
Identic cu cel din cererea de asociere.
openid.is valid.
Are o valoare de tip boolean, true sau false, specificand daca semnatura cererii
este valida sau nu.
openid.invalidate handle.
Daca parametrul openid.is valid are valoarea false, acest parametru trebuie trimis
n cadrul raspunsului pentru ca utilizatorul sa stie si sa elimine asocierea respectiva
din lista celor valide.
9.5. SECURITATEA OP EN ID
9.5
13
Securitatea OpenId
9.5.1
Semn
atura unic
a
Atacurile se directioneaz
a spre OP -uri. Bob foloseste acelasi OP pentru a se
conecta la multiple RP -uri. Daca Oscar poate afla aceste credentiale, el va obtine
acces la toate RP -urile, inclusiv la datele lui Bob (stocate acolo).
Credentialele stocate ntr-un OP devin cu atat mai valoroase cu cat popularitatea
standardului OpenID creste. Pe de-alta parte, deoarece OpenID devine de facto
un standard pentru SSO de pe Web, OP -urile trebuie sa se concentreze foarte
mult pe asigurarea protectiei datelor utilizatorilor sai, ceea ce ngreuneaza mult
implementarea.
Spionarea OP -urilor. Deoarece pentru conectare se foloseste totdeauna acelasi
OP , acesta are posibilitatea de a conecta orice tranzactie cu orice RP vizitat de
utilizator. El poate monitoriza frecventa aparitiei unei tranzactii, momentele de
3
In literatur
a se pot nt
alni si alte clasificari, dar toate sunt n final similare cu cea prezentata n acest
capitol.
14
CAPITOLUL 9. OPENID
9.5.2
Acces liber
9.5. SECURITATEA OP EN ID
15
Scanerul de port nu este propriu zis o slabiciune, dar posibilitatea de a scana adrese
din zona interna a unei retele locale a RP -ului si faptul ca aceasta scanare poate fi
realizata automat ofera o facilitate n constructia unui atac.
RP pierdut n c
autare. Acest atac foloseste faptul ca RP trebuie sa se conecteze
la identificatorul U RL oferit de utilizator. Un cod malitios poate folosi fisiere mari
sau fara marcaj de sfarsit ca identificatori de U RL-uri, ca prim pas pentru un atac
DoS asupra RP -ului ([15]).
Apararea contra unei astfel de ncercari este foarte simpla: RP trebuie sa efectueze
cautarea unui U RL n anumite limite de timp si spatiu.
9.5.3
16
CAPITOLUL 9. OPENID
9.5.4
Utilizarea standardelor W eb
Phishing. Intr-un astfel de atac, Bob este ispitit sa viziteze un site Web impersonand ecranul sau de conectare din OP . Daca el nu observa ca acesta nu este
site-ul oficial al OP -lui si-si introduce credentialele, acestea sunt la dispozitia lui
Oscar ([11], [14]).
Astfel de atacuri au loc numai daca Bob face click pe un link nesigur; dar faptul ca OpenID redirectioneaza automat legaturile face posibila existenta unui atac
phishing mai putin evident. Un RP controlat de Oscar poate pur si simplu sal directioneze pe Bob la un OP fals, fara a genera nici o suspiciune ca se face o
conectare nedorita.
Folosirea unui OpenId ridica deci riscul unui atac de tip phishing.
Realm Spoofing. Acest atac ([11]) presupune existenta unui RP avand un XSS
(sau alta vulnerabilitate) care sa permita forwardarea spre alte websituri (de exemplu http://www.example.com?goto=http://evil.com). Oscar creaza un website care
imita acest RP si daca Bob ncearca conectarea folosind OpenID, Oscar i spune ca
OP cu acest domeniu apartine unui RP oficial. Ca urmare n returul spre U RL (ultimul pas din schema de functionare) el poate abuza de posibilitatea de forwardare
(care-l returneaza pe Bob spre propriu site web).
In caz de succes, OP si Bob sunt convinsi ca atributele sunt trimise spre RP -ul
oficial, ele fiind de fapt redirectate de Oscar la un RP fals (desi OP a comparat
domeniul realm si a facut corect revenirea la U RL).
Categorie
Vulnerabilitate
Semnatura unica Totdeauna aceleasi OP -uri
Tip de atac
=1 >1
Atacuri spre OP
S
M
OP si urmareste userii M
M
Conectare ne-interactiva
Cross-Site Scripting
R
R
Sesiuni false
S
M
Acces liber
Specifica orice identitate U RL Scaner de port RP
M
M
RP pierdut n cautare
R
R
Specificatii
Folosire chei Diffie-Hellmann
Man-in-the-middle
S
R
OpenID proprii Specificatii usoare
Association Poisoning
M
R
Reciclare OpenId
Utilizare de
RP duce U A la OP
Phising
R
R
standarde W eb
U A este n browser
Clickjacking
M
R
Realm Spoofing
Tabelul prezentat sumarizeaza aceste slabiciuni posibile generate de OpenId.
Ultimele doua coloane dau o estimare a riscului (S- scazut, M - mediu, R - ridicat)
pentru doua scenarii: unul n care OpenID este utilizat n servicii cu nivel de securitate
egal cu 1 (standard dezvoltat n [16]), iar al doilea n care OpenID este utilizat pentru
POSIBILE
9.6. REZOLVARI
17
servicii cu nivel de securitate ridicat. Estimarile de risc sunt bazate pe o combinatie ntre
efortul necesar atacului respectiv si avantajul pe care l poate obtine Oscar n caz de
reusita. Principala diferenta dintre cele doua scenarii pleaca de la prezumtia ca serviciile
cu un nivel de securitate ridicat implica un castig potential mai mare pentru atacator,
deci o preferinta a atacurilor pe falia de securitate respectiva.
O analiza a tabelului duce la concluzia ca un risc mediu ntr-un nivel de securitate
egal cu 1 este relativ moderat, n timp ce riscul mediu pentru serviciile cu nivel ridicat de
securitate este ridicat atunci cand se foloseste OpenId.
9.6
Rezolv
ari posibile
In [4] sunt trecute n revista o serie de propuneri de rezolvare a majoritatii acestor vulnerabilitati din constructia OpenId 2.0 (propuneri care nu au fost nca implementate).
9.6.1
Configuratii de ncredere
Multe din probleme provin din modul liber de comunicare oferit de OpenId; deci ele se
pot rezolva prin crearea unor bariere de securitate (Trust Frameworks) ntre identitati,
OP -uri si RP -uri. Daca acestea sunt protejate, orice ncercare a lui Oscar de a controla
una din ele ar fi prevenita.
Ca o consecinta, nu va mai fi posibila conectarea unui potential OpenID la orice
potential RP , iar utilizatorii nu vor mai putea utiliza dupa plac orice identitate sau OP .
9.6.2
Tehnici anti-phishing
18
9.6.3
CAPITOLUL 9. OPENID
9.6.4
Specificatii adaptate
Unele probleme pot fi evitate sau diminuate folosind specificatiile OpenID 2.0 ([18]).
Probleme cum ar fi abuzul de RP (ca un scaner de port) sau atacuri DoS prezentand
un Identificator U RL fals pot fi evitate solicitand anumite standardizari suplimentare
ale Identificatorului U RL (de exemplu refuzul U RL-lor care contin numere de port sau
adresari de IP -uri locale)
Alta solicitare ar fi ca RP avand un nonce n protocolul de initializare Utilizator
- Client, sa verifice daca acest nonce exista si la sfarsitul sesiunii (astfel se nlatura o
ncercare de Sesiune falsa).
9.7
Concluzii
Bibliografie
[1] Atanasiu, A Securitatea informatiei, vol. 2 (Protocoale de securitate), Ed. Infodata,
Cluj (2009)
[2] Adida, B. BeamAuth: Two-Factor Web Authentication with a Bookmark, In ACM
Conference on Computer and Communications Security, pp. 48-57 (2007)
[3] Arnott, A. OpenID Association Spoofing. blog.nerbank.net (March 2009),
http://blog.nerdbank.net/2009/03/openid-association-poisoning.html
[4] van Delft, B., Oostdijk, M. A Security Analysis of OpenID, de Leeuw, E, FischerHubner, Fritsch, L. (Eds.), IDMAN 2010, IFIP AICT 343, pp. 73-84 (2010), IFIP
International Federation for Information Processing 2010
[5] Diffie, W., Hellman, M.E. New directions in Cryptography, IEEE Transactions on
Information Theory IT-22, 644-654 (1976)
[6] Drebes, L. Relying Party Stats as of Jan 1st, 2009, JanRain Blog (January 2009),
http://blog.janrain.com/2009/01/relying-party-stats-as-of-jan-1st-2008.html
[7] Hansen,R., Grossman, J. Clickjacking (September 2008),
http://www.sectheory.com/clickjacking.htm
[8] Hughes, J., Cantor, S., Hodges, J., Hirsch, F., Mishra, P., Philpott, R., Maler, E.
Profiles for the OASIS Securit Assertion Markup Language (SAML) V2.0 (March
2005), http://docs.oasis-open.org/security/saml/v2.0/
[9] Jain, A., Nash, A., Hodges, J. OpenID Security Issues. Presentation PayPal Information Risk Management (November 2009).
[10] Lawrence, K., Kaer, C. WS-Trust 1.4 OASIS Editor Draft (February 2008),
http://docs.oasis-open.org/ws-sx/ws-trust/ 200802/ws-trust-1.4-ed-01.html
[11] Messina, C. OpenID Phising Brainstorm (December 2008),
http : //wiki.openid.net, http : //wiki.openid.net/OpenID P hishing Brainstorm
19
20
BIBLIOGRAFIE
I. I NTRODUCTION
In 1994, Netscape1 addressed the problem of securing
data which is sent over the (TCP) wire in the early days
of the World Wide Web, by introducing the Secure Sockets
Layer protocol version 2. Over the decades SSL gained
improvements, security fixes and from version 3.1 on a new
name - Transport Layer Security2 - , but the basic idea
behind the protocol suite remained the same. A key feature
of SSL/TLS is its layered design consisting of mainly two
blocks:
Handshake protocol. This is an Authenticated Key Exchange (AKE) protocol for negotiating cryptographic secrets
and algorithms.
Record and Application Data protocol. This is an
intermediate MAC-then-PAD-then-Encrypt layer positioned
between the application and the TCP network layer.
In addition, error messages are bundled in the Alert protocol, and the one-message ChangeCipherSpec protocol
which signalizes the switch from unencrypted to encrypted
mode.
1 http://www.netscape.com
2 http://datatracker.ietf.org/wg/tls/
Figure 3: Example scenario for the ChangeCipherSpec message drop attack - based on Source: [2]
Figure 2: Example scenario for the cipher-suite rollback
attack - based on Source: [2]
This problem was fixed with the release of SSL 3.0, by
authenticating all messages of the Handshake protocol, by
including hash value of all messages sent and received by
the client (the server, resp.) into the computations of the
ClientFinished (ServerFinished, resp.) message. However,
this hash value explicitly excludes messages of the Alert
and ChangeCipherSpec protocols, leaving room for
future attacks.
Lesson learned: This attack illustrates that it is crucial
to authenticate what exactly reached the desired target and
what was sent. Theoretically, this idea was put forward in
[3] with the concept of matching conversations.
2) ChangeCipherSpec message drop: This simple but
effective attack described by Wagner and Schneier in [2]
was feasible in SSL 2.0 only. During the handshake phase
the cryptographic primitives and algorithms are determined.
For activation of the new state it is necessary for both
parties to send a ChangeCipherSpec message. This
messages informs the other party that the following communication will be secured by the previously agreed parameters. The pending state is activated immediately after the
ChangeCipherSpec message is received.
An attacker located as Mitm could simply drop the
ChangeCipherSpec messages and cause both parties to
never activate the pending states. An example is illustrated
in Figure 3.
According to Wagner and Schneier the flaw was independently discovered by Dan Simon and addressed by Paul
Kocher. The authors recommendation is to force both parties
to ensure that a ChangeCipherSpec message is received
Padding
...
Separation Byte
00
Encapsulated Data
PreMasterSecret
10) ECC-based key exchange algorithm confusion attack: In [16] Mavrogiannopoulos, Vercauteren, Velichkov
and Preneel showed that the key exchange algorithm confusion attack by Wagner and Schneier, discussed in II-3,
can also be applied to ECDH. According to the authors,
their attack is not feasible yet, due to computational limitations. But, as already discovered with other theoretical only
attacks, it may be a question of time when the attack is
enhanced to be practical or the resources for computation
increase. As discussed by Wagner and Schneier, the main
problem remains the lack for a content type field indicating
the algorithm type of the contained data - which implicitly
indicates how to decode the message.
Lesson learned: See II-3
Vaudenay builds a decryption oracle out of the receivers reaction on a ciphertext in case of valid/invalid
padding. In the case of SSL/TLS the receiver may send
a decryption_failure alert, if invalid padding is encountered. The padding oracle is defined in Figure 8.
OP adding (C) =
true,
false,
if C is correctly padded
otherwise
V. VARIOUS ATTACKS
This section deals with various attacks not suitable for
any of the previous attack sections.
A. Attack discussion
1) Random number prediction: In January 1996, Goldberg and Wagner published an article [36] on the quality of
random numbers used for SSL connections by the Netscape
Browser. The authors gained access to the applications
Source Code by decompiling it and identified striking weaknesses in the algorithm responsible for random number
generation. The entropy of the algorithm relied completely
on few, predictable values:
Current time
Current process id
Process id of the parent process
Figure 16: Lines commented out leading to a serious bug Source: Debian optimized OpenSSL Source Code
This allowed a brute force attack, since the key space was
significantly limited without these code lines.
Lesson learned: Developers should comment
security critical parts of source code, explain exactly
the codes intention and highlight the consequences
when altered (e.g., in Java developers could decide to
introduce a Java Doc keyword SECURITY that marks
security related comments or additionally introduce a
@Security(critical=true) annotation). Beyond
this, test cases targeting the critical code lines and returning
errors if removed or altered should be provided.
3) Denial of Service enabled by Exceptions: In [38]
Zhao et al. provided an attack on the TLS handshake which
leads to an immediate connection shutdown and can thus
be used for a Denial of Service (DoS) attack. The authors
exploited two previously discussed weaknesses to mount
successful attacks.
The first attack targets the Alert protocol of TLS
and makes use of the fact that, due to yet missing
completed cryptographic primitives negotiation during
the handshake phase, all Alert messages remain
strictly unauthenticated and thus spoof-able. This enables an obvious, but effective attack: Spoofing Fatal
Alert messages which cause immediate connection
shutdowns
The second attack simply confuses a communication
partner by sending either misleading or replayed messages or responding with wrong messages according to
the expected handshake flow.
Lesson learned: Even obvious and self-evident
weaknesses (such as DoS vulnerabilities) have to be
discussed and focus of research.
4) Renegotiation flaw: Ray and Dispensa discovered
in [39] a serious flaw induced by the renegotiation feature
of TLS. The flaw enables an attacker to inject data into a
running connection without destroying the session. A server
would accept the data, believing its origin is the client. This
could lead to abuse of established sessions - e.g., an attacker
9 http://anonscm.debian.org/viewvc/pkg-openssl/openssl/trunk/rand/md
rand.c?p2=%2Fopenssl%2Ftrunk%2Frand%2Fmd rand.c&p1=openssl%
2Ftrunk%2Frand%2Fmd rand.c&r1=141&r2=140&view=diff&pathrev=
141
Figure 17: Example scenario for the renegotiation attack based on Source: [39]
Figure 17 shows how an attacker acting as Mitm may
abuse the renegotiation feature to inject arbitrary data into
a TLS connection. In the example scenario an attacker
concatenates 2 GET requests to send a gift to MitM Ave.
instead of Client Str.. This requires an authentication
based on cookies. The client attaches its authentication
cookie to the own request, but the attacker previously left
its own request unfinished by omitting a final CRLF and
adding a non-existent header field without value. At server
side the following happens: since the last request is not
finished yet, the following data (the original client request)
is concatenated with the pending data. The GET request of
the client becomes the value of the non-existent header field
and is therefor ignored by the server. The authentication
cookie in the next line remains valid (due to the \n after
the GET line). The result is a valid request with a valid
cookie. It is important to note, that the attacker does not
get the authentication cookie in plaintext, but her request is
constructed to be concatenated on server side in a way that
the first line of the clients request gets dropped (by using
the header trick) - the attacker is at no time able to decrypt
traffic.
Anil Kurmus proved the flaw to be practical by stealing
confidential data through a slightly different attack on Twitter10 (he used an unfinished POST request) enabled by the
renegotiation flaw11 .
There are multiple ways to fix the problem. E.g., Eric
Rescorla proposed a special TLS extension [40] that fixes
this flaw.
Lesson learned: When switching security contexts it
needs to be guaranteed that there is no pending data left.
10 http://www.twitter.com
11 http://www.securegoose.org/2009/11/tls-renegotiation-vulnerability-cve.
html
12 http://www.thoughtcrime.org/software/sslstrip/
13 http://www.thc.org/thc-ssl-dos/
Side-channel resistance evolved to a general, since sidechannels of any kind (information leaks, timing differences,
etc.) appear at different layers in different situations. Moreover, verbosity (e.g., error messages), normally a honorable
intention, provides attackers valuable information on internal
states and processing. Thus, as little information as possible
should be provided. Another critical aspect in matters of
honorable intersessions are own improvements on specifications for additional value (e.g., performance gains), because
they may lead to unintended vulnerabilities. Therefore, a
specification should be implemented exactly as is, without
modifications and tweaks. Marking critical parts of source
code with precise and clear comments highlighting potential risks could prevent disadvantageous modifications. This
should especially be best-practice when fixing vulnerabilities
to prevent bug reintroduction. Fixing software can be an
error prone task, since fixes have to patch not only the
current vulnerability occurrence, but all parts of the code that
may suffer from the same weakness. This often requires to
think about the interplay of different layers and applications.
As a final remark for developers, it can be concluded that
one should always be alarmed when working on security
critical components. Security is a necessity, not a necessary
evil.
Protocol designers, in turn, should be as precise as
possible when defining a specification. Specifications with
room for interpretation and implementational freedom can
lead to misunderstanding or unawareness of security related
concerns. Especially where processing order makes a huge
difference highlighting the risks of process reordering is
crucial. Risks related to divergence on the specification
need to be clarified and highlighted. Thus, the specification
of minimum requirements and mandatory preconditions is
required. This implies strong and context-free message structures with little to no room for misinterpretation. Sensitive
fields have to be authenticated and, if necessary, confidential
fields should be encrypted. The communication parties need
to authenticate what was sent and received at any time,
to obviate deliberate or non deliberate modifications during transport. Finally, adhere that flexibility mostly means
complexity which should be avoided.
DoS attacks remain a future problem that has to be focus
of research and discussion. New directions and means to
lower the surface emerged to be of increased relevance.
[2] D. Wagner and B. Schneier, Analysis of the SSL 3.0 protocol, The Second USENIX Workshop on Electronic Commerce
Proceedings, pp. 2940, 1996.
[3] M. Bellare and P. Rogaway, Entity authentication and key
distribution, 1994, pp. 232249.
[4] T. Dierks and C. Allen, The TLS Protocol Version 1.0,
RFC 2246 (Proposed Standard), Internet Engineering Task
Force, Jan. 1999. [Online]. Available: http://www.ietf.org/rfc/
rfc2246.txt
[5] D. Bleichenbacher, Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS #1, in
Advances in Cryptology CRYPTO 98, ser. Lecture Notes
in Computer Science, H. Krawczyk, Ed. Springer Berlin /
Heidelberg, 1998, vol. 1462, pp. 112.
[6] G. Davida, Chosen Signature Cryptanalysis of the RSA
(MIT)Public Key Cryptosystem, Tech. Rep., 1982.
[7] D. Brumley and D. Boneh, Remote timing attacks are
practical, in Proceedings of the 12th conference on USENIX
Security Symposium - Volume 12, ser. SSYM03. Berkeley,
CA, USA: USENIX Association, Jun. 2003, pp. 11.
[8] P. C. Kocher, Timing Attacks on Implementations of DiffieHellman, RSA, DSS, and Other Systems, in Proceedings
of the 16th Annual International Cryptology Conference on
Advances in Cryptology, ser. CRYPTO 96. London, UK,
UK: Springer-Verlag, Aug. 1996, pp. 104113.
[9] O. Aciicmez, W. Schindler, and C. Koc, Improving Brumley
and Boneh timing attack on unprotected SSL implementations, in Proceedings of the 12th ACM conference on
Computer and communications security. ACM, Nov. 2005,
pp. 139146.
[10] V. Klma, O. Pokorny, and T. Rosa, Attacking RSA-Based
Sessions in SSL/TLS, in Cryptographic Hardware and Embedded Systems - CHES 2003, ser. Lecture Notes in Computer
Science, C. Walter, C. Koc, and C. Paar, Eds. Springer Berlin
/ Heidelberg, Sep. 2003, vol. 2779, pp. 426440.
[11] B. Brumley and N. Tuveri, Remote Timing Attacks Are
Still Practical, in Computer Security - ESORICS 2011, ser.
Lecture Notes in Computer Science, V. Atluri and C. Diaz,
Eds. Springer Berlin / Heidelberg, Sep. 2011, vol. 6879, pp.
355371.
[12] P. L. Montgomery, Speeding the Pollard and elliptic curve
methods of factorization, MC, no. 48, 1987.
VII. ACKNOWLEDGMENTS
This work was partially funded by the Sec2 project of
the German Federal Ministry of Education and Research
(BMBF, FKZ: 01BY1030).
R EFERENCES
[1] E. Rescorla, SSL and TLS: Designing and Building Secure
Systems. Addison-Wesley, 2001.