Što je TLS i kako djeluje?

Što je TLS enkripcija i kako funkcionira

Sigurnost transportnog sloja (TLS) jedan je od najvažnijih i široko korištenih sigurnosnih protokola. Štiti značajan dio podataka koji se prenose putem interneta. To je najistaknutije koristi se za zaštitu podataka koji putuju između web preglednika i web stranice putem HTTPS, ali može se koristiti i za zaštitu e-pošte i mnoštvo drugih protokola.

TLS je vrijedan jer osigurava drugoj strani u vezi s onim za koga kažu da je, pokazuje da li podaci zadržavaju svoj početni integritet i pruža povjerljivost šifriranjem.

TLS koristi niz različitih algoritama i shema za postizanje ovih ciljeva. Može se činiti kompliciranim, ali ovaj će članak pokrivati ​​jedan aspekt istovremeno i dati vam detaljni pregled načina rada TLS-a za osiguranje veza.

Što radi TLS?

Prilikom slanja podataka putem Interneta nailazimo na tri glavna sigurnosna problema:

  • Kako možemo znati je li osoba s kojom komuniciramo zaista onakva za koju kažu da je?
  • Kako možemo znati da se podaci nisu spremili otkad su ih poslali?
  • Kako možemo spriječiti druge ljude da vide i pristupe podacima?

Ova su pitanja ključna, posebno kad šaljemo osjetljive ili vrijedne informacije. TLS koristi niz kriptografskih tehnika za rješavanje svakog od ova tri problema. Zajedno dopuštaju protokolu da provjeriti autentičnost druge strane u vezi, provjeriti integritet podataka i pružiti šifriranu zaštitu.

Pojednostavimo stvari i pretvaramo se da pokušavate prenositi informacije naprijed i natrag s prijateljem koji živi diljem zemlje. Ako su informacije osjetljive, bit ćete jako zabrinuti zbog gore spomenutih tri glavna problema.

Ne možete samo poslati pismo i nadati se najboljem, pogotovo ako sumnjate da će napadači ciljati vaše napadače. Umjesto toga, potreban vam je sustav koji vam omogućuje da provjerite je li vaš primatelj legitiman, način na koji možete provjeriti jesu li poruke izmijenjene i način da ih zaštitite od znatiželjnih očiju.

TLS ispunjava ove zahtjeve koristeći brojne različite postupke. Sve započinje s onim što je poznato kao TLS stisak ruke, tamo se odvija provjera autentičnosti i uspostavljaju se ključevi.

Da se vratimo na našu analogiju pisama, dio potvrde identiteta TLS-a bio bi poput slanja pisma putem kurira koji zahtijeva identifikaciju. Kada kurir dostavlja pismo, on bi usporedio osobni dokument s njihovim licem i provjerio je li primatelj tačna osoba ili ne.

Ključna faza uspostavljanja bila bi pomalo slična ako vaše pismo sadrži pola PIN-a koji ste htjeli koristiti u budućim komunikacijama. Zamolili biste svog primatelja da mu ponudi drugu polovicu broja i pošalje vam ga u povratničkom pismu.

Nakon što kurir potvrdi identitet i utvrdi broj PIN-a, imat ćete sve što je potrebno za sigurno slanje podataka. U stvarnosti su ove faze puno složenije, ali na to ćemo doći kasnije.

TLS sigurno razmjenjuje podatke s aplikacijskim protokolom. Da bismo nastavili našu analogiju, sigurno prenošenje podataka putem TLS-a bilo bi poput pisanja poruke i stavljanja u omotnicu. Napisali biste svoj potpis preko pečata, tako da ako je pismo bilo krivotvoreno, vaš primatelj bi mogao to prepoznati po ošišanom potpisu (to se zapravo radi matematikom, ali opet, kasnije ćemo to detaljno sakriti).

Zatim biste slovo stavili u malu metalnu kutijicu koja je imala kombinirano zaključavanje, a kombinaciju biste postavili kao broj pribadača koji ste zajednički utvrdili sa svojim primateljem. Kutiju ćete poslati preko kurira koji provjerava identifikaciju kad su paketi dostavljeni. Vaš će primatelj odgovoriti na isti način, a svaka buduća komunikacija slijedila bi iste korake.

