Transpordikihi turbeprotokoll

Sertifikaadid

Ülaltoodud näide ei saaks lihtsal moel kunagi toimuda, kui serveri poolt saadetud TLS-sertifikaat ei ole usaldatud või usaldatud osapoole poolt allkirjastatud. Muidu võiks ülaltoodud näites kasutada näiteks Diffie-Hellmani algoritmi RSA asemel, mille abil võivad kasutaja ja server koos luua ühise AES-võtme ja tulemus oleks sama ning ka kiirem. RSA kasutamine võimaldab avalike võtmete taristu (Public Key Infrastructure) loomise ja see täidab internetiturbe 2. punkti ehk autentimist.
RSA algoritm toodab võtmepaari, mis koosneb avalikust võtmest, mida avalikkus peaks teadma, ning privaatvõtmest, mis on omanikule kättesaadav, kuid mida omanik peab hoidma saladuses. TLS-sertifikaat sisaldab omaniku avalikku võtit, informatsiooni omaniku ja sertifikaadi otstarbe kohta (nt sertifikaadi kasutusala ja seotud domeeninimi, mida teine osapool peaks kontrollima enne serdi omaniku usaldamist). TLS-sertifikaat on alati ka allkirjastatud – kas mõne sertimisasutuse (SA/CA) poolt või sertifikaadi enda võtmega (self-signed certificate).
Allkirjastamises võetakse terve sertifikaadi sisu, sh. kaasandmed ja avalik võti (sertifikaadiallkirjastamistaotlus – certificate signing request ehk CSR) ning see lastakse läbi räsifunktsiooni, mis toodab fikseeritud pikkuses numbri (nt 256- või 512-bitise), mis on iga kord sama sisuga faili puhul täpselt sama. See räsikood krüpteeritakse sertimisasutuse poolt kasutades SA privaatvõtit ning selle funktsiooni tulemusest saab allkiri. Täielik sertifikaat sisaldab nii poolikut sertifikaati kui ka allkirja ning ka SA oma sertifikaati.

Sertifikaatidest lähemalt

TLS-sertifikaadid ei ole osa TLS-ist, vaid on eraldiseisev standard X.509, mis on kooskõlastatud Rahvusvahelises Telekommunikatsiooni Liidus. Seda võib vaadata kui TLS-i "passiivset" osa, kuna see omab otstarvet ka suhtluses, kus aktiivset krüptimist ei toimu ning toimub vaid allkirjade kontrollimine. X.509 abil on loodud teenuseid, mis TLS-i ei kasuta, näiteks Eesti ID-kaardiga failide allkirjastamine.
Levinud on ka arvutis programmide allkirjastamine CA-dega (koodiallkirjastamine, code signing), et näidata kõrgendatud (nt halduri) privileege taotlevate programmide turvalisust. Nutitelefonide platvormid, sealhulgas iOS, Google Android ja Windows Phone ei luba vaikimisi allkirjastamata rakenduste paigaldamist. Kõik nende rakendusepoodides saadaval olevate rakenduste paigalduspakid on allkirjastatud, kuid kõik peale iOS-i lubavad ka kelle tahes signeeritud rakendusi. Selline signeerimine iseenesest ei garanteeri, et programm või rakendus oleks turvaline.
X.509 standard määrab kõik sertifikaadiga seotu, sealhulgas sertifikaadifailide vormingu, ülesehituse, väljad, allkirjastamise ja kasutatud algoritmid peale sümmeetrilise krüptimise, mida kasutatakse vaid TLS-is reaalajas andmete krüptimiseks.

Sertimisasutused

Sertifikaatide loojad ei tegele alati vaid brauserikrüptimisega, vaid nende teine peamine tegevusala on koodiallkirjastamine. Sertimisasutusteks on peamiselt kommertsfirmad, turuosa järjekorras suurimad seisuga märts 2016 on Symantec, GoDaddy, Comodo, GlobalSign ja DigiCert.
Veebiturvalisus toimib usaldusvõrgustiku põhimõttel, nagu ka igasugune turvalisus. SA-dele ei tee järelevalvet ükski keskendatud asutus, selle asemel tarnivad tarkvara loojad iseseisvalt nimekirja usaldatud juursertifikaatidega. Neid nimekirju on erinevaid, näiteks tarnitakse Microsoft Windowsi, Mac OSi ja teatud Linuxi komplekte selliste nimekirjadega ning neid nimekirju jälgivad näiteks brauserid Internet Explorer ja Google Chrome. Mozilla Firefox aga kasutab iseenda eraldi nimekirja. Nendesse nimekirjadesse saavad kasutajad tavaliselt ise usaldatud juurserte lisada. Juhul, kui brauser üritab minna lehele, mille serdiahel ei sisalda usaldatud serti, väljastatakse kasutajale vastav hoiatus ja tegevusjuhised.
Eestis on üks sertimisasutusi Sertifitseerimiskeskus (SK), mis on üheks Eesti ID-kaardiga tegelevatest riiklikest partnerfirmadest. ID-kaart lubab teha vastupidist autoriseerimist, kus kasutaja tõestab oma isikut veebilehele, näiteks pangale.