Mis on TLS (Transport Layer Security)? Protokolli selgitus
TLS (Transport Layer Security) on krüpteerimisprotokoll, mis tagab turvalise andmeedastuse internetis. See on vananenud SSL-i järeltulija ja seda kasutatakse praegu peaaegu eranditult versioonis TLS 1.3.
Mis on TLS?
Interneti algusaegadel ei olnud andmete turvalisus nii oluline kui tänapäeval. Kogu side toimus avalikult ja krüpteerimata ühelt arvutilt teisele. Võite seda võrrelda postkaardiga: iga postiljon võis seda lugeda.
TLS-protokoll – tuntud ka kui SSL/TLS – võttis kasutusele edastatava sisu krüpteerimise. Selle analoogia jätkamiseks võib öelda, et see krüpteerimine on nagu pitseeritud ümbrik, mille saab avada ainult õige adressaat.
Lühend TLS tähendab Transport Layer Security. See mõiste viitab TCP/IP-mudeli transpordikihile. TLS on meetod, mis krüpteerib internetiandmevooge, võimaldades neid lugeda ainult volitatud adressaatidel.
Krüpteerimisprotokolli endine nimetus oli SSL (Secure Socket Layer). Kuna see lühend on endiselt tuntum kui TLS, nimetatakse TLS-i sageli kaheosaliselt „SSL/TLS“.
Kuidas TLS toimib?
TLS krüpteerib interneti kaudu saadetavaid andmeid ja rakendatakse tavaliselt TCP peal, kasutades sümmeetrilist krüptograafiat.
See, mis teoreetiliselt lihtsana tundub, on tegelikkuses palju keerulisem. Põhiprobleem seisneb selles, et server peab edastama võtme kliendileenne, kui side on TLS-iga turvatud. Igaüks, kes on saatnud krüpteeritud e-kirja manuseid, teab seda probleemi: krüpteerid faili ja pead jagama salajast parooli adressaadiga, näiteks telefoni teel.
TLS-protokoll, mille kehtiv standard on alates 2018. aastast versioon 1.3, kasutab selle probleemi lahendamiseks järgmist menetlust:
- ClientHello: Klient (nt veebibrauser) saadab serverile esialgse sõnumi, mis sisaldab teavet toetatavate krüpteerimisviiside kohta. See hõlmab krüpteerimiskomplekte, protokolliversioone, juhuslikku väärtust ja oma elliptilise kõvera Diffie-Hellmani võtmevahetuse väärtust (ECDHE-väärtus). Valikuliselt võib juba saata esimese krüpteeritud andmeploki.
- ServerHello: Server valib sobivad parameetrid ja saadab oma vastuse, sealhulgas oma ECDHE-väärtuse ja digitaalse sertifikaadi. See SSL-sertifikaat tõendab, et server on autentne ega esine kellegi teise nime all. Samal ajal algab seansivõtme arvutamine.
- Võtme arvutamine: Mõlemad pooled arvutavad nüüd iseseisvalt sama seansivõtme ühiselt kokkulepitud võtme alusel.
- Server lõpetab käepigistuse ja alustab krüpteeritud suhtlust. Klient teeb sama; ühendus on nüüd täielikult turvatud.
Võrreldes varasemate versioonidega on TLS 1.3-s kasutatav TLS-käepigistus märkimisväärselt lihtsam ja turvalisem. Kogu siin kirjeldatud protsess nõuab nüüd vaid ühte edasi-tagasi-ringi (1 RTT), mis kiirendab ühenduse loomist märgatavalt.
Põhjus, miks Diffie-Hellmani algoritmi kasutavat asümmeetrilist krüpteerimist rakendatakse ainult seansivõtme edastamiseks (aga mitte andmevoogude endi krüpteerimiseks), on kiiruse eelis; asümmeetriline krüpteerimine on suhteliselt aeglane ja aeglustaks andmesidet.
TLS-i plussid ja miinused
TLS on elegantne lahendus veebiliikluse turvalisemaks muutmiseks. See ei nõua, et osapooled krüpteeriksid sisu, näiteks vormiandmed, ise. Piisab hoopis sellest, et liiklus suunatakse läbi TLS-protokolli, sõltumata osapoolte operatsioonisüsteemidest ja tarkvararakendustest. Kõik andmevood krüpteeritakse seejärel edastamise ajal automaatselt.
Turvalisuse hind on veidi aeglasem ühenduse loomine, kuna eespool mainitud protsessietapid – sertifikaat, juhuslik number, võtmevahetus – on arvutuslikult ressursimahukad.
TLS-i kasutusvaldkonnad
Nagu mainitud, on TLS-i võimalik kasutada universaalselt, kuna see on sõltumatu rakendustest ja operatsioonisüsteemidest. Seetõttu on mitmesuguste rakendusprotokollide jaoks olemas TLS-iga kaitstud versioon. Nimetamisskeem on enamasti üsna lihtne: kui protokoll suhtleb TLS-i kaudu, lisatakse protokolli nimele täht „S“.
TLS-i peamine rakendusvaldkond on veeb, täpsemalt HTTP-protokoll. Selle krüpteeritud versiooni nimetatakse HTTPS-iks.
Lisaks neile tuleks mainida järgmisi levinud kasutusjuhtumeid:
- POP3S: Lae e-kirjad serverist alla POP3-protokolli abil
- IMAPS: sünkroniseerib postkasti serveriga IMAP-protokolli abil
- SMTPS: Saada e-kirju
- FTPS: failide edastamine FTP-protokolli abil
- SIPS: IP-telefonia SIP-protokolli kaudu
- IRCS: krüpteeritud vestlused
- QUIC: Google’i transpordiprotokoll, mis integreerib otse TLS 1.3; alternatiiv TCP-le kiiremate ja turvalisemate veebiühenduste jaoks (nt HTTP/3-ga)
OpenVPN, tasuta tarkvara virtuaalse eravõrgu (VPN) loomiseks, kasutab samuti TLS-protokolli.
Peamised TLS-rakendused
TLS-i kõige levinumate rakenduste hulka kuuluvad:
- OpenSSL – kaugelt kõige levinum rakendus, mida kasutavad enamik HTTPS-veebisaite
- GnuTLS (Vaba Tarkvara Sihtasutus)
- LibreSSL (OpenBSD)
- NSS (võrguturvateenused)
- BoringSSL (Google)
- Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas ja avatud lähtekoodiga kogukond)
- Botan (BSD-litsents, Jack Lloyd)
- JSSE (Java Secure Socket Extension, Oracle)
- S2n (Amazon)
See loetelu ei ole ammendav. Täpsemat teavet TLS-i rakenduste kohta leiate Vikipeediast.
Tuntud TLS-rünnakud
Kuigi TLS on loodud turvalise suhtluse tagamiseks, on sellel siiski teadaolevaid nõrkusi. Nende hulka kuuluvad:
- Programmeerimisvead: Heartbleed-viga sai tuntuks kui kriitiline programmeerimisviga OpenSSL-i varasemates versioonides. See parandati 2014. aastal.
- Nõrgad krüpteeringud: USA krüptograafia ekspordipiirangute tulemusena arendati välja „eksportklassi” versioonid, mida oli originaalidest lihtsam murda.
- Kompressioonirünnakud: Kui TLS-kompressiooni asemel kasutatakse HTTP-kompressiooni, on häkkeritel võimalik teatud meetodite abil ära arvata TLS-krüpteeritud sisu.
- BEAST-rünnak mõjutas TLS-i versiooni 1.0 ja kirjeldati juba 2014. aastal. Praegused TLS-i versioonid on selle vastu turvalised.
- Padding Oracle rünnak avastati 2002. aastal ja oli võimalik kuni SSL versioonini 3.0. Praegune TLS versioon 1.3 ei ole sellest mõjutatud.
-
- aasta ALPACA-rünnak näitab, kuidas valesti konfigureeritud serverite TLS-sertifikaate saab ära kasutada, et suunata kasutajaid teistesse teenustesse, püüdes kinni või manipuleerides andmeid.
Samuti on tehtud katseid takistada täielikult turvalise TLS-krüpteeringu kasutamist, et võimaldada ametiasutustel pääseda juurde krüpteeritud sideandmetele – näiteks seoses finantstehingute ja kuritegevusega. Üks organisatsioone, mis toetas sellist „tahtlikku haavatavust” TLS-is, oli ETSI (Euroopa Telekommunikatsioonistandardite Instituut).