TLS sva tri naša problema rješava na relativno sličan način. Kurir služi za autentifikaciju primatelja i provjeru je li kutija dostavljena njegovoj namjeravanoj osobi. Zaključani okvir služi kao oblik šifriranja, sprječavajući pristup do pisma svima osim vašem partneru. Potpisana omotnica omogućava vam da znate je li poruka neovlaštena.

Ovo je vrlo gruba aproksimacija onoga što TLS čini. U stvarnosti, TLS se odvija između klijenata i poslužitelja, a ne dvoje ljudi koji jedan drugome šalju poštu. Analogija je samo da vam date vizualizaciju onoga što se događa i obrazloženje iza toga. U sljedećim ćemo odjeljcima detaljno objasniti što se zapravo događa.

TLS vs SSL

Kad čitate o TLS-u, često ćete vidjeti SSL-ove ili čak kao TLS / SSL. Sloj sigurnih utičnica (SSL) stara je verzija TLS-a, ali mnogi se u industriji još uvijek pozivaju na TLS pod starim mehanizmom. U ovom će se članku upotrebljavati izraz TLS, no važno je napomenuti da se imena često upotrebljavaju naizmjenično. Više o SSL-u možete pročitati u našem vodiču.

Povijest TLS-a

Sve je počelo potrebom da se osigura transportni sloj. Kao što smo gore spomenuli, prethodnik TLS-a bio je SSL. Prve verzije SSL-a razvio je devedesetih godina Netscape, tvrtka koja je izgradila jedan od ranih web pretraživača.

SSL 1.0 nikad nije pušten jer sadrži ozbiljne ranjivosti. Verzija 2.0 izašla je s Netscape Navigator 1.1 1995. godine, ali ona je i dalje sadržavala niz ozbiljnih nedostataka. SSL 3.0 bio je jako redizajnirana verzija, a izašao je 1996., s tim su riješena mnoga sigurnosna pitanja.

1996. godine, IETF je objavio nacrt SSL 3.0 u RFC 6101. IETF je formirao radnu skupinu za standardizaciju SSL-a, a rezultate je 1999. objavio kao TLS 1.0. To je dokumentirano u RFC 2246, a standardizacija je uključivala neke promjene izvornog protokola, kao i promjenu imena. Do tih izmjena došlo je kao rezultat pregovora između Netscapea, Microsofta i IETF radne skupine.

IETF je 2006. objavio RFC 4346, koji dokumentira TLS 1.1. Ova verzija sadržavala je nove sigurnosne odredbe i niz drugih ažuriranja. Verzija 1.2 objavljena je samo dvije godine kasnije, 2008. Uključila je podršku za ovjerene šifrirane šifrirane šifre, brojne izmjene načina upotrebe hash funkcija i mnoga druga poboljšanja.

Sljedeća verzija nije stigla do [year]. godine kada je definiran TLS 1.3. Sadrži mnoštvo promjena, uključujući nametnutu tajnost naprijed, uklanjanje podrške za slabije algoritme i još mnogo toga.

TLS 1.0 i 1.1 sada su prestali s upotrebom u [year]. godini, ali inačica 1.2 je u širokoj uporabi. Verzija 1.3 počinje povećavati usvajanje.

TLS: Tehnički detalji

TLS se sastoji od mnogo različitih elemenata. Temeljni dio je zapisni protokol, temeljni protokol odgovoran za sveobuhvatnu strukturu svega ostalog.

TLS-3

Dijagram koji prikazuje TLS skup. TLS snop protokola od Jeffreytedjosukmono. Licencirano pod CC0.

Protokol za snimanje sadrži pet zasebnih podprotokola, od kojih je svaki oblikovan kao ploče:

  • rukovanje – Ovaj se protokol koristi za postavljanje parametara za sigurnu vezu.
  • primjena – Protokol za prijavu započinje nakon postupka rukovanja i tamo se podaci sigurno prenose između dviju strana.
  • uzbuna – Protokol upozorenja koristi bilo koja strana u vezi kako bi obavijestila drugu ako postoje pogreške, problemi sa stabilnošću ili potencijalni kompromis.
  • Promijenite spektar šifre – Klijent ili poslužitelj ovaj protokol koriste za izmjenu parametara šifriranja. To je prilično jednostavno, pa nećemo to detaljno obrađivati ​​u ovom članku.
  • otkucaj srca – Ovo je TLS proširenje koje omogućuje jednoj strani veze da zna je li njegov vršnjak još uvijek živ i sprječava da vatrozidi zatvore neaktivne veze. To nije osnovni dio TLS-a, zato ćemo ga preskočiti u ovom vodiču.

