TLS (Transport Layer Security) – tai šifravimo pro­to­ko­las, už­tik­ri­nan­tis saugų duomenų perdavimą internete. Jis pakeitė pasenusį SSL protokolą ir šiuo metu beveik visur nau­do­ja­mas TLS 1.3 versijos pavidalu.

Kas yra TLS?

Interneto pradžioje duomenų saugumas nebuvo toks svarbus, kaip šiandien. Visi duomenys buvo siunčiami atvirai ir ne­su­skait­me­nin­ti iš vieno kom­piu­te­rio į kitą. Tai galima palyginti su atviruku: jį galėjo per­skai­ty­ti bet kuris paš­ti­nin­kas.

TLS pro­to­ko­las, dar žinomas kaip SSL/TLS, įvedė per­duo­da­mo turinio šifravimą. Tęsiant šią analogiją, šis šif­ra­vi­mas yra tarsi už­ants­pau­duo­tas vokas, kurį atidaryti gali tik teisėtas gavėjas.

Santrumpa TLS reiškia „Transport Layer Security“ (trans­por­to sluoksnio saugumas). Šis terminas susijęs su TCP/IP modelio trans­por­to sluoksniu. TLS – tai metodas, kuriuo šif­ruo­ja­mi interneto duomenų srautai, lei­džian­tis juos skaityti tik įga­lio­tiems gavėjams.

Note

Anksčiau šis šifravimo pro­to­ko­las buvo vadinamas SSL (Secure Socket Layer). Kadangi ši santrumpa vis dar yra geriau žinoma nei TLS, TLS dažnai vadinamas dvigubu pa­va­di­ni­mu „SSL/TLS“.

Kaip veikia TLS?

TLS šifruoja internetu siun­čia­mus duomenis ir paprastai įgy­ven­di­na­mas TCP protokolu, naudojant simetrinę krip­to­gra­fi­ją.

Tai, kas atrodo paprasta teoriškai, prak­ti­ko­je yra su­dė­tin­giau. Pag­rin­di­nė problema yra ta, kad serveris turi perduoti raktą klientui darprieš už­tik­ri­nant ryšio saugumą naudojant TLS. Kiek­vie­nas, kas siunčia šifruotus elekt­ro­ni­nio pašto priedus, žino šią problemą: už­šif­ra­vus failą tenka pa­si­da­lin­ti slaptu slap­ta­žo­džiu su gavėju, pvz., telefonu.

TLS pro­to­ko­las, kurio da­bar­ti­nis stan­dar­tas nuo 2018 m. yra 1.3 versija, šią problemą sprendžia taip:

  1. Cli­ent­Hel­lo: Klientas (pvz., naršyklė) siunčia serveriui pradinį pranešimą su in­for­ma­ci­ja apie pa­lai­ko­mus šifravimo metodus. Tai apima šifravimo rinkinius, protokolo versijas, at­si­tik­ti­nę reikšmę ir savo elipsinės kreivės Diffie-Hellman raktų mainų reikšmę (ECDHE reikšmę). Pa­si­rin­kus, jau gali būti išsiųstas pirmasis už­šif­ruo­tas duomenų blokas.
  2. Ser­ver­Hel­lo: serveris pasirenka tinkamus pa­ra­met­rus ir siunčia savo atsakymą, įskaitant savo ECDHE vertę ir savo skait­me­ni­nį ser­ti­fi­ka­tą. Šis SSL ser­ti­fi­ka­tas įrodo, kad serveris yra au­ten­tiš­kas ir ne­ap­si­me­ta kitu. Tuo pačiu metu prasideda sesijos rakto skai­čia­vi­mas.
  3. Raktų skai­čia­vi­mas: Abi pusės dabar ne­pri­klau­so­mai viena nuo kitos ap­skai­čiuo­ja tą patį sesijos raktą, remdamosi bendrai sutartu raktu.
  4. Serveris užbaigia rankos pa­spau­di­mą ir pradeda šifruotą ryšį. Klientas daro tą patį; dabar ryšys yra visiškai ap­sau­go­tas.
Note

Palyginti su anks­tes­nė­mis ver­si­jo­mis, TLS 1.3 protokolo ryšio už­mez­gi­mas yra žymiai pa­pras­tes­nis ir saugesnis. Čia aprašytas visas procesas dabar trunka tik vieną duomenų perdavimo ciklą (1 RTT), todėl ryšys pa­ste­bi­mai pa­grei­tė­ja.

Prie­žas­tis, kodėl asi­met­ri­nis šif­ra­vi­mas naudojant Diffie-Hellman algoritmą taikomas tik sesijos raktui perduoti (o ne pačių duomenų srautų šif­ra­vi­mui), yra greičio pra­na­šu­mas; asi­met­ri­nis šif­ra­vi­mas yra palyginti lėtas ir sulėtintų duomenų perdavimą.

TLS pri­va­lu­mai ir trūkumai

TLS – tai ele­gan­tiš­kas spren­di­mas, pa­de­dan­tis už­tik­rin­ti saugesnį interneto duomenų srautą. Jis ne­rei­ka­lau­ja, kad abi šalys pačios šifruotų turinį, pa­vyz­džiui, formų duomenis. Pakanka, kad duomenų srautas būtų nu­kreip­tas per TLS protokolą, ne­pri­klau­so­mai nuo dalyvių naudojamų ope­ra­ci­nių sistemų ir prog­ra­mi­nės įrangos. Tuomet visi duomenų srautai perdavimo metu yra au­to­ma­tiš­kai šif­ruo­ja­mi.

