Kaj je TLS (Transport Layer Security)? Razlaga protokola
TLS (Transport Layer Security) je šifrirni protokol, ki zagotavlja varen prenos podatkov po internetu. Je naslednik zastarelega 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 komunikacija je potekala odprto in nešifrirano med računalniki. To si lahko predstavljate kot poštno kartico: vsak poštar jo je lahko prebral.
Protokol TLS – znan tudi kot SSL/TLS – je uvedel šifriranje prenesene vsebine. Če nadaljujemo s to primerjavo, je to šifriranje podobno zapečateni ovojnici, ki jo lahko odpre le pravi naslovnik.
Kratica TLS pomeni Transport Layer Security. Ta izraz se nanaša na transportni sloj modela TCP/IP. TLS je metoda, ki šifrira internetne podatkovne tokove, tako da jih lahko berejo le pooblaščeni prejemniki.
Prejšnje ime šifrirnega 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 protokolom TCP z uporabo simetrične kriptografije.
Kar se v teoriji zdi preprosto, je v praksi precej bolj zapleteno. Osnovni problem je v tem, da mora strežnik ključ posredovati odjemalcu –še preden je komunikacija zavarovana s protokolom TLS. Vsak, ki pošilja šifrirane priloge v e-pošti, se srečuje s tem problemom: datoteko šifrirate, nato pa morate skrivno geslo posredovati prejemniku, 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:
- ClientHello: Odjemalec (npr. brskalnik) strežniku pošlje začetno sporočilo z informacijami o podprtih šifrirnih metodah. To vključuje šifrirne sklope, različice protokolov, 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.
- ServerHello: Strežnik izbere ustrezne parametre in pošlje odgovor, vključno s svojo vrednostjo ECDHE in digitalnim certifikatom. Ta SSL-certifikat dokazuje, da je strežnik avtentičen in se ne izdaja za nekoga drugega. Hkrati se začne izračun ključa seje.
- Izračun ključa: Obe strani zdaj neodvisno izračunata isti ključ seje na podlagi skupno dogovorjenega ključa.
- Strežnik zaključi rokovanje in začne šifrirano komunikacijo. Stranka stori enako; povezava je zdaj popolnoma zavarovana.
V primerjavi s prejšnjimi različicami je vzpostavljanje povezave TLS v standardu TLS 1.3 precej bolj poenostavljeno in varnejše. Celoten postopek, opisan tukaj, zdaj zahteva le eno povratno pot (1 RTT), kar znatno pospeši vzpostavitev povezave.
Razlog, zakaj se asimetrično šifriranje z algoritmom Diffie-Hellman uporablja le za prenos sejnega ključa (ne pa za šifriranje samih podatkovnih tokov), je prednost v hitrosti; asimetrično šifriranje je namreč relativno počasno in bi upočasnilo 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 operacijske sisteme in programske aplikacije udeležencev. Vsi podatkovni tokovi se tako med prenosom samodejno šifrirajo.
Cena za varnost je nekoliko počasnejša vzpostavitev 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 operacijskih sistemov. Zato obstajajo različice, zavarovane s TLS, za številne aplikacijske protokole. Shema poimenovanja je v večini primerov precej preprosta: če protokol komunicira prek TLS, se imenu protokola doda črka »S«.
Najpomembnejše področje uporabe protokola TLS je svetovni splet, natančneje 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: Sinhronizirajte prejeto pošto s strežnikom prek protokola IMAP
- SMTPS: Pošiljanje e-pošte
- FTPS: prenos datotek prek protokola FTP
- SIPS: IP-telefonija prek protokola SIP
- IRCS: Šifrirani klepeti
- QUIC: Googlov transportni protokol, ki neposredno vključuje TLS 1.3; alternativa TCP za hitrejše in varnejše spletne povezave (npr. s HTTP/3)
OpenVPN, brezplačna programska oprema za vzpostavitev navideznega zasebnega omrežja (VPN), prav tako uporablja protokol TLS.
Ključne implementacije protokola TLS
Med najpogosteje uporabljanimi izvedbami protokola TLS so:
- OpenSSL – daleč najpogostejša izvedba, ki jo uporablja večina spletnih strani HTTPS
- GnuTLS (Free Software Foundation)
- LibreSSL (OpenBSD)
- NSS (Network Security Services)
- BoringSSL (Google)
- Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas in odprtokodna skupnost)
- Botan (licenca BSD, Jack Lloyd)
- JSSE (Java Secure Socket Extension, Oracle)
- S2n (Amazon)
Ta seznam ni izčrpen. Podrobne informacije o izvedbah protokola TLS najdete na Wikipediji.
Znani napadi na protokol TLS
Čeprav je protokol TLS zasnovan za varno komunikacijo, ima kljub temu znane pomanjkljivosti. Mednje spadajo:
- Programske napake: Napaka Heartbleed je postala znana kot kritična programska napaka v starejših različicah OpenSSL. Popravljena je bila leta 2014.
- Šibka šifriranja: Zaradi ameriških omejitev izvoza kriptografije so bile razvite različice »izvozne kakovosti«, ki jih je bilo lažje razvozlati kot izvirnike.
- Napadi s stiskanjem: Kadar se namesto stiskanja TLS uporablja stiskanje HTTP, lahko hekerji z določenimi 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 konfiguriranih strežnikih izkoristijo za preusmerjanje uporabnikov na druge storitve ter prestrezanje ali manipulacijo podatkov.
Prizadevali so si tudi za preprečevanje popolnoma varnega šifriranja TLS, da bi organom omogočili dostop do šifrirane komunikacije – na primer v zvezi s finančnimi transakcijami in kriminalnimi dejavnostmi. Ena od organizacij, ki se je zavzemala za takšno »namerno ranljivost« v protokolu TLS, je bil ETSI (Evropski inštitut za telekomunikacijske standarde).