Transport Layer Security TLS SSL HTTPS Introducere HTTP




























- Slides: 28

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

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 fost SSL dezvoltata de Netscape • SSL a stat la baza standardului IETF TLS

• 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 – 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 un web server si un client – Bazat pe TCP – Are raspunsuri server specifice

• 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 pentru o pagina web – Browser-ul interpreteaza codul HTML si afiseaza pe pagina web

• 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 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 • 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 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 – 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 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 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 (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 de pachete

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 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 – 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 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 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 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 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 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 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 • 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 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