Ce este TLS și cum funcționează?

Ce este criptarea TLS și cum funcționează

Transport Layer Security (TLS) este unul dintre cele mai importante și utilizate pe scară largă protocoale de securitate. Protejează o proporție semnificativă a datelor care sunt transmise online. Este cel mai proeminent utilizat pentru securizarea datelor care călătoresc între un browser web și un site web prin HTTPS, dar poate fi folosit și pentru a securiza e-mailul și o serie de alte protocoale.

TLS este valoros, deoarece asigură că cealaltă parte dintr-o conexiune este cine spune ei, arată dacă datele își păstrează integritatea inițială și oferă confidențialitate prin criptare.

TLS utilizează o serie de algoritmi și scheme diferite pentru îndeplinirea acestor scopuri. Poate părea complicat, dar acest articol va acoperi un aspect simultan pentru a vă oferi o privire aprofundată asupra modului în care funcționează TLS pentru securizarea conexiunilor.

Ce face TLS?

Când trimitem informații online, ne confruntăm cu trei probleme majore de securitate:

  • Cum putem ști dacă persoana cu care comunicăm este cu adevărat cine spune ei?
  • Cum putem ști că datele nu au fost modificate de când le-au trimis?
  • Cum putem împiedica alte persoane să vadă și să acceseze datele?

Aceste probleme sunt cruciale, mai ales când trimitem informații sensibile sau valoroase. TLS utilizează o serie de tehnici criptografice pentru a rezolva fiecare dintre aceste trei probleme. Împreună, ei permit protocolului Autentificați cealaltă parte într-o conexiune, verificați integritatea datelor și asigurați o protecție criptată.

Simplificăm lucrurile și ne prefacem că încercați să transferați informații înainte și înapoi cu un prieten care locuiește în țară. Dacă informațiile sunt sensibile, veți fi foarte îngrijorat de cele trei probleme majore menționate mai sus.

Nu poți doar să trimiți o scrisoare și să speri la cele mai bune, mai ales dacă suspectezi că comunicările tale vor fi vizate de atacatori. În schimb, aveți nevoie de un sistem care să vă permită să verificați dacă destinatarul dvs. este legitim, o modalitate prin care puteți verifica dacă mesajele au fost modificate și o modalitate de a le proteja împotriva ochilor înțepători.

TLS îndeplinește aceste cerințe folosind o serie de procese diferite. Începe cu ceea ce este cunoscut ca a Strângere de mână TLS, care este locul unde are loc autentificarea și sunt stabilite cheile.

Pentru a reveni la analogia scrisorii noastre, partea de autentificare a TLS ar fi de genul trimiterii unei scrisori prin intermediul unui curier care necesită identificarea. Când curierul livrează scrisoarea, aceștia ar compara ID-ul persoanei cu fața lor și ar verifica dacă destinatarul a fost sau nu persoana corectă.

Faza de stabilire a cheilor ar fi puțin ca și dacă scrisoarea dvs. ar conține jumătate dintr-un număr PIN pe care intenționați să îl utilizați în comunicările viitoare. Ați solicita destinatarului dvs. să vină cu a doua jumătate a numărului și să vi-l trimiteți în scrisoarea de retur.

Odată ce curierul a verificat identitatea și a fost stabilit numărul pinului, veți avea tot ce aveți nevoie pentru a trimite informații în siguranță. În realitate, aceste etape sunt mult mai complexe, dar vom ajunge la asta mai târziu.

TLS face schimb sigur de informații cu protocolul aplicației. Pentru a continua analogia noastră, transmiterea în siguranță a datelor prin TLS ar fi ca și cum ai scrie un mesaj și să le introducem într-un plic. V-ați scrie semnătura peste sigiliu, astfel încât, dacă scrisoarea ar fi fost modificată, destinatarul dvs. va putea spune prin semnătura ruptă (aceasta este de fapt făcută cu matematica, dar din nou, o vom acoperi în profunzime mai târziu).

Apoi, ai introduce scrisoarea într-o cutie mică de metal care avea un blocaj de combinație, setând combinația ca numărul de pini pe care l-ai stabilit împreună cu destinatarul. Ați trimite cutia prin curierul care verifică identificarea la livrarea pachetelor. Destinatarul dvs. va răspunde în același mod și orice comunicare viitoare va urma aceiași pași.

