TLS (Transport Layer Security) ir šif­rē­ša­nas protokols, kas nodrošina drošu datu pārraidi internetā. Tas ir no­ve­co­ju­šā SSL pēctecis, un šobrīd to izmanto gandrīz vienīgi TLS 1.3 versijā.

Kas ir TLS?

Interneta pirms­ā­ku­mos datu drošība nebija tik svarīga kā šodien. Visa saziņa tika nosūtīta atklāti un nešifrētā veidā no viena datora uz otru. To var sa­lī­dzi­nāt ar pastkarti: ikviens pastnieks varēja to izlasīt.

TLS protokols — pazīstams arī kā SSL/TLS — ieviesa pār­rai­dī­tā satura šifrēšanu. Turpinot šo analoģiju, šī šifrēšana ir kā aiz­zī­mo­gots aploksne, ko var atvērt tikai tās li­ku­mī­gais saņēmējs.

Sa­īsi­nā­jums TLS nozīmē „Transport Layer Security“ (trans­por­ta slāņa drošība). Šis termins attiecas uz TCP/IP modeļa trans­por­ta slāni. TLS ir metode, kas šifrē interneta datu plūsmas, ļaujot tās lasīt tikai pil­nva­ro­tiem sa­ņē­mē­jiem.

Note

Šī šif­rē­ša­nas protokola ie­priek­šē­jais nosaukums bija SSL (Secure Socket Layer). Tā kā šis sa­īsi­nā­jums joprojām ir plašāk pazīstams nekā TLS, TLS bieži dēvē ar du­bultno­sau­ku­mu „SSL/TLS”.

Kā darbojas TLS?

TLS šifrē internetā nosūtītos datus un parasti tiek īstenots TCP protokolā, iz­man­to­jot si­met­ris­ko šifrēšanu.

Tas, kas teo­rē­tis­ki šķiet vienkārši, praksē izrādās daudz sa­rež­ģī­tāks. Galvenā problēma ir tā, ka serverim ir jāpaziņo atslēga klientam —pirms saziņa tiek aiz­sar­gā­ta ar TLS. Ikviens, kurš sūta šifrētus e-pasta pie­li­ku­mus, zina šo problēmu: jūs šifrējat failu un esat spiests atklāt slepeno paroli saņēmējam, piemēram, pa tālruni.

TLS protokols, kura pa­šrei­zē­jais standarts kopš 2018. gada ir versija 1.3, izmanto šādu procedūru, lai at­ri­si­nā­tu šo problēmu:

  1. ClientHel­lo: Klients (piemēram, pārlūks) nosūta serverim sākotnējo ziņojumu ar in­for­mā­ci­ju par at­bal­stī­ta­jiem šif­rē­ša­nas veidiem. Tajā ietilpst šif­rē­ša­nas komplekti, protokola versijas, nejauša vērtība un paša klienta Elliptic-Curve-Diffie-Hellman atslēgu apmaiņas vērtība (ECDHE vērtība). Pēc izvēles jau var tikt nosūtīts pirmais šifrētais datu bloks.
  2. Ser­verHel­lo: serveris izvēlas at­bil­sto­šos pa­ra­met­rus un nosūta atbildi, tostarp savu ECDHE vērtību un digitālo ser­ti­fi­kā­tu. Šis SSL ser­ti­fi­kāts pierāda, ka serveris ir au­ten­tisks un ne­iz­lie­kas par kādu citu. Tajā pašā laikā sākas sesijas atslēgas ap­rē­ķi­nā­ša­na.
  3. Atslēgas ap­rē­ķi­nā­ša­na: Abas puses tagad ne­at­ka­rī­gi aprēķina vienu un to pašu sesijas atslēgu, pa­ma­to­jo­ties uz kopīgi saskaņoto atslēgu.
  4. Serveris pabeidz sa­vie­no­ju­ma izveidi un sāk šifrētu saziņu. Klients dara to pašu; sa­vie­no­jums tagad ir pilnībā aiz­sar­gāts.
Note

Sa­lī­dzi­not ar ie­priek­šē­jām versijām, TLS 1.3 protokola sākotnējā sa­vie­no­ša­nās ir ie­vē­ro­ja­mi vien­kār­šā­ka un drošāka. Šeit ap­rak­stī­ta­jam procesam tagad ir ne­pie­cie­šams tikai viens datu apmaiņas cikls (1 RTT), kas ie­vē­ro­ja­mi paātrina sa­vie­no­ju­ma izveidi.

Iemesls, kāpēc asi­met­ris­ko šifrēšanu ar Diffie-Hellman metodi izmanto tikai sesijas atslēgas pārraidei (bet ne pašu datu plūsmu šif­rē­ša­nai), ir ātruma priekš­ro­cī­ba; asi­met­ris­kā šifrēšana ir sa­lī­dzi­no­ši lēna un kavētu datu pārraidi.

TLS priekš­ro­cī­bas un trūkumi

TLS ir elegants ri­si­nā­jums, kas padara tīmekļa datu plūsmu drošāku. Tas neprasa, lai abas puses pašas šifrētu saturu, piemēram, veidlapu datus. Pietiek ar to, ka datu plūsma tiek mar­šru­tē­ta, iz­man­to­jot TLS protokolu, ne­at­ka­rī­gi no da­līb­nie­ku ope­rē­tājsis­tē­mām un prog­ram­ma­tū­ras lie­to­jum­prog­ram­mām. Tādējādi visi datu plūsmas tiek au­to­mā­tis­ki šifrēti pārraides laikā.

