ssl tls rev1.6
TRANSCRIPT
SSL/TLS
SSL/TLSRol: 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 ieCuprins: 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 criptograficiSnt 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
i
Algoritmi pentru schimbul de cheiNULL 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
c
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 conexiunisesiune: 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 decimaster secret; fiecare are propriul connection state fiecare conexiune are alt grup de 6 chei (2 MAC, 2 chei, 2 IV)
Parametri de sesiuneSession State
Parametri de conexiuneConnection State
Cele 4 protocoale SSL4 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 ProtocolHandshake Protocol
Handshake ProtocolFaza I, Handshake Protocol
)
Handshake ProtocolFaza II, Handshake Protocol
Handshake ProtocolFaza III, Handshake Protocol l
Handshake ProtocolFaza IV, Handshake Protocol
Handshake ProtocolLa 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
e
CertificateFolosite 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 ProtocolSnt 2 stri: pending i active;evolu ia parametrilor ntre cele 2 stri:
3. Alert ProtocolMesaje de alert defnite pt SSL
i
4. Record ProtocolOBS: MAC=Message Authentication Code; MAC trebuie sa fie acelai la surs i destina ie
Opera iile efectuate de ctre Record Protocol:
Formatul mesajelor SSLMesajele 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 SuiteCipher Suite TLS
Pseudo-Random FunctionCe nseamn pseudo-random ?
e
Pseudo-Random Function
Pseudo-Random Function (PRF)PRF n TLS: ? se genereaz din tripletul (secret,label,seed)
Master SecretGenerarea Master Secret n TLS
OBS: 1) PMS se calculeaz la fel ca n SSL 2) n ghilimele Master secret : irul se ia ntocmai
Generarea cheilorGenerarea cheilor n TLS
)
Alert ProtocolSchimbri n TLS: nu exist alerta NoCertificate. cteva alerte noi Tipuri de alerte:
HTTPS: HTTP+ TLSS 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