TLS rezolvă toate cele trei probleme într-un mod relativ similar. Curierul servește pentru autentificarea destinatarului și pentru a vă asigura că caseta este livrată persoanei destinate. Caseta încuiată servește ca o formă de criptare, împiedicând pe nimeni în afară de partenerul dvs. să acceseze scrisorile. Plicul semnat vă permite să știți dacă mesajul nu a fost modificat.

Aceasta este o aproximare foarte brută a ceea ce face TLS. In realitate, TLS are loc între clienți și servere, mai degrabă decât două persoane care își trimit mail unul altuia. Analogia este doar pentru a vă oferi o vizualizare a ceea ce se întâmplă și a raționamentelor din spatele ei. În secțiunile următoare, vom aborda ceea ce se întâmplă de fapt în detaliu.

TLS vs. SSL

Când citiți despre TLS, veți vedea deseori mențiuni despre SSL sau chiar ca TLS / SSL. Secure Sockets Layer (SSL) este vechea versiune de TLS, însă mulți din industrie se referă încă la TLS în vechea versiune. Acest articol va folosi termenul TLS în întregime, dar este important să rețineți că numele sunt adesea utilizate în mod interschimbabil. Puteți citi mai multe despre SSL în ghidul nostru.

Istoria TLS

Totul a început cu necesitatea asigurării stratului de transport. Așa cum am menționat mai sus, precursorul TLS a fost SSL. Primele versiuni ale SSL au fost dezvoltate în anii 90 de către Netscape, o companie care a construit unul dintre browserele web timpurii..

SSL 1.0 nu a fost niciodată lansat, deoarece conținea vulnerabilități grave. Versiunea 2.0 a apărut cu Netscape Navigator 1.1 în 1995, cu toate acestea, a conținut încă o serie de defecte grave. SSL 3.0 a fost o versiune puternic reproiectată și a apărut în 1996, cu multe dintre problemele de securitate rezolvate.

În 1996, IETF a lansat un proiect de SSL 3.0 în RFC 6101. IETF a format un grup de lucru pentru standardizarea SSL, publicând rezultatele în 1999 sub forma TLS 1.0. A fost documentată în RFC 2246, iar standardizarea a inclus unele modificări ale protocolului inițial, precum și modificarea numelui. Aceste modificări au apărut ca urmare a negocierilor dintre Netscape, Microsoft și grupul de lucru IETF.

În 2006, IETF a lansat RFC 4346, care documentează TLS 1.1. Această versiune conținea noi prevederi de securitate și o serie de alte actualizări. Versiunea 1.2 a fost lansată la doar doi ani mai târziu, în 2008. A inclus suport pentru criptare de criptare autentificate, o serie de modificări ale modului de utilizare a funcțiilor hash și multe alte îmbunătățiri.

Următoarea versiune nu a ajuns până în [year], când a fost definit TLS 1.3. Prezintă o serie de modificări, inclusiv secretul forțat înainte, eliminarea suportului pentru algoritmi mai slabi și multe altele.

TLS 1.0 și 1.1 sunt acum în vigoare în [year], dar versiunea 1.2 este pe scară largă. Versiunea 1.3 începe să vadă o adopție sporită.

TLS: Detaliile tehnice

TLS este format din multe elemente diferite. Partea fundamentală este protocolul de înregistrare, protocolul de bază responsabil pentru structura generală a tuturor celorlalte lucruri.

tls-3

Diagrama care arată stiva TLS. Pila de protocol TLS de Jeffreytedjosukmono. Licențiat în baza CC0.

Protocolul de înregistrare conține cinci subprotocole separate, fiecare fiind formatat ca înregistrări:

  • Strângere de mână – Acest protocol este utilizat pentru a configura parametrii pentru o conexiune securizată.
  • cerere – Protocolul de aplicare începe după procesul de strângere de mână și este locul în care datele sunt transmise în siguranță între cele două părți.
  • Alerta – Protocolul de alertă este folosit de oricare dintre părți într-o conexiune pentru a notifica celeilalte dacă există erori, probleme de stabilitate sau un potențial compromis.
  • Schimbă Cipher Spec – Acest protocol este folosit fie de client, fie de server pentru a modifica parametrii de criptare. Este destul de simplu, așa că nu îl vom cuprinde în profunzime în acest articol.
  • Emoţie – Aceasta este o extensie TLS care permite ca o parte a conexiunii să știe dacă colegul său este încă viu și împiedică firewall-urile să închidă conexiunile inactive. Nu este o parte de bază a TLS, așa că îl vom omite în acest ghid.

