Valitud-krüpteeritud teksti rünnak (CCA) definitsioon, näited ja kaitse

Valitud-krüpteeritud teksti rünnak (CCA) on krüptoanalüüsi ründemudel, mille korral ründaja saab valida või konstrueerida mõningaid krüptotekste ning esitada neid dekrüpteerimise "oraklile" (süsteemile või teenusele), mis tagastab nende dekrüpteeritud tulemuse või muu informatsiooni, mis sõltub dekrüpteerimisest. Selle teabe põhjal püüab ründaja saada teada saladust (näiteks privaatvõtit) või taastada algse sõnumi. CCA on oluliselt tugevam kui lihtsamad ründemudelid nagu valitud-tavalise-teksti rünnak (CPA) või ainult-krüptoteksti rünnak: CCA eeldab, et ründajal on juurdepääs dekrüpteerimisvõimalusele, isegi kui see juurdepääs on piiratud.

Kuidas CCA toimib

Ründaja lähtub sellest, et süsteem mingil moel vastab dekrüpteerimispäringutele — kas otseselt (näiteks API, mis dekrüpteerib), või kaudselt (veateade, ajaviide, käitumuslik erinevus). Mittetäielik või osaline juurdepääs võib siiski olla piisav: isegi lihtne "padding korrektne/ebaõige" vastus võib aja jooksul võimaldada sõnumi rekonstrueerimist. Rünnak võib olla:

  • mitteadaptatiivne (CCA1) — ründaja saab oraklit vaid enne sihtvõtme kasutamist;
  • adaptatiivne (CCA2) — ründaja võib valida uusi krüptotekste, saades vahepeal orakli vastuseid (see on tugevam ja realistlikum mudel).

Näited ja ajaloolised rünnakud

Tuntud reaalsed näited illustreerivad CCA ohtlikkust. Näiteks Bleichenbacheri rünnak (1998) sihtis RSA-põhiseid süsteeme, mis kasutasid PKCS#1 v1.5 täitmist: ründaja esitas serverile modifitseeritud krüptotekste ja kasutas serveri vastuseid (kas padding oli korrektne) et rekonstrueerida algsõnumi. Samamoodi on viimaste aastate padding oracle’i rünnakud (nt Vaudenay ja hilisemad variandid) kasutanud süsteemi vigaseid veateateid või õhukeselt erinevat käitumist, et samm-sammult taastada salajast teavet.

Lisaks võib turvarisk tekkida, kui sama mehhanismi kasutatakse nii sõnumite allkirjastamiseks kui dekrüpteerimiseks (nt kui RSA kasutatakse mõlemas otstarbes ilma nõuetekohase vorminduse ja hajutamiseta). Kui allkirjastatav sõnum ei läbinud sobivat hashing'ut ja korrektset vormindust, võib ründaja konstrueerida sõnumeid, mis lubavad allkirjastamis- või dekrüpteerimisoraklil lekitada väärtuslikku infot.

Kaitsemeetmed ja parimad tavad

