TLS (Transport Layer Security) je šifrirni protokol, ki za­go­ta­vlja varen prenos podatkov po internetu. Je naslednik za­sta­re­le­ga protokola SSL, danes pa se uporablja skoraj izključno v različici TLS 1.3.

Kaj je TLS?

V začetkih interneta varnost podatkov ni bila tako pomembna kot danes. Vsa ko­mu­ni­ka­ci­ja je potekala odprto in ne­ši­fri­ra­no med ra­ču­nal­ni­ki. To si lahko pred­sta­vlja­te kot poštno kartico: vsak poštar jo je lahko prebral.

Protokol TLS – znan tudi kot SSL/TLS – je uvedel ši­fri­ra­nje prenesene vsebine. Če na­da­lju­je­mo s to pri­mer­ja­vo, je to ši­fri­ra­nje podobno za­pe­ča­te­ni ovojnici, ki jo lahko odpre le pravi naslovnik.

Kratica TLS pomeni Transport Layer Security. Ta izraz se nanaša na tran­spor­tni sloj modela TCP/IP. TLS je metoda, ki šifrira in­ter­ne­tne po­dat­kov­ne tokove, tako da jih lahko berejo le po­o­bla­šče­ni pre­je­mni­ki.

Note

Prejšnje ime ši­frir­ne­ga protokola je bilo SSL (Secure Socket Layer). Ker je ta kratica še vedno bolj znana kot TLS, se TLS pogosto imenuje z dvojnim imenom »SSL/TLS«.

Kako deluje protokol TLS?

TLS šifrira podatke, poslane prek interneta, in se običajno izvaja nad pro­to­ko­lom TCP z uporabo si­me­trič­ne krip­to­gra­fi­je.

Kar se v teoriji zdi preprosto, je v praksi precej bolj zapleteno. Osnovni problem je v tem, da mora strežnik ključ po­sre­do­va­ti odjemalcu –še preden je ko­mu­ni­ka­ci­ja za­va­ro­va­na s pro­to­ko­lom TLS. Vsak, ki pošilja šifrirane priloge v e-pošti, se srečuje s tem problemom: datoteko šifrirate, nato pa morate skrivno geslo po­sre­do­va­ti pre­je­mni­ku, na primer po telefonu.

Protokol TLS, katerega trenutni standard je od leta 2018 različica 1.3, za rešitev tega problema uporablja naslednji postopek:

  1. Cli­en­tHel­lo: Odjemalec (npr. brskalnik) strežniku pošlje začetno sporočilo z in­for­ma­ci­ja­mi o podprtih šifrirnih metodah. To vključuje šifrirne sklope, različice pro­to­ko­lov, naključno vrednost ter lastno vrednost za izmenjavo ključev po algoritmu Diffie-Hellman z eliptično krivuljo (vrednost ECDHE). Po želji se lahko že pošlje prvi šifrirani blok podatkov.
  2. Ser­ver­Hel­lo: Strežnik izbere ustrezne parametre in pošlje odgovor, vključno s svojo vre­dno­stjo ECDHE in di­gi­tal­nim cer­ti­fi­ka­tom. Ta SSL-cer­ti­fi­kat dokazuje, da je strežnik av­ten­ti­čen in se ne izdaja za nekoga drugega. Hkrati se začne izračun ključa seje.
  3. Izračun ključa: Obe strani zdaj neodvisno iz­ra­ču­na­ta isti ključ seje na podlagi skupno do­go­vor­je­ne­ga ključa.
  4. Strežnik zaključi rokovanje in začne šifrirano ko­mu­ni­ka­ci­jo. Stranka stori enako; povezava je zdaj popolnoma za­va­ro­va­na.
Note

V pri­mer­ja­vi s prej­šnji­mi raz­li­či­ca­mi je vzpo­sta­vlja­nje povezave TLS v standardu TLS 1.3 precej bolj po­e­no­sta­vlje­no in varnejše. Celoten postopek, opisan tukaj, zdaj zahteva le eno povratno pot (1 RTT), kar znatno pospeši vzpo­sta­vi­tev povezave.

Razlog, zakaj se asi­me­trič­no ši­fri­ra­nje z al­go­rit­mom Diffie-Hellman uporablja le za prenos sejnega ključa (ne pa za ši­fri­ra­nje samih po­dat­kov­nih tokov), je prednost v hitrosti; asi­me­trič­no ši­fri­ra­nje je namreč relativno počasno in bi upo­ča­sni­lo prenos podatkov.

Prednosti in slabosti protokola TLS

TLS je elegantna rešitev za večjo varnost spletnega prometa. Stranki pri tem nista dolžni sami šifrirati vsebine, na primer podatkov iz obrazcev. Zadošča namreč, da se promet usmerja prek protokola TLS, ne glede na ope­ra­cij­ske sisteme in pro­gram­ske apli­ka­ci­je ude­le­žen­cev. Vsi po­dat­kov­ni tokovi se tako med prenosom samodejno šifrirajo.