Svaki od ovih podprotokola koristi se u različitim fazama za komuniciranje različitih podataka. Najvažniji za razumijevanje su rukovanje i protokoli aplikacije, jer su oni odgovorni za uspostavljanje veze i zatim siguran prijenos podataka..

TLS protokol rukovanja

Ovo je mjesto gdje je veza uspostavljena na siguran način. Može vam se činiti složenim ako ste novi za neke od koncepata, ali o svakom od njih ćemo govoriti u nastavku u članku ako ih trebate uputiti..

Postoje tri osnovne vrste rukovanja TLS-om: the osnovni TLS stisak ruke, klijentski ovjerovljeni TLS stisak ruke i the skraćeno stisak ruke.

Osnovni TLS stisak ruke

TLS-2

Dijagram koji prikazuje postupak stiskanja ruku TLS. Potpuni TLS 1.2 rukovanje FleshGrinder-om. Licencirano pod CC0.

Kod ove vrste rukovanja, samo je poslužitelj, a ne klijent. Započinje s pregovaračkom fazom, gdje klijent šalje a Klijent Pozdrav poruka. Sadrži najvišu verziju TLS-a koju klijent podržava, moguće šifrirane pakete, naznaku da li podržava kompresiju, slučajni broj i neke druge informacije

Poruka Client Hello sastana je sa Pozdrav poslužitelja poruka. Ovaj odgovor sadrži ID sesije, verziju protokola, šifrirani paket i kompresiju (ako se koristi) koji je poslužitelj odabrao s popisa klijenta. Uključuje i različiti slučajni broj.

To ovisi o odabranom paketu šifri, ali poslužitelj će to uglavnom slijediti slanjem a Potvrda poruka za ovjeru. To potvrđuje svoj identitet i sadrži javni ključ.

Ako se koriste efemerne Diffie-Hellman ili anonimne Diffie-Hellmanove razmjene ključeva, nakon toga slijedi Razmjena poslužiteljskih ključeva poruka. Ostale metode razmjene ključeva preskaču ovaj dio. Kada poslužitelj završi sa pregovaračkom stranom, šalje a Pozdrav Gotovo poruka.

Sada se klijent ponovo vratio. Ovisno o odabranom šifrovom paketu, poslat će a Razmjena klijentovih ključeva poruka. To može sadržavati javni ključ ili tajnu za predmastere, koja je šifrirana javnim ključem poslužitelja.

Tada obje strane koriste nasumične brojeve i tajnu nadređenog za otkrivanje glavne tajne. Ključevi su izvedeni iz glavne tajne, koji se potom koriste za provjeru autentičnosti i šifriranje komunikacija.

Tada klijent šalje a Promijenite spektar šifre poruka. To upućuje poslužitelju da će se sljedeće poruke provjeriti autentično i šifrirano (iako se ponekad šifriranje možda neće koristiti).

Klijent zatim slijedi ovo sa gotov poruka, koja je šifrirana i sadrži Kôd provjere identiteta poruke (MAC) za provjeru autentičnosti. Poslužitelj dešifrira ovu poruku i provjerava MAC. Ako bilo koji od ovih procesa ne uspije, tada vezu treba odbiti.

Sada je red na slanje servera Promijenite spektar šifre poruku, kao i a gotov poruka s istim sadržajem kao gore. Tada klijent također pokušava dešifrirati i provjeriti sadržaj. Ako se to sve uspješno završi, stisak ruke je gotov. U ovom se trenutku uspostavlja protokol za prijavu. Podaci se tada mogu sigurno razmjenjivati ​​na isti način kao i gotov poruka odozgo, s autentifikacijom i opcijskim šifriranjem.

Klijent TLS ovjeren od strane klijenta

Ovaj stisak ruke sličan je osnovnom TLS stiskanju ruku, ali klijent je i overen. Glavna razlika je u tome što nakon što ga server pošalje Potvrda poruka, šalje i Zahtjev za certifikat poruku, tražeći potvrdu klijenta. Nakon što je poslužitelj gotov, klijent šalje svoj certifikat u a Potvrda poruka.