Süsteemi disainimisel tuleb vältida olukordi, kus ründaja saab toimiva dekrüpteerimisorakli. Olulised kaitseprintsiibid ja tehnilised meetmed:

  • Kasutage tõestatult turvalisi skeeme (IND-CCA turvalisus): valige krüptosüsteemid, mis on matemaatiliselt näidatud vastupidavaks valitud krüptotekstide rünnakutele — näiteks RSA-OAEP krüpteerimiseks ja Cramer–Shoup avalike võtmete šemideks.
  • Autenditud krüpteerimine / AEAD: eelistage autenditud sümmeetrilise krüpteerimise vorme, mis pakuvad korraga konfidentsiaalsust ja terviklikkust (nt AES-GCM, ChaCha20-Poly1305). Need vähendavad dekrüpteerimisorakli kasulikkust, sest ründajal pole juurdepääsu eraldi dekrüpteeritud baasinfole ilma kehtiva autentimismärgita. (Võrdle autenditud ja sümmeetrilise krüpteerimise lahendusi.)
  • Õige täitmiste/algoritmide kasutus: kasutage RSA puhul OAEP täitmist (RSA-OAEP) krüpteerimiseks ja PSS–tühistust allkirjastamiseks; vältige deterministlikke või vananenud täitmisi nagu PKCS#1 v1.5 ilma täiendava kaitseta.
  • Väldi dekrüpteerimisorakli eksponeerimist: teenused ei tohiks dekrüpteerimist pakkuda avalikult ega vastata viisil, mis erinevuste kaudu eksponereerib infot. Kui dekrüpteerimine on vajalik, piirake sellele juurdepääsu ja logige/kontrollige päringuid.
  • Ühtlustatud ja mitteinformatiivsed veateated: tagastage vigadel (nt vale padding, vale autentimine) võimalikult sarnane, mitteinformatiivne vastus, et ei lekiks kõrvalinformatsiooni, mida ründaja saaks kasutada.
  • Ajaliselt konstantne töötlemine: vältige erinevustest tulenevaid aja- või ajaviitelekkeid (constant-time implementatsioonid, kus võimalik).
  • Piirangud ja järelkontroll: rakendage päringute piiranguid (rate limiting), tõendamine, ja audit, et takistada laiaulatuslikke või automaatseid oraklipäringuid.
  • Ärge allkirjastage või töötlege "tooreid" sõnumeid: enne allkirjastamist kasutage turvalist hashimist ja hormindamist; ärge kasutage sama funktsiooni nii allkirjade kui dekrüpteerimise jaoks ilma eristava täiteta.

Praktilised soovitused

  • Uuendage krüptograafilisi raamistikke ja teeke regulaarselt, sest vanad täitmisviisid võivad olla haavatavad.
  • Kasutage protokolle, mis juba disainilt arvestavad CCA ohtudega (nt kaasaegsed TLS-i versioonid, mis toetavad AEAD-konstruktsioone).
  • Testige süsteemi padding oracle’i ja muude anomaalide suhtes ning viige läbi turvaauditeid, et tuvastada võimalikud oraklid.
  • Kui realiseerite avalikke API-sid, veenduge, et need ei muutu tahtmatult dekrüpteerimisorakliteks (nt ümbersuunatud dekrüpteerimise kaudu).

Kokkuvõttes: valitud-krüptoteksti rünnak (CCA) on võimas ründemudel, mis nõuab nii teoreetilist kui praktilist kaitset. Parim praktika on kasutada krüptosüsteeme ja protokolle, mis on tõestatult CCA-kindlad, rakendada autenditud krüpteerimist, õigesti vormistada ja hajutada allkirjastatavaid sõnumeid ning vältida mistahes avalikku dekrüpteerimisoraklit või informatiivseid veateateid.

Valitud šifreeritud teksti rünnakute variatsioonid

Valitud krüptoteksti rünnakud, nagu ka muud rünnakud, võivad olla adaptiivsed või mitteadaptiivsed. Mitteadaptiivse rünnaku puhul valib ründaja eelnevalt dekrüpteeritava salastusteksti või salastustekste ning ei kasuta saadud salastustekste selleks, et valida uusi salastustekste. Adaptiivse valitud krüptiteksti rünnaku puhul teeb ründaja oma krüptiteksti valiku adaptiivselt, st sõltuvalt eelnevate dekrüpteerimiste tulemustest.

Lõunasöögi rünnakud

Valitud-kirjateksti rünnaku eriliselt tuntud variant on "lõunaajal" või "keskööl" toimuv rünnak, mille puhul ründaja võib teha adaptiivseid valitud-kirjateksti päringuid, kuid ainult teatud ajani, mille järel peab ründaja näitama, et ta suudab süsteemi paremini rünnata. Mõiste "lõunarünnak" viitab ideele, et kasutaja arvuti koos dekrüpteerimisvõimega on ründajale kättesaadav, kui kasutaja on lõunatamas. See ründe vorm oli esimene, mida tavaliselt arutati: ilmselgelt, kui ründajal on võime teha adaptiivselt valitud šifreeritud teksti päringuid, ei ole ükski krüpteeritud sõnum turvaline, vähemalt seni, kuni see võime võetakse ära. Seda rünnakut nimetatakse mõnikord "mitteadaptiivseks valitud salateksti rünnakuks"; siin viitab "mitteadaptiivne" asjaolule, et ründaja ei saa oma päringuid kohandada vastuseks väljakutsele, mis antakse pärast seda, kui võime teha valitud salateksti päringuid on lõppenud.