Fiecare dintre aceste subprotocole sunt utilizate în diferite etape pentru a comunica informații diferite. Cele mai importante de înțeles sunt strângerea de mână și protocoalele de aplicare, deoarece acestea sunt responsabile pentru stabilirea conexiunii și apoi transmiterea în siguranță a datelor.

Protocolul de strângere de mână TLS

Aici conexiunea este stabilită într-o manieră sigură. Poate părea complexă dacă sunteți nou la unele dintre concepte, dar fiecare dintre acestea sunt tratate mai târziu în articol, dacă trebuie să faceți referire la ele.

Există trei tipuri de strângere de mână TLS: strângere de mână de bază TLS, strângere de mână TLS autentificată de client si strângere de mână prescurtată.

Strângere de mână de bază TLS

tls-2

Diagrama care arată procesul de strângere de mână TLS. Strângere de mână completă TLS 1.2 de FleshGrinder. Licențiat în baza CC0.

În acest tip de strângere de mână, doar serverul este autentificat și nu clientul. Începe cu faza de negociere, unde un client trimite un Buna ziua Client mesaj. Aceasta conține cea mai înaltă versiune de TLS pe ​​care o acceptă clientul, posibile suite de cifrare, o indicație dacă acceptă compresie, un număr aleatoriu și alte informații

Mesajul Client Hello este întâmpinat cu un Server Buna ziua mesaj. Acest răspuns conține ID-ul sesiunii, versiunea de protocol, suita de criptare și compresia (dacă se utilizează vreunul) pe care serverul selectat din lista clientului. De asemenea, include un număr diferit aleatoriu.

Depinde de suita de cifrare care a fost selectată, dar serverul va urma în general acest lucru prin trimiterea unui Certificat mesaj pentru autentificare. Aceasta își validează identitatea și conține cheia publică.

Dacă sunt utilizate schimburi cheie efemere Diffie-Hellman sau anonim Diffie-Hellman, atunci acesta este urmat de un Schimb de chei de server mesaj. Alte metode de schimb cheie omit această parte. Când serverul a terminat cu partea sa a negocierii, trimite un Server Bună terminat mesaj.

Acum este rândul clientului să se întoarcă din nou. În funcție de suita de cifrare aleasă, va trimite un Schimbul de chei client mesaj. Aceasta poate conține o cheie publică sau un secret premaster, care este criptat cu cheia publică a serverului.

Ambele părți folosesc apoi numerele aleatorii și secretul premaster pentru a crea un secret maestru. Tastele sunt derivate din secretul principal, care sunt apoi utilizate pentru autentificarea și criptarea comunicărilor.

Clientul trimite apoi un Schimbă Cipher Spec mesaj. Acest lucru spune serverului că următoarele mesaje vor fi acum autentificate și criptate (deși uneori criptarea nu poate fi utilizată).

Clientul urmează apoi acest lucru cu o Terminat mesaj, care este criptat și conține, de asemenea, un cod de autentificare a mesajelor (MAC) pentru autentificare. Serverul decriptează acest mesaj și verifică MAC-ul. Dacă oricare dintre aceste procese eșuează, atunci conexiunea trebuie respinsă.

Acum este rândul serverului să trimită un Schimbă Cipher Spec mesaj, precum și un Terminat mesaj cu același conținut ca mai sus. Clientul încearcă apoi să decripteze și să verifice conținutul. Dacă acest lucru este completat cu succes, strângerea de mână este terminată. În acest moment, protocolul de aplicare este stabilit. Datele pot fi apoi schimbate în siguranță în același mod ca și Terminat mesaj de sus, cu autentificare și criptare opțională.

Strângere de mână TLS autentificată de client

Această strângere de mână este asemănătoare cu strângerea de mână TLS de bază, dar clientul este autentificat și el. Principala diferență este că după ce serverul trimite Certificat mesaj, de asemenea, trimite un Cerere de certificat mesaj, solicitând certificatul clientului. Odată ce serverul este terminat, clientul își trimite certificatul în a Certificat mesaj.