Klijent tada šalje svoje Razmjena klijentovih ključeva poruka, baš kao u osnovnom TLS rukovanju. Nakon toga slijedi Potvrda ovjera poruka koja uključuje digitalni potpis klijenta. Budući da se izračunava iz klijentovog privatnog ključa, poslužitelj može potvrditi potpis koristeći javni ključ koji je poslan kao dio klijentove digitalne potvrde. Ostatak Klijent TLS ovjeren od strane klijenta slijedi iste crte kao i osnovni stisak TLS-a.

Skraćeni TLS stisak ruke

Jednom kada se stisak ruke već dogodio, TLS omogućava da se veći dio postupka odsječe korištenjem skraćenog stiskanja ruke. Ovi rukopisi koriste ID sesije kako bi povezali novu vezu s prethodnim parametrima.

Skraćeni stisak ruke omogućuje obema stranama ponovno uspostavljanje sigurne veze s istim postavkama koje su dogovorene ranije. Budući da neka kriptografija koja je obično uključena u pokretanje stiska ruke može biti prilično teška za računske resurse, to štedi vrijeme i olakšava vezu.

Proces započinje s Klijent Pozdrav poruka. Vrlo je slična ranijoj poruci klijenta Pozdrav, ali sadrži i ID sesije od ranije veze. Ako poslužitelj zna ID sesije, uključuje ga u svoj Pozdrav poslužitelja poruka. Ako ne prepozna ID sesije, vratit će drugačiji broj, a umjesto toga morat će se dogoditi cjelovito TLS rukovanje.

Ako poslužitelj prepozna ID sesije, tada je Potvrda i Razmjena ključeva koraci se mogu preskočiti. Promijenite spektar šifre i gotov poruke se šalju na isti način kao i osnovni TLS rukopis prikazan gore. Nakon što je klijent dešifrirao poruku i potvrdio MAC, podaci se mogu poslati putem sigurne TLS veze.

Tu je i TLS proširenje koje omogućuje ponovno uspostavljanje veza s ulaznicama za sesije umjesto ID-ova sesije. Poslužitelj šifrira podatke o sesiji i šalje ih klijentu. Kad klijent želi nastaviti ovu vezu, on šalje sesijsku kartu na poslužitelj, koja ga dešifrira radi otkrivanja parametara.

Karte za sjednice ne koriste se često jer zahtijevaju produženje. Unatoč tome, oni u određenim situacijama mogu biti povoljni, jer poslužitelj ne mora ništa pohraniti.

Otpakiranje TLS stiska ruke

Tri najvažnija koraka rukovanja uključuju:

  • odabrani su parametri,
  • provodi provjeru autentičnosti i
  • ključevi su uspostavljeni.

Pokrijmo ih malo detaljnije kako biste mogli razumjeti što se zapravo događa.

Parametri

Na početku rukovanja, klijent i poslužitelj dogovaraju parametre veze međusobnim dogovorom. Prva od njih je koja će se inačica TLS-a koristiti. Ovo je najviša inačica koju obje strane podržavaju, a koja je najčešće najsigurnija.

Ugovorne strane također odlučuju koji će algoritam razmjene ključeva koristiti za uspostavljanje glavnog ključa. U ovoj fazi se također dogovaraju hash funkcija, algoritam šifriranja i metoda kompresije. Oni će biti detaljno obrađeni kada raspravljamo o Protokol prijave kasnije u članku.

Autentifikacija: Digitalni certifikati

Autentifikacija je ključni dio osiguranja komunikacijskog kanala, jer objema stranama daje do znanja da zapravo razgovaraju s onim za koga misle da je, a ne s uljezom. U TLS-u i mnogim drugim sigurnosnim mehanizmima ovo se postiže onim što su poznate kao digitalni certifikati.

Digitalni certifikati su elektronički dokumenti koji pokazuju vezu između pojedinca ili subjekta i njegovog javnog ključa. Ovu vezu potvrđuje tijelo za ovjeravanje (CA), organizacija od povjerenja koja provjerava jesu li dvije osobe stvarno povezane, a zatim koristi svoj vlastiti ugled da povjeri certifikatu.   

Različite razine certifikata predstavljaju različite stupnjeve povjerenja. Važno je znati da ako klijent ili poslužitelj imaju pouzdan i valjan certifikat, razumno je pretpostaviti da je javni ključ legitiman i da ne trgujete s napadačem.

