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.
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