Pereiti prie turinio
Pagrindinis » IT ir technologijos » Kaip veikia SSL sertifikatai

Kaip veikia SSL sertifikatai

Kas iš tikrųjų yra tas SSL ir kodėl turėtų jus dominti

Kiekvieną dieną naršydami internete matote mažą spynelės ikoną naršyklės adreso juostoje. Dažniausiai į ją nekreipiame dėmesio, bet ši maža detalė yra viena svarbiausių dalykų, užtikrinančių jūsų saugumą internete. Už tos spynelės slypi SSL sertifikatas – technologija, kuri šifruoja duomenis tarp jūsų kompiuterio ir svetainės serverio.

SSL reiškia Secure Sockets Layer, nors šiuolaikinėje praktikoje dažniau naudojama jo pagerinta versija TLS (Transport Layer Security). Tačiau žmonės vis dar įpratę sakyti SSL, todėl abu terminai dažnai vartojami kaip sinonimai. Pagrindinis šios technologijos tikslas paprastas – užtikrinti, kad niekas negalėtų perskaityti ar pakeisti informacijos, kuri keliauja tarp jūsų ir svetainės.

Įsivaizduokite, kad siunčiate laišką paštu. Paprastas HTTP protokolas būtų tarsi atvirutė – bet kas gali perskaityti, ką parašėte. SSL/TLS veikia kaip užklijuotas vokas su antspaudu – tik gavėjas gali jį atidaryti ir perskaityti turinį.

Šifravimo mechanizmas – matematikos magija

SSL sertifikatų veikimo pagrindas yra kriptografija, tiksliau – asimetrinė kriptografija. Skamba sudėtingai, bet principas gana įdomus. Kiekvienas SSL sertifikatas turi du raktus: viešąjį (public key) ir privačiųjį (private key).

Viešasis raktas yra kaip spynos skylutė – jį gali matyti ir naudoti bet kas. Privatusis raktas yra kaip unikalus raktas, kurį turi tik serveris. Kai jūsų naršyklė prisijungia prie saugios svetainės, serveris jai atsiunčia viešąjį raktą. Naršyklė naudoja šį raktą užšifruoti duomenis, kuriuos siunčia serveriui. O atšifruoti tuos duomenis gali tik serveris, turintis privatųjį raktą.

Įdomiausia, kad šis procesas vyksta per kelias milisekundes. Kai pirmą kartą prisijungiate prie HTTPS svetainės, vyksta taip vadinamas „rankos paspaudimas” (handshake). Per šį procesą naršyklė ir serveris susitaria dėl šifravimo metodo, patikrina sertifikato galiojimą ir sukuria unikalų sesijos raktą būtent šiam jūsų apsilankymui.

Kaip gimsta ir gyvena sertifikatas

SSL sertifikatai negimsta patys savaime – juos išduoda specialios organizacijos, vadinamos Sertifikavimo Centrais (Certificate Authority arba CA). Tai tarsi skaitmeniniai notarai, kurie patvirtina svetainės tapatybę.

Kai svetainės savininkas nori gauti SSL sertifikatą, jis turi pateikti prašymą sertifikavimo centrui. Priklausomai nuo sertifikato tipo, tikrinimo procesas gali būti labai paprastas arba gana sudėtingas. Paprasčiausiems sertifikatams (Domain Validation) pakanka patvirtinti, kad tikrai valdote domeną – pavyzdžiui, atsakant į el. laišką arba įkeliant specialų failą į svetainę.

Sudėtingesni sertifikatai (Organization Validation ar Extended Validation) reikalauja įrodyti ne tik domeno valdymą, bet ir organizacijos teisėtumą. Sertifikavimo centras tikrina įmonės registracijos dokumentus, skambina telefonu, kartais net reikalauja notaro patvirtintų dokumentų. Todėl tokie sertifikatai kainuoja daugiau ir jų išdavimas užtrunka ilgiau.

Sertifikatas turi galiojimo laiką – paprastai nuo 90 dienų iki dvejų metų. Kodėl ne amžinai? Saugumo sumetimais. Jei sertifikatas būtų pavogtas ar privatusis raktas kaip nors patektų į pašalinių rankas, ribotas galiojimo laikas sumažina galimą žalą.

Kas nutinka, kai kas nors bando jus apgauti

Viena svarbiausių SSL funkcijų – apsauga nuo „man-in-the-middle” atakų. Tai situacija, kai kažkas bando įsiterpti tarp jūsų ir svetainės, apsimesdamas viena iš šalių.