Napomena o javnim ključevima

Enkripcija javnim ključem (poznata i kao asimetrična enkripcija) važan je dio kriptografije, a široko se koristi u različitim aspektima TLS-a. Evo kratkog priloga za one koji nisu upoznati s načinom rada.

Kratko objašnjenje je to Kriptografija javnog ključa koristi par ključeva za šifriranje i dešifriranje, a ne samo jedan ključ. Pošiljalac koristi javni ključ namjeravanog primatelja za šifriranje podataka. Nakon što se šifrira, dešifrirat će ga moguće samo primateljevim odgovarajućim privatnim ključem. Naravno, javni se ključ može dijeliti javno, dok se privatni ključ mora čuvati u tajnosti.

Šifriranje javnim ključem omogućuje strankama da sigurno dijele informacije, čak i ako se prethodno nisu upoznali ili imali priliku za razmjenu ključeva. To čine kroz jedinstvena svojstva pravih brojeva. Više možete saznati u našem članku o šifriranju javnih ključeva.

Uspostavljanje glavne tajne

Kao što smo vidjeli gore, kada smo razgovarali o procesu osnovnog stiskanja ruku TLS-a, nakon što stranka (ili obje strane) dokaže svoj identitet svojim javnim certifikatom, sljedeći je korak utvrđivanje glavne tajne, poznate i kao zajednička tajna. Glavna tajna je baza za izvođenje ključeva koji se koriste za šifriranje i provjeru integriteta podataka koji se prenose između dviju strana.

TLS stisak ruku može koristiti nekoliko različitih mehanizama za sigurno dijeljenje ove tajne. To uključuje RSA, nekoliko različitih vrsta razmjene ključeva Diffie-Hellman, PSK, Kerberos i druge. Svaka od njih ima svoje prednosti i nedostatke, poput pružanja tajne unaprijed, ali te razlike su izvan dosega ovog članka.

Točan postupak ovisit će o odabranom načinu razmjene ključeva, ali slijedi grube korake spomenute u Osnovni TLS stisak ruke odjeljak.

Tajna premastera izvedena je ovisno o prethodno odabranoj metodi razmjene ključeva. Klijent kriptira tajnu premastera javnim ključem poslužitelja kako bi je sigurno poslao putem veze.

Tada i klijent i poslužitelj koriste tajnu predupravljača i slučajne brojeve koje su poslali na početku komunikacije kako bi otkrili glavnu tajnu. Kad se glavni ključ izračuna, koristi se četiri ili šest zasebnih tipki. Ovo su:

  • Klijent napiši MAC ključ – Ovaj ključ poslužitelj koristi za provjeru integriteta podataka koje je klijent poslao.
  • MAC ključ za pisanje na poslužitelju – MAC ključ za pisanje poslužitelja klijent koristi za provjeru integriteta podataka koje je poslao poslužitelj.
  • Klijent šifriranje pisati – Poslužitelj koristi ovu tipku za šifriranje podataka koje je poslao klijent.
  • Ključ za šifriranje pisanja putem poslužitelja – Klijent koristi ovu tipku za šifriranje podataka koje je poslao poslužitelj.
  • Klijent napiši IV ključ – ključ za pisanje klijenta IV poslužitelj koristi u AEAD šiframa, ali ne i kada se koriste drugi algoritmi za razmjenu ključeva.
  • Ključ za pisanje servera – Slično, ovaj ključ koristi klijent u AEAD šiframa, ali ne kada se upotrebljavaju drugi algoritmi za razmjenu ključeva.

Uspostavljanje glavnog ključa važan je dio TLS-ovog stiskanja ruku, jer omogućava obje strane veze da sigurno dobiju ključeve koji se mogu koristiti i za autentifikaciju i za šifriranje. Zasebna tipka koriste se za oba postupka kao mjera opreza.

Kad su izvedeni ključevi za provjeru autentičnosti i šifriranje, oni se koriste za zaštitu oba gotov poruke, kao i zapise poslane putem protokola aplikacije.

Protokol za prijavu

Nakon što se TLS stiskom ruke uspostavi sigurna veza, za zaštitu prenesenih podataka koristi se protokol aplikacije. Može se konfigurirati za korištenje širokog raspona algoritama koji odgovaraju različitim scenarijima.

