Sunteți pe pagina 1din 26

Masterat E- Business

Securitatea sistemelor de
E-Business
- Curs 5 -

Lector. Dr. Ana-Maria Ghiran


anamaria.ghiran@econ.ubbcluj.ro
Cuprins

 Utilizari ale criptografiei pentru integritate


 Functii de dispersie

Utilizari ale criptografiei pentru autentificare


 Semnaturi digitale
 Certificate digitale
 Infrastructura de chei publice
Funcţii de dispersie

 O funcţie de dispersie (funcţia hash) preia ca intrare o


secvenţă de text clar de lungime variabilă, m, din care
calculează un șir de biţi de lungime fixă H(m) denumit
rezumatul mesajului.

 Rezumatul mesajului va fi folosit pentru a demonstra faptul că


un anumit mesaj sau fişier nu a suferit modificări în conţinut

 Rezumatele de mesaje nu se vor aplica doar asupra unor


porţiuni de text ci vor lua în considerare tot mesajul sau fişierul
Funcţii de dispersie

 Funcţia de dispersie H trebuie să aibă proprietăţile:


– Dat fiind m, este uşor de calculat H(m);
– Dat fiind H(m), este efectiv imposibil de calculat m;
– Dat fiind m, nimeni nu poate găsi m’ astfel încât H(m)=H(m’);
– Modificarea intrării chiar şi cu un bit produce o ieşire foarte diferită.

 Dacă (m, H(m)) reprezintă mesajul şi rezumatul mesajului, un intrus


nu poate înlocui mesajul cu un altul care să aibă acelaşi rezumat ca şi
mesajul iniţial

 Rezistenţa la coliziuni: determină dificultatea ca pentru două mesaje


diferite să existe acelaşi rezumat
Funcţii de dispersie

Utilizări ale funcţiilor de dispersie:


 verificare a integrităţii: sume de control
 securizarea anumitor date: parole
 ambele sunt pentru a ne asigura că nici un factor extern
nu va putea modifica conţinutul fără a lăsa urmări vizibile
MD

MD - Message-Digest Algorithm
 Funcţie de dispersie proiectată de Ronald Rivest în 1992
• Amestecarea biţilor într-un mod suficient de complicat, astfel
încât fiecare bit de ieşire să fie afectat de fiecare bit de intrare
• Porneşte prin împărţirea în blocuri de 512 biţi (16 cuvinte de
32 de biţi)
 Rezumatul creat are o lungime de 128 de biţi
 Au fost descoperite vulnerabilităţi care permit crearea de
mesaje cu acelaşi rezumat
SHA
SHA - Secure Hash Algorithm
 (Algoritm de Dispersie Sigur)
Există până în prezent 4 versiuni: SHA-0, SHA-1, SHA-2, SHA-3, cel mai cunoscut
fiind SHA-1.

SHA-1
• Operează de asemenea pe blocuri de 512biţi
• Rezumatul de mesaj are 160 de biţi
• Algoritmul a fost dezvoltat de NSA şi acceptat de către NIST, nu mai este
considerat de încredere
SHA-2
• Produce mesaje de 224, 256, 384 or 512 biţi.
SHA-3
• Foloseşte cuvinte de 64 de biţi în loc de cele de 32
HMAC
 Hashed Message Authentication Code – Cod de autentificare a
mesajelor bazat pe rezumat

 algoritm ce foloseşte un rezumat al mesajelor împreună cu o cheie


secretă – va asigura faptul că un intrus nu interpune un mesaj propriu
împreună cu rezumatul calculat în comunicaţiile sigure
 este bazat fie pe MD5 fie pe SHA-1

 Pe lângă utilizarea unor funcţii criptografice de dispersie, este necesar


şi un secret partajat s (cheia de autentificare).
 H(m+s) poartă denumirea de codul de autentificare al mesajului (eng.
Message Authentication Code, MAC).

 MAC nu necesită criptarea mesajului propriu zis


HMAC
• Ieşirea functiei hash depinde de datele de intrare (m) şi de
cheia secretă (s)
• Furnizează autentificarea originii datelor
Utilizări ale criptografiei pentru autentificare

 Semnături digitate

 Certificate digitale

 Infrastructura de chei publice: PKI


Semnătura digitală

 Semnătura digitală este o tehnică criptografică prin care se


indică proprietarul sau creatorul unui document

• Receptorul poate verifica identitatea pe care pretinde a o


avea transmiţătorul;
• Transmiţătorul nu poate să nege mai târziu că e autorul
mesajului;
• Receptorul nu poate să fi creat el însuşi mesajul.

 MAC-urile nu pot fi folosite pentru cerinţele enunţate mai


sus.
Semnătura digitală

 Prin criptarea cu o cheie publică rezulta un text cifrat care


putea fi decriptat doar de deţinătorul cheii private

 Invers, prin criptarea folosind cheia privată, rezultă un text


criptat demonstrând că a fost creat doar de cel care care
deţine cheia respectivă, iar cei ce deţin cheia
complementară (publică) vor putea decripta textul

 Kprivată – este deţinută de o singură entitate


 Kpublică - este cunoscută tuturor ce vor să o afle
Semnătura digitală
 Criptarea şi decriptarea (în special folosind algoritmi cu cheie
publică) sunt scumpe din punct de vedere computaţional
 -> se vor cripta doar rezumatele de mesaje, ce au o dimensiune
considerabil redusă
Semnătura digitală
Verificarea semnăturii digitate
Semnătura digitală

 Se pune problema în cazul în care se doreşte realizarea


semnăturii digitale fără ca cei doi să se cunoască între ei:
cum se poate face disponibilă cheia publică astfel încât să
se poată verifica autenticitatea acesteia?

 Plasarea cheii publice pe web – nu funcţionează, fiind


