Sesijos raktas (TEK): vienkartinis simetrinis raktas kriptografijoje

Sužinokite apie sesijos raktą (TEK) — vienkartinį simetrinį raktą, jo paskirtį, saugumą ir vaidmenį kriptografijoje bei srauto šifravime.

Autorius: Leandro Alegsa

Sesijos raktas yra vienkartinis simetrinis raktas, naudojamas visiems vienos ryšio sesijos pranešimams šifruoti. Glaudžiai susijusi sąvoka yra srauto šifravimo raktas (angl. traffic encryption key arba TEK), kuris reiškia bet kokį simetrinį raktą, naudojamą srauto pranešimams šifruoti. Paprastai TEK keičiami dažnai — kai kuriose sistemose kasdien, o kitose — kiekvieną kartą siunčiant pranešimą arba netgi greičiau, priklausomai nuo saugumo reikalavimų ir protokolo.

Sesijos raktai padeda sujungti greitą simetrinę kriptografiją su saugiu raktų paskirstymu. Įprasta praktika yra naudoti kriptografiškai saugų asimetrinį mechanizmą (pvz., Viešojo rakto kriptografija arba Diffie–Hellman) sesijos rakto perdavimui arba jo išvedimui, o po to patį sesijos raktą naudoti greitam duomenų šifravimui su simetriniu algoritmu (pvz., AES).

Kodėl naudojami sesijos raktai?

  • Mažina kriptoanalizės riziką. Kai daug pranešimų yra užšifruota tuo pačiu raktu, atakų pavojus didėja — užpuolėjas gali surinkti daugiau šifro teksto ir taikyti analizę. Apribojus vienu raktu užšifruojamų pranešimų skaičių, šios atakos tampa sudėtingesnės.
  • Pagerina našumą ir raktų paskirstymą. Daugumai gerų šifravimo algoritmų reikia, kad abi pusės turėtų tą patį slaptą raktą prieš pradėdamos šifruoti. Tiesiogiai dalintis ilgais simetriniais raktais kiekvieną kartą yra nepatogu; vietoje to naudojami trumpalaikiai sesijos raktai, kuriuos saugiai paskirsto greitesni arba asimetriniai algoritmai. Tai pagerina bendrą sistemos našumą ir saugumą.

Kaip randami ir keičiami sesijos raktai?

Sesijos raktai gali būti sugeneruojami įvairiais būdais:

  • Ephemeral Diffie–Hellman / ECDHE: abi pusės atlieka laikiną (ephemeral) raktų mainų protokolą, iš kurio išvedamas bendras seanso raktas. Tai užtikrina forward secrecy (privataus raktų kompromitavimo atveju praeities sesijų turinys lieka saugus).
  • Asimetrinis šifravimas: sesijos raktas sugeneruojamas vienos pusės ir užšifruojamas kitos pusės viešuoju raktu (pvz., RSA), tada siunčiamas — taip gaunama hibridinė sistema.
  • Raktų išvedimas (KDF): pradiniai raktai arba išankstiniai slaptieji raktai naudojami raktų išvedimo funkcijomis (pvz., HKDF), kad būtų gauti sesijos raktai su reikiamomis bitų savybėmis.

Sesijos raktų gyvavimo trukmė ir keitimas

Gyvavimo trukmė (lifetime) gali būti nustatoma pagal:

  • laiką (pvz., 1 valanda, 24 valandos),
  • duomenų kiekį (pvz., po 1 GB užšifruotų duomenų),
  • pranešimų skaičių (pvz., kiekvienam pranešimui naujas raktas).

Geriau dažnai keisti TEK — tai mažina riziką, kad vieno rakto kompromitavimas taps katastrofiškas. Protokolai, tokie kaip TLS, IPsec ar SRTP, apibrėžia mechanizmus rakto atnaujinimui (rekey) arba naujai seansui užmegzti.

Saugos reikalavimai

  • Atsitiktinumas ir entropija. Kaip ir visi kriptografiniai raktai, sesijos raktai turi būti parinkti taip, kad užpuolikas jų negalėtų nuspėti. Tai reiškia, kad jie turi būti generuojami iš gero kriptografiškai saugaus atsitiktinių skaičių generatoriaus (CSPRNG) su pakankama entropija.
  • Raktų ilgis. Raktų ilgis priklauso nuo pasirinktų algoritmų (pvz., AES-128, AES-256). Ilgesnis raktas paprastai suteikia didesnį saugumą, bet didina kelis sistemos reikalavimus.
  • Atmintis ir sunaikinimas. Pasibaigus gyvavimo trukmei, sesijos raktas turi būti saugiai sunaikintas atmintyje, kad neleistų vėlesniam kompromitavimui atskleisti anksčiau šifruotų duomenų.
  • Autentifikacija. Sesijos rakto naudojimas turi būti susietas su autentifikacijos mechanizmu (pvz., MAC, AEAD) tam, kad būtų užkirstas kelias pakeitimams ar padirbinėjimui.