Algoritmi za provjeru autentičnosti

Integritet poruka može se provjeriti s mnogo različitih algoritama. To uključuje:

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

Da bi dokazao integritet podataka koji se šalju, pošiljalac podatke pokreće pomoću hash funkcije kako bi vratio jedinstveni niz znakova. To su posebne formule koje će uvijek donijeti isti rezultat kad god dobiju isti unos.

Pošiljatelj potpisuje ove podatke svojim privatnim ključem kako bi oblikovao ono što je poznato kao digitalni potpis, a digitalni potpis se zatim dodaje u poruku i šalje primatelju. Da biste provjerili zadržavaju li cjelovitost podataka i nisu li bili ugroženi, primatelj dešifrira hash javnim ključem pošiljatelja. Zatim koriste istu funkciju hash-a na podacima koji su poslani. Tada primatelj uspoređuje dvije vrijednosti.

Ako su isti, to znači da podaci nisu izmijenjeni otkako ih je potpisao pošiljatelj. Ako se razlikuju, vjerojatno je došlo do neovlaštenih podataka ili je došlo do neke druge pogreške.

To je kratka verzija načina na koji se hash funkcije mogu koristiti za prikaz integriteta podataka. Ako želite dublje razumijevanje, pogledajte naš članak o šifriranju, soljenju i raspršivanju.

Algoritmi za šifriranje

TLS koristi šifriranje ključa simetričnog ključa za pružanje povjerljivosti podataka koje prenosi. Za razliku od enkripcije s javnim ključem, samo jedan se ključ koristi u postupcima šifriranja i dešifriranja. Nakon što se podaci šifriraju algoritmom, oni će se pojaviti kao zbroj šifričnog teksta. Sve dok se koristi odgovarajući algoritam, napadači neće moći pristupiti stvarnim podacima, čak i ako ih presreću.

TLS može koristiti mnogo različitih algoritama, poput Camellia ili ARIA, iako je najpopularniji AES.

Kompresija

Kompresija je postupak kodiranja podataka kako bi zauzeo manje prostora. TLS podržava kompresiju ako obje strane veze odluče upotrijebiti je. Usprkos toj sposobnosti, općenito se preporučuje izbjegavanje upotrebe TLS-a za komprimiranje podataka, posebice nakon napada na ZLOČIN (vidi Pitanja sigurnosti TLS-a odjeljak niže) utvrđeno je da može iskoristiti komprimirane podatke za otmicu sesije.

punjenje

Padding dodaje dodatne podatke u poruku prije nego što je šifrira. To je uobičajeni kriptografski proces koji se koristi kako bi se spriječilo da se naputci u strukturi šifriranih podataka odaju pravom značenju. TLS općenito primjenjuje PKCS # 7 padding na zapisima prije nego što su šifrirani.

Protokol upozorenja

Ako veza ili sigurnost postanu nestabilni, ugroženi ili je došlo do ozbiljne pogreške, protokol upozorenja omogućava pošiljatelju da obavijesti drugu stranu. Ove poruke imaju dvije vrste, upozoravajuće ili smrtonosne. Poruka upozorenja ukazuje da je sesija nestabilna i da primatelja može odrediti treba li sesiju nastaviti ili ne.

Kobna poruka primatelju govori da je veza ugrožena ili da je došlo do ozbiljne pogreške. Pošiljalac bi trebao zatvoriti vezu nakon što pošalje poruku. Protokol upozorenja također sadrži podatke o tome što uzrokuje određeni problem s vezom. To može uključivati ​​stvari poput neuspjeha dešifriranja, nepoznatog tijela certifikata, ilegalnog parametra i još mnogo toga.

TLS & OSI model

OSI model način je konceptualizacije i standardizacije načina na koji promatramo naše različite komunikacijske sustave i protokole. Važno je napomenuti da je to samo model, a neki od naših protokola nisu u skladu s njim.

OSI, međutim, ima sedam zasebnih slojeva koji prikazuju razine na kojima rade protokoli, TLS se ne uklapa ni u jedan. Teče preko drugog transportnog protokola poput TCP-a, što bi trebao značiti da je iznad četvrtog sloja, transportnog sloja. Najviše se koristi poput transportnog sloja, ali pošto provodi stisak ruke, to bi značilo da je dio prezentacijskih ili aplikacijskih slojeva.

