Transport Layer Security TLS SSL HTTPS Introducere HTTP

  • Slides: 28
Download presentation
Transport Layer Security TLS, SSL, HTTPS Introducere HTTP si HTTPS Handshake protocol Record protocol

Transport Layer Security TLS, SSL, HTTPS Introducere HTTP si HTTPS Handshake protocol Record protocol

Introducere • • TLS – Transport Layer Security SSL – Secure Socket Layer HTTP

Introducere • • TLS – Transport Layer Security SSL – Secure Socket Layer HTTP - Hypertext Transfer Protocol HTTPS – Secure HTTP

 • Necesitatea confidentialitatii, integritatii si autentificarii in tranzactiile Web • Prima solutie a

• Necesitatea confidentialitatii, integritatii si autentificarii in tranzactiile Web • Prima solutie a fost SSL dezvoltata de Netscape • SSL a stat la baza standardului IETF TLS

 • Necesitatea confidentialitatii, integritatii si autentificarii nu sunt specifice tranzactiilor Web • SSL

• Necesitatea confidentialitatii, integritatii si autentificarii nu sunt specifice tranzactiilor Web • SSL si TLS sunt protocoale cu scop general pozitionate intre un protocol de nivel aplicatie si un protocol de nivel transport • Transport layer security – din perspectiva aplicatiei acest nivel al protocolului arata ca un protocol de nivel transport cu exceptia faptului ca este sigur • Ruland nivelul transport securizat deasupra TCP toate functiile acestuia sunt furnizate aplicatiei

 • Protocoale TLS – Handshake protocol negociaza optiunile si stabileste master secret –

• Protocoale TLS – Handshake protocol negociaza optiunile si stabileste master secret – Record protocol transfera datele • HTTPS – HTTP este neschimbat – Furnizeaza si primeste date de la SSL/TLS in loc de TCP – Portul TCP implicit 443 a fost asignat la HTTPS

HTTP si HTTPS • HTTP – Port 80 – Guverneaza modul in care interactioneaza

HTTP si HTTPS • HTTP – Port 80 – Guverneaza modul in care interactioneaza un web server si un client – Bazat pe TCP – Are raspunsuri server specifice

 • Pasi: – Clientul initiaza cererea HTTP spre server – HTTP returneaza codul

• Pasi: – Clientul initiaza cererea HTTP spre server – HTTP returneaza codul pentru o pagina web – Browser-ul interpreteaza codul HTML si afiseaza pe pagina web

 • Pasi: – Clientul initiaza cererea HTTP spre server – HTTP returneaza codul

• Pasi: – Clientul initiaza cererea HTTP spre server – HTTP returneaza codul pentru o pagina web – Browser-ul interpreteaza codul HTML si afiseaza pe pagina web

 • Pasi: – Clientul initiaza cererea HTTP spre server – HTTP returneaza codul

• Pasi: – Clientul initiaza cererea HTTP spre server – HTTP returneaza codul pentru o pagina web – Browser-ul interpreteaza codul HTML si afiseaza pe pagina web

 • HTTP URL poate de asemenea specifica portul pe server care ar trebui

• HTTP URL poate de asemenea specifica portul pe server care ar trebui sa trateze metodele HTTP • In plus, poate specifica un “query string” si un fragment. • Query string – contine informatii care nu sunt tratate de procesul serverului HTTP – sunt tratate de alt proces care ruleaza pe server

 • HTTP este un protocol request/response • Foloseste protocolul TCP, portul 80 •

• HTTP este un protocol request/response • Foloseste protocolul TCP, portul 80 • Cand un client transmite o cerere unui server web, va folosi una din cele sase metode specificate de protocolul HTTP – GET – POST – PUT – DELETE – OPTIONS – CONNECT

 • Raspunsurile serverului HTTP sunt identificate cu diferite coduri de stare, organizate in

• Raspunsurile serverului HTTP sunt identificate cu diferite coduri de stare, organizate in 5 grupuri: – 1 xx - Informational – 2 xx - Success – 3 xx - Redirection – 4 xx - Client Error – 5 xx - Server Error

 • Navigarea pe Web este probabil cel mai mare vector de atac –

• Navigarea pe Web este probabil cel mai mare vector de atac – Malicious i. Frames – un i. Frame permite ca o pagină dintr-un domeniu diferit să fie deschisă în pagina curentă. IFrame poate fi folosit pentru a lansa cod malitios. – HTTP 302 cushioning – permite unei pagini web să redirecționeze și să se deschidă într-o altă adresă URL. Poate fi utilizat pentru redirecționarea către cod rău intenționat. – Domain shadowing – site-urile web rău intenționate sunt create din subdomenii create dintr-un domeniu deturnat.

 • Toate informațiile transmise în HTTP sunt transmise în text de la calculatorul

• Toate informațiile transmise în HTTP sunt transmise în text de la calculatorul sursă la destinație pe Internet. • HTTP nu protejează datele de modificări sau interceptari • Amenințările bazate pe web constau în scripturi malware care au fost plantate pe servere web care direcționează browserele către serverele infectate prin încărcarea de cadre iframe.

 • În cazul injectării i. Frame, un actor de amenințare compromite un server