Drošības no­dro­ši­nā­ša­nas cena ir nedaudz lēnāka sa­vie­no­ju­ma izveide, jo iepriekš minētie procesa posmi — ser­ti­fi­kāts, nejaušais skaitlis, atslēgu apmaiņa — prasa lielu skait­ļo­ša­nas jaudu.

TLS pie­lie­to­ju­mi

Kā jau minēts, TLS var izmantot vispārēji, jo tas ir ne­at­ka­rīgs no lie­to­jum­prog­ram­mām un ope­rē­tājsis­tē­mām. Tādējādi dažādiem lie­to­jum­prog­ram­mu pro­to­ko­liem ir pieejamas ar TLS aiz­sar­gā­tas versijas. Nosaukumu vei­do­ša­nas princips vairumā gadījumu ir diezgan vienkāršs: ja protokols sazinās, iz­man­to­jot TLS, tā no­sau­ku­mam pievieno burtu „S“.

Svarīgākā TLS pie­lie­to­ju­ma joma ir Pasaules tīmeklis, konkrēti HTTP protokols. Tā šifrētā versija saucas HTTPS.

Papildus tam jāmin arī šādi bieži sastopami lie­to­ša­nas gadījumi:

  • POP3S: E-pasta ziņojumu le­ju­pie­lā­de no servera, iz­man­to­jot POP3 protokolu
  • IMAPS: sin­hro­ni­zē ienākošo pastu ar serveri, iz­man­to­jot IMAP protokolu
  • SMTPS: Nosūtiet e-pastus
  • FTPS: Failu pār­sū­tī­ša­na, iz­man­to­jot FTP protokolu
  • SIPS: IP balss te­le­fo­ni­ja, iz­man­to­jot SIP protokolu
  • IRCS: Šifrēti tēr­zē­ša­nas
  • QUIC: Google trans­por­ta protokols, kas tieši integrē TLS 1.3; al­ter­na­tī­va TCP, lai no­dro­ši­nā­tu ātrākus un drošākus tīmekļa sa­vie­no­ju­mus (piemēram, ar HTTP/3)

OpenVPN, bezmaksas prog­ram­ma­tū­ra virtuālā privātā tīkla (VPN) izveidei, arī izmanto TLS protokolu.

Galvenās TLS īs­te­no­ju­mu versijas

Dažas no visplašāk iz­man­to­ta­jām TLS imple­men­tā­ci­jām ir:

  • OpenSSL – pašlaik visplašāk izmantotā imple­men­tā­ci­ja, ko lieto lielākā daļa HTTPS tīmekļa vietņu
  • GnuTLS (Brīvās prog­ram­ma­tū­ras fonds)
  • LibreSSL (OpenBSD)
  • NSS (Tīkla drošības pa­kal­po­ju­mi)
  • BoringSSL (Google)
  • Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas un atvērtā koda kopiena)
  • Botan (BSD licence, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Šis saraksts nav izsmeļošs. Sīkāku in­for­mā­ci­ju par TLS īs­te­no­ju­miem var atrast Vi­ki­pē­di­jā.

Pazīstami TLS uzbrukumi

Lai gan TLS ir iz­strā­dāts drošai saziņai, tam tomēr ir zināmi trūkumi. Tie ietver:

  • Prog­ram­mē­ša­nas kļūdas: „Heartbleed Bug“ kļuva slavena kā kritiska prog­ram­mē­ša­nas kļūda agrākajās OpenSSL versijās. Tā tika novērsta 2014. gadā.
  • Vājas šif­rē­ša­nas metodes: ASV krip­tog­rā­fi­jas eksporta ie­ro­be­žo­ju­mu dēļ tika iz­strā­dā­tas „eksporta līmeņa” versijas, kuras bija vieglāk uzlauzt nekā ori­ģi­nā­lās.
  • Sa­spie­ša­nas uzbrukumi: ja TLS sa­spie­ša­nas vietā tiek izmantota HTTP sa­spie­ša­na, hakeriem, iz­man­to­jot noteiktas metodes, kļūst iespējams uzminēt TLS šifrēto saturu.
  • BEAST uzbrukums skāra TLS versiju 1.0 un tika ap­rak­stīts jau 2014. gadā. Pa­šrei­zē­jās TLS versijas ir drošas pret to.
  • Padding Oracle uzbrukums tika atklāts 2002. gadā un bija iespējams līdz SSL versijai 3.0. Pa­šrei­zē­jā TLS versija 1.3 nav pakļauta šim uz­bru­ku­mam.
    1. gada ALPACA uzbrukums parāda, kā nepareizi kon­fi­gu­rē­tos serveros esošos TLS ser­ti­fi­kā­tus var izmantot, lai novirzītu lie­to­tā­jus uz citiem pa­kal­po­ju­miem, pārtverot vai ma­ni­pu­lē­jot datus.

Ir bijuši arī mē­ģi­nā­ju­mi neļaut izmantot pilnībā drošu TLS šifrēšanu, lai iestādēm no­dro­ši­nā­tu piekļuvi šifrētai saziņai — piemēram, saistībā ar finanšu da­rī­ju­miem un no­zie­dzī­gām darbībām. Viena no or­ga­ni­zā­ci­jām, kas at­bal­stī­ja šādu „apzinātu ie­vai­no­ja­mī­bu” TLS, bija ETSI (Eiropas Te­le­ko­mu­ni­kā­ci­ju standartu institūts).

Go to Main Menu