Rizikos ir grėsmės

  • Raktų pakartotinis naudojimas. Jei vienas raktas naudojamas per daug ilgam laikui arba daugelyje sesijų, didėja galimybė kriptoanalitinei atakai.
  • Raktų kompromitavimas. Jeigu atakuotojas gauna sesijos raktą, jis gali dešifruoti visą tą raktą naudojantį srautą. Todėl būtina greita raktų kaitos politika ir apsauga (pvz., HSM, TPM).
  • Krekingas per silpną RNG. Net ir tinkamai parinktas kriptoalgoritmas bus nesaugus, jeigu raktai gaunami iš prastos kokybės atsitiktinių skaičių generatoriaus.

Pavyzdžiai realiuose protokoluose

  • TLS (pvz., TLS 1.2/1.3): po rankos pasikeitimo sukuriami sesijos raktai, kurie naudojami šifruoti HTTP srautą. TLS 1.3 skatina ephemerinį ECDHE, užtikrinantį forward secrecy.
  • IPsec: IKE protokolas derina saugos asociacijas ir sesijos raktus (TEK) IPsec kanalui.
  • Wi‑Fi (WPA2/WPA3): naudoja PTK/GTK, kurie atlieka TEK vaidmenį — periodiškai atnaujinami, kad sumažintų užpuolimų riziką.
  • SRTP: realaus laiko srautams (balso, vaizdo) naudojami sesijos raktai, kuriuos galima periodiškai pakeisti arba gauti per RTCP mechanizmus.

Geriausios praktikos

  • Naudoti ephemerinius raktų mainus (pvz., ECDHE) dėl forward secrecy.
  • Generuoti sesijos raktus tik iš patikimų CSPRNG šaltinių su pakankama entropija.
  • Taikyti tinkamą raktų ilgį (pvz., AES-128 arba AES-256, priklausomai nuo grėsmių ir reguliavimo reikalavimų).
  • Raktus keisti reguliariai ir saugiai sunaikinti po naudojimo.
  • Naudoti patikimas KDF funkcijas (pvz., HKDF) raktų išvedimui ir atskirti rakto paskirtis (šifravimas vs autentifikacija).
  • Naudoti papildomas apsaugos priemones, pvz., HSM, TPM arba saugų rakto saugojimą serveryje.

Apibendrinant, sesijos raktas (TEK) yra praktinis kompromisas tarp našumo ir saugumo: jis leidžia naudoti greitus simetrinius algoritmus vienu metu išlaikant saugų raktų paskirstymą ir ribotą raktų gyvavimo trukmę. Kaip ir visi kriptografiniai raktai, sesijos raktai turi būti parinkti taip, kad užpuolikas jų negalėtų nuspėti. Tinkamai nepasirinkti sesijos raktai (ar bet kuris kitas raktas) yra pagrindinis bet kurios kriptosistemos trūkumas.

Klausimai ir atsakymai

K: Kas yra sesijos raktas?


A: Sesijos raktas yra vienkartinis simetrinis raktas, naudojamas visiems vienos ryšio sesijos pranešimams užšifruoti.

K: Kuo skiriasi sesijos raktas nuo srauto šifravimo rakto (TEK)?


TEK reiškia bet kokį simetrinį raktą, naudojamą srauto pranešimams šifruoti, o sesijos raktas naudojamas būtent visiems pranešimams šifruoti per vieną ryšio sesiją.

K: Kodėl naudojami sesijos raktai?


A: Sesijos raktai naudojami, nes jie padeda spręsti kai kurias realias problemas, pavyzdžiui, apsunkina kriptoanalitines atakas ir leidžia naudoti spartesnius šifravimo algoritmus saugiai platinant užšifruotą slaptąjį raktą.

K: Kaip turėtų būti parenkami sesijos raktai?


A: Sesijos raktai turi būti parenkami atsitiktinai, kad užpuolikas jų negalėtų nuspėti.

K: Kas atsitinka, jei pasirenkami netinkamo tipo sesijos raktai?


A: Jei pasirenkami netinkamo tipo sesijos raktai, tai gali būti didelis bet kurios kriptosistemos trūkumas.

K: Kaip dažnai paprastai keičiami TEK?


A.: TEK paprastai keičiasi dažnai; kai kuriose sistemose jie keičiasi kasdien, o kitose - kiekvieną žinutę.

K: Koks kitas algoritmas gali būti naudojamas siekiant pagerinti našumą naudojant simetrinių raktų algoritmus? A: Viešojo rakto kriptografija gali būti naudojama užšifruotam slaptajam raktui paskirstyti kitam, greitesniam, simetrinio rakto algoritmui, kuris gali gerokai pagerinti bendrą našumą.


Ieškoti
AlegsaOnline.com - 2020 / 2025 - License CC3