• În cazul injectării i. Frame, un actor de amenințare compromite un server web și instalează un cod rău intenționat, care creează un i. Frame invizibil pe o pagină web vizitată frecvent. • Când se încarcă i. Frame, se descarcă malware.

 • HTTPS adaugă un nivel de criptare protocolului HTTP utilizând secure socket layer

• HTTPS adaugă un nivel de criptare protocolului HTTP utilizând secure socket layer (SSL) • SSL face ca datele HTTP să nu poată fi citite de cand părăsesc calculatorul sursă până când ajung la server • HTTPS nu este un mecanism pentru securitatea serverului web

 • Traficul HTTPS criptat complica monitorizarea securitatii retelei • HTTPS adauga complexitate capturii

• Traficul HTTPS criptat complica monitorizarea securitatii retelei • HTTPS adauga complexitate capturii de pachete

Handshake protocol • Handshake protocol negociaza optiunile si stabileste master secret • O pereche

Handshake protocol • Handshake protocol negociaza optiunile si stabileste master secret • O pereche de participanti TLS negociaza criptografia – Hash-ul pentru integritatea datelor folosit pentru implementarea HMAC-urilor: MD 5 sau SHA – Algoritmul cu cheie simetrica pentru confidentialitate: DES, 3 DES sau AES – Abordarea stabilirii cheii de sesiune: Diffie-Hellman, fixed Diffie-Hellman sau protocoale de autentificare cu cheie publica folosind RSA sau DSS • Participantii pot negocia folosirea unui algoritm de compresie

 • O sesiune TLS necesita 6 chei – Algoritmul de criptare pentru confidentialitate

• O sesiune TLS necesita 6 chei – Algoritmul de criptare pentru confidentialitate foloseste doua chei, una pentru fiecare directie – Doi vectori de initializare – HMAC-urile folosesc chei diferite pentru cei doi participanti • TLS deriva toate cele 6 chei dintr-un singur master secret comun • Master secret este o valoare pe 384 biti (48 octeti) derivata in parte din cheia de sesiune rezultata din protocolul de stabilire a cheii de sesiune

 • Optiuni de stabilire a cheii de sesiune: – Certificate cu cheie publica

• Optiuni de stabilire a cheii de sesiune: – Certificate cu cheie publica – Diffie-Hellman • Optiuni de autentificare: – A ambilor participanti (mutuala) – Doar a unui participant – Fara autentificare (anonymous Diffie-Hellman)

 • Clientul trimite o lista a combinatiilor de algoritmi criptografici suportati in ordinea

• Clientul trimite o lista a combinatiilor de algoritmi criptografici suportati in ordinea descrescatoare a preferintelor • Serverul raspunde furnizand singura combinatie de algoritmi criptografici selectata din lista clientului

 • Mesajele contin de asemenea clientnonce si respectiv server-nonce care vor fi folosite

• Mesajele contin de asemenea clientnonce si respectiv server-nonce care vor fi folosite in generarea master secret • Nonce este un numar arbitrar folosit o singura data intr-o comunicatie criptografica • Mesajele de mai sus costituie faza de negociere

 • Serverul transmite mesaje (de autentificare) pe baza protocolului de stabilire a cheii

• Serverul transmite mesaje (de autentificare) pe baza protocolului de stabilire a cheii de sesiune negociat • Daca serverul doreste autentificarea clientului transmite un mesaj separat indicand aceasta

 • Clientul raspunde cu mesaje (de autentificare) pe baza protocolului de schimb al

• Clientul raspunde cu mesaje (de autentificare) pe baza protocolului de schimb al cheii negociat • Cheia de sesiune schimbata in urma acestor mesaje se numeste premaster secret

 • Master secret este calculata din premaster secret, client-nonce, servernonce • Folosind cheile

• Master secret este calculata din premaster secret, client-nonce, servernonce • Folosind cheile derivate de master secret clientul transmite un mesaj care include un hash al tuturor mesajelor handshake precedente

 • Folosind cheile derivate de master secret serverul transmite un mesaj care include

• Folosind cheile derivate de master secret serverul transmite un mesaj care include un hash al tuturor mesajelor handshake precedente • Aceste mesaje permit detectarea discrepante intre mesajele handshake

Record protocol • Record protocol transfera datele • Adauga confidentialitate si integritate serviciului transport

Record protocol • Record protocol transfera datele • Adauga confidentialitate si integritate serviciului transport • Mesajele transmise de la nivelul aplicatie spre nivelul transport sunt: – – – Fragmentate sau fuzionate Comprimate optional Protejate (integritatea) folosind un HMAC Criptate folosind un algoritm cu cheie simetrica Trimise nivelului transport

 • Fiecarui mesaj ii este asignat un numar de secventa inclus cand HMAC

• Fiecarui mesaj ii este asignat un numar de secventa inclus cand HMAC este calculat – Previne rejucarea (replay) si reordonarea mesajelor • Reluarea sesiunii: – Optimizare handshake – Poate fi negociata la crearea sesiunii – Clientul include ID-ul de sesiune din sesiunea stabilita initial – Serverul poate raspunde cu o indicatie de succes – Datele pot fi transmise folosind algoritmii si parametrii negociati initial