TLS un SSL - jūtamies droši internetā?

Autors: alijs  (alijs (at) navigator.lv)
Kategorija: Drošība

Ieteikt draugiem


Kas tad ir šie mistiskie TLS un SSL?

TLS un SSL - jūtamies droši internetā?Pilnie nosaukumi: TLS - Transport Layer Security un SSL - Secure Sockets Layer. Lai gan... ja pirms tam neko par to nezinājāt, tad pilnie nosaukumi arī neko daudz nepalīdzēja, vai ne? Tādā gadījumā šis raksts ir domāts tieši Jums ;)

Manuprāt, parastam vidusmēra interneta lietotājam pazīstamāks (vai vismaz biežāk dzirdēts) varētu būt termins "SSL". Un vidusmēra zināšanas par SSL (labākajā gadījumā) varētu būt aptuveni šādas: "SSL ir domāts drošības uzlabošanai internetā un to var atpazīt pēc HTTPS protokola adrešu laukā". Pamatā tas, protams, ir pareizi, tomēr zem apzīmējumiem SSL (un TLS) slēpjas kas vairāk...

TLS būtībā ir SSL jaunākās versijas, līdz ar to rakstā tuvāk apskatīsim tieši TLS. Pēc definīcijas TLS ir kriptogrāfisks protokols drošai komunikācijai tīklā. Vienkāršotā valodā - tā ir instrukciju kopa, veicamo darbību saraksts, kas jāievēro klientam (piem. interneta pārlūkprogrammai) un serverim (piem. Web serverim), lai droši sazinātos savā starpā, izmantojot kriptētus (nošifrētus) datus.

Kā tas darbojas?

Apskatīsim soļus, kas, atbilstoši TLS protokolam, jāveic klientam un serverim.

1. Klients nosūta serverim ClientHello ziņojumu, kas satur augstāko TLS protokola versiju, kuru klients saprot, un sarakstu ar visiem saviem atbalstītajiem algoritmiem.

2. Serveris atbild ar ServerHello ziņojumu, kas satur TLS protokola versiju un izvēlētos algoritmus no klienta aizsūtītā saraksta. Būtībā klients un serveris šajos pirmajos soļos saskaņo/vienojas par turpmākajā saziņā izmantotajiem algoritmiem - izvēlas labāko variantu no tiem, ko abi atbalsta un saprot.

3. Serveris nosūta klientam savu sertifikātu, kurā parasti norādīts servera vārds, autoritāte, kas sertifikātu var apstiprināt un publiskā kriptēšanas atslēga. Par autoritātēm un publiskajām atslēgām parunāsim mazliet vēlāk, tagad turpināsim ar sarakstu...

4. Klients pārbauda servera sertifikātu. Šim nolūkam tas var sazināties ar sertfikātā norādīto autoritātes serveri.

5. Klients uzģenerē gadījuma skaitli, nokriptē to ar servera publisko atslēgu un nosūta serverim.

6. Serveris ir vienīgais, kas var šo ziņojumu atšifrēt (ar savu privāto atslēgu) un uzzināt klienta sūtīto gadījuma skaitli.

7. Gadījuma skaitlis, ko tagad zina tikai klients un serveris, tiek izmantots par bāzi tālākā datu šifrēšanā/atšifrēšanā.

Kāpēc tas ir droši?

Vai tiešām šie samērā vienkāršie soļi rada absolūtu drošību internetā? Par absolūtu drošību runāt es neuzņemšos, jo uzskatu, ka nekas absolūts vispār nepastāv. Tomēr drošība ir "pietiekoša". Paskatīsimies, kāpēc...

Servera autentificēšana balstās uz autoritātēm - vispāratzītām kompānijām, kas izsniedz digitālos sertifikātus. Interneta pārlūkos (FireFox, IE, u.c.) jau oriģināli ir iepriekš definēts saraksts ar šīm autoritātēm (tādām kā VeriSign, Thawte, u.c.), un autentifikācijas process balstās uz to, ka klients uzticās autoritātei, ja tā apliecina, ka serveris ir tas, par ko uzdodas.

