Kui veebilehe aadressiribal on tabaluku ikoon ja aadress algab “https”, kasutab leht krüpteeritud ühendust. Selle taga on protokoll, mida paljud tunnevad nime all SSL, kuigi tänapäeval kasutatakse selle järeltulijat TLS-i. Selles artiklis selgitame, mis on SSL ja TLS, kuidas need töötavad ning miks on SSL-sertifikaat iga veebilehe jaoks oluline.
Mis on SSL ja TLS?
Transpordikihi turbeprotokoll (inglise keeles Transport Layer Security, TLS), varem tuntud kui turvasoklite kiht (Secure Sockets Layer, SSL), on krüptograafiline protokoll, mis turvab võrgusuhtlust, näiteks internetis. TLS krüpteerib andmeid suhtluskanali otspunktides ehk otsast lõpuni.
Protokolli eri versioone kasutatakse veebibrauserites, meiliklientides, kiirsuhtlusprogrammides, IP-kõnedes ja mujal. TLS on kirjeldatud IETF-i standardis RFC 5246, mis põhineb varasemal Netscape’i välja töötatud SSL-i kirjeldusel. Sõna “SSL” on igapäevakeeles siiski jäänud kasutusse, eriti sertifikaatidest rääkides.
SSL-ist TLS-ini: lühike ajalugu
Ingliskeelse Wikipedia järgi töötas algsed SSL-protokollid välja Netscape, et lisada oma Netscape Navigatori veebibrauserile HTTPS-protokoll. SSL-i versiooni 1.0 ei avaldatud kunagi tõsiste turvavigade tõttu. Versioon 2.0 avaldati 1995. aasta veebruaris, kuid selles leiti kiiresti mitmeid vigu, mistõttu protokoll kujundati ümber ja 1996. aastal ilmus SSL 3.0.
TLS 1.0 määratleti 1999. aasta jaanuaris standardis RFC 2246 kui SSL 3.0 uuendus. Praegune versioon on TLS 1.3, mis määratleti 2018. aasta augustis. Vanad SSL-i versioonid on ametlikult kasutusest kõrvaldatud: SSL 2.0 aastal 2011 ning SSL 3.0 2015. aasta juunis, pärast seda kui 2014. aastal leiti, et see on haavatav POODLE-rünnakule.
Miks SSL/TLS vajalik on?
TLS-i peetakse vajalikuks eelkõige ühenduste kaitsmiseks vahemeherünnakute eest, kus keegi võib kahe poole suhtlust jälgida, kinni pidada või isegi muuta. Selline oht võib tekkida pahatahtliku või kompromiteeritud kohtvõrgu kaudu, sealhulgas Etherneti- või Wi-Fi-ühenduses.
TLS-il ja sarnastel protokollidel on kolm eesmärki:
- Krüpteerimine – põhiline kaitse selle eest, et vahemees andmeid jälgiks.
- Autentsus – ühe või mitme osapoole isiku tõendamine teistele.
- Andmete järjepidevus – kinnitus, et vastuvõetud andmed on täielikud ja muutmata.
Tasub meeles pidada, et ükski ühendus ei ole lõplikult ja täielikult turvaline – turvaprobleemid võivad tekkida ka mujal, näiteks veebilehe enda andmebaasis.
Kuidas TLS töötab?
TLS vajab toimimiseks kolme tüüpi algoritmi:
- asümmeetrilist krüptimisalgoritmi, näiteks RSA;
- sümmeetrilist krüptimisalgoritmi, näiteks AES;
- räsifunktsiooni, näiteks SHA-2.
Algoritme tuleb aeg-ajalt välja vahetada. Näiteks SHA-1 kuulutati 2010. aastal NIST-i poolt ebaturvaliseks pärast 2005. aastal avastatud turvaauku ning voopõhine RC4 kuulutati ebaturvaliseks 2015. aastal. Ka krüptovõtmete pikkus on aja jooksul kasvanud: RSA võtmed olid algul 1024-bitised, hiljem 2048-bitised.
Ühenduse loomine lihtsustatult
- Kasutaja loob ühenduse TLS-serveriga, näiteks panga või e-poe HTTPS-veebilehega.
- Brauser teatab, millist TLS-i versiooni ja milliseid algoritme ta toetab.
- Server saadab RSA-ga krüpteeritud AES-võtme.
- Ülejäänud suhtlus toimub AES-iga krüpteeritud andmevoos, sest tervete veebilehtede krüpteerimine RSA-ga oleks liiga aeglane.
Mis on SSL-sertifikaat?
Ühendus saab olla usaldusväärne ainult siis, kui serveri saadetud sertifikaat on usaldatud või usaldatud osapoole allkirjastatud. RSA algoritm loob võtmepaari: avaliku võtme, mida teised võivad teada, ja privaatvõtme, mida omanik peab hoidma saladuses.
TLS-sertifikaat sisaldab omaniku avalikku võtit ja teavet omaniku ning sertifikaadi otstarbe kohta, näiteks seotud domeeninime. Sertifikaat on alati allkirjastatud – kas sertimisasutuse (CA) poolt või sertifikaadi enda võtmega (self-signed).
Sertifikaadid ise ei ole TLS-i osa, vaid eraldiseisev standard X.509. Seda kasutatakse ka teenustes, mis TLS-i ei kasuta, näiteks Eesti ID-kaardiga failide allkirjastamisel.
Sertimisasutused ja usaldus
Sertimisasutused on peamiselt kommertsfirmad. Märtsi 2016 seisuga olid turuosa järgi suurimad Symantec, GoDaddy, Comodo, GlobalSign ja DigiCert. Ükski keskne asutus neid ei kontrolli – tarkvara loojad tarnivad iseseisvalt nimekirju usaldatud juursertifikaatidega. Kui brauser satub lehele, mille sertifikaadiahel ei sisalda usaldatud sertifikaati, näeb kasutaja hoiatust. Eestis on üks sertimisasutusi Sertifitseerimiskeskus (SK), mis on ka üks ID-kaardiga tegelevaid partnerettevõtteid.
Nõuanded veebilehe omanikule
- Kasuta oma veebilehel kehtivat sertifikaati, et külastajad ei näeks brauseri hoiatust.
- Jälgi sertifikaadi aegumist ja uuenda see õigel ajal.
- Väldi vananenud protokolliversioone ja algoritme, mis on tunnistatud ebaturvaliseks.
- Hoia privaatvõtit turvaliselt – selle lekkimine muudab sertifikaadi kasutuks.