Tarkime, sėdite kavinėje ir naudojatės nemokamu WiFi. Kibernetinis nusikaltėlis gali sukurti netikrą prieigos tašką su panašiu pavadinimu. Kai prisijungiate, visas jūsų srautas eina per jo kompiuterį. Jei svetainė neturi SSL, jis gali matyti viską – slaptažodžius, kredito kortelių numerius, asmenines žinutes.

Bet su SSL situacija kitokia. Kai jūsų naršyklė gauna sertifikatą, ji patikrina kelis dalykus: ar sertifikatas išduotas patikimo sertifikavimo centro, ar jis dar galioja, ar domeno pavadinimas atitinka tą, kurį bandote pasiekti. Jei kažkas neatitinka, naršyklė parodo įspėjimą – tą bauginantį raudoną ekraną su užrašu „Jūsų ryšys nėra saugus”.

Užpuolikas negali tiesiog sukurti tikro atrodančio sertifikato jūsų banko svetainei, nes neturi privataus rakto ir negali gauti patikimo sertifikavimo centro patvirtinimo. Net jei jis sukurtų savo sertifikatą, jūsų naršyklė jį atpažintų kaip nepatikimą.

Sertifikatų hierarchija ir pasitikėjimo grandinė

Įdomu tai, kad ne visi sertifikatai yra lygūs. Egzistuoja visa hierarchija, vadinama pasitikėjimo grandine (chain of trust). Viršuje yra šakniniai sertifikatai (root certificates), kuriuos išduoda patys sertifikavimo centrai sau. Šie sertifikatai yra įdiegti jūsų naršyklėje ar operacinėje sistemoje.

Žemiau yra tarpiniai sertifikatai (intermediate certificates), kuriuos šakniniai centrai išduoda kitiems patikimiems subjektams. O dar žemiau – galutiniai sertifikatai, kuriuos gauna konkrečios svetainės. Kai naršyklė tikrina sertifikatą, ji eina per visą šią grandinę iki šakninio sertifikato.

Kodėl tokia sudėtinga sistema? Saugumui. Šakniniai sertifikatai yra ypač vertingi ir jų privatūs raktai laikomi maksimalaus saugumo sąlygomis – dažnai net fiziškai atskirtuose, gerai saugomuose objektuose. Jei kasdieniam sertifikatų išdavimui būtų naudojami šakniniai sertifikatai, rizika būtų per didelė. Tarpiniai sertifikatai veikia kaip buferis – jei kas nors nutiktų, galima atšaukti tarpinį sertifikatą nepažeidžiant visos sistemos.

Nemokamas SSL – kaip tai įmanoma

Dar prieš kelerius metus SSL sertifikatai buvo gana brangūs – nuo keliolikos iki kelių šimtų eurų per metus. Tai buvo viena iš priežasčių, kodėl daugelis mažų svetainių jų neturėjo. Situacija pasikeitė 2015 metais, kai pasirodė Let’s Encrypt – nemokamas, automatizuotas ir atviras sertifikavimo centras.

Let’s Encrypt idėja paprasta: jei sertifikato išdavimo procesą galima visiškai automatizuoti, kaina tampa minimali. Jie sukūrė protokolą ACME (Automated Certificate Management Environment), kuris leidžia serveriams automatiškai įrodyti domeno valdymą, gauti sertifikatą ir jį atnaujinti.

Kaip tai veikia praktiškai? Jūsų serveryje veikia programa (pavyzdžiui, Certbot), kuri kreipiasi į Let’s Encrypt serverius. Jie atsiunčia iššūkį – pavyzdžiui, prašo įkelti specifinį failą su konkrečiu turiniu į jūsų svetainę. Programa tai padaro, Let’s Encrypt patikrina, ar failas tikrai ten yra, ir jei viskas gerai – išduoda sertifikatą. Viskas vyksta automatiškai, be žmogaus įsikišimo.

Let’s Encrypt sertifikatai galioja 90 dienų, bet tai nėra problema, nes atnaujinimas taip pat automatinis. Tokia trumpa galiojimo trukmė net pagerina saugumą – jei kas nors nutiktų, poveikis būtų ribotas laiko atžvilgiu.

Praktiniai patarimai svetainių savininkams

Jei turite svetainę ir dar nesinaudojate SSL, laikas tai padaryti. Šiandien tai jau ne prabanga, o būtinybė. Google nuo 2014 metų HTTPS laiko vienu iš reitingavimo veiksnių, o nuo 2018-ųjų Chrome naršyklė aiškiai žymi HTTP svetaines kaip „nesaugias”.

