Vāja atslēga kriptogrāfijā: definīcija, riski un novēršana

Uzzini, kas ir vāja atslēga kriptogrāfijā, kādi ir riski un praktiski veidi tās atklāšanai un novēršanai — padomi drošākai šifrēšanai un atslēgu pārvaldībai.

Autors: Leandro Alegsa

Kriptogrāfijā vāja atslēga ir atslēga, kas, lietojot to kopā ar konkrētu šifrēšanas veidu, liek šifram uzvesties kādā nevēlamā veidā un atvieglo šifrteksta uzlaušanu (uzlaušanu).

Vājās atslēgas parasti veido ļoti mazu daļu no kopējās atslēgu telpas, kas nozīmē, ka, ja kāds ģenerē nejaušu atslēgu ziņojuma šifrēšanai, vājās atslēgas reti rada drošības problēmu. Tomēr tiek uzskatīts, ka ir labi, ja šifrā nav vāju atslēgu ("kvalitatīvs šifrētājs"). Par šifru bez vājām atslēgām saka, ka tam ir plakana jeb lineāra atslēgu telpa.

Kas tieši ir «vāja atslēga»?

Vienkārši sakot, vāja atslēga ir konkrēta atslēga vai atslēgu kopums, ar kuru izmantotā šifrēšanas funkcija zaudē paredzamo drošības līmeni. Tas var nozīmēt, ka:

  • šifrēšana ar šo atslēgu padara šifrtekstu viegli atpazīstamu vai atkārtojamu,
  • ir iespējams atvieglot atslēgas atklāšanu ar īpašiem analītiskiem paņēmieniem,
  • atslēga rada deterministiskas vai ļoti maz variāciju sniedzošas transformācijas (piem., dažiem ievaddatiem rodas vienāds izejas bloks),
  • atslēgas ģenerēšanas procedūrā rodas atkārtošanās vai zema entropija, kas padara atslēgas uzminēšanu iespējamu.

Kā rodas vājās atslēgas?

  • Dizaina vājumi šifros — piemēram, veidojot šifru ar nelielu vai nepareizi sadalītu atslēgu telpu vai ar algebraiskām īpašībām, kas ļauj viegli konstruēt «slīdēšanas» (slide) vai lineāras attiecības.
  • Specifiskas atslēgas kombinācijas — klasiskā DES piemēru dēļ zināmas «vājās» un «pusvājās» (semi-weak) atslēgas, kas rada vieglāk izmantojamas simetrijas.
  • Nepareiza atslēgu ģenerēšana — lietošanas scenāriji, kur atslēgas radītas no zemas entropijas avotiem (piem., vājas paroļu atvasināšanas bez KDF) vai ar kļūdām CSPRNG implementācijā.
  • Protokolu un implementāciju kļūdas — atkārtotas IV/nonce vērtības stream šifros, nepareizi rīcība ar publisku parametru ģenerēšanu ECC/RSA, vai kopīgas pamatnes, kas noved pie atslēgu koplietošanas.

Riski un kā uzbrukumi izmanto vājās atslēgas

Vājas atslēgas var samazināt aizsardzību no:

  • brutālā spēka uzbrukumiem, ja atslēgu telpa tiek efektīvi samazināta vai ja ir iespējams testēt mazāku atslēgu kopu;
  • zināma teksta vai atlasījuma uzbrukumiem, ja šifrā pastāv īpašas atslēgas, kas padara rezultātus prognozējamus;
  • slēpto simetriju izmantošanu — dažas vājās atslēgas ļauj atgriezties pie sākotnējiem blokiem vai mazina entropiju izejas pusē;
  • atslēgas sadalīšanos starp vairākām sesijām, ja atslēgu ģeneratori vai KDFi ir vāji.

Piemēri

  • DES: ir zināmas nelielas vāju atslēgu kopas (t.sk. weak un semi-weak atslēgas), kuru dēļ DES tiek uzskatīts par lieku mūsdienu drošībai.
  • RSA/ECC: «vājas atslēgas» var rasties, ja atslēgas ģenerētas ar nepietiekamu RNG (piem., atkārtoti vai ar kopīgiem dalītajiem faktoriem), kas var novest pie atslēgas atklāšanas dalot kopīgus primu faktorus.
  • Stream šifri: atkārtots IV vai nonce var efektīvi radīt vāju atslēgu uzvedību, ļaujot atklāt plānlasījumus no vairākiem kriptētiem bloku secībām.