Clientul îi trimite apoi Schimbul de chei client mesaj, la fel ca în strângerea de mână de bază TLS. Aceasta este urmată de Verifică certificatul mesaj, care include semnătura digitală a clientului. Întrucât este calculată din cheia privată a clientului, serverul poate verifica semnătura folosind cheia publică care a fost trimisă ca parte a certificatului digital al clientului. Restul Strângere de mână TLS autentificată de client urmează aceleași linii ca și strângerea de mână de bază TLS.

Strângere de mână TLS prescurtată

Odată ce o strângere de mână a avut deja loc, TLS permite tăierea unei mari părți a procesului folosind în schimb o strângere de mână prescurtată. Aceste strângeri de mână folosesc ID-ul sesiunii pentru a conecta noua conexiune la parametrii precedenți.

O strângere de mână prescurtată permite ambelor părți să reia conexiunea sigură cu aceeași configurație care a fost negociată anterior. Deoarece o parte din criptografie care este implicată în mod normal în inițierea unei strângeri de mână poate fi destul de grea la resursele de calcul, acest lucru economisește timp și face conexiunea mai ușoară.

Procesul începe cu Buna ziua Client mesaj. Este asemănător cu mesajul anterior al Hello Hello, dar conține și sesiune ID din conexiunea anterioară. Dacă serverul cunoaște ID-ul sesiunii, îl include în acesta Server Buna ziua mesaj. Dacă nu recunoaște ID-ul sesiunii, acesta va returna un număr diferit și va trebui să aibă loc o strângere de mână completă TLS.

Dacă serverul recunoaște ID-ul sesiunii, atunci Certificat și Schimb de chei pașii pot fi săriți. Schimbă Cipher Spec și Terminat mesajele sunt trimise în același mod cu strângerea de mână de bază TLS prezentată mai sus. După ce clientul a decriptat mesajul și a verificat MAC-ul, datele pot fi trimise prin conexiunea TLS sigură.

Există, de asemenea, o extensie TLS care permite reluarea conexiunilor cu bilete de sesiune în loc de ID-uri de sesiune. Serverul criptează datele despre sesiune și le trimite clientului. Când clientul dorește să reia această conexiune, trimite biletul de sesiune către server, care îl decriptează pentru a dezvălui parametrii.

Biletele de sesiune nu sunt utilizate la fel de des, deoarece necesită extensie. În ciuda acestui fapt, acestea pot fi avantajoase în anumite situații, deoarece serverul nu trebuie să stocheze nimic.

Despachetarea strângerii de mână TLS

Cele mai importante trei etape ale strângerii de mână includ:

  • parametrii sunt selectați,
  • realizează autentificarea și
  • cheile sunt stabilite.

Să le acoperim într-un detaliu puțin mai mare, astfel încât să înțelegeți ce se întâmplă cu adevărat.

Parametrii

La începutul strângerii de mână, clientul și serverul negociază parametrii conexiunii de comun acord. Primul dintre acestea este ce versiune a TLS va fi utilizată. Aceasta este cea mai înaltă versiune pe care ambele părți o susțin, care tinde să fie cea mai sigură.

De asemenea, părțile decid ce algoritm de schimb de chei vor utiliza pentru a stabili cheia principală. Funcția hash, algoritmul de criptare și metoda de compresie sunt de asemenea convenite în această etapă. Acestea vor fi abordate în detaliu atunci când vom discuta despre Protocol de aplicare mai târziu în articol.

Autentificare: certificate digitale

Autentificarea este o parte cheie a securizării unui canal de comunicare, deoarece permite ambelor părți să știe că vorbesc de fapt cu cine cred că sunt și nu un impostor. În TLS și în multe alte mecanisme de securitate, acest lucru este realizat cu ceea ce sunt cunoscute sub numele de certificate digitale.

Certificatele digitale sunt documente electronice care arată legătura dintre o persoană sau o entitate și cheia lor publică. Această legătură este validată de o autoritate de certificare (CA), care este o organizație de încredere care verifică că cele două sunt de fapt legate, apoi își folosește propria reputație pentru a acorda încredere certificatului.   

Nivelurile de certificare diferite reprezintă diferite grade de încredere. Lucrul important de știut este că, dacă un client sau un server are un certificat fiabil și valid, atunci este rezonabil să presupunem că cheia publică este legitimă și că nu aveți de-a face cu un atacator.

O notă despre cheile publice

