Sunteți pe pagina 1din 25

SSL/TLS

SSL/TLS
Rol: criptarea i autentificarea legturii de date ntre 2 aplica ii, fr a face acestea la nivelul aplica ie Aplica ia poate fi oricare: HTTP, FTP, POP3, ...

Istoric
SSL 1.0 Standard proprietar Netscape la nceputul anilor 90 (nainte de 1994) SSL 2.0 Prima versiune SSL public (Netscape, 1994) Diferite probleme; cheie foarte scurt (40 bi i) n varianta de export SSL 3.0 Ultima versiune SSL (proiectat de Netscape, 1996) TLS 1.0 Standard Internet IETF, bazat pe SSL 3.0, 1999 Nu e interoperabil cu SSL 3.0

SSL opera ii, pe scurt (record protocol)


Record protocol este protocolul de criptare din SSL

214 bytes (optional; default: null)

Partea 1: SSL

Arhitectura SSL

SSL (Secure-Socket Layer): securitate i compresie pentru serviciile de nivel aplica ie


Cuprins: Servicii Schimburi de chei Algoritmi de criptare/decriptare Algoritmi hash Tipuri de cifru Algoritmi de compresie Generarea de parametri criptografici Sesiuni, conexiuni

Servicii SSL

Fragmentare Compresie Integritatea mesajelor Confiden ialitate Framing

Generarea parametrilor criptografici


Snt necesare 6 chei (detalii n slides urmtoare) Clientul genereaz o valoare pseudoaleatoare numit PreMaster Secret (PMS) O cripteaz cu cheia public a serverului (dac algoritmul pt. schimbul de chei nu este NULL) O trimite serverului Serverul decripteaz PMS folosind cheia sa privat Din PMS genereaz MS i apoi cele 6 chei Detaliere !

Generarea parametrilor criptografici (1)

Calculul Master Secret din Pre-Master Secret A, BB, CCC snt irurile respective de caractere

Generarea parametrilor criptografici (2)

Calculul key material din Master secret key material vau folosit la generarea tuturor cheilor folosite n sesiune fi

Generarea parametrilor criptografici (3)

Din key material precedent se extrag cele 6 chei necesare pe parcursul sesiunii: cheile de autentificare folosite de func iile MAC cheile de criptare folosite de record protocol pt criptarea datelor IV (Initialization Vector) pt CBC

Algoritmi pentru schimbul de chei

Algoritmi pentru schimbul de chei


NULL Nu se face schimb de chei; Clientul i serverul trebuie s cunoasc PMS (Pre-Master Secret) RSA Schimb de chei RSA; cheie public pe server Diffie-Hellman (3 variante) Se prepar 2 parametri (g i p) specifici algoritmului DH (algoritm pentru chei publice) Fortezza Algoritm dezvoltat de U.S. National Security Agency (NSA). Este o familie de protocoale de securitate dezvoltate pentru Department of Defense (DoD).

Algoritmi de cifrare/descifrare

Algoritmi de hash

Hash : algoritmi pentru integritatea mesajelor

NULL: Nu se face autentificarea mesajelor

Tipuri de cifru

Un tip de cifru: combina ia de algoritmi de schimb de chei,


hash i algoritmi de criptare; este specific unei sesiuni SSL

Lista de tipuri de cifru (cipher suite)

Algoritmi de compresie

n SSLv3 compresia este op ional. compresia implicit este tipul NULL.

Sesiuni i conexiuni
sesiune: client + server negociaz parametrii de securitate, o singur dat
certificat, compresie, cipher_spec master secret unic la nivel de sesiune se aloc un session state pt sesiune

conexiune: mai multe conexiuni posibile pt o sesiune; folosesc acelai session state i deci
master secret; fiecare are propriul connection state fiecare conexiune are alt grup de 6 chei (2 MAC, 2 chei, 2 IV)

Parametri de sesiune
Session State

Parametri de conexiune
Connection State

Cele 4 protocoale SSL


4 protocoale, n 2 nivele:
1. Handshake Protocol: stabilirea variabilelor de comunicatie, schimbul de chei ntre cele 2 entit i 2. ChangeCipher Spec Protocol: schimbri n variabilele de comunica ie, dup ce sesiunea a nceput 3. Alert Protocol: mesaje importante pentru conexiunea SSL 4. Record Protocol: criptarea datelor (func ia principal a SSL)

1. Handshake Protocol
Handshake Protocol

Handshake Protocol
Faza I, Handshake Protocol

Handshake Protocol
Faza II, Handshake Protocol

Handshake Protocol
Faza III, Handshake Protocol l

Handshake Protocol
Faza IV, Handshake Protocol

