Kas ir TLS (Transport Layer Security)? Protokola izskaidrojums
TLS (Transport Layer Security) ir šifrēšanas protokols, kas nodrošina drošu datu pārraidi internetā. Tas ir novecojušā SSL pēctecis, un šobrīd to izmanto gandrīz vienīgi TLS 1.3 versijā.
Kas ir TLS?
Interneta pirmsākumos 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 salīdzināt ar pastkarti: ikviens pastnieks varēja to izlasīt.
TLS protokols — pazīstams arī kā SSL/TLS — ieviesa pārraidītā satura šifrēšanu. Turpinot šo analoģiju, šī šifrēšana ir kā aizzīmogots aploksne, ko var atvērt tikai tās likumīgais saņēmējs.
Saīsinājums TLS nozīmē „Transport Layer Security“ (transporta slāņa drošība). Šis termins attiecas uz TCP/IP modeļa transporta slāni. TLS ir metode, kas šifrē interneta datu plūsmas, ļaujot tās lasīt tikai pilnvarotiem saņēmējiem.
Šī šifrēšanas protokola iepriekšējais nosaukums bija SSL (Secure Socket Layer). Tā kā šis saīsinājums joprojām ir plašāk pazīstams nekā TLS, TLS bieži dēvē ar dubultnosaukumu „SSL/TLS”.
Kā darbojas TLS?
TLS šifrē internetā nosūtītos datus un parasti tiek īstenots TCP protokolā, izmantojot simetrisko šifrēšanu.
Tas, kas teorētiski šķiet vienkārši, praksē izrādās daudz sarežģītāks. Galvenā problēma ir tā, ka serverim ir jāpaziņo atslēga klientam —pirms saziņa tiek aizsargāta ar TLS. Ikviens, kurš sūta šifrētus e-pasta pielikumus, 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šreizējais standarts kopš 2018. gada ir versija 1.3, izmanto šādu procedūru, lai atrisinātu šo problēmu:
- ClientHello: Klients (piemēram, pārlūks) nosūta serverim sākotnējo ziņojumu ar informāciju par atbalstītajiem šifrēšanas veidiem. Tajā ietilpst šifrēšanas 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.
- ServerHello: serveris izvēlas atbilstošos parametrus un nosūta atbildi, tostarp savu ECDHE vērtību un digitālo sertifikātu. Šis SSL sertifikāts pierāda, ka serveris ir autentisks un neizliekas par kādu citu. Tajā pašā laikā sākas sesijas atslēgas aprēķināšana.
- Atslēgas aprēķināšana: Abas puses tagad neatkarīgi aprēķina vienu un to pašu sesijas atslēgu, pamatojoties uz kopīgi saskaņoto atslēgu.
- Serveris pabeidz savienojuma izveidi un sāk šifrētu saziņu. Klients dara to pašu; savienojums tagad ir pilnībā aizsargāts.
Salīdzinot ar iepriekšējām versijām, TLS 1.3 protokola sākotnējā savienošanās ir ievērojami vienkāršāka un drošāka. Šeit aprakstītajam procesam tagad ir nepieciešams tikai viens datu apmaiņas cikls (1 RTT), kas ievērojami paātrina savienojuma izveidi.
Iemesls, kāpēc asimetrisko šifrēšanu ar Diffie-Hellman metodi izmanto tikai sesijas atslēgas pārraidei (bet ne pašu datu plūsmu šifrēšanai), ir ātruma priekšrocība; asimetriskā šifrēšana ir salīdzinoši lēna un kavētu datu pārraidi.
TLS priekšrocības un trūkumi
TLS ir elegants risinā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šrutēta, izmantojot TLS protokolu, neatkarīgi no dalībnieku operētājsistēmām un programmatūras lietojumprogrammām. Tādējādi visi datu plūsmas tiek automātiski šifrēti pārraides laikā.
Drošības nodrošināšanas cena ir nedaudz lēnāka savienojuma izveide, jo iepriekš minētie procesa posmi — sertifikāts, nejaušais skaitlis, atslēgu apmaiņa — prasa lielu skaitļošanas jaudu.
TLS pielietojumi
Kā jau minēts, TLS var izmantot vispārēji, jo tas ir neatkarīgs no lietojumprogrammām un operētājsistēmām. Tādējādi dažādiem lietojumprogrammu protokoliem ir pieejamas ar TLS aizsargātas versijas. Nosaukumu veidošanas princips vairumā gadījumu ir diezgan vienkāršs: ja protokols sazinās, izmantojot TLS, tā nosaukumam pievieno burtu „S“.
Svarīgākā TLS pielietojuma joma ir Pasaules tīmeklis, konkrēti HTTP protokols. Tā šifrētā versija saucas HTTPS.
Papildus tam jāmin arī šādi bieži sastopami lietošanas gadījumi:
- POP3S: E-pasta ziņojumu lejupielāde no servera, izmantojot POP3 protokolu
- IMAPS: sinhronizē ienākošo pastu ar serveri, izmantojot IMAP protokolu
- SMTPS: Nosūtiet e-pastus
- FTPS: Failu pārsūtīšana, izmantojot FTP protokolu
- SIPS: IP balss telefonija, izmantojot SIP protokolu
- IRCS: Šifrēti tērzēšanas
- QUIC: Google transporta protokols, kas tieši integrē TLS 1.3; alternatīva TCP, lai nodrošinātu ātrākus un drošākus tīmekļa savienojumus (piemēram, ar HTTP/3)
OpenVPN, bezmaksas programmatūra virtuālā privātā tīkla (VPN) izveidei, arī izmanto TLS protokolu.
Galvenās TLS īstenojumu versijas
Dažas no visplašāk izmantotajām TLS implementācijām ir:
- OpenSSL – pašlaik visplašāk izmantotā implementācija, ko lieto lielākā daļa HTTPS tīmekļa vietņu
- GnuTLS (Brīvās programmatūras fonds)
- LibreSSL (OpenBSD)
- NSS (Tīkla drošības pakalpojumi)
- 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 informāciju par TLS īstenojumiem var atrast Vikipēdijā.
Pazīstami TLS uzbrukumi
Lai gan TLS ir izstrādāts drošai saziņai, tam tomēr ir zināmi trūkumi. Tie ietver:
- Programmēšanas kļūdas: „Heartbleed Bug“ kļuva slavena kā kritiska programmēšanas kļūda agrākajās OpenSSL versijās. Tā tika novērsta 2014. gadā.
- Vājas šifrēšanas metodes: ASV kriptogrāfijas eksporta ierobežojumu dēļ tika izstrādātas „eksporta līmeņa” versijas, kuras bija vieglāk uzlauzt nekā oriģinālās.
- Saspiešanas uzbrukumi: ja TLS saspiešanas vietā tiek izmantota HTTP saspiešana, hakeriem, izmantojot noteiktas metodes, kļūst iespējams uzminēt TLS šifrēto saturu.
- BEAST uzbrukums skāra TLS versiju 1.0 un tika aprakstīts jau 2014. gadā. Pašreizē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šreizējā TLS versija 1.3 nav pakļauta šim uzbrukumam.
-
- gada ALPACA uzbrukums parāda, kā nepareizi konfigurētos serveros esošos TLS sertifikātus var izmantot, lai novirzītu lietotājus uz citiem pakalpojumiem, pārtverot vai manipulējot datus.
Ir bijuši arī mēģinājumi neļaut izmantot pilnībā drošu TLS šifrēšanu, lai iestādēm nodrošinātu piekļuvi šifrētai saziņai — piemēram, saistībā ar finanšu darījumiem un noziedzīgām darbībām. Viena no organizācijām, kas atbalstīja šādu „apzinātu ievainojamību” TLS, bija ETSI (Eiropas Telekomunikāciju standartu institūts).