Criptarea cu cheie publică (cunoscută și sub denumirea de criptare asimetrică) este o parte importantă a criptografiei și este utilizată pe scară largă în diferitele aspecte ale TLS. Iată o informație rapidă pentru cei care nu sunt familiarizați cu modul în care funcționează.

Explicația scurtă este că criptografia cu cheie publică folosește o pereche de chei pentru criptare și decriptare, mai degrabă decât o singură cheie. Expeditorul folosește cheia publică a destinatarului destinat pentru criptarea datelor. După ce a fost criptată, aceasta poate fi decriptată numai cu cheia privată corespunzătoare a destinatarului. Desigur, cheia publică poate fi partajată public, în timp ce cheia privată trebuie păstrată secretă.

Criptarea cu chei publice permite părților să partajeze informații în siguranță, chiar dacă nu s-au întâlnit niciodată sau au avut posibilitatea de a schimba cheile în prealabil. Face acest lucru prin unele proprietăți unice ale numerelor prime. Puteți afla mai multe în articolul nostru despre criptarea cu chei publice.

Stabilirea unui secret maestru

După cum am văzut mai sus, când am discutat despre procesul de strângere de mână de bază TLS, după ce o parte (sau ambele părți) își dovedește identitatea cu certificatul său public, următorul pas este stabilirea secretului maestru, cunoscut și sub numele de secretul comun. Secretul principal este baza pentru derivarea cheilor utilizate pentru ambele criptare și verificarea integrității datelor transmise între cele două părți.

Strângerea de mână TLS poate utiliza o serie de mecanisme diferite pentru a partaja acest secret în siguranță. Acestea includ RSA, mai multe tipuri diferite de schimb de chei Diffie-Hellman, PSK, Kerberos și altele. Fiecare are propriile sale avantaje și dezavantaje, cum ar fi asigurarea secretului înainte, dar aceste diferențe sunt în afara acestui obiect.

Procesul exact va depinde de ce metodă de schimb de chei a fost aleasă, dar urmează etapele brute menționate în Strângere de mână de bază TLS secțiune.

Secretul premaster este derivat conform oricărei metode de schimb de chei au fost selectate anterior. Clientul criptează secretul premaster cu cheia publică a serverului pentru a-l trimite în siguranță prin intermediul conexiunii.

Clientul și serverul utilizează apoi secretul premaster și numerele aleatorii pe care le-au trimis la începutul comunicării pentru a găsi secretul principal. După ce a fost calculată cheia principală, se utilizează fie patru sau șase taste separate. Acestea sunt:

  • Client scrie cheia MAC – Această cheie este utilizată de server pentru a verifica integritatea datelor care au fost trimise de client.
  • Server scrie cheie MAC – Cheia MAC de scriere a serverului este utilizată de client pentru a verifica integritatea datelor care au fost trimise de server.
  • Cheia de criptare a scrierii clientului – Serverul utilizează această cheie pentru criptarea datelor care au fost trimise de client.
  • Cheia de criptare a serverului de scriere – Clientul utilizează această cheie pentru criptarea datelor care au fost trimise de server.
  • Client scrie cheia IV – Cheia de scriere a clientului IV este utilizată de server în cifrele AEAD, dar nu atunci când sunt folosiți alți algoritmi de schimb de chei.
  • Server scrie cheie IV – În mod similar, această cheie este utilizată de client în cifrele AEAD, dar nu și atunci când sunt folosiți alți algoritmi de schimb de chei.

Stabilirea cheii master este o parte importantă a strângerii de mână TLS, deoarece permite ambelor părți ale conexiunii să obțină în siguranță chei care pot fi utilizate atât pentru autentificare, cât și pentru criptare. Tastele separate sunt utilizate pentru ambele procese ca măsură de precauție.

Odată ce cheile de autentificare și criptare au fost obținute, acestea sunt utilizate pentru a proteja ambele Terminat mesaje, precum și înregistrări trimise prin protocolul aplicației.

Protocolul de aplicare

După stabilirea unei conexiuni sigure prin strângerea de mână TLS, protocolul de aplicație este utilizat pentru a proteja datele transmise. Poate fi configurat să folosească o gamă largă de algoritmi pentru a se potrivi diferitelor scenarii.

Algoritmi de autentificare

Integritatea mesajelor poate fi verificată cu mai mulți algoritmi diferiți. Acestea includ:

  • HMAC-MD5
  • HMAC-SHA1
  • HMAC-SHA-2
  • AEAD