Paljud praktilise tähtsusega valitud šifreeritud teksti rünnakud on lõunarünnakud, näiteks kui Daniel Bleichenbacher Bell Laboratories'ist demonstreeris praktilist rünnakut PKCS#1 kasutavate süsteemide vastu; leiutas ja avaldas RSA Security.

Kohandatav valitud šifreeritud tekstiga rünnak

(Täielik) adaptiivne valitud šifreeritud tekstiga rünnak on rünnak, mille puhul šifreeritud tekstid võib valida adaptiivselt enne ja pärast väljakutse šifreeritud teksti andmist ründajale, kusjuures ÜKS tingimus on, et väljakutse šifreeritud teksti ei tohi ise pärida. See on tugevam ründe mõiste kui lõunarünnak ja seda nimetatakse tavaliselt CCA2-rünnakuks, võrreldes CCA1 (lõunarünnakuga). Sellise vormiga praktilisi rünnakuid on vähe. Pigem on see mudel oluline selle kasutamise tõttu turvalisuse tõendamisel valitud salakirjade rünnakute vastu. Tõestus, et selle mudeli rünnakud on võimatud, tähendab, et ühtegi praktilist valitud-kirjutustekstiga rünnakut ei saa sooritada.

Krüptosüsteemid, mis on osutunud turvaliseks adaptiivse valitud šifreeritud teksti rünnakute vastu, hõlmavad Cramer-Shoupi süsteemi ja RSA-OAEPi.

Seotud leheküljed

  • Rünnak ainult krüptograafilise teksti vastu
  • Valitud lihtteksti rünnak
  • Tuntud-plainteksti rünnak

Küsimused ja vastused

K: Mis on valitud-šifreeritud rünnak?


V: Valitud-kirjutusteksti rünnak (selected-ciphertext attack, CCA) on krüptoanalüüsi ründemudel, mille puhul krüptoanalüütik kogub teavet vähemalt osaliselt, valides krüptoteksti ja saades selle dekrüpteerimise tundmatu võtme all.

K: Miks peavad rakendajad olema ettevaatlikud, et vältida olukordi, kus ründajad võivad valitud salakirju dekrüpteerida?


V: Kui krüptosüsteem on vastuvõtlik valitud krüptoteksti rünnakule, peavad rakendajad olema ettevaatlikud, et vältida olukordi, kus ründajad võivad olla võimelised valitud krüptotekste dekrüpteerima (st vältida dekrüpteerimisskeemi pakkumist), sest isegi osaliselt valitud krüptotekstid võivad võimaldada peeneid rünnakuid.

Küsimus: Millised krüptosüsteemid on rünnakute suhtes haavatavad, kui allkirjastatavale sõnumile ei kasutata hashimist?


V: Mõned krüptosüsteemid (näiteks RSA) kasutavad sõnumi allkirjastamiseks ja dekrüpteerimiseks sama mehhanismi. See võimaldab rünnakuid, kui allakirjutatavale sõnumile ei kasutata hashimist.

K: Milline on parem lähenemisviis rünnakute vältimiseks valitud šifreeritud tekstiga ründemudeli korral?


V: Parem lähenemisviis on kasutada krüptosüsteemi, mis on tõestatavalt turvaline valitud krüptoteksti rünnaku korral, sealhulgas (muu hulgas) RSA-OAEP, Cramer-Shoup ja paljud autenditud sümmeetrilise krüpteerimise vormid.

K: Mida tähendab RSA-OAEP?


V: RSA-OAEP tähendab RSA Optimal Asymmetric Encryption Padding (RSA optimaalne asümmeetriline krüpteerimine).

K: Mis on üks krüptosüsteemi haavatavuse tagajärgedest valitud salastusteksti rünnaku suhtes?


V: Üks krüptosüsteemi haavatavuse tagajärg on see, et rakendajad peavad olema ettevaatlikud, et vältida olukordi, kus ründajatel on võimalik valitud salastustekste dekrüpteerida (st vältida dekrüpteerimisskeemi pakkumist).

K: Millist tüüpi rünnakuid võivad osaliselt valitud salakirjatekstid võimaldada?


V: Osaliselt valitud salastustekstid võivad võimaldada peeneid rünnakuid.

AlegsaOnline.com - 2020 / 2025 - License CC3