Cena za varnost je nekoliko po­ča­snej­ša vzpo­sta­vi­tev povezave, saj so zgoraj navedeni postopki – potrdilo, naključno število, izmenjava ključev – računsko zahtevni.

Uporaba protokola TLS

Kot že omenjeno, se TLS lahko uporablja povsod, saj je neodvisen od aplikacij in ope­ra­cij­skih sistemov. Zato obstajajo različice, za­va­ro­va­ne s TLS, za številne apli­ka­cij­ske protokole. Shema po­i­me­no­va­nja je v večini primerov precej preprosta: če protokol ko­mu­ni­ci­ra prek TLS, se imenu protokola doda črka »S«.

Naj­po­memb­nej­še področje uporabe protokola TLS je svetovni splet, na­tanč­ne­je protokol HTTP. Njegova šifrirana različica se imenuje HTTPS.

Poleg tega je treba omeniti še naslednje pogoste primere uporabe:

  • POP3S: Prenos e-pošte s strežnika prek protokola POP3
  • IMAPS: Sin­hro­ni­zi­raj­te prejeto pošto s stre­žni­kom prek protokola IMAP
  • SMTPS: Po­ši­lja­nje e-pošte
  • FTPS: prenos datotek prek protokola FTP
  • SIPS: IP-te­le­fo­ni­ja prek protokola SIP
  • IRCS: Šifrirani klepeti
  • QUIC: Googlov tran­spor­tni protokol, ki ne­po­sre­dno vključuje TLS 1.3; al­ter­na­ti­va TCP za hitrejše in varnejše spletne povezave (npr. s HTTP/3)

OpenVPN, brez­plač­na pro­gram­ska oprema za vzpo­sta­vi­tev na­vi­de­zne­ga zasebnega omrežja (VPN), prav tako uporablja protokol TLS.

Ključne im­ple­men­ta­ci­je protokola TLS

Med naj­po­go­ste­je upo­ra­blja­ni­mi izvedbami protokola TLS so:

  • OpenSSL – daleč naj­po­go­stej­ša izvedba, ki jo uporablja večina spletnih strani HTTPS
  • GnuTLS (Free Software Fo­un­da­ti­on)
  • LibreSSL (OpenBSD)
  • NSS (Network Security Services)
  • BoringSSL (Google)
  • Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas in od­pr­to­ko­dna skupnost)
  • Botan (licenca BSD, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Ta seznam ni izčrpen. Podrobne in­for­ma­ci­je o izvedbah protokola TLS najdete na Wi­ki­pe­di­ji.

Znani napadi na protokol TLS

Čeprav je protokol TLS zasnovan za varno ko­mu­ni­ka­ci­jo, ima kljub temu znane po­manj­klji­vo­sti. Mednje spadajo:

  • Pro­gram­ske napake: Napaka He­art­bleed je postala znana kot kritična pro­gram­ska napaka v starejših raz­li­či­cah OpenSSL. Po­pra­vlje­na je bila leta 2014.
  • Šibka ši­fri­ra­nja: Zaradi ameriških omejitev izvoza krip­to­gra­fi­je so bile razvite različice »izvozne kakovosti«, ki jih je bilo lažje raz­vo­zla­ti kot izvirnike.
  • Napadi s sti­ska­njem: Kadar se namesto stiskanja TLS uporablja stiskanje HTTP, lahko hekerji z do­lo­če­ni­mi metodami uganejo vsebino, šifrirano s TLS.
  • Napad BEAST je prizadel TLS različico 1.0 in je bil opisal že leta 2014. Sedanje različice TLS so zoper njega varne.
  • Napad Padding Oracle je bil odkrit leta 2002 in je bil mogoč do različice SSL 3.0. Trenutna različica TLS 1.3 ni prizadeta.
  • Napad ALPACA iz leta 2021 kaže, kako se lahko TLS-potrdila na napačno kon­fi­gu­ri­ra­nih stre­žni­kih iz­ko­ri­sti­jo za pre­u­smer­ja­nje upo­rab­ni­kov na druge storitve ter pre­stre­za­nje ali ma­ni­pu­la­ci­jo podatkov.

Pri­za­de­va­li so si tudi za pre­pre­če­va­nje popolnoma varnega ši­fri­ra­nja TLS, da bi organom omogočili dostop do šifrirane ko­mu­ni­ka­ci­je – na primer v zvezi s fi­nanč­ni­mi tran­sak­ci­ja­mi in kri­mi­nal­ni­mi de­jav­nost­mi. Ena od or­ga­ni­za­cij, ki se je zavzemala za takšno »namerno ran­lji­vost« v protokolu TLS, je bil ETSI (Evropski inštitut za te­le­ko­mu­ni­ka­cij­ske standarde).

Go to Main Menu