Pirmas žingsnis – pasirinkti tinkamą sertifikato tipą. Jei turite asmeninį tinklaraštį ar nedidelę svetainę be jokių mokėjimų, pakaks paprasto Domain Validation sertifikato iš Let’s Encrypt. Jei valdote el. parduotuvę ar kitą svetainę, kurioje vyksta finansinės operacijos, verta apsvarstyti Organization Validation ar net Extended Validation sertifikatą.

Įdiegus SSL, būtina teisingai sukonfigūruoti serverį. Tai reiškia ne tik sertifikato įkėlimą, bet ir nukreipimų iš HTTP į HTTPS nustatymą, HSTS (HTTP Strict Transport Security) antraščių pridėjimą, tinkamų šifravimo protokolų pasirinkimą. Daugelis hostingo paslaugų teikėjų šiandien siūlo vieno paspaudimo SSL įdiegimą, kuris atlieka didžiąją dalį šių veiksmų automatiškai.

Nepamirškite reguliariai tikrinti sertifikato galiojimo datos. Nors daugelis šiuolaikinių sprendimų atnaujina sertifikatus automatiškai, visada gali nutikti kažkas netikėto. Pasibaigęs sertifikatas reiškia, kad lankytojai matys įspėjimus ir greičiausiai nepateks į jūsų svetainę.

Ateitis – kvantiniai kompiuteriai ir nauji iššūkiai

Dabartiniai SSL/TLS protokolai remiasi matematiniais uždaviniais, kuriuos šiuolaikiniais kompiuteriais praktiškai neįmanoma išspręsti per priimtiną laiką. Pavyzdžiui, didelių skaičių faktorizacija – užduotis, ant kurios pagrįstas RSA šifravimas – užtruktų tūkstančius metų net galingiausiems šiandieniniams kompiuteriams.

Tačiau kvantiniai kompiuteriai gali viską pakeisti. Teoriškai jie galėtų išspręsti šiuos uždavinius per žymiai trumpesnį laiką, o tai reikštų, kad dabartiniai šifravimo metodai taptų nebepatikimi. Gera žinia ta, kad kriptografai jau dirba prie post-kvantinės kriptografijos – naujų algoritmų, kurie būtų atsparūs net kvantiniams kompiuteriams.

NIST (Nacionalinis standartų ir technologijų institutas JAV) jau pradėjo standartizuoti post-kvantinius kriptografinius algoritmus. Tikimasi, kad per ateinančius kelerius metus pradėsime matyti naujus SSL/TLS sertifikatus, naudojančius šiuos algoritmus. Perėjimas bus laipsniškas – tam tikrą laiką veiks hibridiniai sprendimai, derinantys tradicinius ir post-kvantinius metodus.

Kai spynelė tampa dalimi kasdienybės

SSL sertifikatai tapo neatsiejama šiuolaikinio interneto dalimi. Tai, kas kadaise buvo prabanga tik didelėms korporacijoms ir bankams, dabar prieinamas kiekvienam. Technologija, kuri veikia fone, nematoma, bet būtina – kaip elektros tinklas ar vandentiekis.

Suprasdami, kaip veikia SSL, tampame sąmoningesni interneto naudotojai. Žinome, kodėl svarbu kreipti dėmesį į tą mažą spynelę, kodėl neverta ignoruoti saugumo įspėjimų, kodėl nemokamas WiFi gali būti pavojingas be papildomo apsaugos sluoksnio.

Svetainių savininkams SSL jau seniai nėra pasirinkimas – tai būtinybė. Ne tik dėl saugumo, bet ir dėl pasitikėjimo, SEO, net našumo (HTTP/2 protokolas, kuris yra greitesnis už HTTP/1.1, reikalauja HTTPS). Laimei, su tokiais sprendimais kaip Let’s Encrypt, barjeras įdiegti SSL tapo minimalus.

Technologija nuolat tobulėja. Tai, kas šiandien atrodo saugus ir patikimas, rytoj gali tapti pažeidžiamu. Bet kol kriptografai dirba priekyje, o sertifikavimo centrai palaiko pasitikėjimo grandinę, galime jaustis gana saugiai. Tereikia nepamirsti atkreipti dėmesį į tą mažą žalią spynelę – ji daug pasako apie svetainę, kurią ketinate aplankyti.