susceptibilă unor atacuri de înlocuire a cheii de către un
intrus
Certificate digitale

 Este nevoie de a găsi o modalitate de a asocia identitatea


unui utilizator cu cheia sa publică. Aceasta este realizată cu
ajutorul Certificatelor digitale

 La transmiterea unor mesaje, emiţătorul nu trebuie să


plaseze cheia sa publică pe un site, poate ataşa un
certificat digital la mesajul său.

 La primirea unui mesaj ce conţine şi un certificat digital, se


poate verifica dacă certificatul este semnat de o autoritate
de încredere
Certificate digitale

 Este suficient să se facă o verificare a semnăturii asupra


certificatului digital: ne arată autorul certificatului digital

 cheia publică din certificat este legată de o identitate

 O organizaţie care certifică chei publice este denumită CA


(Certification Authority, rom. Autoritate de Certificare)
Certificate digitale

 CA-ul va emite un certificat digital şi va semna rezumatul


certificatului cu cheia sa secretă (cheia privată a CA) - >
avem nevoie de a certifica şi autoritatea unei CA

 Funcţia standard a unui certificat este de a face legătura


între o cheie publică şi o entitate, însă poate fi folosit şi
pentru a face legătura între o cheie publică şi un atribut.
 Ex: un certificat poate arăta: "Această cheie publică
aparţine cuiva care are vârsta de peste 18 ani.”
Certificate digitale

În mod obişnuit, persoana care deţine un certificat, îl va


trimite unui site Web, persoană sau proces de administrare,
în care se ţine cont de vârstă.
Acel site (persoana sau procesul de administrare) va genera
un număr aleator şi îl va cripta cu cheia publică prezentă în
certificat. Dacă posesorul certificatului este capabil să
decripteze mesajul şi să-l trimită înapoi, acest lucru va fi o
dovada că posesorul deţine într-adevăr atributul din certificat.

Numărul aleator poate fi folosit pentru a genera o cheie de


sesiune pentru a garanta comunicaţia.
Certificate digitale

Tipuri de certificate digitale:

 Personal Digital Certificates – emise direct către utilizatori

 Server Digital Certificates – emise de către un server web către


un client; acestea realizează două funcţii:
a) asigură autenticitatea serverului web
b) asigură autenticitatea conexiunii la serverul web (de ex.
necesare la platile electronice) prin prezentarea certificatului
digital către client, clientul are la dispozitie cheia publică cu
care poate cripta informatii precum un numar de card etc. si
doar serverul va putea decripta datele primite de la client
Certificate digitale

Extended Validation SSL Certificate – tip de certificat SSL care


solicită o verificare mai amănunţită a legitimităţii autorului;
browserele web pot indica utilizatorilor în mod vizual că sunt
conectaţi la un site web care foloseşte certificate EV SSL prin
folosirea culorilor în bara de adrese

Certificate SSL Wildcard – certificate SSL care permit securizarea


tuturor subdomeniilor din cadrul unui domeniu cu ajutorul unui
singur certificat SSL: ex. *.ubbcluj.ro

Certificate SSL SAN (Subject Alternative Names) – permit de


asemenea securizarea mai multor domenii cu un singur certificat,
chiar dacă au nume diferite
Certificate digitale

Software Publisher Digital Certificates – aceste


certificate sunt folosite pentru autentifica software-ul
distribuit prin Internet ex: Microsoft Authenticode
permite dezvoltatorilor software să includă informaţii
despre programele lor şi informaţii proprii

 X.509 Digital Certificates – cel mai acceptat format:


certificatele digitale care urmează acest standard pot
fi “citite” de orice aplicaţie care adoptă x.509
Certificate digitale
ITU a standardizat modalitatea de obţinere şi prezentare a unui
certificat digital prin standardul X.509

 Câmpurile principale ce sunt cuprinse în cadrul unui certificat


digital:
Infrastructură cu chei publice
Probleme în cazul existenţei unei singure CA
 -> PKI (Public Key Infrastructure, rom. Infrastructură cu chei
publice).

 O formă particulară de PKI este o ierarhie de CA-uri: CA-ul din


vârf, rădăcina, certifică a doua CA, pe care o vom denumi RA
(Regional Authority, rom. Autoritate Regională) deoarece va
răspunde de anumite regiuni geografice, precum o ţară sau un
continent. Aceste RA-uri certifică de fapt alte CA-uri, care vor
emite certificate X.509 pentru organizaţii şi indivizi.

Componente PKI:
 -utilizatorii,
 -CA-urile,
 -certificatele
 -directoarele: locul în care se stochează certificatele
Infrastructură cu chei publice

Când rădăcina autorizează o nouă RA, ea va genera un


nou certificat X.509 care atestă că a aprobat RA-ul,
incluzând în el noua cheie publică a RA-ului, îl va semna
şi îl va trimite RA-ului. Similar, RA-ul aprobă noi CA-uri,
generează şi semnează certificate care atestă
aprobarea şi conţin cheia publică a CA-ului.
Infrastructură cu chei publice

 Programele de navigare moderne vin preîncărcate cu cheile publice


a peste 100 de rădăcini, denumite câteodată puncte de încredere.
Pentru verificarea unui certificat nu este necesar ca autoritatea de
certificare să fie disponibilă, ci doar cunoaşterea cheii publice a
autorităţii.

 Fiecare CA poate să emită periodic o CRL (Certificate Revocation


List, rom. Listă de Certificate Revocate)

 La expirarea perioadei de validitate un certificat este automat


invalidat

 Un certificat revocat poate în principiu să fie restabilit