Kao što vidite, TLS jednostavno ne odgovara OSI modelu. To ne znači da je TLS pokvaren ili pogrešan, ako ništa drugo, to samo pokazuje da je OSI model pogrešan i ne može računati na sve naše komunikacijske protokole..

Upotreba TLS-a

TLS se koristi kako bi se osigurao značajan dio naše mrežne komunikacije. Normalno se provodi preko protokola poput Protokol kontrole prijenosa (TCP), ali može se koristiti i u protokolu za kontrolu zagušenja Datagram (DCCP) i u protokolu korisničkog datagrama (UDP).

Može zaštititi protokole poput HTTP, SMTP, FTP, XMPP i NNTP, kao i drugi. Najčešća aplikacija je kao protokol Hypertext Transfer Protocol Secure (HTTPS), koji štiti vezu između web preglednika i web stranice. Možete reći kada se HTTPS koristi za zaštitu vaše internetske veze, jer će se s lijeve strane URL-a pri vrhu preglednika pojaviti mala zelena ikona zaključavanja.

TLS se također može koristiti za izgradnju VPN-ova, kao što su OpenConnect i OpenVPN. Koristi svoje mogućnosti šifriranja i provjere autentičnosti da formira tunel koji može povezati hostove i mreže međusobno. TLS-temeljene VPN tehnologije poput OpenVPN-a povoljne su u odnosu na alternative poput IPsec-a, jer nije poznato da OpenVPN ima ozbiljnih sigurnosnih problema. Te se VPN-ove također mogu lakše podesiti.

Još jedna od njegovih primjena je sigurna e-pošta putem STARTTLS-a. Kad se implementira TLS, sprečava napadače da mogu pristupiti porukama dok putuju između poslužitelja pošte.

Pitanja sigurnosti TLS-a

Kao i većina protokola, i TLS je imao brojne ranjivosti i teorijske napade na različite implementacije. Usprkos ovome, najnovije verzije smatraju se sigurnim u praktične svrhe.

Prošle verzije, poput SSL 2.0 i 3.0 (i TLS 1.0, koji je u osnovi isti kao SSL 3.0) sadrže brojne nedostatke u sigurnosti, ali budući da su stari i zastarjeli protokoli, nećemo ulaziti u detalje. Umjesto toga, trebali biste koristiti TLS 1.2 i 1.3.

Novije verzije TLS-a imaju brojne nadogradnje koje ga čine manje ranjivim od SSL-a. Unatoč tome, protokol je i dalje imao sljedeće sigurnosne probleme:

Napadi ponovne pregovora

Jedna od značajki TLS-a je što omogućuje parovima klijenta i poslužitelja da pregovaraju o parametrima svoje postojeće veze. 2009. otkriveno je da to napadači mogu iskoristiti kako bi ubacili promet kako bi izgledali kao da dolazi od klijenta. Poslužitelji će prihvatiti zahtjev kao legitiman, što znači da bi napadači potencijalno mogli manipulirati odlaznim porukama.

Ovaj napad ne dopušta napadaču da vidi odgovor, ali još uvijek može oštetiti. Proširenje koje će spriječiti ove napade je trenutno predloženi standard.

ZVIJER

Browser Exploit Against SSL / TLS (BEAST) napad prvi su otkrili istraživači u 2011. godini. Koristi prednost šifričkog bloka koji ulančava ranjivost u TLS-u, a koji se može koristiti za dešifriranje poruka. Ovaj napad utječe samo na TLS 1.0, što je stara i slabija verzija protokola. Iako se neće obustaviti do [year]., korisnici bi umjesto toga trebali koristiti verzije 1.2 i 1.3.

Vremenski napadi

Ti napadi bočnih kanala analiziraju koliko dugo treba pokrenuti algoritam, a zatim te podatke upotrebljavaju za unatrag i utvrde ključ. U 2013. otkriveno je da je napad Lucky Trinaest utjecao na vremenski napad i pad proročkog napada dok se provjerava autentifikacijski kôd poruke (MAC). Ovaj se napad može koristiti za razbijanje TLS algoritma, iako se ne smatra opasnim za većinu TLS korisnika.

KRIMINAL & KRŠENJE

