Útok vybraným šifrovým textom (CCA): definícia, príklady a ochrana
Poznaj útoky vybraným šifrovým textom (CCA): definícia, príklady z praxe a osvedčené techniky ochrany (RSA‑OAEP, Cramer‑Shoup, overené symetrické šifrovanie).
Útok na vybraný šifrový text (CCA) je model útoku na kryptoanalýzu, pri ktorom kryptoanalytik získava informácie aspoň čiastočne výberom šifrového textu a získaním jeho dešifrovania pod neznámym kľúčom. Takýto útok predpokladá, že útočník má prístup k tzv. dešifračnému orákulu — mechanizmu alebo službe, ktorá na základe predloženého šifrového textu vráti odpoveď (plný alebo čiastočný) obsahujúcu informáciu o dešifrovaní.
Rozlíšenie: CCA1 (non-adaptive) vs. CCA2 (adaptive)
CCA1 (časťou označovaný aj ako „non-adaptive chosen-ciphertext attack“, niekedy „lunchtime attack“) povoľuje útočníkovi prístup k dešifračnému orákulu len predtým, než dostane výzvu (challenge) — teda môže si zadať dotazy, potom dostane challenge šifrový text a už ďalej orákulu pristupovať nesmie.
CCA2 (adaptive chosen-ciphertext attack) je silnejší model: útočník môže požiadať o dešifrovanie ľubovoľných šifrových textov aj po obdržaní challenge, s jedinou výnimkou — nesmie požiadať o dešifrovanie práve challenge šifrového textu. Security definície sú často formulované ako IND-CCA (indistinguishability under chosen-ciphertext attack).
Prečo je to nebezpečné
- Aj keď útočník nezíska priamy prístup ku kľúču, opakovanými dotazmi na orákulum môže vyextrahovať informácie z chýb, časovania alebo doby odpovede a postupne získať celý plaintext alebo kľúč.
- Kryptosystém, ktorý je bezpečný len proti pasívnemu odpočúvaniu (CPA — chosen-plaintext attack), nemusí odolať aktívnemu CCA útoku.
- Niekedy rovnaké matematické operácie slúžia na viac účelov (napr. RSA bez správneho doplnku pre podpisy a šifrovanie), čo môže viesť k zneužitiu dešifrovania na podpisovanie alebo naopak.
Konkrétne príklady útokov
- Bleichenbacherov útok na RSA s PKCS#1 v1.5 paddingom — útočník vykonáva veľké množstvo dotazov na server, pričom z chýb (napr. odlišná chybová správa pre neplatné odsadenie) dokáže postupne rekonštruovať plaintext.
- Padding-oracle útoky (napr. Vaudenay) proti CBC režimom — ak systém pri neplatnom paddingu vracia odlišnú odpoveď, útočník môže dekódovať bloky šifrového textu postupným skúšaním upravených šifrových textov.
- Rôzne praktické zraniteľnosti v protokoloch (napr. staršie implementácie TLS, chyby pri spracovaní chýb) v minulosti umožnili CCA štýlu útoky ako Lucky Thirteen či ďalšie varianty.
Formálne riešenia a bezpečné konštrukcie
Lepším prístupom je používať kryptosystémy, ktoré sú proukázateľne bezpečné pri útoku na vybraný šifrový text. Medzi známe konštrukcie patria:
- RSA-OAEP — hybridné odstupňovanie paddingu pre RSA (pri splnení určitých predpokladov dokáže zabezpečiť IND-CCA bezpečnosť).
- Cramer–Shoup — verejne známy PKE schéma s formálnym dôkazom odporu voči CCA.
- Overené symetrické šifrovanie — režimy poskytujúce autentifikáciu a dôvernosť zároveň (AEAD), napr. v praxi AES‑GCM alebo ChaCha20‑Poly1305.
- KEM‑DEM (Key Encapsulation Mechanism + Data Encapsulation Mechanism) kombinácie, ktoré poskytujú lepšie formálne vlastnosti v hybridných schémach.
Praktické protiopatrenia pre implementátorov
- Používajte autentifikované šifrovanie (AEAD) namiesto len samostatného šifrovania a samostatného MACu. Preferované sú štandardné režimy ako AES‑GCM alebo ChaCha20‑Poly1305.
- Encrypt‑then‑MAC je bezpečnejšia konštrukcia než MAC‑then‑encrypt alebo encrypt‑and‑MAC, ak nie je použitý AEAD.
- Jednotné a diskrétne chybové hlásenia — nikdy nevracajte rozlišujúce chybové správy pri neúspešnom dešifrovaní (napr. „padding error“ vs. „MAC error“). Odpovede by mali byť časovo a obsahovo čo najviac nerozlíšiteľné.
- Odolnosť voči časovým odozvám — overovania by mali byť implementované konštantným časom, aby sa nedezvelovali informácie meraním času spracovania.
- Obmedzenie rýchlosti a spätné blokovanie — rate‑limiting dotazov na dešifrovanie a monitorovanie neobvyklého správania môže zabrániť hromadným oracle dotazom.
- Nepoužívať „surové“ RSA (priame dešifrovanie bez OAEP) na šifrovanie alebo podpisovanie; na podpisy používať bezpečné schémy ako RSA‑PSS a pred podpisom hashnúť správu.
- Pravidelné aktualizácie knižníc a protokolov — používať overené kryptografické knižnice, ktoré implementujú moderné režimy a opravujú známe zraniteľnosti.
Odporúčania pre návrh protokolov
Pri návrhu protokolov sa odporúča myslieť formálne: definovať hrozby (či útočník má dešifračný orákul, kedy a s akými právami), voliť konštrukcie s dôkazmi bezpečnosti proti IND‑CCA a preferovať overené stavebné bloky (AEAD, KEM‑DEM, proven CCA‑secure PKE). Ak existuje možnosť, vyhnite sa používaniu rovnakého matematického nástroja súčasne na dešifrovanie aj na podpisovanie bez dodatočných bezpečnostných vrstiev (napr. hashovania, paddingu).
Zhrnutie
Útoky na vybraný šifrový text (CCA) sú silný a realistický model útoku, preto by implementácie a protokoly mali predpokladať prítomnosť aktívneho útočníka s možnosťou klásť dešifračné dotazy. Použitím CCA‑bezpečných schém (napr. RSA‑OAEP, Cramer‑Shoup) alebo moderných AEAD režimov a dôslednou implementačnou hygienou (konštantné chyby, constant‑time, rate‑limiting) výrazne znížite riziko úspešného útoku.
Odrody útokov na vybraný šifrový text
Útoky na vybraný šifrový text, podobne ako iné útoky, môžu byť adaptívne alebo neadaptívne. Pri neadaptívnom útoku si útočník vyberá šifrový text alebo šifrové texty na dešifrovanie vopred a nepoužíva výsledné otvorené texty na informovanie o výbere ďalších šifrových textov. Pri adaptívnom útoku na vybraný šifrový text útočník vyberá šifrový text adaptívne, t. j. v závislosti od výsledku predchádzajúcich dešifrovaní.
Útoky v čase obeda
Špeciálne zaznamenaným variantom útoku na vybraný šifrový text je "obedňajší" alebo "polnočný" útok, pri ktorom môže útočník vykonávať adaptívne dotazy na vybraný šifrový text, ale len do určitého bodu, po ktorom musí útočník preukázať určitú zlepšenú schopnosť útočiť na systém. Pojem "útok v čase obeda" sa vzťahuje na myšlienku, že počítač používateľa so schopnosťou dešifrovania je útočníkovi k dispozícii, kým je používateľ na obede. Táto forma útoku bola prvá, o ktorej sa bežne diskutovalo: je zrejmé, že ak má útočník schopnosť robiť adaptívne vybrané šifrové dotazy, žiadna zašifrovaná správa nebude v bezpečí, aspoň kým mu táto schopnosť nebude odobratá. Tento útok sa niekedy nazýva "neadaptívny útok na vybraný šifrový text"; tu sa "neadaptívny" vzťahuje na skutočnosť, že útočník nemôže prispôsobiť svoje dotazy v reakcii na výzvu, ktorá je daná po tom, ako zanikla schopnosť robiť dotazy na vybraný šifrový text.
Mnohé útoky na vybraný šifrový text, ktoré majú praktický význam, sú útoky v čase obeda, napríklad keď Daniel Bleichenbacher z Bellových laboratórií predviedol praktický útok na systémy používajúce PKCS#1; vynašla ho a zverejnila spoločnosť RSA Security.
Adaptívny útok na vybraný šifrový text
(Úplný) adaptívny útok vybraným šifrovým textom je útok, pri ktorom sa šifrové texty môžu vyberať adaptívne pred a po tom, ako sa útočníkovi poskytne šifrový text výzvy, pričom JEDNOU podmienkou je, že samotný šifrový text výzvy nesmie byť dopytovaný. Ide o silnejší pojem útoku ako útok na obed a bežne sa označuje ako útok CCA2 v porovnaní s útokom CCA1 (útok na obed). Len málo praktických útokov má túto podobu. Tento model je dôležitý skôr pre jeho použitie v dôkazoch bezpečnosti proti útokom na vybraný šifrový text. Dôkaz, že útoky v tomto modeli sú nemožné, znamená, že žiadny praktický útok na vybraný šifrový text nemožno vykonať.
Medzi kryptosystémy, ktoré sa osvedčili ako bezpečné proti adaptívnym útokom na vybraný šifrový text, patria Cramer-Shoupov systém a RSA-OAEP.
Súvisiace stránky
- Útok len na šifrový text
- Útok vybraným textom
- Útok známym textom
Otázky a odpovede
Otázka: Čo je to útok vybraným šifrovacím textom?
Odpoveď: Útok vybraným šifrovým textom (CCA) je model útoku na kryptoanalýzu, pri ktorom kryptoanalytik získava informácie, aspoň čiastočne, výberom šifrového textu a získaním jeho dešifrovania pod neznámym kľúčom.
Otázka: Prečo musia byť implementátori opatrní, aby sa vyhli situáciám, v ktorých by útočníci mohli byť schopní dešifrovať vybrané šifrové texty?
Odpoveď: Keď je kryptosystém náchylný na útok vybraným šifrovým textom, implementátori musia byť opatrní, aby sa vyhli situáciám, v ktorých by útočníci mohli byť schopní dešifrovať vybrané šifrové texty (t. j. vyhnúť sa poskytnutiu dešifrovacej schémy), pretože aj čiastočne vybrané šifrové texty môžu umožniť rafinované útoky.
Otázka: Ktoré kryptosystémy sú zraniteľné voči útokom, keď sa na podpisovanú správu nepoužíva hashovanie?
Odpoveď: Niektoré kryptosystémy (napríklad RSA) používajú na podpisovanie správ a ich dešifrovanie rovnaký mechanizmus. To umožňuje útoky, keď sa na podpisovanú správu nepoužíva hashovanie.
Otázka: Aký je lepší prístup na zabránenie útokom v rámci modelu útoku na vybraný šifrový text?
Odpoveď: Lepší prístup je použiť kryptosystém, ktorý je preukázateľne bezpečný pri útoku vybraným šifrovým textom, vrátane (okrem iného) RSA-OAEP, Cramer-Shoup a mnohých foriem overeného symetrického šifrovania.
Otázka: Čo znamená RSA-OAEP?
Odpoveď: RSA-OAEP je skratka pre RSA Optimal Asymmetric Encryption Padding.
Otázka: Aký je jeden z dôsledkov toho, že kryptosystém je zraniteľný voči útoku na vybraný šifrový text?
Odpoveď: Jedným z dôsledkov toho, že kryptosystém je zraniteľný voči útoku na vybraný šifrový text, je, že implementátori musia byť opatrní a vyhnúť sa situáciám, v ktorých by útočníci mohli byť schopní dešifrovať vybrané šifrové texty (t. j. vyhnúť sa poskytnutiu dešifrovacej schémy).
Otázka: Aký typ útokov môžu čiastočne zvolené šifrové texty umožniť?
Odpoveď: Čiastočne zvolené šifrové texty môžu umožniť rafinované útoky.
Prehľadať