Tas nozīmē, ka serverim ir jāsaņem kādas autoritātes izdots digitālais sertifikāts un tālāk klients, pārbaudot šo sertifikātu, varēs viennozīmīgi pateikt, vai viņš komunicē ar īsto serveri.

Privātās un publiskās atslēgas

Otrs pamatakmens drošības garantēšanai ir privāto/publisko atslēgu mehānisms. Tas darbojas sekojoši - ir viena privātā atslēga un neierobežot daudz publiskās atslēgas, kas tiek izdalītas visiem, kam tas nepieciešams.

Tālāk viss balstās uz sekojošiem faktiem:

1. Ja kaut kas ir nošifrēts ar privāto atslēgu, tas var tikt atšifrēts tikai ar publisko atslēgu. Tātad manus ar privāto atslēgu šifrētos ziņojumus varēs atšifrēt visi, kam būšu iedevis savu publisko atslēgu un, kas vēl svarīgāk, viņi zinās, ka šis ziņojums tik tiešām ir no manis (jo tikai man pieejama mana privātā atslēga).

2. Ja kaut kas ir nošifrēts ar publisko atslēgu, tad atšifrēt to var tikai ar privāto atslēgu. Tas nozīmē, ka ziņojumus, kas tiks man sūtīti šifrēti ar manu publisko atslēgu, varēšu atšifrēt tikai un vienīgi es - ar savu privāto atslēgu.

Tātad...

Ja līdz šim nezinājāt, kas ir autoritātes un privātās/publiskās atslēgas, tad iesaku vēlreiz iziet cauri 7 TLS darbības soļiem - nu visam vajadzētu kļūt daudz skaidrākam. Tagad, redzot pārlūka adreses laukā maģisko HTTPS, Jums būs priekšstats par to, kas tiek darīts, lai pasargātu Jūsu datus.



Komentāri

Artūrs, 2010-02-08 22:59:01

Laikam līdz šim biju viens no tiem, kas zināja tikai apmēram tik daudz, ka HTTPS = SSL = TLS = papildus drošība, jo to lieto visās online maksājumu sistēmās. Es laikam tomēr vairāk esmu biznesa cilvēks un tik sīkās tehnoloģiskās lietās līst negribu...

Tomēr viens jautājums man radās - vai tad tā tiešām ir, ka sertifikātus var kaut kādas tik dažas firmas izdot? Kas viņas visai pasaulei tos pārdod? Kaut kā neloģiski būtu - tādu milzīgu varu dažām firmām piešķirt.


alijs, 2010-02-09 09:32:22

Biznesa cilvēkiem arī ir lietderīgi zināt vismaz lielos vilcienos, kas notiek viņu sfērā - arī tehnoloģiskajās lietās ;)

Nu principā jā - ir noteiktas kompānijas (autoritātes), kas digitālos sertifikātus var apstiprināt. Bet nav tā, ka tikai dažas... visu sarakstu vari paskatīties piem. savā FireFox - pie Preferences, ja labi pameklēsi, tad atradīsi iedefinēto sarakstu (kurš nav nemaz tik īss) ar autoritātēm. Šīs tad nu ir tās kompānijas, kam Tavs browseris uzticās.

Reāli jau pastāv arī citas iespējas - iespējams arī pašam sertifikātus apstiprināt, bet tas der tikai kāda iekšēja tīkla ietvaros. Visās nopietnās web lapās, kur parādās privātie dati (kartes numurs, u.c.), sertifikāti ir apstiprināti ar autoritātēm.


Hannibals, 2010-02-09 19:37:47

Es pamatā arī sevi uzskatu vairāk par biznesa cilvēku. Bet jaunākajām tehnoloģijām vienalga sekoju līdzi katru dienu... bez tā jau grūti interneta jomā kādus reālus panākumus gūt.


Diāna, 2010-02-11 23:06:38

Beidzot vismaz apmēram zināšu, ko tie "SSL" un visi citi tamlīdzīgie zvēri dara un priekš kam tos vispār vajag.

Lai pievienotu komentāru, autorizējies!

 
Par mums | Sadarbība | Noteikumi | Kontakti | Lapas karte © mycompany.lv 2008 - 2010