82ea783c70fc890b992733846e732dd0.ppt
- Количество слайдов: 15
Transport Layer Security TLS, SSL, HTTPS Introducere Handshake protocol Record protocol
Introducere • • TLS – Transport Layer Security SSL – Secure Socket Layer 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
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