Transpordikihi turbeprotokoll

Allikas: Vikipeedia

Internetiprotokolli kihid

Andmesideprotokollid · TCP/IP mudel · veel...

Rakenduste kiht

DHCP · HTTP · HTTPS · IRC · FTP · DNS · SMTP · IMAP · POP · SSH · Telnet · TLS/SSL · XMPP

Transpordikiht

TCP · UDP

Internetikiht

Internetiprotokoll (IPv4 · IPv6) · IPsec

Lülikiht

MAC (DSL · Ethernet · WLAN)


Transpordikihi turbeprotokoll (ingl Transport Layer Security, TLS; varem turvasoklite kiht (Secure Sockets Layer, SSL)) on krüptograafiline protokoll, mis turvab võrgusuhtlust näiteks internetis. TLS krüpteerib võrguühenduste segmente transpordikihis suhtluskanali otspunktides (end-to-end).

Protokollist on kasutusel mitmeid versioone näiteks veebibrauserites, meiliklientides, internetifaksimisel, kiirsuhtlusprogrammides ja IP-kõnede juures.

TLS on kirjeldatud IETF-i standardis RFC 5246, mis põhineb varasemal Netscape'i väljatöötatud SSL-i kirjeldusel.

Põhjendus[muuda | muuda lähteteksti]

TLS-i peatakse vajalikuks peamiselt selle jaoks, et kaitsta ühendusi vahemeherünnakute eest, kus kahe poole vahel toimuvat suhtlust võib keegi jälgida, kinni pidada ja isegi muuta. Sellist olekut võib lubada pahatahteline või kompromiteeritud kohtvõrgu (LAN) ühendus, sealhulgas Ethernet ning WLAN ehk Wi-Fi ühendus. Internetiturbes võib oht olla ka mujal, isegi turvatud veebilehes endas, mille tõttu ei saa ühendus kunagi olla lõplikult ja täielikult turvaline ja ilma halbade tagajärgedeta ning turvaprobleemid võivad ilmneda ka hiljem (nt andmebaasi salvestatud pangakaartide info juurdepääs kuritegelikel põhjustel).

TLS-il ja sarnastel protokollidel on kolm eesmärki[1]:

  1. Krüptimine, mis on põhiline kaitse vahemehe poolt andmete jälgimise eest
  2. Autentsus ehk ühe või mitme osapoole isiku tõendamine teistele osapooltele
  3. Andmete järjepidevus ehk vastuvõetud andmete täielikkuse tõendamine

Tööpõhimõtted[muuda | muuda lähteteksti]

Diagramm, mis näitab andmete allkirjastamist läbi RSA algoritmi.

Algoritmid[muuda | muuda lähteteksti]

TLS vajab toimimiseks kolme algoritmi (need ei kattu ülaltoodud kolme eesmärgiga):

  1. Asümmeetrilist krüptimisalgoritmi, nt RSA
  2. Sümmeetrilist krüptimisalgoritmi, nt plokipõhine AES
  3. Räsifunktsiooni algoritmi, nt SHA-2

Nendest algoritmidest on kõige vanem RSA. Teist tüüpi algoritme on olnud vaja tihti välja vahetada, näiteks AES avaldati aastal 1998 ning SHA-2 avaldati aastal 2001. SHA-2-le eelnes eelnes SHA-1, mis kuulutati 2010. aastal NIST-i poolt ebaturvaliseks pärast 2005 aastal avastatud turvaauku. Plokipõhise AES-i kõrval kasutati ka voopõhist RC4, mis kuulutati 2015. aastal ebaturvaliseks. Kuigi SHA-2-st pole veel sarnaseid turvaauke avaldatud, avaldas 2015. aastal NIST SHA-3 algoritmi, mis selgitati mitu aastat kestnud võistlusel. Turvaalgoritmide vigade otsimist kutsutakse krüptanalüüsiks.

Krüptimisalgoritmide osaks on ka eri suuruses numbrid, mida kutsutakse "võtmeteks" ning need on suhtlusosapoolte jaoks isiklikud. Läbi aja on nende numbrite pikkus kasvanud - RSA laialtlevinumad võtmed olid algul 1024-bitised, siis 2048-bitised, kasutusel on ka 4096-bitised numbrid aladel nagu e-mailide allkirjastamine, kus kiirus pole põhiline.

