Választott kódszöveges támadás (CCA): definíció, kockázatok és védelem

Ismerje meg a választott kódszöveges támadás (CCA) működését, kockázatait és gyakorlati védekezési módszereit — RSA-OAEP, Cramer-Shoup és hitelesített titkosítás.

Szerző: Leandro Alegsa

Választott kódszöveges támadás (chosen-ciphertext attack, CCA) olyan kriptoanalízis modellje, amelyben a támadó (kriptoanalitikus) képes kiválasztani egy vagy több kódszöveget és megszerezni azok visszafejtését egy ismeretlen kulcs alatt, vagy más módon visszajelzést kapni a dekódolásról. A támadó célja, hogy ezeket az információkat felhasználva további titkos üzenetekről (vagy a titkos kulcsról) több tudást szerezzen. Ha egy rendszer érzékeny a választott kódszöveges támadásra, akkor a titkosítási szolgáltatások olyan hozzáférési pontokat biztosítanak, amelyek dekódolási „orákulumként” működhetnek — ezeket kerülni kell.

Típusok és formális szemlélet

Gyakorlatban két fontosabb típust különböztetnek meg:

  • CCA1 (non-adaptive, "lunchtime"): a támadó a „szünet” előtt kérhet dekódolásokat, majd megpróbál a megszerzett információval egy célkód szöveg (ciphertext) visszafejtésére következtetni.
  • CCA2 (adaptive, erősebb): a támadó a célkód megszerzése után is folytathat dekódolási lekérdezéseket, és ezek alapján adaptívan dönt a következő lekérdezésekről, kivéve természetesen azt, hogy közvetlenül azonos célkódot (challenge ciphertext) ne dekódolhassa. A modern elméletben a biztonságot általában a CCA2-re tesztelik (IND-CCA/IND-CCA2), mert ez a legszigorúbb és leggyakrabban releváns modell.