Pentru a dovedi integritatea datelor care sunt trimise, expeditorul rulează informațiile printr-o funcție hash pentru a returna un șir unic de caractere. Acestea sunt formule speciale care vor întoarce întotdeauna același rezultat ori de câte ori vor primi aceeași intrare.

Expeditorul semnează aceste date cu cheia lor privată pentru a forma ceea ce este cunoscut sub numele de semnătură digitală, Semnătura digitală este apoi atașată la mesaj și trimisă destinatarului. Pentru a verifica dacă datele își păstrează integritatea și nu au fost modificate, destinatarul decriptează hașul cu cheia publică a expeditorului. Apoi folosesc aceeași funcție de hash pe datele care au fost trimise. Apoi, destinatarul compară cele două valori.

Dacă sunt aceleași, înseamnă că datele nu au fost modificate de când au fost semnate de expeditor. Dacă acestea sunt diferite, este posibil ca datele să fie modificate sau să fi existat alte erori.

Aceasta este versiunea scurtă a modului în care funcțiile hash pot fi utilizate pentru a arăta integritatea datelor. Dacă doriți o înțelegere mai aprofundată, consultați articolul nostru despre criptare, sărare și hașare.

Algoritmi de criptare

TLS folosește criptarea cheilor simetrice pentru a oferi confidențialitate datelor pe care le transmite. Spre deosebire de criptarea cu chei publice, doar o singură cheie este folosită atât în ​​procesele de criptare cât și de decriptare. După ce datele au fost criptate cu un algoritm, acestea vor apărea sub forma unui cod de text. Atâta timp cât se folosește un algoritm adecvat, atacatorii nu vor putea accesa datele reale, chiar dacă le intercep.

TLS poate utiliza mai mulți algoritmi diferiți, precum Camellia sau ARIA, deși cel mai popular este AES.

Comprimare

Compresia este procesul de codificare a datelor pentru a face să ocupe mai puțin spațiu. TLS acceptă compresia dacă ambele părți ale conexiunii decid să o utilizeze. În ciuda acestei abilități, se recomandă, în general, evitarea utilizării TLS pentru a comprima datele, mai ales după atacul CRIME (vezi Probleme de securitate TLS secțiunea de mai jos) s-a dovedit a fi capabil să profite de datele comprimate pentru deturnarea sesiunilor.

umplutură

Completarea adaugă date suplimentare la un mesaj înainte de a fi criptată. Este un proces criptografic obișnuit, care este folosit pentru a preveni ca ideile din structura datelor criptate să nu ofere adevăratele sale semnificații. TLS aplică în general căderea PKCS # 7 la înregistrări înainte ca acestea să fie criptate.

Protocol de alertă

Dacă conexiunea sau securitatea devine instabilă, compromisă sau a apărut o eroare gravă, protocolul de alertă permite expeditorului să notifice celeilalte părți. Aceste mesaje au două tipuri, fie de avertizare, fie fatale. Un mesaj de avertizare indică faptul că sesiunea este instabilă și permite destinatarului să stabilească dacă sesiunea trebuie sau nu continuată.

Un mesaj fatal spune destinatarului că conexiunea a fost compromisă sau a apărut o eroare gravă. Expeditorul ar trebui să închidă conexiunea după ce a trimis mesajul. Protocolul de alertă conține, de asemenea, informații despre ceea ce provoacă o anumită problemă de conectare. Aceasta poate include lucruri cum ar fi eșecul de decriptare, o autoritate de certificare necunoscută, un parametru ilegal și multe altele.

TLS & modelul OSI

Modelul OSI este o modalitate de conceptualizare și standardizare a modului în care privim diferitele noastre sisteme de comunicare și protocoale. Este important să rețineți că este doar un model și că unele dintre protocoalele noastre nu sunt conforme cu acesta.

OSI are șapte straturi separate care arată nivelurile la care protocoalele funcționează, TLS nu se încadrează în niciuna. Se revarsă peste un alt protocol de transport, cum ar fi TCP, ceea ce ar trebui să implice că se află peste cel de-al patrulea strat, stratul de transport. Este folosit cel mai proeminent ca un strat de transport, dar, deoarece realizează strângeri de mână, acest lucru ar presupune că face parte din straturile de prezentare sau aplicație.

