Saugus duomenų perdavimas internetu: SSL/TLS

>>>Saugus duomenų perdavimas internetu: SSL/TLS

Saugus duomenų perdavimas internetu: SSL/TLS

Kone kiekvieną dieną internete atsiranda naujų paslaugų. Bankai mums siūlo neišeinant iš namų tvarkyti sąskaitas, apmokėti komunalines išlaidas; internetinėse parduotuvėse galima įsigyti knygų, DVD diskų, kitų prekių; valstybinės įstaigos taip pat stengiasi neatsilikti – tikriausiai daugeliui nemažai laiko sutaupė pajamų deklaravimas internetu.

Nors

elektroninio parašo, reikalingo identifikuoti asmenį, pasirašantį sutartį ar atliekantį kitą operaciją internetu, įstatymas priimtas dar 2000-aisiais, išvystytos infrastruktūros vis dar nėra. Niekam ne paslaptis, kad įgyvendinus elektroninio parašo sistemą būtų patogiau internetu atlikti operacijas, kurioms šiandien reikia turėti elektroninės bankininkystės sutartį bei toli gražu ne vieną prisijungimo prie skirtingų sistemų vardą ir slaptažodį.

Tiek šiandien, tiek ir tuomet, kai sulauksime elektroninio parašo kasdieninėje praktikoje, aktualus duomenų šifravimas. Priimdami ir siųsdami duomenis internetu negalime būti tikri, kad tarpinėje grandyje tarp mūsų ir tarnybinės stoties neprisijungė įsibrovėlis, galintis stebėti visą siunčiamą duomenų srautą. Jeigu siunčiami nešifruoti duomenys, toks įsilaužėlis be vargo matys interneto adresus, vartotojų vardus, slaptažodžius, kreditinių kortelių numerius, įmonės konfidencialius laiškus, trumpai tariant – visus siunčiamus duomenis. Siekiant užkirsti tam kelią, naudojamas saugus protokolas.

Duomenų šifravimas

Duomenų šifravimo metu informacija pakeičiama į specifinę formą, iš kurios duomenis paversti atgal į pradinę formą galima tik žinant duomenų pakeitimo algoritmą. Raktas yra tokio algoritmo parametras. Duomenų šifravimas gali būti:

  • Simetrinis – duomenų užšifravimui ir iššifravimui naudojamas tas pats raktas;
  • Asimetrinis – duomenų užšifravimui naudojamas vienas raktas, o iššifravimui – kitas. Tokio šifravimo algoritme naudojamas viešasis ir privatusis raktai. Jeigu duomenis siuntėjas užšifruoja viešuoju raktu, tai gavėjas juos iššifruoti galės tik privačiu raktu. Raktai kuriami taip, kad žinant vieną iš jų, nebūtų įmanoma sužinoti kito. Trumpai tariant, asimetrinis kodavimas yra tik „į vieną pusę“.

Simetrinis šifravimas yra žymiai greitesnis, tačiau tiek siuntėjas, tiek gavėjas privalo turėti tą patį raktą, todėl iškyla rakto perdavimo problema, jei juos skiria atstumas ir rakto negalima perduoti betarpiškai. Tuo tarpu naudojant asimetrinį šifravimą, gavėjas gali publikuoti savo viešąjį raktą, kurį duomenims šifruoti naudos siuntėjas, nes užkoduotą informaciją iškoduoti galės tik gavėjas savo privačiu raktu. Taigi šiuo atveju reikalingas ne vienas, o raktų pora, tačiau nebėra rakto perdavimo problemos, nes laisvai prieinamu viešuoju raktu užšifruotų duomenų iššifruoti nepavyks.

Panagrinėkime praktikoje naudojamas konkrečias duomenų šifravimo realizacijas.

SSL (secure sockets layer)

SSL protokolą, apsaugantį komunikacinį kanalą, sukūrė kompanija „Netscape“. Versija 1.0 nebuvo išleista viešai; versija 2.0 pasirodė 1994-aisiais. Dėl aptiktų saugumo spragų antrojoje versijoje, 1996-aisiais buvo išleista 3.0 versija.

SSL protokolas naudoja tiek simetrinį, tiek asimetrinį šifravimą. Kaip jau minėjome, simetrinis šifravimas yra spartesnis negu asimetrinis, todėl perduodami duomenys šifruojami simetriniu būdu.

Seanso (angl. session) tarp kliento ir tarnybinės stoties pradžioje nustatomas simetrinis seanso raktas, kurį sukuria kliento naršyklė ir užšifruoja tarnybinės stoties viešuoju raktu. Kadangi šiame žingsnyje realizuotas asimetrinis šifravimas, tik tarnybinė stotis gali iššifruoti seanso raktą savo privačiu raktu. Taigi tiek klientas, tiek tarnybinė stotis jau turi identišką simetrinį seanso raktą ir gali pradėti tarpusavyje saugiai keistis duomenimis. Jeigu duomenų perdavimo metu tarp kliento ir tarnybinės stoties įsiterps piktadarys, užšifruotų duomenų perskaityti negalės, nes iššifravimo raktą turi tik siuntėjas ir gavėjas.

TLS (transport layer security)

TLS protokolą, pagrįstą SSL 3.0, paruošė IETF grupė. Šio protokolo tikslas – apsaugoti duomenų mainus tinkle išvengiant duomenų nutekėjimo ir klastojimo. TLS suteikia galimybę atpažinimą atlikti tik siuntėjo ir gavėjo pusėse, panaudojant šifravimą ir užtikrinant informacijos slaptumą.