Példák a gyakorlatban

  • Az RSA korai alkalmazásai (például PKCS#1 v1.5) sérülékenyek lehettek olyan támadásokkal szemben — például a Bleichenbacher-féle támadással (1998) — amelyek visszajelzést használtak a szerver oldali dekódolásról, és így lehetővé tették titkos üzenetek rekonstruálását.
  • A „padding oracle” támadások (például Vaudenay-féle támadás) a blokk-kódolásoknál (pl. CBC) a visszajelzések alapján működnek: ha a szerver más hibajelzést ad a rossz padding miatt, mint más hibák miatt, az információ kiszivárogtatható.
  • TLS és más protokollok múltbeli hibái (például Lucky Thirteen) jól mutatják, hogy még protokoll- vagy implementációs apróságok is lehetővé tehetnek CCA-szerű kihasználást.

Kockázatok

  • Teljes titoktartás sérülése: egy sikeres CCA a titkos üzenetek rekonstruálásához vagy akár a titkos kulcs megszerzéséhez vezethet.
  • Aláírás- és hitelesítési problémák: ha ugyanazt a mechanizmust használják aláírásra és visszafejtésre, a támadó aláírási orákulumot használhat a dekódolás megkerülésére.
  • Protokolltörések: a hibás hibaüzenetek, időzítések vagy különböző válaszok információt adhatnak a támadónak.

Védelem — elvek és gyakorlat

A védelem két szinten fontos: a kriptográfiai sémák helyes megválasztása és az implementáció biztonsága.

  • Használjon CCA-biztos (IND-CCA2) sémákat: olyan sémákat, amelyek bizonyíthatóan ellenállnak választott kódszöveges támadásoknak. Példák: RSA-ra az RSA-OAEP, a Cramer–Shoup nyilvános kulcsú séma, valamint modern hibridek, amelyek KEM (key-encapsulation) + DEM (data-encapsulation with AEAD) megközelítést használnak.
  • Hitelesített titkosítás (AE/AEAD): szimmetrikus oldalon az hitelesített szimmetrikus titkosítás formái (pl. AES-GCM, ChaCha20-Poly1305) biztosítják, hogy a dekódolás előtt a titkosság és integritás ellenőrzése megtörténjen — így nincs dekódolási orákulum.
  • Encrypt-then-MAC elv: szimmetrikus sémáknál az encrypt-then-MAC gyakorlatilag megszünteti azt a lehetőséget, hogy hibás ciphertextekre részleges információt adjon a rendszer.
  • Megfelelő padding és padding-ellenőrzés: használjon korszerű padoló sémákat (például OAEP RSA esetén), és kerülje az olyan viselkedést, amely különbséget mutat hibák között (azonos hibakezelés minden hibára).
  • Külön kulcsok külön célokra: soha ne használjon ugyanazt a kulcsot aláírásra és dekódolásra; alapelv, hogy a kulcsok célhoz kötöttek legyenek.

Implementációs óvintézkedések

  • Ne adjon részletes hibajelzéseket a kliensnek: a támadók ezeket felhasználhatják orákulumként. Egységes, nem-informatív hibaválaszok használata ajánlott.
  • Időzítés-ellenes védelem: a dekódolási műveletek időzítése ne szivárogtasson információt (constant-time megvalósítási technikák).
  • Korlátozza a dekódolási lekérdezéseket és naplózza azokat: rate limiting, hozzáférés-ellenőrzés, és riasztások gyanús lekérdezések esetén.
  • Használjon bevált, auditált kriptográfiai könyvtárakat és protokollokat; ne írjon saját titkosítást kritikus rendszerekhez.
  • Hash-elés aláírás előtt: az aláírandó üzeneteket előbb mindig megfelelő, biztonságos hash-elési sémával dolgozza fel (például RSA-PSS ajánlott aláíráshoz), hogy elkerülje az aláírás-orákulumok miatti visszaéléseket.

Ajánlott sémák és gyakorlatok

  • RSA-OAEP – RSA dekódolásnál padding kötelező és megfelelő kivitelezéssel érhető el jobb CCA-biztonság.
  • RSA-PSS – aláírásnál ajánlott, mert robusztusabb a korábbi sémákkal szemben.
  • Cramer–Shoup – nyilvános kulcsú eljárás, amely bizonyíthatóan CCA-biztos.
  • AEAD konstrukciók (pl. AES-GCM, ChaCha20-Poly1305) – szimmetrikus hitelesített titkosítás, általánosan javasolt modern protokollokban.
  • Hibrid kriptorendszerek KEM+DEM kombinációval: KEM biztosítja a kulcsosztást, DEM pedig AEAD-del védi az adatot.

Összefoglalás

A választott kódszöveges támadások súlyos kockázatot jelentenek: még látszólag kismértékű visszajelzések vagy eltérések is lehetővé tehetik a teljes kompromittálást. Megfelelő védelemhez elengedhetetlen a bizonyíthatóan CCA-biztos sémák választása, hitelesített titkosítás alkalmazása, valamint gondos, egységes hibakezelés és implementációs óvintézkedések. A bevált, auditált algoritmusok és protokollok, valamint a külön kulcsok és a padding/helyes aláírási gyakorlatok követése jelentősen csökkentik a sikeres CCA-k lehetőségét.

A választott kódszöveges támadások fajtái

A választott kódszöveges támadások, más támadásokhoz hasonlóan, lehetnek adaptívak vagy nem adaptívak. A nem adaptív támadás során a támadó előre kiválasztja a visszafejtendő rejtjelezett szöveget vagy szövegeket, és nem használja fel a kapott tiszta szövegeket a további rejtjelezett szövegek kiválasztásához. Az adaptív, választott kódszövegű támadásban a támadó adaptívan, azaz a korábbi visszafejtések eredményétől függően választja ki a kódszövegeket.

Ebédidőben támadások

A választott kódszöveges támadás egy különösen ismert változata az "ebédidő" vagy "éjféli" támadás, amelyben a támadó adaptív választott kódszöveges lekérdezéseket végezhet, de csak egy bizonyos pontig, amely után a támadónak bizonyítania kell valamilyen javuló képességét a rendszer megtámadására. Az "ebédidőben történő támadás" kifejezés arra az elképzelésre utal, hogy a felhasználó számítógépe a dekódolás képességével a támadó számára elérhető, miközben a felhasználó ebédelni van. A támadásnak ez a formája volt az első általánosan tárgyalt forma: nyilvánvaló, hogy ha a támadó képes adaptívan kiválasztott rejtjelezett szövegek lekérdezésére, akkor egyetlen titkosított üzenet sem biztonságos, legalábbis addig, amíg ezt a képességet el nem veszik tőle. Ezt a támadást néha "nem adaptív választott rejtjelezett szöveges támadásnak" is nevezik; itt a "nem adaptív" arra utal, hogy a támadó nem tudja adaptálni a lekérdezéseit a kihívásra válaszul, amelyet a választott rejtjelezett szöveges lekérdezés képességének megszűnése után adnak meg.

Számos gyakorlati jelentőségű, választott kódszöveges támadás ebédidőben történő támadás, például amikor Daniel Bleichenbacher a Bell Laboratories-tól bemutatott egy gyakorlati támadást a PKCS#1-et használó rendszerek ellen; ezt az RSA Security találta ki és tette közzé.

Adaptív választott kódolt szöveges támadás

A (teljes mértékben) adaptív, választott kódszöveges támadás olyan támadás, amelyben a kódszövegek adaptívan választhatók ki a kihívás kódszövegének a támadó számára történő megadása előtt és után, azzal az EGY feltétellel, hogy a kihívás kódszövege maga nem kérdezhető le. Ez egy erősebb támadási fogalom, mint az ebédidő-támadás, és általában CCA2-támadásnak nevezik, szemben a CCA1 (ebédidő) támadással. Kevés gyakorlati támadás létezik ebben a formában. Ez a modell inkább a kiválasztott kódszöveges támadások elleni biztonsági bizonyításokban való felhasználása miatt fontos. Annak bizonyítása, hogy az e modell szerinti támadások lehetetlenek, azt jelenti, hogy semmilyen gyakorlati, választott kódszöveges támadás nem hajtható végre.

Az adaptív választott kódszöveges támadásokkal szemben biztonságosnak bizonyult kriptorendszerek közé tartozik a Cramer-Shoup rendszer és az RSA-OAEP.

Kapcsolódó oldalak

  • Csak a kódszövegre korlátozódó támadás
  • Kiválasztott-plaintext támadás
  • Ismert-plaintext támadás

Kérdések és válaszok

K: Mi az a választott kódszöveges támadás?


V: A választott kódszöveges támadás (chosen-ciphertext attack, CCA) a kriptoanalízis olyan támadási modellje, amelyben a kriptoanalitikus legalább részben úgy szerez információt, hogy kiválaszt egy rejtjelezett szöveget, és megszerzi annak dekódolását egy ismeretlen kulcs alatt.

K: Miért kell a megvalósítóknak ügyelniük arra, hogy elkerüljék azokat a helyzeteket, amelyekben a támadók képesek lehetnek a választott rejtjelszövegek visszafejtésére?


V: Ha egy kriptorendszer fogékony a választott rejtjelszöveges támadásra, a megvalósítóknak ügyelniük kell arra, hogy elkerüljék azokat a helyzeteket, amelyekben a támadók képesek lehetnek a választott rejtjelszövegek visszafejtésére (azaz ne adjanak meg visszafejtési sémát), mivel még a részben választott rejtjelszövegek is lehetővé tehetnek finom támadásokat.

Kérdés: Mely kriptorendszerek sérülékenyek a támadásokkal szemben, ha az aláírandó üzenetet nem hasheléssel írják alá?


V: Egyes kriptorendszerek (például az RSA) ugyanazt a mechanizmust használják az üzenetek aláírására és visszafejtésére. Ez lehetővé teszi a támadásokat, ha az aláírandó üzenetben nem használnak hash-t.

K: Mi a jobb megközelítés a támadások elkerülésére a választott kódszöveges támadási modellben?


V: A jobb megközelítés olyan kriptorendszer használata, amely bizonyíthatóan biztonságos a választott kódszöveges támadás alatt, beleértve (többek között) az RSA-OAEP-et, a Cramer-Shoupot és a hitelesített szimmetrikus titkosítás számos formáját.

K: Mit jelent az RSA-OAEP?


V: Az RSA-OAEP az RSA Optimal Asymmetric Encryption Padding (RSA optimális aszimmetrikus titkosítás kitöltése) rövidítése.

K: Mi az egyik következménye annak, hogy egy kriptorendszer sebezhető a választott kódszöveges támadással szemben?


V: A választott kódszöveges támadással szembeni sebezhetőség egyik következménye az, hogy a megvalósítóknak ügyelniük kell arra, hogy elkerüljék azokat a helyzeteket, amelyekben a támadók képesek lehetnek a választott kódszövegek visszafejtésére (azaz kerüljék a visszafejtési séma biztosítását).

K: Milyen típusú támadásokat engedhetnek meg a részben választott rejtjelszövegek?


V: A részlegesen kiválasztott rejtjelező szövegek finom támadásokat tesznek lehetővé.


Keres
AlegsaOnline.com - 2020 / 2025 - License CC3