După cum vedeți, TLS pur și simplu nu se conformează modelului OSI. Acest lucru nu înseamnă că TLS este rupt sau greșit, dacă este ceva, arată doar că modelul OSI este defectuos și nu poate da socoteală pentru toate protocoalele noastre de comunicare..

Utilizarea TLS

TLS este utilizat pentru a asigura o proporție semnificativă din comunicațiile noastre online. În mod normal, este implementat prin protocoale precum Protocolul de control al transmisiei (TCP), dar poate fi utilizat și în Protocolul de control al congestionării Datagram (DCCP) și în Protocolul utilizatorului Datagram (UDP).

Poate proteja protocoale precum HTTP, SMTP, FTP, XMPP și NNTP, precum și altele. Cea mai comună aplicație este Hypertext Transfer Protocol Secure (HTTPS), care protejează conexiunea dintre un browser web și un site web. Puteți spune când se utilizează HTTPS pentru a vă asigura conexiunea online, deoarece o pictogramă verde de blocare va apărea în stânga URL-ului din partea de sus a browserului dvs..

TLS poate fi, de asemenea, utilizat pentru a construi VPN-uri, cum ar fi în OpenConnect și OpenVPN. Își folosește capacitățile de criptare și autentificare pentru a forma un tunel care poate conecta gazdele și rețelele între ele. Tehnologiile VPN bazate pe TLS, cum ar fi OpenVPN, sunt avantajoase față de alternative precum IPsec, deoarece OpenVPN nu are probleme de securitate. Aceste VPN-uri pot fi, de asemenea, mai ușor de configurat.

O alta dintre utilizările sale este să securizați un e-mail prin STARTTLS. Când TLS este implementat, acesta împiedică atacatorii să poată accesa mesaje în timp ce călătoresc între serverele de poștă.

Probleme de securitate TLS

La fel ca majoritatea protocoalelor, TLS a avut o serie de vulnerabilități anterioare și atacuri teoretice împotriva diverselor sale implementări. În ciuda acestui, cele mai recente versiuni sunt considerate sigure în scopuri practice.

Versiunile anterioare, cum ar fi SSL 2.0 și 3.0 (și TLS 1.0, care este în esență aceeași cu SSL 3.0) prezintă numeroase defecte de securitate, dar, deoarece sunt protocoale vechi și depășite, nu vom intra în detalii. Ar trebui să utilizați TLS 1.2 și 1.3 pentru a vă asigura conexiunile.

Versiunile mai noi de TLS au numeroase upgrade-uri care îl fac mai puțin vulnerabil decât SSL. În ciuda acestui fapt, protocolul a avut încă următoarele probleme de securitate:

Atacuri de renegociere

Una dintre caracteristicile TLS este că permite perechilor de clienți și server să renegocieze parametrii conexiunii lor existente. În 2009, s-a descoperit că acest lucru ar putea fi exploatat de atacatori, astfel încât aceștia să poată injecta trafic pentru a face să pară din partea clientului. Serverele vor accepta cererea ca fiind legitimă, ceea ce înseamnă că atacatorii ar putea manipula mesajele de ieșire.

Acest atac nu permite atacatorului să vadă răspunsul, dar are totuși potențialul de a fi dăunător. O extensie care va preveni aceste atacuri este în prezent un standard propus.

FIARĂ

Atacul Browser Exploit Against SSL / TLS (BEAST) a fost descoperit pentru prima dată de cercetători în 2011. Acesta profită de vulnerabilitatea care înlănțuie blocul de criptare din TLS, care poate fi folosit pentru a decripta mesajele. Acest atac afectează doar TLS 1.0, care este o versiune mai veche și mai slabă a protocolului. Deși nu va fi învechit până în [year], utilizatorii ar trebui să utilizeze în schimb versiunile 1.2 și 1.3.

Atacuri de sincronizare

Aceste atacuri ale canalelor analizate analizează cât timp durează o rulare a algoritmului, apoi utilizează informațiile respective pentru a acționa înapoi și a descoperi cheia. În 2013, atacul Lucky Treisprezece a fost descoperit pentru a susține atât un atac de sincronizare, cât și un atac de oracol de umplere, în timp ce codul de autentificare a mesajului (MAC) este verificat. Acest atac poate fi folosit pentru a sparge algoritmul TLS, deși nu este considerat periculos pentru majoritatea utilizatorilor TLS.

CRIMA & ÎNCĂLCAREA

