Slabé kľúče v kryptografii: definícia, príčiny a riziká
Zistite, čo sú slabé kľúče v kryptografii, ich príčiny, bezpečnostné riziká a ako im predchádzať — praktické rady a kľúčové poznatky na ochranu vašich dát.
V kryptografii je slabý kľúč kľúč, ktorý pri použití s určitou šifrou spôsobuje, že sa šifra správa určitým nežiaducim spôsobom a zjednodušuje prelomenie (prelomenie) šifrového textu. Inými slovami, ide o hodnotu kľúča, ktorá výrazne znižuje očakávanú bezpečnosť konštrukcie – napríklad vedie k predvídateľným podkľúčom, k symetrii, ktorá umožní hľadať menší priestor možných kľúčov, alebo spôsobí, že šifra vyprodukuje ľahko rozpoznateľné vzory.
Slabé kľúče zvyčajne predstavujú veľmi malú časť celkového priestoru kľúčov, čo znamená, že ak niekto vygeneruje náhodný kľúč na šifrovanie správy, je zriedkavé, aby slabé kľúče spôsobili bezpečnostný problém. Za dobrý návrh šifry sa však považuje taký, ktorý nemá slabé kľúče ("kvalitný šifrátor"). O šifre bez slabých kľúčov sa hovorí, že má plochý alebo lineárny priestor kľúčov, t. j. že pravdepodobnosť kompromitácie nezávisí citeľne od konkrétne zvoleného kľúča.
Príčiny vzniku slabých kľúčov
- Nesprávný návrh šifry alebo chybné algoritmické predpoklady – niektoré konštrukcie môžu mať inherentné symetrie alebo štruktúry vedúce k slabým kľúčom.
- Slabý alebo deterministický generátor náhodných čísel (RNG) – ak je entropia pri generovaní kľúčov nízka (napr. chybné knižnice RNG), môže vzniknúť množina opakovane generovaných alebo ľahko odhadnuteľných kľúčov.
- Krátka dĺžka kľúča alebo obmedzený priestor kľúčov – pri malom kľúčovom priestore rastie pravdepodobnosť, že niektoré kľúče budú mať zvláštne (slabé) vlastnosti.
- Problémy v implementácii – chyby v kľúčovom pláne (key schedule), zle implementované operácie alebo nesprávne zaobchádzanie s noncami a inicializačnými vektormi.
- Opätovné použitie náhodných hodnôt (noncov) alebo opätovné použitie tajných parametrí – napr. opakované použitie náhodného k v DSA/ECDSA vedie k odhaleniu súkromného kľúča.
Druhy slabých kľúčov a príklady
- Priame slabé kľúče – kľúče, ktoré spôsobia, že šifra má zjavne zníženú bezpečnosť (napr. produkujú identické podkľúče vo Feistelových sieťach).
- Semi-slabé kľúče a páry slabých kľúčov – dvojice alebo množiny kľúčov, medzi ktorými existujú špecifické vzťahy umožňujúce navzájom prelomiť šifru jednoduchšie, než by odpovedalo náhodnému kľúču.
- Slabé kľúče v asymetrických systémoch – napr. RSA kľúče s opakujúcimi sa alebo spoločnými prvočíslami v generovaných modulojch (známe problémy pri zlom RNG, napr. chyba v OpenSSL 2006), malé expo-nenty alebo príliš malé privátne exponenty, ktoré uľahčujú útoky na súkromný kľúč.
- Nonce/ephemeral zlyhania – v podpisových algoritmoch (DSA/ECDSA) spôsobí opätovné použitie náhodnej hodnoty k úplné odhalenie súkromného kľúča.
- Konkrétny príklad: DES má známe slabé a semi-slabé kľúče (DES má 4 tzv. weak keys a 12 semi-weak keys, ktoré vedú k zníženej bezpečnosti), preto sa dnes DES považuje za nedostatočný a býva nahrádzaný modernými blokovými šiframi s väčším kľúčovým priestorom.
Riziká spojené so slabými kľúčmi
- Znížená odolnosť voči brute-force a špecializovaným kryptanalytickým útokom.
- Úplné odhalenie utajených dát alebo súkromných kľúčov (v prípade podpísacích algoritmov pri zlyhaní noncov).
- Možnosť nevšimnuteľného kompromitovania komunikácie alebo dát, keď generovanie slabých kľúčov prebehne systémovo (napr. chybný RNG vo veľkom množstve zariadení).
- Problémy s interoperabilitou a dôverou — neskoršie zistenie, že používané kľúče sú slabé, môže viesť k revokácii a masívnej výmene kľúčov.
Prevencia a odporúčané postupy
- Používať overené a štandardizované algoritmy a vyhýbať sa zastaraným konštrukciám ako DES alebo iné známe slabé šifry.
- Spoľahlivý zdroj náhody — používať kryptograficky bezpečné RNG (FIPS/NIST certifikované, OS-provided CSPRNG), kontrolovať entropiu pri generovaní kľúčov.
- Testovanie generovaných kľúčov proti zoznamu známych slabých kľúčov a vykonávať sanity/entropické testy.
- Kľúčová rotácia a obnova — pravidelné prešifrovanie/obnova kľúčov tak, aby prípadné slabé kľúče mali obmedzený vplyv.
- Bezpečné implementácie — používať dôveryhodné kryptografické knižnice, zabezpečiť správnu implementáciu key schedule, constant-time operácie a správnu správu noncov/IV.
- Kryptografické postupy – používať KDF/PBKDF pre odvodenie kľúčov z hesiel, dodržiavať odporúčané veľkosti kľúčov a odporúčané hodnoty parametrov (napr. ECDSA: RFC 6979 pre deterministické k generovanie podpisov).
- Audity a testovanie – pravidelné bezpečnostné audity, testy generátorov náhodných čísel a kontrola kľúčovej infraštruktúry.
V praxi je pravdepodobnosť náhodného vygenerovania slabého kľúča nízka pre dobre navrhnuté algoritmy s dostatočne veľkým priestorom kľúčov, avšak historické incidenty (chyby v RNG, zlé implementácie, zastarané algoritmy) ukazujú, že systematické riziká môžu viesť k masívnym kompromitáciám. Preto je prevencia a dôraz na kvalitu generovania kľúčov a implementácií kľúčová súčasť bezpečnej kryptografie.
Príklady 128-bitových slabých kľúčov
- Všetky nuly (0x0000000000000000)
- Všetky jednotky (0xFFFFFFFFFFFFFFFF)
- Striedanie '1' + '0' (0x0101010101010101)
- Striedavé 'F' + 'E' (0xFEFEFEFEFEFEFEFE)
- Striedavé 'E' + '1' (0xE1E1E1E1E1F0F0F0F0) alebo (0x1E1E1E1E0F0F0F0F)
Prehľadať