Saugumo už­tik­ri­ni­mo kaina – šiek tiek lėtesnis ryšio už­mez­gi­mas, nes minėti proceso etapai – ser­ti­fi­ka­tas, at­si­tik­ti­nis skaičius, raktų mainai – rei­ka­lau­ja didelių skai­čia­vi­mo išteklių.

TLS naudojimo sritys

Kaip jau minėta, TLS gali būti nau­do­ja­mas vi­suo­ti­nai, nes jis ne­pri­klau­so nuo programų ir ope­ra­ci­nių sistemų. Todėl įvairiems programų pro­to­ko­lams yra sukurta TLS apsaugota versija. Daugeliu atvejų pa­va­di­ni­mų sudarymo schema yra gana paprasta: jei pro­to­ko­las naudoja TLS ryšį, prie jo pa­va­di­ni­mo pridedama raidė „S“.

Svar­biau­sia TLS taikymo sritis yra pa­sau­li­nis tinklas (World Wide Web), o konk­re­čiai – HTTP pro­to­ko­las. Jo šifruota versija vadinama HTTPS.

Be to, reikėtų paminėti šiuos daž­niau­sius naudojimo atvejus:

  • POP3S: At­si­siųs­ti laiškus iš serverio naudojant POP3 protokolą
  • IMAPS: Sin­ch­ro­ni­zuo­ti pašto dėžutę su serveriu naudojant IMAP protokolą
  • SMTPS: siųsti el. laiškus
  • FTPS: Failų per­da­vi­mas naudojant FTP protokolą
  • SIPS: IP te­le­fo­ni­ja naudojant SIP protokolą
  • IRCS: Šifruoti pokalbiai
  • QUIC: „Google“ perdavimo pro­to­ko­las, tie­sio­giai in­te­gruo­jan­tis TLS 1.3; al­ter­na­ty­va TCP, skirta grei­tes­niems ir sau­ges­niems interneto ryšiams (pvz., su HTTP/3)

„OpenVPN“ – nemokama prog­ra­mi­nė įranga, skirta vir­tu­alaus pri­va­čio­jo tinklo (VPN) sukūrimui, taip pat naudoja TLS protokolą.

Pag­rin­di­niai TLS įgy­ven­di­ni­mai

Tarp daž­niau­siai naudojamų TLS įgy­ven­di­ni­mų yra:

  • OpenSSL – ne­abe­jo­ti­nai po­pu­lia­riau­sias spren­di­mas, kurį naudoja dauguma HTTPS svetainių
  • GnuTLS (Laisvos prog­ra­mi­nės įrangos fondas)
  • LibreSSL (OpenBSD)
  • NSS (Tinklo saugumo paslaugos)
  • BoringSSL (Google)
  • Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas ir atvirojo kodo bend­ruo­me­nė)
  • Botan (BSD licencija, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Šis sąrašas nėra išsamus. Išsamią in­for­ma­ci­ją apie TLS įgy­ven­di­ni­mus galima rasti Vi­ki­pe­di­jo­je.

Žinomos TLS atakos

Nors TLS yra sukurta saugiam ryšiui už­tik­rin­ti, ji vis dėlto turi žinomų trūkumų. Tarp jų yra:

  • Prog­ra­ma­vi­mo klaidos: „He­artb­le­ed“ klaida tapo žinoma kaip kritinė prog­ra­ma­vi­mo klaida anks­tes­nė­se „OpenSSL“ versijose. Ji buvo ištaisyta 2014 m.
  • Silpnas šif­ra­vi­mas: Dėl JAV krip­to­gra­fi­jos eksporto ap­ri­bo­ji­mų buvo sukurtos „eksportui skirtos“ versijos, kurias buvo lengviau įsilaužti nei ori­gi­na­lias.
  • Su­spau­di­mo atakos: kai vietoj TLS su­spau­di­mo nau­do­ja­mas HTTP su­spau­di­mas, hakeriai tam tikrais būdais gali atspėti TLS šifruotą turinį.
  • „BEAST“ ataka paveikė TLS 1.0 versiją ir buvo aprašyta dar 2014 m. Da­bar­ti­nės TLS versijos yra ap­sau­go­tos nuo jos.
  • „Padding Oracle“ ataka buvo atrasta 2002 m. ir buvo įmanoma iki SSL 3.0 versijos. Dabartinė TLS 1.3 versija nėra pa­žei­džia­ma.
  • 2021 m. „ALPACA“ ataka parodo, kaip ne­tin­ka­mai su­kon­fi­gū­ruo­tuo­se ser­ve­riuo­se esančius TLS ser­ti­fi­ka­tus galima išnaudoti, kad nukreiptų var­to­to­jus į kitas paslaugas, perimant ar ma­ni­pu­liuo­jant duo­me­ni­mis.

Taip pat buvo imtasi priemonių, siekiant užkirsti kelią visiškai saugiam TLS šif­ra­vi­mui, kad valdžios ins­ti­tu­ci­jos galėtų su­si­pa­žin­ti su šif­ruo­tais pra­ne­ši­mais – pa­vyz­džiui, fi­nan­si­nių operacijų ar nu­si­kals­ta­mos veiklos atvejais. Viena iš or­ga­ni­za­ci­jų, pa­si­sa­kiu­sių už tokį „tyčinį TLS pa­žei­džia­mu­mą“, buvo ETSI (Europos te­le­ko­mu­ni­ka­ci­jų standartų ins­ti­tu­tas).

Go to Main Menu