Kakšna je razlika med TLS in SSL?

SSL Branje: 4 min

Na kratko: TLS (Transport Layer Security) je naslednik SSL (Secure Sockets Layer). Oba sta namenjena istemu: šifrirata povezavo med brskalnikom (ali poštnim programom) in strežnikom ter potrjujeta, da se obiskovalec res povezuje z želenim strežnikom. Vse različice SSL so zastarele in ranljive, danes spletne strani, pošta in skoraj vse šifrirane internetne povezave uporabljajo TLS. Ime „SSL” je kljub temu ostalo v vsakdanjem jeziku in tako se imenujejo tudi potrdila.

Kako je iz SSL nastal TLS?

SSL je sredi 90. let razvil Netscape za svoj brskalnik. Različica 1.0 ni nikoli izšla, SSL 2.0 je izšel leta 1995, popravljeni SSL 3.0 pa leta 1996. Nato je skrb za protokol prevzela organizacija za standarde IETF, ki je naslednjo različico izdala že pod novim imenom: TLS 1.0 je izšel leta 1999. Šlo je v bistvu za nadgradnjo SSL 3.0; tudi številka različice znotraj protokola je 3.1, ime se je spremenilo le zaradi standarda, ki je zamenjal skrbnika.

Različica Izid Stanje danes
SSL 2.0 1995 prepovedan od leta 2011 (RFC 6176)
SSL 3.0 1996 prepovedan od leta 2015 (RFC 7568), po napadu POODLE
TLS 1.0 1999 zastarel od leta 2021 (RFC 8996), brskalniki so ga izklopili leta 2020
TLS 1.1 2006 zastarel od leta 2021 (RFC 8996), brskalniki so ga izklopili leta 2020
TLS 1.2 2008 varen, če strežnik dovoli le močno šifriranje
TLS 1.3 2018 trenutna različica

Kakšna je razlika v praksi?

SSL in stare različice TLS je bilo treba umakniti ne zaradi imena, temveč zaradi zastarelih algoritmov. Vsaka nova različica je odpravila prejšnje slabosti:

  • TLS 1.0 je v primerjavi s SSL 3.0 uvedel močnejše preverjanje sporočil (HMAC) in izpeljavo ključev, a je temeljil na starem šifriranju v načinu CBC, ki ga je pozneje izkoristilo več napadov (na primer BEAST).
  • TLS 1.1 je del teh popravil, večjega preboja pa ni prinesel, zato se je razširil le redko.
  • TLS 1.2 je uvedel sodobno overjeno šifriranje (na primer AES-GCM) in izpeljavo ključev na osnovi SHA-256. Še danes se široko uporablja in je varen, če strežnik ne dovoli starih, šibkih načinov šifriranja (RC4, 3DES, CBC, statična izmenjava ključev RSA).
  • TLS 1.3 je zelo poenostavil: stare algoritme so iz njega povsem odstranili, zato ga je tudi težje napačno nastaviti. Vsaka povezava dobi zaščito forward secrecy, kar pomeni, da tudi če zasebni ključ strežnika pozneje uide, prej posnetega prometa ni mogoče dešifrirati. Vzpostavitev povezave (rokovanje) je krajša za eno izmenjavo sporočil tja in nazaj, kar predvsem v mobilnem omrežju pospeši nalaganje strani, tudi potrdilo strežnika pa potuje šifrirano.

Delovanje rokovanja in šifriranja korak za korakom prikazuje članek Kaj je TLS (Transport Layer Security)?

Zakaj ga potem imenujemo potrdilo SSL?

Iz navade. Potrdilo (potrdilo X.509) ne spada k nobeni različici protokola: isto potrdilo deluje s TLS 1.2 in TLS 1.3, nekoč pa bi enako delovalo s SSL 3.0. Potrdilo le potrjuje, da javni ključ pripada domeni; s katero različico protokola in kakšnim šifriranjem se povezava vzpostavi, odločajo nastavitve strežnika in brskalnika.

Zato ni posebnega „potrdila TLS”: če ponudnik prodaja potrdilo SSL, TLS ali SSL/TLS, gre za isti izdelek. Prava razlika med potrdili je raven preverjanja (DV, OV, EV) in število domen, za katere veljajo; o tem beri na strani, ki predstavlja naša potrdila SSL, in v članku Kaj je potrdilo SSL in zakaj ga potrebujem? Zakaj je danes obvezno za vsako spletno stran, povzema naš blogovski zapis.

SSL/TLS in STARTTLS v poštnih programih

V nastavitvah poštnih programov „SSL/TLS” in „STARTTLS” ne označujeta različice protokola, temveč kako se šifriranje začne:

  • SSL/TLS (implicitni TLS): povezava je šifrirana od prvega trenutka. To uporablja IMAP na vratih 993, POP3 na 995 in odhodni SMTP na vratih 465.
  • STARTTLS: povezava se začne nešifrirano, nato pa program v prvem koraku preklopi na šifrirano. To uporablja odhodni SMTP na vratih 587.

V obeh primerih promet enako šifrira TLS, nobeden ne pomeni starega SSL. Nastavitve „Brez” ali „Brez šifriranja” pa ne izberi, ker takrat tudi tvoje geslo potuje v berljivi obliki. Več o varnosti pošte: Je e-pošta varna?

Katero različico je vredno dovoliti?

Na spletni strani je danes vredno dovoliti TLS 1.2 in TLS 1.3, starejših pa ne. Izklop TLS 1.2 še ni potreben: nekateri starejši sistemi in programi od obeh poznajo le tega. Z izklopom TLS 1.0 in 1.1 pa praktično nikogar ne izključiš: današnji brskalniki ju sploh ne uporabljajo, s TLS 1.2 pa se ne morejo povezati le sistemi, starejši od začetka 2010-ih (na primer Windows XP). Standard PCI DSS za spletne trgovine, ki sprejemajo plačila s kartico, od leta 2018 sploh ne dovoli uporabe SSL in TLS 1.0.

Če upravljaš lasten strežnik, moraš nastavitev opraviti sam; na spletnem strežniku Apache to prikazuje vodnik za nastavitev SSL.

Kako pogledaš, katero različico uporablja stran?

V Firefoxu: v naslovni vrstici klikni ikono ključavnice, nato točki Povezava je varna in Več informacij. Vrstica Tehnične podrobnosti v odprtem oknu pokaže različico protokola (na primer „TLS 1.3”) in šifriranje.

Iz ukazne vrstice (v Linuxu in macOS) curl izpiše, kakšna povezava je bila vzpostavljena:

curl -sv -o /dev/null https://pelda.hu 2>&1 | grep -i "SSL connection"

Odgovor je na primer SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384.

Ti načini pokažejo le, s katero različico je bila vzpostavljena tvoja povezava. Ali strežnik sprejema tudi stare različice, je s svojega računalnika težko preizkusiti, ker današnji brskalniki in novejše različice OpenSSL TLS 1.0 in 1.1 onemogočijo tudi na svoji strani. Za to je Qualysova brezplačna stran SSL Server Test: v razdelku Configuration navede, katere različice protokola strežnik dovoljuje.

Nazaj: SSL – članki (35)