Sesijas atslēga ir vienreiz lietojama simetriskā atslēga, ko izmanto visu ziņojumu šifrēšanai vienā saziņas sesijā. Tā ir praktisks līdzeklis, kas nodrošina, ka ilgākā saziņā neutrāli vai ļaunprātīgi novērotāji nevar viegli savākt pietiekami daudz šifrteksta, lai veiksmīgi veiktu kriptoanalītiskos uzbrukumus. Tam tuvs ir termins satiksmes šifrēšanas atslēga (TEK), kas apzīmē jebkuru simetrisku atslēgu, ko izmanto satiksmes ziņojumu šifrēšanai. TEK parasti tiek mainīta regulāri — dažās sistēmās katru dienu, citur pat katru ziņojumu.

Mērķi un priekšrocības

  • Pirmkārt, samazināt kriptoanalītisko uzbrukumu efektivitāti — ja ar vienu atslēgu ir šifrēts mazāks ziņojumu skaits, uzbrucējam ir grūtāk iegūt pietiekamu datu apjomu, lai atklātu atslēgu vai šifrēšanas vājības.
  • Otrkārt, atvieglot drošu atslēgu izplatīšanu — daudziem ātriem šifrēšanas algoritmiem ir nepieciešama slepena atslēga pirms šifrēšanas. Izmantojot īslaicīgas sesijas atslēgas, ilgtermiņa drošā atslēgu apmaiņa (piem., ar publiskās atslēgas metodēm) tiek veikta reti, bet pats datu šifrēšanas darbs notiek ar ātrākiem simetriskiem algoritmiem.

Kā sesijas atslēgas tiek ģenerētas un izplatītas

Labas sesijas atslēgas iezīme ir neparedzamība un pietiekama entropija. Parasti tās ģenerē kā:

  • nejauši radītu bitu secību no droša nejaušības ģeneratora (RNG/HWRNG),
  • atslēgas atvasināšanu no kādas kopīgas slepenas vērtības, izmantojot atslēgu atvasināšanas funkciju (KDF) — piemēram, kad izmanto publiskās atslēgas protokolu sesijas atslēgas apmaiņai un no iegūtā materiāla iegūst šifrēšanas atslēgu, atsevišķas autentifikācijas atslēgas utt.,
  • ephemeral (īslaicīgu) privāto atslēgu izmantošanu (piem., Diffie–Hellman ar īslaicīgiem atslēgu pāriem) — šādi tiek nodrošināta perfektā pārbīdāmā drošība (perfect forward secrecy), jo pat ilgtermiņa atslēgas kompromitācijas gadījumā vecas sesijas paliek drošas).

Drošības apsvērumi un riski

Sesijas atslēgas, tāpat kā visas kriptogrāfiskās atslēgas, arī jādara tā, lai uzbrucējs tās nevarētu paredzēt. Galvenie riski un to mazināšanas pasākumi:

  • Nepietiekama nejaušība: vāji nejaušības avoti ļauj uzbrucējam uzminēt atslēgu. Risinājums — izmantot drošus RNG/HWRNG un regulāri atjaunināt entropiju.
  • Atslēgu ilgtermiņa izmantošana: ja viena atslēga lietota par ilgu laiku, pieaug iespēja veiksmīgam kriptoanalītiskam uzbrukumam. Risinājums — ierobežot sesijas ilgumu un bieži veikt rekijāšanu (rekeying).
  • Atslēgu izplatīšanas kompromitācija: ja sākotnējā atslēgu apmaiņa nav droša, sesijas atslēgas var tikt iegūtas. Izmanto publiskās atslēgas protokolus ar autentifikāciju vai iedalītu paroli, lai droši izplatītu TEK.
  • Atslēgu glabāšana un izmantošana: sesijas atslēgas nedrīkst uzglabāt ilgstoši vai sūtīt atklātā veidā. Tās jāiznīcina (zeroize) pēc lietošanas un jāglabā aizsargātā atmiņā.
  • Atkārtoti izmantojami IV vai nekorekti nonces: šifrēšanas režīmi, kas prasa unikālus inicializācijas vektorus (IV/nonce), kļūdas gadījumā var izraisīt pilnīgu drošības kompromisu. Risinājums — nodrošināt nonce un IV unikālu ģenerēšanu katrai sesijas ziņai vai lietot autentificētas šifrēšanas metodes (AEAD).

Līdzsvars — drošība pret veiktspēju

Simetriskie algoritmi (piem., AES) parasti ir ātrāki un efektīvāki lielu datu daudzumu šifrēšanai nekā asimetriskie algoritmi. Tāpēc bieži izmanto kombināciju: asimetriski protokoli nodrošina drošu vienreizējo atslēgas apmaiņu vai autentifikāciju, bet paša datu plūsma tiek aizsargāta ar ātru sesijas atslēgu un simetrisku algoritmu. Šādā arhitektūrā iespējams īstenot arī slepeno atslēgu drošu pārnešanu citam sadarbojoties ar šifrējošo algoritmu simetrisko.

Praktiski piemēri

  • Tīkla drošības protokoli, piemēram, TLS (HTTPS), izmanto sesijas atslēgas, kas tiek radītas pēc sākotnējās apmaiņas un var tikt periodiski atjaunotas (rekey), lai nodrošinātu konfidencialitāti un forward secrecy.
  • IPsec un VPN risinājumi izmanto TEK, kas tiek mainītas pēc noteikta laika vai datu apjoma, lai samazinātu kompromitācijas sekas.
  • Bezvadu tīklu šifrēšana (WPA2/WPA3) izmanto atslēgu apmaiņas mehānismus un sesijas atslēgas, lai katrai savienotajai ierīcei būtu unikāla drošības sesija.

Labā prakse

  • Ģenerēt sesijas atslēgas no droša avota ar pietiekamu entropiju.
  • Īslaicīgi ierobežot atslēgu dzīves laiku (laiks vai pārraidīto bitu skaits).
  • Izmantot autentificētu šifrēšanu (AEAD), lai novērstu gan datu atklāšanu, gan viltošanu.
  • Ieviest perfect forward secrecy, izmantojot īslaicīgas (ephemeral) atslēgas publiskās atslēgas protokolos.
  • Droši iznīcināt sesijas atslēgas pēc to izmantošanas un nepieļaut to ilgtermiņa uzglabāšanu.
  • Regulāri atjaunināt kriptogrāfiskos algoritmus un atslēgu garumu (piem., izvēlēties AES-128 vai AES-256 atbilstoši drošības prasībām).

Kopsavilkumā, sesijas atslēgas (TEK) ir būtisks instruments praktiskā kriptogrāfijā: tās samazina uzbrukumu iespējas, uzlabo veiktspēju, ja tiek pareizi ģenerētas, izplatītas un pārvaldītas. Tā kā tās, kā arī visas kriptogrāfiskās atslēgas, jāizvēlas nejauši un droši, pareiza implementācija un atbilstoša operacionālā prakse ir izšķiroša, lai nodrošinātu drošu saziņu. Ja sesijas atslēgas (vai citas atslēgas) neizvēlas vai neizmanto pareizi, tas var radīt būtisku kriptosistēmas trūkumu.