Ühenduse loomine[muuda | muuda lähteteksti]

Lihtsustatud näide TLS-ühendusest, kus pole ära toodud autentimine ega andmete järjepidevus, on selline:

  1. Kasutaja loob ühenduse TLS-serveriga (näiteks HTTPS veebilehega - pangaga, netipoe, e-maililehe või muu sellisega)
  2. Kasutaja brauser ehk "agent" teatab, millist TLS-protokolli versiooni ta toetab ning milliseid algoritme ta oskab kasutada (TLS-i versioon on tihedalt seotud algoritmide saadavusega)
  3. Server saadab üle RSA-ga krüpteeritud AES-võtme
  4. Ülejäänud suhtlus toimub AES-iga krüpteeritud andmevoos, kuna RSA-ga terveid veebilehti krüpteerida on ekstreemselt aeglane

Sertifikaadid[muuda | muuda lähteteksti]

Ü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-d kasutatakse, kuna see lubab avalike võtmete taristu (Public Key Infrastructure) loomist ja see täidab internetiturbe 2. punkti ehk autentimist.

RSA algoritm toodab isikliku 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 mingi sertifikaadiautoriteedi (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 sertifikaadiautoriteedi 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[muuda | muuda lähteteksti]

TLS sertifikaadid ei ole tegelikult osa TLS-ist, vaid on eraldiseisev standard, mille kooskõlastas Rahvusvaheline Telekommunikatsiooni Liit ja nummerdas selle kui X.509. 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-ga on loodud teenused, mis TLS-i ei kasutagi, näiteks Eesti ID-kaardiga failide allkirjastamine.

Levinud on ka arvutis programmide allkirjastamine CA-de poolt, et näidata programmide turvalisust, mis taotlevad kõrgendatud (nt. administraatori) privileege. Seda kutsutakse koodiallkirjastamiseks (code signing). Nutitelefonide platvormid, sealhulgas iOS[2], Google Android[3] ja Windows Phone[4] ei luba vaikimisi allkirjastamata rakenduste installeerimist. Kõik nende äpipoodides saadaval olevate rakenduste installeerimispakid on allkirjastatud, kuid kõik peale iOS'i lubavad ka kelle poolt tahes allkirjastatud rakendusi. See iseenesest ei garanteeri, et programm või rakendus oleks turvaline.

X.509 standard sätib üles kõik sertifikaadiga seotu, sealhulgas sertifikaadifailide formaadi ja ülesehituse, väljad, allkirjastamise, kasutatud algoritmid peale sümmeetrilise krüptimise, mida kasutatakse vaid TLS-is reaalajas andmete krüptimiseks.

Sertifikaadiautoriteedid[muuda | muuda lähteteksti]

Niisiis ei tegele sertifikaatide loojad alati vaid brauserikrüptimisega, nende teine peamine tegevusala on koodiallkirjastus. Sertifikaadiautoriteetideks on peamiselt kommertsfirmad, turuosa järjekorras suurimad seisuga jaanuar 2015 on Symantec, GoDaddy, Comodo, GlobalSign ja DigiCert.[5]

Veebiturvalisus toimib usaldusvõrgustiku põhimõttel, nagu ka igasugune turvalisus. Nimelt SA-dele ei tee järelvalvet ü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[6]. Nendesse nimekirjadesse saavad kasutajad tavaliselt ise usaldatud juurserte lisada. Juhul, kui brauser üritab minna lehele, mille serdiahel ei sisalda usaldatud serti, viskab see hoiatuse, valikuga seda eirata.

Eestis on üheks SA-ks Sertifitseerimiskeskus (SK), mis on üheks Eesti ID-kaardiga tegelevatest riiklikest sihtasutustest. ID-kaart lubab teha vastupidist autoriseerimist, kus kasutaja tõestab oma isikut veebilehele, näiteks pangale.[7]

Viited[muuda | muuda lähteteksti]

Välisviited[muuda | muuda lähteteksti]