Handshake Protocol
La sfritul fazei I: clientul i serverul au negociat protocoalele de securitate disponibile La sfritul fazei II: serverul este autentificat clientului clientul cunoate cheia public a serverului La sfritul fazei III: clientul este autentificat serverului (autentificarea clientului este op ional) clientul i serverul cunosc PMS (pre-master secret) La sfritul fazei IV: clientul i serverul snt gata s fac schimbul de date

Handshake Protocol

Handshake n rezumat (Stallings Fig. 17.6)

Tipuri de mesaje Handshake

Certificate
Folosite n fazele II, III Certificatul con ine cheia public X.509: standard de certificate; asociaz o cheie public cu o identitate (identificarea serverului) Certificatele snt create de un CA (Certificate Authority) Permit verificarea identit ii CA semneaz certificatele certificate chain: un CA poate semna certificatele pentru un alt CA un certificat poate fi revocat prin publicarea sa ntr-un CRL (Certificate Revocation List)

Con inutul unui certificat X.509


Versiune (1,2,3) Serial Number Signature Algorithm Identifier Object Identifier (OID) e.g. id-dsa: {iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 1} Emis de CA: nume X.500 Perioada de validitate (Start,End) Subject X.500 name (sau alte formate de nume n ver.3, inclusiv folosirea unui nume de DNS, adres de e-mail, etc) Subject Public Key Algoritm Valoare Issuer (CA) Unique Id (Ver. 2 ,3) Subject Unique Id (Ver. 2,3) Extensii (ver. 3) optional CA digital Signature

Subject Name X.500

Nivelul 1: ara de origine (e.g. US) Nivelul 2: organiza ia care emite certificatul (e.g. CertCo) Nivelul 3: numele comun (e.g. Common Name Elizabeth cu Id = 1)
DN = {
C=US; O=CertCo; CN=Elizabeth, ID=1}

(DN = Distinguished Name)

Semnarea certificatelor
Serverul creaz o semntur RSA
Creaz hash al certificatului Cripteaz folosind cheia privat a CA i trimite

Verificarea semnturii n client (browser), echivalent cu verificarea autenticit ii serverului


Decripteaz hash-ul primit, folosind cheia public a CA Verific egalitatea hash-ului primit cu cel calculat local

Cheile publice ale CA snt men inute de obicei de ctre OS ntr-o list de root certificates
Ele se pot actualiza periodic (ex: Windows updates - root certificates updates) Peste 100 de CA: VeriSign, Equifax, GlobalSign, etc

Self-signed certificates: atunci cnd nu se folosete un CA; sesiunea SSL este criptat dar nu se realizeaz autentificarea serverului; metod simpl folosit mai ales n intraneturi

2. ChangeCipherSpec Protocol
Snt 2 stri: pending i active;evolu ia parametrilor ntre cele 2 stri:

3. Alert Protocol
Mesaje de alert defnite pt SSL

4. Record Protocol
OBS: MAC=Message Authentication Code; MAC trebuie sa fie acelai la surs i destina ie

Opera iile efectuate de ctre Record Protocol:

Formatul mesajelor SSL


Mesajele Record Protocol con in (prin ncapsulare) mesajele de la 3 protocoale SSL i datele de la nivelul aplica ie ChangeCipherSpec Protocol Alert Protocol Handshake Protocol + Application Data

Partea 2: TLS

Transport Layer Security (TLS)


TLS este versiunea IETF de SSL. Ultima versiune de SSL v. 3.0 st la baza TLS v. 1.0 n handshake versiunea transmis este v. 3.1 TLS este foarte similar SSL dar micile diferen e le fac incompatibile: Se folosete HMAC n loc de MAC Fortezza nu mai exist n lista de cifuri Schimbri n calculul hash-ului Alerte adi ionale

Cipher Suite
Cipher Suite TLS

Pseudo-Random Function
Ce nseamn pseudo-random ?

Pseudo-Random Function

Pseudo-Random Function (PRF)


PRF n TLS: ? se genereaz din tripletul (secret,label,seed)

Master Secret
Generarea Master Secret n TLS

OBS: 1) PMS se calculeaz la fel ca n SSL 2) n ghilimele Master secret : irul se ia ntocmai

Generarea cheilor
Generarea cheilor n TLS

Alert Protocol
Schimbri n TLS: nu exist alerta NoCertificate. cteva alerte noi Tipuri de alerte:

HTTPS: HTTP+ TLS


S HTTPS: cea mai popular aplica ie a TLS URL: https:// Necesit un server i un browser web TLS-capable

Bibliografie

Behrouz Forouzan, Cryptography and network security, McGraw-Hill

S-ar putea să vă placă și