Izvēlēta šifrteksta uzbrukums (CCA): definīcija, riski un aizsardzība
Izvēlēta šifrteksta uzbrukums (CCA): uzzini definīciju, reālos riskus un praktiskas aizsardzības metodes (RSA-OAEP, Cramer‑Shoup, autentificēta šifrēšana).
Izvēlētā šifrteksta uzbrukums (CCA) ir kriptoanalīzes uzbrukuma modelis, kurā uzbrucējs aktīvi izvēlas vienu vai vairākus šifrtekstus un iegūst to atšifrēšanu no sistēmas (t. i., piekļuvi atšifrētajiem tekstiem) — pat ja atslēga, kas tiek izmantota atšifrēšanai, ir nezināma. No prakses viedokļa tas nozīmē, ka sistēmai nedrīkst piekļūt “atšifrēšanas orākulam” (jeb atšifrēšanas pakalpojumam), ja tas ļauj uzbrucējam iegūt informāciju, kas palīdz atklāt slepeno atslēgu vai atšifrēt citus vēstījumus.
Kas ir svarīgi saprast
- Atšķirība pret IND‑CPA: sistēma, kas ir droša pret izvēlēta atklātā teksta uzbrukumiem (CPA/IND‑CPA), nenozīmē, ka tā ir droša pret izvēlēta šifrteksta uzbrukumiem (CCA/IND‑CCA). CCA ir spēcīgāks uzbrukuma modelis.
- Adaptīvs pret neadaptīvu: adaptīvais CCA (bieži saukts par CCA2) ļauj uzbrucējam pieprasīt atšifrēšanu gan pirms, gan pēc tam, kad viņš saņem “challenge” šifrtekstu — tas ir reālistiskāks un bīstamāks modelis nekā neadaptīvais CCA (CCA1), kur pieprasījumi pēc “challenge” nav atļauti.
- Praktiska ietekme: pat nelielas informācijas noplūdes atšifrēšanas laikā (piemēram, kļūdas kods vai atbilde “nepareiza pildīšana”) var ļaut uzbrucējam izveidot pavedienus, kas noved pie pilnīgas atšifrēšanas vai atslēgas nolaupīšanas.
Riski un reāli piemēri
- Bleichenbacher uzbrukums (1998): praktisks piemērs, kur uzbrucējs izmanto RSA PKCS#1 v1.5 atšifrēšanas “orākula” reakcijas (vai tas ir pareizs pildījums), lai pakāpeniski atklātu skaidro tekstu. Šis uzbrukums parādīja, cik bīstamas var būt nelielas atšķirības atgrieztajās atbildēs.
- Pildījuma (padding) orākulu uzbrukumi: Vaudenay tipa uzbrukumi pret CBC režīmā šifrētām ziņām, kur atgrieztās kļūdas informācija ļauj atjaunot skaidro tekstu.
- Problēmas ar parakstīšanas/atšifrēšanas koplietošanu: dažas kriptosistēmas — piemēram, klasiskā RSA bez pareizām aizsardzībām — izmanto vienu mehānismu gan ziņojumu parakstīšanai, gan atšifrēšanai. Ja parakstīšanai netiek nodrošināta atbilstoša drošība, tas var atvērt iespējas CCA tipa uzbrukumiem.
Aizsardzības stratēģijas un labākā prakse
- Izmantojiet IND‑CCA/AEAD drošas shēmas: izvēlieties šifrēšanas konstrukcijas, kas pierādāmi drošas pret adaptīvajiem CCA uzbrukumiem. Piemēri: RSA-OAEP (pareizi īstenota), Cramer‑Shoup (provēti droša CCA konstrukcija), kā arī modernie AEAD (Authenticated Encryption with Associated Data) režīmi kā AES‑GCM, ChaCha20‑Poly1305 vai AES‑SIV.
- Atdaliet funkcijas: nepieļaujiet vienas un tās pašas atslēgas vai algoritma izmantošanu gan parakstīšanai, gan atšifrēšanai bez skaidras izolācijas. Labā prakse — atsevišķas atslēgas un paredzēti protokoli katrai funkcionalitātei.
- Encrypt‑then‑MAC: ja izmantojat kombināciju no šifrēšanas un autentifikācijas, izmantojiet encrypt‑then‑MAC paradigmu (šifrēšana pēc tam MAC) vai tieši AEAD, nevis vienkāršu MAC‑then‑encrypt vai encrypt‑then‑sign bez pierādījumiem.
- Aizsardzība pret pildījuma orākuliem: neatklājiet detalizētas kļūdu ziņas atšifrēšanas laikā. Vienota kļūdas atbilde un ievades validācija pirms atšifrēšanas var novērst informācijas noplūdi.
- Konsolidēta kļūdu apstrāde un laika aizsardzība: izvairieties no atbildes laika, kas mainās atkarībā no iekšējās atšifrēšanas validācijas. Ieviešiet konstanta laika atteikumus un cīņa pret laika kanalizācijām.
- Izmantojiet modernus protokolus un bibliotēkas: uzticieties pārbaudītām kriptogrāfijas bibliotēkām un jaunākām protokolu versijām (piem., TLS 1.3 vietā TLS 1.0/1.1/1.2 ar novecojušiem režīmiem), jo tās bieži satur iepriekš definētas aizsardzības pret CCA veida uzbrukumiem.
- Aizsardzība tiešraidē (runtime): nosakiet limita noteikumus, žurnālus un pārbaudes mehānismus, lai atslēgtu vai ierobežotu pieprasījumus, kas liecina par uzbrukuma mēģinājumu (piem., liels skaits neizdevušos atšifrēšanas pieprasījumu no vienas IP adreses).
Praktiski ieteikumi izstrādātājiem
- Izmantojiet AEAD režīmus, ja nepieciešama gan slepenība, gan integritāte – tie nodrošina automātisku aizsardzību pret daudzām CCA klasēm.
- Nekad neļaujiet ārējiem klientiem tieši piekļūt atšifrēšanas funkcijai bez autentifikācijas un autorizācijas slāņa.
- Ja jālieto asimetriskā kriptogrāfija, izvēlieties konstrukcijas ar pierādītu CCA drošību (piem., RSA‑OAEP, Cramer‑Shoup) vai KEM‑DEM pieeju, kas nodrošina atsevišķu atslēgu izvedi.
- Regulāri atjauniniet bibliotēkas un sekojiet publiskajām drošības brīdinājumiem par zināmiem pildījuma orākulu uzbrukumiem vai laika kanalizācijām.
Kopsavilkums
Izvēlēta šifrteksta uzbrukuma (CCA) modelis ir spēcīgs un praktisks drauds — tas var izraisīt pilnīgu slepenās informācijas noplūdi, pat ja sākotnējā šifrēšana šķiet “droša”. Lai to novērstu, nepieciešams izmantot konstrukcijas, kas pierādāmi iztur CCA uzbrukumus (vai AEAD režīmus), nepieļaut atšifrēšanas orākula pieejamību, rūpīgi apstrādāt kļūdas un ievērot citus drošības principus. Pareiza dizaina un uzturēšanas kombinācija būtiski samazina risku, ka CCA kļūs par praktisku uzbrukuma ceļu.
Izvēlētā šifrteksta uzbrukumu paveidi
Izvēlētā šifrētā teksta uzbrukumi, tāpat kā citi uzbrukumi, var būt adaptīvi vai neadaptīvi. Neadaptīvā uzbrukumā uzbrucējs iepriekš izvēlas šifrtekstu vai šifrtekstus, kurus atšifrēt, un neizmanto iegūtos atklātos tekstus, lai informētu par citu šifrtekstu izvēli. Adaptīvā izvēlētā šifrteksta uzbrukuma gadījumā uzbrucējs izvēlas šifrtekstu adaptīvi, t. i., atkarībā no iepriekšējo atšifrējumu rezultātiem.
Pusdienu uzbrukumi
Īpaši atzīmēts izvēlētā šifrteksta uzbrukuma variants ir "pusdienas laika" vai "pusnakts" uzbrukums, kurā uzbrucējs var veikt adaptīvus izvēlētā šifrteksta pieprasījumus, bet tikai līdz noteiktam brīdim, pēc kura uzbrucējam jādemonstrē uzlabota spēja uzbrukt sistēmai. Termins "uzbrukums pusdienas laikā" attiecas uz ideju, ka uzbrucējam ir pieejams lietotāja dators ar spēju atšifrēt, kamēr lietotājs ir dežūrējis. Šis uzbrukuma veids bija pirmais plaši apspriestais: acīmredzot, ja uzbrucējam ir iespēja veikt adaptīvi izvēlētus šifrēta teksta pieprasījumus, tad neviens šifrēts ziņojums nebūs drošs, vismaz līdz brīdim, kad šī iespēja tiks atņemta. Šo uzbrukumu dažkārt dēvē par "neadaptīvo izvēlētā šifrteksta uzbrukumu"; šeit "neadaptīvais" attiecas uz to, ka uzbrucējs nevar pielāgot savus pieprasījumus, atbildot uz izaicinājumu, kas tiek dots pēc tam, kad iespēja veikt izvēlētā šifrteksta pieprasījumus ir beigusies.
Daudzi praktiski nozīmīgi izvēlētā šifrteksta uzbrukumi ir uzbrukumi pusdienas laikā, piemēram, kad Daniels Bleihenbahers no Bell Laboratories demonstrēja praktisku uzbrukumu sistēmām, kas izmanto PKCS#1; to izgudroja un publicēja RSA Security.
Adaptīvais izvēlētā šifrteksta uzbrukums
(Pilnīgs) adaptīvais izvēlētā šifrteksta uzbrukums ir uzbrukums, kurā šifrtekstus var izvēlēties adaptīvi pirms un pēc tam, kad uzbrucējam ir dots izaicinājuma šifrteksts, ar VIENU nosacījumu, ka izaicinājuma šifrteksts pats par sevi nedrīkst tikt pieprasīts. Tas ir spēcīgāks uzbrukuma jēdziens nekā pusdienas laika uzbrukums, un to parasti dēvē par CCA2 uzbrukumu salīdzinājumā ar CCA1 (pusdienas laika) uzbrukumu. Šāda veida uzbrukumu praksē ir maz. Drīzāk šis modelis ir svarīgs, jo to izmanto drošības pierādījumos pret izvēlētā šifrteksta uzbrukumiem. Pierādījums, ka uzbrukumi šajā modelī ir neiespējami, nozīmē, ka nav iespējams veikt jebkuru praktisku uzbrukumu izvēlētajam šifrtekstam.
Kriptosistēmas, kas ir pierādījušas, ka ir drošas pret adaptīviem izvēlētā šifrteksta uzbrukumiem, ietver Cramer-Shoup sistēmu un RSA-OAEP.
Saistītās lapas
- Uzbrukums tikai šifrtekstam
- Izvēlētā teksta uzbrukums
- Zināma teksta uzbrukums
Jautājumi un atbildes
J: Kas ir izvēlētā šifrētā teksta uzbrukums?
A: Izvēlētā šifrteksta uzbrukums (CCA) ir kriptoanalīzes uzbrukuma modelis, kurā kriptoanalītiķis vismaz daļēji iegūst informāciju, izvēloties šifrtekstu un iegūstot tā atšifrēšanu ar nezināmu atslēgu.
J: Kāpēc īstenotājiem ir jābūt uzmanīgiem, lai izvairītos no situācijām, kurās uzbrucēji varētu spēt atšifrēt izvēlētos šifrtekstus?
A: Ja kriptosistēma ir uzņēmīga pret izvēlētā šifrteksta uzbrukumu, ieviesējiem jābūt uzmanīgiem, lai izvairītos no situācijām, kurās uzbrucēji varētu atšifrēt izvēlētos šifrtekstus (t. i., jāizvairās no atšifrēšanas shēmas nodrošināšanas), jo pat daļēji izvēlēti šifrteksti var ļaut veikt viltīgus uzbrukumus.
J: Kuras kriptosistēmas ir neaizsargātas pret uzbrukumiem, ja parakstāmajam ziņojumam neizmanto hashing?
A: Dažas kriptosistēmas (piemēram, RSA) izmanto vienu un to pašu mehānismu, lai parakstītu ziņojumus un tos atšifrētu. Tas pieļauj uzbrukumus, ja parakstāmajam ziņojumam neizmanto hashing.
J: Kāda ir labākā pieeja, lai izvairītos no uzbrukumiem, izmantojot izvēlētā šifrētā teksta uzbrukuma modeli?
A: Labāka pieeja ir izmantot kriptosistēmu, kas ir pierādāmi droša izvēlētā šifrteksta uzbrukuma gadījumā, tostarp (cita starpā) RSA-OAEP, Cramer-Shoup un daudzas autentificētas simetriskās šifrēšanas formas.
J: Ko nozīmē RSA-OAEP?
A: RSA-OAEP ir RSA Optimal Asymmetric Encryption Padding.
J: Kāda ir viena no sekām tam, ka kriptosistēma ir neaizsargāta pret izvēlētā šifrteksta uzbrukumu?
A.: Viena no sekām, ko rada kriptosistēmas neaizsargātība pret izvēlētā šifrteksta uzbrukumu, ir tā, ka īstenotājiem jābūt uzmanīgiem, lai izvairītos no situācijām, kurās uzbrucēji varētu atšifrēt izvēlētos šifrtekstus (t. i., izvairīties no atšifrēšanas shēmas nodrošināšanas).
J: Kāda veida uzbrukumus var atļaut daļēji izvēlēti šifrteksti?
A: Daļēji izvēlēti šifrteksti var ļaut veikt izsmalcinātus uzbrukumus.
Meklēt