Kā atklāt vai testēt vājās atslēgas

  • Pārbaudīt atslēgas pret zināmu «vāju atslēgu» sarakstu (ja tāds pastāv konkrētam algoritmam, piemēram, DES).
  • Veikt entropijas testus atslēgu ģenerēšanas procesam un uzraudzīt RNG darbību.
  • Analizēt šifrēšanas iznākumu (piem., noteikt, vai noteikti ievaddati rada konstanti vai atkārtojošos iznākumus pie dažām atslēgām).
  • Izmantot kriptogrāfiskos testus un vienības testus (Known-Answer Tests, KAT), lai pārliecinātos, ka algoritms uzvedas kā gaidīts visām atslēgām.

Novēršana un labākā prakse

  • Izmantojiet mūsdienīgas, pārbaudītas šifrēšanas bibliotēkas, kas jau ietver aizsardzību pret zināmiem vāju atslēgu gadījumiem.
  • Ģenerējiet atslēgas no droša CSPRNG (kryptogrāfiski droša nejaušības ģenerators) un regulāri auditējiet RNG avotu.
  • Neizmantojiet tiešas paroles kā atslēgas — lietojiet stiprus KDF (piem., PBKDF2, Argon2, scrypt) ar piesātinājumu un sāli.
  • Izvēlieties algoritmus bez zināmām vāju atslēgu ģimenēm — piemēram, mūsdienu simetriskie algoritmi (AES, ChaCha20) nav zināmi ar praktiski izmantojamiem vājiem atslēgu kopumiem.
  • Kontrolējiet IV/nonce izmantošanu — nodrošiniet, ka tie netiek atkārtoti lietoti tur, kur tas būtu katastrofāli (stream šifri, CTR režīmi utt.).
  • Atjauniniet un rotējiet atslēgas — īsāka atslēgu dzīves ilguma politika mazinās potenciālos riskus.
  • Izmantojiet HSM vai TPM atslēgu glabāšanai un ģenerēšanai, ja nepieciešams augsts drošības līmenis.
  • Veiciet drošības pārbaudes un kodu auditus gan algoritmu izvēlei, gan atslēgu ģenerēšanas un pārvaldības komponentēm.

Praktisks īss kontrolsaraksts

  • Pārliecinieties, ka atslēgas tiek radītas ar CSPRNG.
  • Izmantojiet pārbaudītas bibliotēkas un protokolus.
  • Nevadiet atslēgas no tiešām lietotāju parolem bez KDF.
  • Ja izmantojat vecākus algoritmus (piem., DES), apzinieties zināmās vājās atslēgas un aizstājiet ar moderniem risinājumiem.
  • Apsveriet atslēgu rotāciju un HSM izmantošanu kritiskos scenārijos.

Nobeigums

Vājas atslēgas paaugstina risku, ka šifrēšana tiks apdraudēta, taču bieži tās veido tikai nelielu daļu no atslēgu telpas. Tomēr droša kriptogrāfija nepaļaujas uz «retumu» — ir vēlams, lai šifrēšanas mehānismi būtu izstrādāti tā, lai vējām atslēgām nebūtu ietekmes, un lai atslēgas ģenerēšana un pārvaldība ievērotu labākās prakses principus.

128 bitu vāju atslēgu piemēri

  • Visas nulles (0x000000000000000000000000)
  • Visi vieninieki (0xFFFFFFFFFFFFFFFFFFFFFF)
  • Mainīgs '1' + '0' (0x0101010101010101010101)
  • Mainīgā 'F' + 'E' (0xFEFEFEFEFEFEFEFEFEFEFE)
  • Mainīgs 'E' + '1' (0xE1E1E1E1E1E1F0F0F0F0F0) vai (0x1E1E1E1E1E0F0F0F0F0F0F0F)


Meklēt
AlegsaOnline.com - 2020 / 2025 - License CC3