Praktiškai atliekamas tik tarnybinės stoties atpažinimas, kai tuo tarpu klientas (pvz.: interneto naršyklė) lieka neatpažintas, tačiau šiuo atveju būtent klientui svarbu teisingai žinoti su kuo jis komunikuoja, t.y. identifikuoti tarnybinę stotį. Ši schema plačiai paplitusi šiandieninėse interneto paslaugose, ypač HTTP.

Egzistuoja ir aukštesnio lygio schema, kuomet abi komunikuojančios pusės yra identifikuojamos. Toks sujungimas vadinamas abipuse autentifikacija (mutual authentication) ir reikalauja išvystytos viešojo rakto infrastruktūros (angl. public key infrastructure – PKI).

TLS veikimas pagrįstas trimis etapais:

  1. tiesioginis sujungimas algoritmo sutarimui;
  2. viešojo rakto persiuntimas ir sertifikato galiojimo patikrinimas;
  3. šifravimas simetriniu raktu.

Iš pradžių tarp kliento ir tarnybinės stoties pradedama „pasisveikinimo procedūra“ (angl. handshake procedure). Jos metu sutariami parametrai, reikalingi saugiam ryšiui palaikyti.

„Pasisveikinimas“ prasideda kai klientas jungiasi prie tarnybinės stoties, kurioje įdiegtas TLS palaikymas, ir pateikia prašymą pradėti saugų ryšį, suderina viešojo rakto šifravimo, simetrinio siunčiamų duomenų šifravimo algoritmus (angl. ciphers) ir maišos (angl. hash) funkcijas.

Palaikomi tokie algoritmai:

  • viešojo rakto šifravimui: RSA, Diffie-Hellman, DSA;
  • simetriniam duomenų šifravimui: RC2, RC4, IDEA, DES, Triple DES, AES arba Camellia;
  • šifravimo maišos: MD2, MD4, MD5 arba SHA.

Iš kliento pateikto palaikomų algoritmų sąrašo tarnybinė stotis išsirenka sudėtingiausius, palaikomus tiek kliento, tiek tarnybinės stoties, ir praneša klientui apie pasirinkimą. Tuomet tarnybinė stotis klientui siunčia savo sertifikatą, kuriame nurodytas stoties vardas, viešasis raktas ir patikima sertifikatų išdavimo tarnyba (angl. certificate authority – CA). Prieš tęsdamas tolesnį komunikavimą, klientas gali patikrinti tarnybinės stoties sertifikato teisingumą nusiųsdamas užklausą sertifikatų tarnybai.

Interneto naršyklės „Opera“ pateikiama informacija apie tarnybinės stoties sertifikatą

Interneto naršyklės „Opera“ pateikiama informacija apie tarnybinės stoties sertifikatą

Simetrinio seanso rakto sukūrimui klientas užšifruoja atsitiktinį skaičių tarnybinės stoties viešuoju raktu ir tokiu pavidalu siunčia tarnybinei stočiai. Kadangi užšifruotą seanso raktą galima iššifruoti tik tarnybinės stoties privačiu raktu, seanso raktas perdavimo metu apsaugotas nuo trečiųjų šalių, net jeigu šios ir perimtų perduodamus duomenis.

Atlikus apsikeitimą seanso raktu, „pasisveikinimo“ procedūra baigta ir pradedamas saugus norimų duomenų perdavimas juos šifruojant ir dešifruojant atitinkamose pusėse iki seanso pabaigos. Verta pastebėti, kad jei nors vienas etapų „pasisveikinimo“ procedūros metu atliekamas nesėkmingai, duomenų perdavimas nepradedamas.

Interneto naršyklė „Opera“ įspėja apie negaliojantį sertifikatą

Interneto naršyklė „Opera“ įspėja apie negaliojantį sertifikatą

TLS naudojamas kaip tarpinė grandis tarp TCP/IP ir taikymo lygio protokolų, tokių kaip HTTP, FTP, SMTP ir kt. TLS gali užtikrinti saugų duomenų perdavimą įvairiais taikymo lygio protokolais, labiausiai paplitęs jo pritaikymas apsaugoti HTTP. Saugus HTTP protokolas (angl. HTTP secure – HTTPS) plačiai naudojamas interneto aplikacijose, ypač elektroninės komercijos.

Šiandien vis daugiau elektronines paslaugas pasauliniame tinkle siūlančių bendrovių suteikia galimybę klientams prisijungti prie sistemos šiuo protokolu. Internetinių atsiskaitymų gigantas „Paypal“, populiariosios pašto tarnybos „Gmail“ bei „Yahoo! Mail“, internetinės bankininkystės sistemos užtikrina saugų ryšį TLS pagalba.

TLS taikymo atvejais įsitikinti sujungimo patikimumu naudojami viešojo rakto sertifikatai, kuriuos tarnybinių stočių administratoriai įsigyja iš patikimomis pripažintų sertifikavimo centrų. Remiantis „Security Space“ 2007-ųjų balandžio mėn. atliktais rinkos tyrimais, 59,6% sertifikatų išdavimo rinkos valdo „VeriSign“ (įskaitant kitas jai priklausančias kompanijas), 8,3% – „Comodo“, 5,3% – „GoDaddy“, 2,1% – „DigiCert“, 1,3% – „Entrust“, 1,1% – „Network Solutions“.

Šis straipsnis spausdintas žurnale Naujoji komunikacija, 2007 m. rugpjūčio 27 d. – rugsėjo 15 d., Nr. 12 (208). Vilnius: Leidybos idėjos, p. 15-16. ISSN 1392-3927.

2016-10-24T10:56:53+00:00 2011-05-22|Straipsniai|0 komentarų

About the Author:

Gytis Repečka yra skaitmeninių technologijų profesionalas, besidomintis atvirojo kodo programine įranga, elektronika, automobiliais, duomenų apsauga ir privatumu.

Komentuokite