Atacul CRIME funcționează împotriva unei serii de protocoale. Când datele au fost comprimate, acestea pot provoca conținut din cookie-urile de autentificare. Aceste informații pot fi utilizate pentru deturnarea sesiunilor. Deși afectează o serie de protocoale, atacul este deosebit de îngrijorător atunci când se utilizează compresia HTTP, deoarece nu există strategii eficiente de atenuare.

În 2013, exploatarea Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext (BREACH) a descoperit că a afectat compresia HTTP într-un mod similar. Această versiune a atacului poate recupera adrese de e-mail și alte date valoroase care au fost criptate cu TLS. Atacul BREACH poate fi atenuat prin dezactivarea compresiei HTTP sau folosind tehnici precum protecția de falsificare a cererii (site-ul CSRF).

Atacuri downgrade

Acestea sunt atacuri care încurcă serverele în utilizarea versiunilor anterioare și mai puțin sigure ale TLS. Atacatorii ar putea folosi aceste tehnici pentru a negocia utilizarea schimburilor de chei și a cifrelor mai puțin sigure. Atacul Logjam este un exemplu bun, deoarece ar putea face ca serverele vulnerabile să folosească Diffie-Hellman pe 5 biți, care este slab. Atacatorii pot apoi să rupă acest mecanism de schimb de chei și să extragă cheile, permițându-le accesul complet la sesiune.

heartbleed

Heartbleed a fost un defect de securitate care a fost introdus din greșeală în biblioteca de criptografie OpenSSL în 2012, dar nu a fost mediatizat până în 2014. Deoarece aceasta este o implementare atât de frecvent utilizată a TLS, a provocat daune importante la nivel global.

Unul dintre dezvoltatorii pentru extensia bătăilor inimii TLS a adăugat o vulnerabilitate de citire a tamponului, care permite expunerea unor date suplimentare. Eroarea nu a fost preluată la revizuirea codului, ceea ce a dus la o serie de atacuri semnificative.

Deoarece biblioteca OpenSSL este implementată atât de pe scară largă, costurile internaționale de atenuare a problemei au ajuns să fie destul de costisitoare. Administratorii serverului au trebuit să instaleze noul patch și să regenereze certificatele și perechile de chei care ar fi putut fi compromise în perioada de doi ani în care vulnerabilitatea a existat.

ÎNECA

Decriptarea RSA cu atac eNcryption depășit și slăbit eNcryption (DROWN) a fost anunțată în 2016 și profită de suport pentru server pentru SSL 2.0. Acesta folosește un atac cu cifru ales împotriva serverelor care acceptă în continuare SSL 2.0, precum și cele care partajează același certificat de cheie publică cu un alt server care acceptă SSL 2.0.

Când a fost anunțat atacul, acesta ar putea fi lansat cu costuri de configurare inițiale de aproximativ 18.000 USD și aproximativ 400 USD pentru fiecare atac separat. Când atacul DROWN are succes, acesta achiziționează cheile sesiunii.

Atacul poate fi atenuat prin nepartajarea certificatelor serverului. Grupul OpenSSL a lansat, de asemenea, patch-uri care înlătură suportul pentru protocoale și cifre mai vechi, dar acestea funcționează numai dacă certificatul serverului nu este partajat cu alte servere care acceptă SSL 2.0.

PAC nefolositor

Acest atac a fost găsit în 2016. Acesta scapă de punctele slabe constatate în Protocolul de autodiscovery (WPAD) Web Proxy. Când un utilizator încearcă să viziteze un site web printr-o conexiune criptată TLS, defectul poate face URL-ul vizibil. Întrucât uneori adresele URL sunt trimise către utilizatori ca formă de autentificare, atacul PAC Unholy face posibil ca un atacator să preia contul unui utilizator.

Este TLS în siguranță?

Deși poate părea că există o mulțime de probleme de securitate, realitatea este că majoritatea acestora sunt destul de minore și pot fi sau au fost atenuate. Pe măsură ce tehnologia progresează, vulnerabilitățile sunt descoperite și apar noi atacuri, TLS va continua să aibă mai multe probleme de securitate. În ciuda acestui fapt, deocamdată și viitorul previzibil, se pare că TLS va fi în continuare unul dintre principalele și cele mai fiabile instrumente pe care le folosim pentru a asigura lumea noastră online.

Tehnologia de afaceri pentru securitate cibernetică de TheDigitalArtist licențiat sub CC0

About the author