KRIME napad djeluje protiv niza protokola. Kada se podaci komprimiraju, oni mogu izvlačiti sadržaj iz kolačića za provjeru autentičnosti. Te se informacije mogu koristiti za otmicu sesije. Iako utječe na brojne protokole, napad je posebno zabrinjavajući kada se koristi HTTP kompresija jer nema učinkovite strategije ublažavanja.

U 2013. godini pronađeno je da pretraživač Reconnaissance and Exfiltration putem adaptivnog kompresije hiperteksta (BREACH) utječe na HTTP kompresiju na sličan način. Ova verzija napada može oporaviti adrese e-pošte i ostale vrijedne podatke koji su šifrirani s TLS-om. Napad BREACH može se ublažiti onemogućavanjem HTTP kompresije ili upotrebom tehnika poput zaštite od krivotvorenja zahtjeva na više mjesta (CSRF).

Pad napada

To su napadi koji varaju poslužitelje na korištenje starijih i manje sigurnih verzija TLS-a. Napadači bi mogli koristiti ove tehnike za pregovaranje o korištenju manje sigurnih razmjena ključeva i šifri. Napad Logjam je dobar primjer jer bi mogao učiniti da ranjivi poslužitelji koriste 512-bitni Diffie-Hellman, što je slabo. Napadači tada mogu slomiti ovaj mehanizam razmjene ključeva i izvaditi ključeve, omogućujući im potpun pristup sesiji.

Heartbleed

Heartbleed je bio sigurnosni propust koji je slučajno uveden u knjižnicu kriptografije OpenSSL 2012. godine, ali nije objavljeno do 2014. Budući da je ovo tako često korištena implementacija TLS-a, prouzročila je značajnu globalnu štetu.

Jedan od programera za TLS proširenje otkucaja srca dodao je ranjivost koja je prečitana u međuspremniku, što omogućava izlaganje nekih dodatnih podataka. Pogreška nije otkrivena prilikom pregleda koda, što je dovelo do velikog broja značajnih napada.

Budući da se knjižnica OpenSSL provodi tako široko, međunarodni troškovi ublažavanja problema postali su prilično skupi. Administratori poslužitelja morali su instalirati novu zakrpu i regenerirati certifikate i parove ključeva koji su mogli biti ugroženi tijekom dvogodišnjeg razdoblja postojanja ranjivosti.

UTOPITI

Dešifriranje napada RSA sa zastarjelom i oslabljenom eNkripcijom (DROWN) najavljeno je 2016. godine i koristi prednost poslužiteljske podrške za SSL 2.0. Koristi odabrani šifrirani tekst protiv poslužitelja koji i dalje podržavaju SSL 2.0, kao i one koji isti certifikat javnog ključa dijele s drugim poslužiteljem koji podržava SSL 2.0.

Kada je napad najavljen, mogao bi ga pokrenuti s početnim troškovima postavljanja od oko 18 000 USD i oko 400 USD za svaki zasebni napad. Kad je napad DROWN uspješan, on nabavlja tipke za sesije.

Napad se može ublažiti ne dijeljenjem certifikata poslužitelja. OpenSSL grupa je također izdala zakrpe koje uklanjaju podršku starijih protokola i šifri, ali one rade samo ako certifikat poslužitelja nije podijeljen s drugim poslužiteljima koji podržavaju SSL 2.0.

Unholy PAC

Ovaj napad pronađen je 2016. godine. Koristi slabosti utvrđene u Protokolu za automatsko otkrivanje web proxyja (WPAD). Kada korisnik pokuša posjetiti web mjesto putem šifrirane veze TLS-om, kvar može URL učiniti vidljivim. Budući da se URL-ovi ponekad šalju korisnicima kao oblik provjere autentičnosti, napad Unholy PAC omogućuje napadaču da preuzme korisnički račun.

Je li TLS siguran?

Iako se može činiti da postoji puno sigurnosnih problema, stvarnost je da su većina njih poprilično minorna i mogu ili su ublažena. Kako tehnologija napreduje, otkrivaju se ranjivosti i razvijaju se novi napadi, TLS će i dalje imati više sigurnosnih problema. Unatoč tome, za sada i doglednoj budućnosti, čini se da će TLS i dalje biti jedan od glavnih i najpouzdanijih alata koji koristimo za osiguranje našeg internetskog svijeta.

Tehnologija cyber sigurnosti poslovanja autor: TheDigitalArtist pod licencom pod CC0

About the author