Kryptografyske oanfallen: in ferklearring foar betize geasten

As jo ​​​​it wurd "kryptografy" hearre, ûnthâlde guon minsken har WiFi-wachtwurd, it griene hangslot njonken it adres fan har favorite webside, en hoe lestich it is om yn in oar syn e-post te kommen. Oaren herinnerje in searje kwetsberens yn 'e ôfrûne jierren mei fertellende ôfkoartings (DROWN, FREAK, POODLE ...), stylfolle logo's en in warskôging om jo blêder driuwend te aktualisearjen.

Kryptografy beslacht it allegear, mar de essinsje yn in oare. It punt is dat d'r in moaie line is tusken ienfâldich en kompleks. Guon dingen binne maklik te dwaan, mar dreech om wer byinoar te setten, lykas in aai brekke. Oare dingen binne maklik te dwaan, mar dreech om werom te krijen as in lyts, wichtich, krúsjaal diel ûntbrekt: bygelyks in beskoattele doar iepenje as it "krúsjale diel" de kaai is. Kryptografy ûndersiket dizze situaasjes en hoe't se yn 'e praktyk brûkt wurde kinne.

De lêste jierren is de kolleksje fan kryptografyske oanfallen feroare yn in bistetún fan flitsende logo's, fol mei formules út wittenskiplike papers, en jûn oanlieding ta in algemien sombere gefoel dat alles is brutsen. Mar feitlik binne in protte fan 'e oanfallen basearre op in pear algemiene prinsipes, en einleaze siden mei formules wurde faak kocht om maklik te begripen ideeën.

Yn dizze searje artikels sille wy de ferskate soarten kryptografyske oanfallen besjen, mei in klam op 'e basisprinsipes. Yn algemiene termen en net krekt yn dizze folchoarder, mar wy sille de folgjende dekke:

  • Basis strategyen: brute krêft, frekwinsje analyze, ynterpolaasje, downgrading en cross-protokollen.
  • Branded kwetsberens: FREAK, CRIME, POEDEL, DROWN, Logjam.
  • Avansearre strategyen: orakel oanfallen (Vodenet oanfal, Kelsey oanfal); meet-in-the-middle metoade, jierdei oanfal, statistyske bias (differinsjaaloperator cryptanalysis, yntegraal cryptanalysis, ensfh).
  • Side kanaal oanfallen en harren neiste sibben, mislearjen analyze techniken.
  • Oanfallen op kryptografy fan iepenbiere kaaien: cube root, útstjoering, besibbe berjocht, Coppersmith oanfal, Pohlig-Hellman algoritme, number sieve, Wiener oanfal, Bleichenbacher oanfal.

Dit bepaalde artikel beslacht it boppesteande materiaal oant Kelsey's oanfal.

Basis Strategies

De folgjende oanfallen binne ienfâldich yn 'e sin dat se hast folslein kinne wurde ferklearre sûnder folle technyske detail. Litte wy elk type oanfal yn 'e ienfâldichste termen útlizze, sûnder yn komplekse foarbylden of avansearre gebrûksgefallen te gean.

Guon fan dizze oanfallen binne foar in grut part ferâldere wurden en binne in protte jierren net brûkt. Oaren binne oldtimers dy't yn 'e 21e ieu noch geregeldwei op neatsizzende kryptosysteemûntwikkelders sneupe. It tiidrek fan moderne kryptografy kin beskôge wurde as begûn mei de komst fan IBM DES, de earste sifer dy't alle oanfallen op dizze list wjerstean.

Ienfâldige brute krêft

Kryptografyske oanfallen: in ferklearring foar betize geastenDe fersifering skema bestiet út twa dielen: 1) de fersifering funksje, dy't nimt in berjocht (plaintext) kombinearre mei in kaai, en dan makket in fersifere berjocht - ciphertext; 2) in ûntsiferfunksje dy't de sifertekst en kaai nimt en platte tekst produsearret. Sawol fersifering as ûntsifering moatte maklik wêze om te berekkenjen mei de kaai - en dreech te berekkenjen sûnder.

Litte wy oannimme dat wy de sifertekst sjogge en besykje it te ûntsiferjen sûnder ekstra ynformaasje (dit wurdt in oanfal mei allinich sifertekst neamd). As wy op in magyske manier de juste kaai fine, kinne wy ​​maklik ferifiearje dat it yndie korrekt is as it resultaat in ridlik berjocht is.

Tink derom dat d'r hjir twa ymplisite oannames binne. Earst witte wy hoe't jo dekodearring útfiere, dat is hoe't it kryptosysteem wurket. Dit is in standert oanname by it besprekken fan kryptografy. It ferbergjen fan de ymplemintaasje details fan it sifer foar oanfallers kin lykje as in ekstra feiligens maatregel, mar ien kear in oanfaller sifers út dizze details, dizze ekstra feiligens is stil en ûnomkearber ferlern. Dat is hoe Kerchhoffs prinsipe: It systeem dat yn 'e hannen fan' e fijân falt, moat gjin oerlêst feroarsaakje.

Twadder geane wy ​​derfan út dat de juste kaai de ienige kaai is dy't liede sil ta in ridlike ûntsifering. Dit is ek in ridlike oanname; it is tefreden as de sifertekst folle langer is as de kaai en lêsber is. Dit is normaal wat bart yn 'e echte wrâld, útsein enoarme ûnpraktyske kaaien of oare shenanigans dy't it bêste oan 'e kant litte (as jo dat net leuk fine, hawwe wy de útlis oerslein, sjoch asjebleaft Stelling 3.8 hjir).

Sjoen it boppesteande ûntstiet in strategy: kontrolearje elke mooglike kaai. Dit wurdt brute krêft neamd, en sa'n oanfal is garandearre om te wurkjen tsjin alle praktyske sifers - úteinlik. Bygelyks, brute krêft is genôch om te hacken Caesar sifer, in âlde sifer wêr't de kaai ien letter fan it alfabet is, wat krekt mear as 20 mooglike kaaien ymplisearret.

Spitigernôch foar cryptanalysts, it fergrutsjen fan de kaai grutte is in goede ferdigening tsjin brute krêft. As de kaai grutte nimt ta, nimt it oantal mooglike kaaien eksponentiell ta. Mei moderne kaaigrutte is ienfâldige brute krêft folslein ûnpraktysk. Om te begripen wat wy bedoele, litte wy de rapst bekende superkomputer nimme fan mids 2019: Top fan IBM, mei pykprestaasjes fan sawat 1017 operaasjes per sekonde. Hjoed, de typyske kaai lingte is 128 bits, dat betsjut 2128 mooglike kombinaasjes. Om troch alle kaaien te sykjen, sil de Summit-superkomputer tiid nedich hawwe dy't sawat 7800 kear de leeftyd fan it Universum is.

Moat brute krêft wurde beskôge as in histoaryske nijsgjirrigens? Helemaal net: it is in needsaaklik yngrediïnt yn it kryptoanalysekookboek. Selden binne sifers sa swak dat se allinich troch in tûke oanfal brutsen wurde kinne, sûnder it gebrûk fan geweld yn ien of oare graad. In protte súksesfolle hacks brûke in algoritmyske metoade om it doelsifer earst te ferswakken, en dan in brute krêft oanfal út te fieren.

Frekwinsje analyze

Kryptografyske oanfallen: in ferklearring foar betize geastenDe measte teksten binne gjin gibberich. Bygelyks, yn Ingelske teksten binne der in protte letters 'e' en lidwurden 'de'; yn binêre triemmen, der binne in protte nul bytes as padding tusken stikken fan ynformaasje. Frekwinsje analyze is elke oanfal dy't profitearret fan dit feit.

It kanonike foarbyld fan in sifer dat kwetsber is foar dizze oanfal is it ienfâldige substitúsje-sifer. Yn dit sifer is de kaai in tabel mei alle letters ferfongen. Bygelyks, 'g' wurdt ferfongen troch 'h', 'o' troch j, sadat it wurd 'go' wurdt 'hj'. Dit sifer is lestich te brute krêft om't d'r safolle mooglik opsyktabellen binne. As jo ​​​​ynteressearre binne yn 'e wiskunde, is de effektive kaailingte sawat 88 bits: dat is
Kryptografyske oanfallen: in ferklearring foar betize geasten. Mar frekwinsje-analyze krijt it wurk normaal gau dien.

Beskôgje de folgjende sifertekst ferwurke mei in ienfâldige ferfangende sifer:

XDYLY ALY UGLY XDWNKE WN DYAJYN ANF YALXD DGLAXWG XDAN ALY FLYAUX GR WN OGQL ZDWBGEGZDO

Sûnt de Y komt faak foar, ek oan 'e ein fan in protte wurden, kinne wy ​​​​foarsichtich oannimme dat dit de letter is e:

XDeLe ALe UGLe XDWNKE WN DeAJeN ANF eALXD DGLAXWG XDAN ALE FLeAUX GR WN OGQL ZDWBGEGZDO

Paar XD werhelle oan it begjin fan ferskate wurden. Benammen de kombinaasje XDeLe suggerearret it wurd dúdlik these of there, dus litte wy trochgean:

theLe ALE UGLe thWNKE WN heAJeN ANF eALth DGLAtWG tAN ALE FLeAUt GR WN OGQL ZDWBGEGZDO

Lit ús dat fierders oannimme L соответствует r, A - a ensafuorthinne. It sil wierskynlik in pear besykjen nimme, mar yn ferliking mei in folsleine brute force-oanfal herstelt dizze oanfal de orizjinele tekst yn gjin tiid:

der binne mear dingen yn 'e himel en ierde horatio as fan dreamd wurde yn jo filosofy

Foar guon is it oplossen fan sokke "cryptograms" in spannende hobby.

It idee fan frekwinsje-analyse is mear fûneminteel dan it liket op it earste each. En it jildt foar folle kompleksere sifers. Yn 'e rin fan' e skiednis hawwe ferskate siferûntwerpen besocht sa'n oanfal tsjin te gean mei "polyalfabetyske ferfanging". Hjir, tidens it fersiferingsproses, wurdt de tabel foar letterferfanging wizige op komplekse, mar foarsisbere manieren dy't ôfhinklik binne fan 'e kaai. Al dizze sifers waarden beskôge as dreech te brekken yn ien kear; en dochs beskieden frekwinsje analyze úteinlik fersloech se allegearre.

It meast ambisjeuze polyalfabetyske sifer yn 'e skiednis, en wierskynlik it bekendste, wie it Enigma-sifer fan 'e Twadde Wrâldoarloch. It wie relatyf kompleks yn ferliking mei syn foargongers, mar nei in protte hurde wurk, Britske cryptanalysts kreake it mei help fan frekwinsje analyze. Fansels koene se gjin elegante oanfal ûntwikkelje lykas de hjirboppe te sjen; se moasten bekende pearen fan platte tekst en sifertekst fergelykje (de saneamde "flaktetekstoanfal"), en sels Enigma-brûkers útlokje om bepaalde berjochten te fersiferjen en it resultaat te analysearjen (de "keazen plattetekstoanfal"). Mar dit makke it lot fan 'e fersleine fijânske legers en sonken ûnderseeboaten net makliker.

Nei dizze triomf ferdwûn frekwinsje-analyze út 'e skiednis fan krypto-analyze. Sifers yn it moderne digitale tiidrek binne ûntworpen om te wurkjen mei bits, net letters. Noch wichtiger, dizze sifers waarden ûntwurpen mei it tsjustere begryp fan wat letter waard bekend as Schneiers wet: Elkenien kin in fersiferingsalgoritme oanmeitsje dat se sels net kinne brekke. It is net genôch foar it fersiferingssysteem like dreech: om syn wearde te bewizen, moat it in genedeleaze befeiligingsresinsje ûndergean troch in protte kryptoanalytikers dy't har bêst sille dwaan om it sifer te kraken.

Foarriedige berekkeningen

Kryptografyske oanfallen: in ferklearring foar betize geastenNim de hypotetyske stêd Precom Heights, befolking 200. Elk hûs yn 'e stêd befettet in gemiddelde fan $ 000 30 weardefolle, mar net mear as $ 000 50. De feiligensmerk yn Precom wurdt monopolisearre troch ACME Industries, dy't de legindaryske Coyote ™ klasse doarslûzen produseart. Neffens saakkundige analyze, in Coyote-klasse slot kin allinnich wurde brutsen troch in hiel komplekse hypotetysk masine, de skepping fan dat fereasket likernôch fiif jier en $ 000 yn ynvestearrings. Is de stêd feilich?

Meast wierskynlik nee. Uteinlik sil der in frij ambisjeuze misdiediger ferskine. Hy sil sa redenearje: "Ja, ik meitsje grutte foarôfkosten. Fiif jier geduldich wachtsjen, en $ 50 000. Mar as ik klear bin, haw ik tagong ta al de rykdom fan dizze stêd. As ik myn kaarten goed spielje, sil dizze ynvestearring himsels in protte kearen betelje. ”

Itselde is wier yn kryptografy. Oanfallen tsjin in bepaalde sifer binne ûnderwurpen oan in ruthless kosten-baten analyze. As de ferhâlding geunstich is, sil de oanfal net foarkomme. Mar oanfallen dy't wurkje tsjin in protte potinsjele slachtoffers yn ien kear hast altyd betelje út, yn dat gefal bêste design praktyk is om oan te nimmen dat se begûn fan dei ien. Wat wy hawwe is yn wêzen in kryptografyske ferzje fan Murphy's Law: "Alles dat it systeem eins brekke kin, sil it systeem brekke."

It ienfâldichste foarbyld fan in kryptosysteem dat kwetsber is foar in precomputation-oanfal is in konstant-kaaileaze sifer. Dit wie it gefal mei Caesar syn sifer, dy't gewoan elke letter fan it alfabet trije letters nei foaren ferpleatst (de tabel is yn lus, sadat de lêste letter yn it alfabet as tredde fersifere wurdt). Hjir komt wer it Kerchhoffs-prinsipe yn it spul: as in systeem ienris hacked is, wurdt it foar altyd hackt.

It konsept is ienfâldich. Sels in begjinnende kryptosysteemûntwikkelder sil wierskynlik de bedriging werkenne en har dêrop tariede. Sjoch nei de evolúsje fan kryptografy, sokke oanfallen wiene net geskikt foar de measte sifers, fan 'e earste ferbettere ferzjes fan' e Caesar-sifer oant de delgong fan polyalfabetyske sifers. Sokke oanfallen kamen pas werom mei de komst fan it moderne tiidrek fan kryptografy.

Dit rendemint komt troch twa faktoaren. Earst ferskynden genôch komplekse kryptosystemen úteinlik, wêr't de mooglikheid fan eksploitaasje nei hacking net dúdlik wie. Twadder waard kryptografy sa wiidferspraat dat miljoenen leken elke dei besluten makken oer wêr en hokker dielen fan kryptografy om opnij te brûken. It duorre wat tiid foar't saakkundigen de risiko's realisearre en alarm makken.

Unthâld de precomputation oanfal: oan 'e ein fan it artikel sille wy sjen nei twa echte libben kryptografyske foarbylden dêr't it spile in wichtige rol.

Ynterpolaasje

Hjir is de ferneamde detektive Sherlock Holmes, dy't in ynterpolaasjeoanfal útfiert op 'e ûngelokkige Dr. Watson:

Ik ried daliks datst út Afganistan kommen wiest... Myn gedachte wie sa: “Dizze man is dokter fan type, mar hy hat in militêr peil. Dus, in militêr dokter. Hy is krekt oankommen út 'e tropen - syn gesicht is tsjuster, mar dit is net de natuerlike skaad fan syn hûd, sûnt syn polsen binne folle witer. It gesicht is hurd - fansels, hy hat in protte lêst en lêst fan sykte. Hy rekke ferwûne oan syn lofterhân - hy hâldt it roerleas en in bytsje ûnnatuerlik. Wêr yn 'e tropen koe in Ingelske militêre dokter swierrichheden ferneare en ferwûne wurde? Fansels, yn Afganistan." De hiele tocht duorre net iens in sekonde. En sa sei ik dat jo út Afganistan kamen, en jo wiene ferrast.

Holmes koe heul bytsje ynformaasje út elk stikje bewiis yndividueel ekstrahearje. Hy koe allinne ta syn konklúzje komme troch se allegearre byinoar te beskôgjen. In ynterpolaasje-oanfal wurket op deselde manier troch it ûndersiikjen fan bekende plattetekst- en sifertekstpearen dy't resultearje út deselde kaai. Fan elk pear wurde yndividuele observaasjes helle dy't in algemiene konklúzje oer de kaai kinne wurde lutsen. Al dizze konklúzjes binne ûndúdlik en lykje nutteloos oant se ynienen in krityske massa berikke en liede ta de iennichste mooglike konklúzje: hoe ongelooflijk it ek is, it moat wier wêze. Hjirnei wurdt of de kaai iepenbiere, of it ûntsiferingsproses wurdt sa ferfine dat it kin wurde replikearre.

Litte wy mei in ienfâldich foarbyld yllustrearje hoe't ynterpolaasje wurket. Litte wy sizze dat wy it persoanlike deiboek fan ús fijân, Bob, lêze wolle. Hy fersiferet elk nûmer yn syn tydskrift mei in ienfâldich kryptosysteem dat hy learde fan in advertinsje yn it tydskrift "A Mock of Cryptography." It systeem wurket sa: Bob kiest twa nûmers dy't hy leuk fynt: Kryptografyske oanfallen: in ferklearring foar betize geasten и Kryptografyske oanfallen: in ferklearring foar betize geasten. Fan no ôf, om elk nûmer te fersiferjen Kryptografyske oanfallen: in ferklearring foar betize geasten, it berekkent Kryptografyske oanfallen: in ferklearring foar betize geasten. Bygelyks, as Bob keas Kryptografyske oanfallen: in ferklearring foar betize geasten и Kryptografyske oanfallen: in ferklearring foar betize geasten, dan it nûmer Kryptografyske oanfallen: in ferklearring foar betize geasten sil wurde fersifere as Kryptografyske oanfallen: in ferklearring foar betize geasten.

Litte we sizze dat wy op 28 desimber fernaam dat Bob wat yn syn deiboek skrast. As hy klear is, sille wy it rêstich ophelje en de lêste yngong besjen:

Datum: 235/520

Leaf deiboek,

It wie hjoed in moaie dei. Troch 64 hjoed haw ik in date mei Alisa, dy't wennet yn in appartemint 843. Ik tink echt dat se kin wêze 26!

Sûnt wy binne tige serieus oer it folgjen fan Bob op syn datum (wy binne beide 15 yn dit senario), is it kritysk om te witten de datum likegoed as Alice syn adres. Gelokkich fernimme wy dat Bob's kryptosysteem kwetsber is foar in ynterpolaasjeoanfal. Wy meie net witte Kryptografyske oanfallen: in ferklearring foar betize geasten и Kryptografyske oanfallen: in ferklearring foar betize geasten, mar wy kenne de datum fan hjoed, dus wy hawwe twa platte-tekst-sifertekst-pearen. Dat witte wy nammentlik Kryptografyske oanfallen: in ferklearring foar betize geasten fersifere yn Kryptografyske oanfallen: in ferklearring foar betize geastenen Kryptografyske oanfallen: in ferklearring foar betize geasten - yn Kryptografyske oanfallen: in ferklearring foar betize geasten. Dit is wat wy sille opskriuwe:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Kryptografyske oanfallen: in ferklearring foar betize geasten

Sûnt wy 15 jier âld binne, witte wy al oer in systeem fan twa fergelikingen mei twa ûnbekenden, dy't yn dizze situaasje genôch is om te finen Kryptografyske oanfallen: in ferklearring foar betize geasten и Kryptografyske oanfallen: in ferklearring foar betize geasten sûnder problemen. Elk plaintext-sifertekst-pear pleatst in beheining op Bob's kaai, en de twa beheiningen tegearre binne genôch om de kaai folslein werom te heljen. Yn ús foarbyld is it antwurd Kryptografyske oanfallen: in ferklearring foar betize geasten и Kryptografyske oanfallen: in ferklearring foar betize geasten (by Kryptografyske oanfallen: in ferklearring foar betize geasten Kryptografyske oanfallen: in ferklearring foar betize geasten,sa 26 yn it deiboek komt oerien mei it wurd 'de iene', dat is, "deselde" - ca. laan).

Ynterpolaasje oanfallen binne fansels net beheind ta sokke ienfâldige foarbylden. Elk kryptosysteem dat ferminderet ta in goed begrepen wiskundich objekt en in list mei parameters is yn gefaar fan in ynterpolaasje-oanfal - hoe begrypliker it objekt, hoe heger it risiko.

Nijkommers kleie faak dat kryptografy "de keunst is om dingen sa lelijk mooglik te ûntwerpen." Ynterpolaasje-oanfallen binne wierskynlik foar in grut part de skuld. Bob kin in elegant wiskundich ûntwerp brûke of syn date mei Alice privee hâlde - mar helaas, jo kinne it normaal net beide kanten hawwe. Dit sil oerfloedich dúdlik wurde as wy úteinlik komme by it ûnderwerp fan kryptografy fan iepenbiere kaaien.

Cross protokol / downgrade

Kryptografyske oanfallen: in ferklearring foar betize geastenYn Now You See Me (2013) besiket in groep illusionisten de korrupte fersekeringsmagnaat Arthur Tressler út syn hiele fortún te belibjen. Om tagong te krijen ta Arthur syn bankrekken, moatte de illusionisten of syn brûkersnamme en wachtwurd leverje of him twinge om persoanlik by de bank te ferskinen en diel te nimmen oan it skema.

Beide opsjes binne hiel dreech; De jonges binne wend oan it optreden op it poadium, en net meidwaan oan yntelliginsje-operaasjes. Sa kieze se foar de tredde mooglike opsje: harren makker bellet de bank en docht him foar as Arthur. De bank stelt ferskate fragen om de identiteit te ferifiearjen, lykas de namme fan de omke en de namme fan it earste húsdier; ús helden fan tefoaren se ekstrahearje dizze ynformaasje maklik fan Arthur mei tûke sosjale technyk. Fan dit punt ôf makket poerbêste wachtwurdfeiligens net mear út.

(Neffens in stedske leginde dy't wy persoanlik ferifiearre en ferifiearre hawwe, tsjinkaam kryptograaf Eli Beaham ienris in bankteller dy't oanstie op it ynstellen fan in feiligensfraach. Doe't de teller frege om de namme fan syn beppe fan memmekant, begon Beaham te diktearjen: "Kapitaal X, lytse y, trije ... ").

It is itselde yn kryptografy, as twa kryptografyske protokollen parallel wurde brûkt om deselde asset te beskermjen, en ien is folle swakker as de oare. It resultearjende systeem wurdt kwetsber foar in cross-protokol oanfal, dêr't in swakker protokol wurdt oanfallen om te krijen ta de priis sûnder oanreitsje de sterkere.

Yn guon komplekse gefallen is it net genôch om gewoan kontakt te meitsjen mei de tsjinner mei in swakker protokol, mar fereasket de ûnfrijwillige dielname fan in legitime kliïnt. Dit kin wurde organisearre mei help fan de saneamde downgrade oanfal. Om dizze oanfal te begripen, lit ús oannimme dat ús illusionisten in dreger taak hawwe as yn 'e film. Litte wy oannimme dat in bankmeiwurker (kassier) en Arthur wat ûnfoarsjoene omstannichheden tsjinkamen, wat resultearre yn de folgjende dialooch:

Ynbreker: Hallo? Dit is Arthur Tressler. Ik wol myn wachtwurd weromsette.

Kassier: Grut. Besykje asjebleaft jo persoanlike geheime koadeboek, side 28, wurd 3. Alle folgjende berjochten wurde fersifere mei dit spesifike wurd as kaai. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV…

Ynbreker: Hee, hei, wachtsje, wachtsje. Is dit echt nedich? Kinne wy ​​net gewoan prate as gewoane minsken?

Kassier: Ik advisearje dit net te dwaan.

Ynbreker: Ik gewoan... sjoch, ik hie in minne dei, goed? Ik bin in VIP kliïnt en ik bin net yn 'e stimming om te graven troch dizze domme koade boeken.

Kassier: Moai. As jo ​​​​ophâlde, hear Tressler. Wat wolle jo?

Ynbreker: Asjebleaft, ik wol al myn jild donearje oan it Arthur Tressler National Victims Fund.

(Skoft).

Kassier: Is it no dúdlik. Jou jo PIN foar grutte transaksjes.

Ynbreker: Myn wat?

Kassier: Op jo persoanlik fersyk fereaskje transaksjes fan dizze grutte in PIN foar grutte transaksjes. Dizze koade waard jo jûn doe't jo jo akkount iepene hawwe.

Ynbreker:... Ik bin it ferlern. Is dit echt nedich? Kinne jo de deal net gewoan goedkarre?

Kassier: Nee. It spyt my, hear Tressler. Nochris, dit is de feiligensmaatregel wêr't jo om frege hawwe. As jo ​​​​wolle, kinne wy ​​in nije PIN-koade nei jo postfak stjoere.

Us helden stelle de operaasje út. Se eavesdrop op ferskate fan Tressler syn grutte transaksjes, hope te hearren de PIN; mar elke kear feroaret it petear yn kodearre gibberish foardat der wat nijsgjirrichs wurdt sein. Uteinlik, op in moaie dei, wurdt it plan yn wurking brocht. Se wachtsje geduldich op it momint dat Tressler fia de telefoan in grutte transaksje dwaan moat, hy komt oan de lijn, en dan...

Tressler: Hallo. Ik wol graach in transaksje op ôfstân foltôgje, asjebleaft.

Kassier: Grut. Sjoch asjebleaft jo persoanlike geheime koadeboek, side ...

(De ynbrekker drukt op de knop; de stim fan de kassier feroaret yn ûnbegryplik lûd).

Kassier: - #@$#@$#*@$$@#* sil fersifere wurde mei dit wurd as kaai. AAAYRR PLRQRZ MMNJK LOJBAN…

Tressler: Sorry, ik begriep it net hielendal. Wer? Op hokker side? Hokker wurd?

Kassier: Dit is de side @#$@#*$)#*#@()#@$(#@*$(#@*.

Tressler: Wat?

Kassier: Wurd nûmer tweintich @$#@$#%#$.

Tressler: Serieus! Al genôch! Jo en jo feiligensprotokol binne in soarte fan sirkus. Ik wit dat jo gewoan normaal mei my prate kinne.

Kassier: Ik advisearje net ...

Tressler: En ik ried jo net oan om myn tiid te fergriemen. Ik wol hjir net mear oer hearre oant jo de problemen mei jo tillefoanline reparearje. Kinne wy ​​dizze deal finalisearje of net?

Kassier:… Ja. Moai. Wat wolle jo?

Tressler: Ik wol $ 20 oerdrage oan Lord Business Investments, akkountnûmer ...

Kassier: Ien minút, asjebleaft. Dit is in grutte deal. Jou jo PIN foar grutte transaksjes.

Tressler: Wat? Oh, krekt. 1234.

Hjir is in oanfal nei ûnderen. It swakkere protokol "praat gewoan direkt" waard foarsjoen as opsje yn gefal fan need. En dochs binne wy ​​hjir.

Jo kinne jo ôffreegje wa't yn har goede geast in echt "feilich oant oars frege" systeem soe ûntwerpe lykas it hjirboppe beskreaune. Mar krekt sa't in fiktive bank risiko's nimt om klanten te behâlden dy't net fan kryptografy hâlde, gravitearje systemen yn 't algemien faaks nei easken dy't ûnferskillich of sels regelmjittich fijannich binne foar feiligens.

Dit is krekt wat barde mei it SSLv2-protokol yn 1995. De Amerikaanske regearing is al lang begûn om kryptografy te besjen as in wapen dat it bêste fuorthelle wurdt fan bûtenlânske en ynlânske fijannen. Koadestikken waarden yndividueel goedkard foar eksport út 'e Feriene Steaten, faak mei de betingst dat it algoritme mei opsetsin ferswakke waard. Netscape, de ûntwikkelder fan 'e populêrste browser, Netscape Navigator, krige tastimming foar SSLv2 allinich mei de ynherinte kwetsbere 512-bit RSA-kaai (en 40-bit foar RC4).

Oan 'e ein fan it millennium wiene de regels ûntspannen en waard tagong ta moderne fersifering wiid beskikber. Klanten en servers hawwe lykwols jierrenlang ferswakke "eksportearje" kryptografy stipe troch deselde ynertia dy't stipe behâldt foar elk legacy-systeem. Klanten leauden dat se miskien in tsjinner tsjinkomme dy't neat oars stipe. De tsjinners diene itselde. Fansels diktearret it SSL-protokol dat kliïnten en servers nea in swak protokol moatte brûke as in bettere beskikber is. Mar itselde útgongspunt jildt foar Tressler en syn bank.

Dizze teory fûn syn wei yn twa heechprofyl oanfallen dy't de feiligens fan it SSL-protokol yn 2015 skodden, beide ûntdutsen troch Microsoft-ûndersikers en INRIA. Earst waarden details fan 'e FREAK-oanfal yn febrewaris iepenbiere, trije moannen letter folge troch in oare ferlykbere oanfal neamd Logjam, dy't wy yn mear detail sille besprekke as wy trochgean nei oanfallen op kryptografy fan iepenbiere kaaien.

Kryptografyske oanfallen: in ferklearring foar betize geastenKwetsberens FREAK (ek bekend as "Smack TLS") kaam oan it ljocht doe't ûndersikers analysearren TLS client / tsjinner ymplemintaasjes en ûntdutsen in nijsgjirrige brek. Yn dizze ymplemintaasjes, as de kliïnt net iens freget om swak eksportkryptografy te brûken, mar de tsjinner reagearret noch mei sokke kaaien, seit de kliïnt "Och goed" en skeakelt oer nei in swakke sifersuite.

Destiids waard eksportkryptografy rûnom beskôge as ferâldere en off-limiten, sadat de oanfal kaam as in folsleine skok en beynfloede in protte wichtige domeinen, ynklusyf it Wite Hûs, IRS, en NSA-siden. Noch slimmer, it docht bliken dat in protte kwetsbere servers de prestaasjes optimalisearje troch deselde kaaien opnij te brûken ynstee fan nije te generearjen foar elke sesje. Dit makke it mooglik om, nei it downgraden fan it protokol, in pre-berekkening oanfal út te fieren: it kreakjen fan ien kaai bleau relatyf djoer ($ 100 en 12 oeren op it momint fan publikaasje), mar de praktyske kosten foar it oanfallen fan 'e ferbining waarden gâns fermindere. It is genôch om ien kear de serverkaai te selektearjen en de fersifering te kraken foar alle folgjende ferbiningen fan dat momint ôf.

En foardat wy trochgean, is d'r ien avansearre oanfal dy't neamd wurde moat ...

Oracle oanfal

Kryptografyske oanfallen: in ferklearring foar betize geastenMoxie Marlinspike fral bekend as de heit fan 'e cross-platform Krypto-messaging-app Signal; mar wy persoanlik hâlde fan ien fan syn minder bekende ynnovaasjes - prinsipe fan kryptografyske doom (Kryptografysk Doom-prinsipe). Om in bytsje te parafrasearjen, kinne wy ​​​​dit sizze: "As it protokol wurket elk fiert in kryptografyske operaasje út op in berjocht fan in potinsjeel kweade boarne en gedraacht oars ôfhinklik fan it resultaat, it is doomed." Of yn in skerpere foarm: "Nim gjin ynformaasje fan 'e fijân foar ferwurking, en as jo moatte, dan op syn minst it resultaat net sjen litte."

Litte wy bufferoerstreamen, kommando-ynjeksjes, en sa, oan 'e kant litte; se binne bûten it berik fan dizze diskusje. Skeining fan it "doomprinsipe" liedt ta serieuze kryptografyske hacks troch it feit dat it protokol krekt as ferwachte gedraacht.

Litte wy as foarbyld in fiktyf ûntwerp nimme mei in kwetsbere substitúsje-sifer, en dan in mooglike oanfal demonstrearje. Wylst wy hawwe al sjoen in oanfal op in ferfanging cipher mei help fan frekwinsje analyze, it is net allinne "in oare manier te brekken deselde cipher." Krektoarsom, orakel oanfallen binne in folle mear moderne útfining, fan tapassing op in protte situaasjes dêr't frekwinsje analyze mislearret, en wy sille sjen in demonstraasje fan dit yn de folgjende paragraaf. Hjir is it ienfâldige sifer allinich keazen om it foarbyld dúdliker te meitsjen.

Dat Alice en Bob kommunisearje mei in ienfâldige substitúsje-sifer mei in kaai dy't allinich bekend is foar har. Se binne tige strang oer de lingte fan berjochten: se binne krekt 20 tekens lang. Sa hawwe se ôfpraat dat as immen in koarter berjocht stjoere woe, se wat dummy-tekst oan 'e ein fan it berjocht taheakje moatte om it krekt 20 tekens te meitsjen. Nei wat diskusje besleaten se dat se allinich de folgjende dummyteksten soene akseptearje: a, bb, ccc, dddd ensfh Sa is in dummy-tekst fan elke fereaske lingte bekend.

As Alice of Bob in berjocht ûntfange, kontrolearje se earst dat it berjocht de juste lingte is (20 tekens) en dat it efterheaksel de juste dummytekst is. As dit net it gefal is, dan reagearje se mei in passend flaterberjocht. As de tekst lingte en dummy tekst binne ok, de ûntfanger lêst it berjocht sels en stjoert in fersifere antwurd.

Tidens de oanfal ferbyldet de oanfaller Bob en stjoert falske berjochten nei Alice. De berjochten binne folsleine ûnsin - de oanfaller hat de kaai net, en kin dêrom gjin sinfol berjocht fermeitsje. Mar om't it protokol it doomprinsipe skeint, kin in oanfaller Alice noch trape om de kaaiynformaasje te iepenbierjen, lykas hjirûnder werjûn.

Ynbreker: PREWF ZHJKL MMMN. LA

Alice: Unjildige dummy-tekst.

Ynbreker: PREWF ZHJKL MMMN. LB

Alice: Unjildige dummy-tekst.

Ynbreker: PREWF ZHJKL MMMN. LC

Alice: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

De ynbrekker hat gjin idee wat Alice krekt sei, mar merkt op dat it symboal C moat oerienkomme a, sûnt Alice akseptearre de dummy tekst.

Ynbreker: REWF ZHJKL MMMN. LAA

Alice: Unjildige dummy-tekst.

Ynbreker: REWF ZHJKL MMMN. LBB

Alice: Unjildige dummy-tekst.

Nei in oantal besykjen...

Ynbreker: REWF ZHJKL MMMN. LGG

Alice: Unjildige dummy-tekst.

Ynbreker: REWF ZHJKL MMMN. LHH

Alice: TLQO JWCRO FQAW SUY LCR C OWQXYJW. IW PWWR TU TCFA CHUYT TLQO JWFCTQUPOLQZ.

Wer, de oanfaller hat gjin idee wat Alice krekt sei, mar merkt op dat H moat oerien mei b sûnt Alice akseptearre de dummy tekst.

En sa fierder oant de oanfaller de betsjutting fan elk karakter wit.

Op it earste each liket de metoade op in keazen plattetekstoanfal. Op it lêst selekteart de oanfaller de siferteksten, en de tsjinner ferwurket se hearrich. It wichtichste ferskil dat dizze oanfallen libbensfetber makket yn 'e echte wrâld is dat de oanfaller gjin tagong hat ta it eigentlike transkript - in serverantwurd, sels ien sa ûnskuldich as "Unjildige dummy-tekst," is genôch.

Wylst dizze bepaalde oanfal ynstruktyf is, wês dan net te hingjen oan 'e spesifikaasjes fan it "dummy-tekst"-skema, it spesifike brûkte kryptosysteem, of de krekte folchoarder fan berjochten dy't troch de oanfaller ferstjoerd binne. It basisidee is hoe't Alice oars reagearret op basis fan 'e eigenskippen fan' e platte tekst, en docht dat sûnder te ferifiearjen dat de oerienkommende sifertekst eins kaam fan in fertroude partij. Sa lit Alice de oanfaller geheime ynformaasje út har antwurden drukke.

D'r is in protte dat kin wurde feroare yn dit senario. De symboalen dêr't Alice op reagearret, of it tige ferskil yn har gedrach, of sels it brûkte kryptosysteem. Mar it prinsipe sil itselde bliuwe, en de oanfal as gehiel sil yn ien of oare foarm libbensfetber bliuwe. De basis ymplemintaasje fan dizze oanfal holp ûntdekke ferskate feiligens bugs, dêr't wy sille sjen yn koart; mar earst binne der wat teoretyske lessen te learen. Hoe kinne jo dit fiktive "Alice-skript" brûke yn in oanfal dy't kin wurkje op in echte moderne sifer? Is dit sels mooglik, sels yn teory?

Yn 1998 antwurde de Switserske kryptograaf Daniel Bleichenbacher dizze fraach befêstigjend. Hy demonstrearre in orakeloanfal op it breed brûkte kryptosysteem foar iepenbiere kaaien RSA, mei in spesifyk berjochtskema. Yn guon RSA ymplemintaasje, de tsjinner reagearret mei ferskillende flater berjochten ôfhinklik fan oft de platte tekst oerienkomt mei it skema of net; dit wie genôch om de oanfal út te fieren.

Fjouwer jier letter, yn 2002, demonstrearre de Frânske kryptograaf Serge Vaudenay in orakeloanfal hast identyk oan dy beskreaun yn it Alice-senario hjirboppe - útsein dat hy ynstee fan in fiktyf sifer in hiele respektabele klasse moderne sifers bruts dy't minsken eins wurde brûkt. Benammen de oanfal fan Vaudenay is rjochte op fêste ynfiergrutte sifers ("bloksifers") as se brûkt wurde yn saneamde "CBC-fersiferingsmodus" en mei in bepaald populêr paddingskema, yn prinsipe lykweardich oan dy yn it Alice-senario.

Ek yn 2002, Amerikaanske kryptograaf John Kelsey - co-auteur Twa fisk - ferskate orakeloanfallen foarstelde op systemen dy't berjochten komprimearje en se dan fersiferje. De meast opfallende ûnder dizze wie in oanfal dy't profitearre fan it feit dat it faak mooglik is om de oarspronklike lingte fan 'e platte tekst ôf te lieden út' e lingte fan 'e sifertekst. Yn teory makket dit in orakeloanfal mooglik dy't dielen fan 'e orizjinele platte tekst herstelt.

Hjirûnder jouwe wy in mear detaillearre beskriuwing fan 'e Vaudenay- en Kelsey-oanfallen (wy sille in mear detaillearre beskriuwing fan' e Bleichenbacher-oanfal jaan as wy trochgean nei oanfallen op publike kaai-kryptografy). Nettsjinsteande ús bêste ynspannings wurdt de tekst wat technysk; dus as it boppesteande genôch is foar jo, skip de folgjende twa seksjes oer.

Vodene syn oanfal

Om de Vaudenay-oanfal te begripen, moatte wy earst wat mear prate oer bloksifers en fersiferingsmodi. In "bloksifer" is, lykas sein, in sifer dat in kaai en in ynfier fan in bepaalde fêste lingte ("bloklingte") nimt en in fersifere blok fan deselde lingte produsearret. Blok-sifers wurde in soad brûkt en wurde beskôge as relatyf feilich. De no pensjonearre DES, beskôge as de earste moderne sifer, wie in bloksifer. Lykas hjirboppe neamd, jildt itselde foar AES, dy't hjoeddedei in soad brûkt wurdt.

Spitigernôch, blok ciphers hawwe ien opfallende swakte. De typyske blokgrutte is 128 bits, of 16 karakters. Fansels fereasket moderne kryptografy wurkjen mei gruttere ynfiergegevens, en dit is wêr't fersiferingsmodi yn spiel komme. Fersiferingsmodus is yn essinsje in hack: it is in manier om op ien of oare manier in bloksiffer oan te passen dy't allinich ynfier fan in bepaalde grutte akseptearret foar ynfier fan in willekeurige lingte.

De oanfal fan Vodene is rjochte op 'e populêre operaasjemodus CBC (Cipher Block Chaining). De oanfal behannelet it ûnderlizzende bloksifer as in magysk, ûnferjitlik swarte doaze en omgiet har feiligens folslein.

Hjir is in diagram dat lit sjen hoe't CBC-modus wurket:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Kryptografyske oanfallen: in ferklearring foar betize geasten

De rûne plus jout de XOR (eksklusive OR) operaasje oan. Bygelyks, it twadde blok fan sifertekst wurdt ûntfongen:

  1. Troch in XOR-operaasje út te fieren op it twadde plattetekstblok mei it earste sifertekstblok.
  2. It resultearjende blok fersiferje mei in bloksifer mei in kaai.

Om't CBC sa swier gebrûk makket fan 'e binêre XOR-operaasje, litte wy efkes duorje om guon fan har eigenskippen te ûnthâlden:

  • Idempotinsje: Kryptografyske oanfallen: in ferklearring foar betize geasten
  • Kommutativiteit: Kryptografyske oanfallen: in ferklearring foar betize geasten
  • Associativity: Kryptografyske oanfallen: in ferklearring foar betize geasten
  • Self-reversibiliteit: Kryptografyske oanfallen: in ferklearring foar betize geasten
  • Byte count: byte n fan Kryptografyske oanfallen: in ferklearring foar betize geasten = (byte n fan Kryptografyske oanfallen: in ferklearring foar betize geasten) Kryptografyske oanfallen: in ferklearring foar betize geasten (byte n fan Kryptografyske oanfallen: in ferklearring foar betize geasten)

Typysk betsjutte dizze eigenskippen dat as wy in fergeliking hawwe mei XOR-operaasjes en ien ûnbekende, it kin wurde oplost. Bygelyks, as wy dat witte Kryptografyske oanfallen: in ferklearring foar betize geasten mei it ûnbekende Kryptografyske oanfallen: in ferklearring foar betize geasten en ferneamd Kryptografyske oanfallen: in ferklearring foar betize geasten и Kryptografyske oanfallen: in ferklearring foar betize geasten, dan kinne wy ​​fertrouwe op de boppeneamde eigenskippen hjirboppe te lossen de fergeliking foar Kryptografyske oanfallen: in ferklearring foar betize geasten. Troch it tapassen fan XOR oan beide kanten fan 'e fergeliking mei Kryptografyske oanfallen: in ferklearring foar betize geasten, Wy krije Kryptografyske oanfallen: in ferklearring foar betize geasten. Dit sil yn in momint allegear heul relevant wurde.

D'r binne twa lytse ferskillen en ien grut ferskil tusken ús Alice-senario en de oanfal fan Vaudenay. Twa lytsere:

  • Yn it skript ferwachte Alice dat gewoane teksten mei de karakters einigje a, bb, ccc ensafuorthinne. Yn 'e Wodene-oanfal ferwachtet it slachtoffer ynstee dat de platte teksten N kear mei de N byte einigje (dat is hexadesimale 01 of 02 02, of 03 03 03, ensfh.). Dit is suver in kosmetysk ferskil.
  • Yn it Alice-senario wie it maklik te fertellen oft Alice it berjocht akseptearre hie troch it antwurd "Ferkearde dummy-tekst." By de oanfal fan Vodene is mear analyze nedich en krekte ymplemintaasje oan 'e kant fan it slachtoffer is wichtich; mar lit ús foar de koartswylst it as in gegeven nimme dat dizze analyze noch mooglik is.

Main ferskil:

  • Om't wy net itselde kryptosysteem brûke, sil de relaasje tusken de troch oanfaller kontrolearre sifertekstbytes en de geheimen (kaai en platte tekst) fansels oars wêze. Dêrom sil de oanfaller in oare strategy moatte brûke by it meitsjen fan siferteksten en it ynterpretearjen fan serverantwurden.

Dit grutte ferskil is it lêste stikje fan 'e puzel om de Vaudenay-oanfal te begripen, dus litte wy in momint nimme om nei te tinken oer wêrom en hoe't in orakeloanfal op CBC op it earste plak kin wurde monteard.

Stel dat wy in CBC-sifertekst krije fan 247 blokken, en wy wolle it ûntsiferje. Wy kinne falske berjochten nei de tsjinner stjoere, lykas wy earder falske berjochten nei Alice koene stjoere. De tsjinner sil de berjochten foar ús ûntsiferje, mar sil de ûntsifering net sjen - ynstee, wer, lykas by Alice, sil de tsjinner mar ien bytsje ynformaasje rapportearje: oft de platte tekst jildige padding hat of net.

Tink derom dat wy yn it senario fan Alice de folgjende relaasjes hiene:

$$display$$text{SIMPLE_SUBSTITUTION}(tekst{ciphertext},tekst{key}) = tekst{plaintext}$$display$$

Litte wy dit "Alice's fergeliking" neame. Wy kontrolearren de sifertekst; de tsjinner (Alice) lekte vage ynformaasje oer de ûntfongen platte tekst; en dit tastien ús te ôfliede ynformaasje oer de lêste faktor - de kaai. Nei analogy, as wy sa'n ferbining fine kinne foar it CBC-skript, kinne wy ​​dêr ek wat geheime ynformaasje úthelje.

Gelokkich binne d'r echt relaasjes dy't wy kinne brûke. Beskôgje de útfier fan 'e definitive oprop om in bloksiffer te ûntsiferjen en dizze útfier oan te jaan as Kryptografyske oanfallen: in ferklearring foar betize geasten. Wy jouwe ek blokken fan platte tekst oan Kryptografyske oanfallen: in ferklearring foar betize geasten en sifertekstblokken Kryptografyske oanfallen: in ferklearring foar betize geasten. Sjoch nochris nei it CBC-diagram en besjoch wat der bart:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Litte wy dit de "CBC-fergeliking" neame.

Yn it senario fan Alice, troch de sifertekst te kontrolearjen en it korrespondearjende lekte tekst te sjen, koene wy ​​in oanfal ophelje dy't de tredde term yn 'e fergeliking weromhelle - de kaai. Yn it CBC-senario kontrolearje wy ek de sifertekst en observearje wy ynformaasjelekken op 'e oerienkommende platte tekst. As de analogy hâldt, kinne wy ​​krije ynformaasje oer Kryptografyske oanfallen: in ferklearring foar betize geasten.

Lit ús oannimme dat wy echt restaurearre Kryptografyske oanfallen: in ferklearring foar betize geasten, wat dan? No, dan kinne wy ​​it hiele lêste blok platte tekst yn ien kear printsje (Kryptografyske oanfallen: in ferklearring foar betize geasten), gewoan troch yn te gean Kryptografyske oanfallen: in ferklearring foar betize geasten (wat wy hawwe) en
ûntfongen Kryptografyske oanfallen: in ferklearring foar betize geasten yn 'e CBC-fergeliking.

No't wy optimistysk binne oer it algemiene plan fan oanfal, is it tiid om de details út te wurkjen. Soarch omtinken foar krekt hoe't plattetekstynformaasje op de tsjinner lekt wurdt. Yn it skript fan Alice is it lek bard om't Alice allinnich reagearret mei it juste berjocht as $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ einiget mei de rigel a (of bb, ensafuorthinne, mar de kâns dat dizze betingsten troch tafal ûntsteane wiene tige lyts). Fergelykber mei CBC akseptearret de tsjinner de padding as en allinich as Kryptografyske oanfallen: in ferklearring foar betize geasten einiget yn heksadesimale 01. Litte wy dus deselde trúk besykje: falske siferteksten ferstjoere mei ús eigen falske wearden Kryptografyske oanfallen: in ferklearring foar betize geastenoant de tsjinner it filling akseptearret.

As de tsjinner in padding akseptearret foar ien fan ús falske berjochten, betsjut dit dat:

Kryptografyske oanfallen: in ferklearring foar betize geasten

No brûke wy de byte-byte XOR-eigenskip:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Wy kenne de earste en tredde termen. En wy hawwe al sjoen dat dit makket it mooglik om te herstellen de oerbleaune term - de lêste byte út Kryptografyske oanfallen: in ferklearring foar betize geasten:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Dit jout ús ek de lêste byte fan it lêste platte tekstblok fia de CBC-fergeliking en it byte-by-byte-eigenskip.

Wy soene it der by litte kinne en tefreden wêze dat wy in oanfal op in teoretysk sterke sifer dien hawwe. Mar eins kinne wy ​​folle mear: wy kinne eins alle tekst weromhelje. Dit fereasket in trúk dy't net yn Alice's orizjinele skript wie en net nedich is foar de orakeloanfal, mar it is noch altyd it learen wurdich.

Om it te begripen, tink earst dat it resultaat fan it útfieren fan de juste wearde fan 'e lêste byte is Kryptografyske oanfallen: in ferklearring foar betize geasten wy hawwe in nij fermogen. No, by it smeden fan siferteksten, kinne wy ​​​​de lêste byte fan 'e oerienkommende platte tekst manipulearje. Nochris is dit relatearre oan de CBC-fergeliking en it byte-by-byte-eigenskip:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Sûnt wy no de twadde term kenne, kinne wy ​​ús kontrôle oer de earste brûke om de tredde te kontrolearjen. Wy berekkenje gewoan:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Wy koene dit earder net dwaan, om't wy de lêste byte noch net hiene Kryptografyske oanfallen: in ferklearring foar betize geasten.

Hoe sil dit ús helpe? Stel dat wy no alle siferteksten sa oanmeitsje dat yn de oerienkommende platte teksten de lêste byte gelyk is oan 02. De tsjinner akseptearret no allinnich padding as de platte tekst einiget mei 02 02. Om't wy de lêste byte korrizjearre hawwe, sil dit allinich barre as de foarlêste byte fan 'e platte tekst ek 02 is. Wy bliuwe falske sifertekstblokken ferstjoere, de foarlêste byte feroarje, oant de tsjinner de padding foar ien fan har akseptearret. Op dit punt krije wy:

Kryptografyske oanfallen: in ferklearring foar betize geasten

En wy restaurearje de foarlêste byte Kryptografyske oanfallen: in ferklearring foar betize geasten krekt as de lêste waard restaurearre. Wy geane yn deselde geast troch: wy korrigearje de lêste twa bytes fan 'e platte tekst nei 03 03, Wy werhelje dizze oanfal foar de tredde byte fan 'e ein en sa fierder, úteinlik folslein weromsette Kryptografyske oanfallen: in ferklearring foar betize geasten.

Hoe sit it mei de rest fan de tekst? Tink derom dat de wearde Kryptografyske oanfallen: in ferklearring foar betize geasten is eins $inline$text{BLOCK_DECRYPT}(tekst{key},C_{247})$inline$. Wy kinne pleatse eltse oare blok ynstee Kryptografyske oanfallen: in ferklearring foar betize geasten, en de oanfal sil noch suksesfol wêze. Eins kinne wy ​​de tsjinner freegje om $inline$text{BLOCK_DECRYPT}$inline$ te dwaan foar alle gegevens. Op dit punt is it spultsje foarby - wy kinne elke sifertekst ûntsiferje (sjoch nochris nei it CBC-ûntsiferingsdiagram om dit te sjen; en merk op dat de IV iepenbier is).

Dizze bepaalde metoade spilet in krúsjale rol yn 'e orakeloanfal dy't wy letter sille tsjinkomme.

Kelsey syn oanfal

Us noflike John Kelsey lei de prinsipes út dy't in protte mooglike oanfallen ûnderlizze, net allinich de details fan in spesifike oanfal op in spesifike sifer. Syn 2002 artikel fan it jier is in stúdzje fan mooglike oanfallen op fersifere komprimearre gegevens. Tochten jo dat de ynformaasje dat de gegevens komprimearre waarden foardat fersifering net genôch wie om in oanfal út te fieren? It docht bliken dat it genôch is.

Dit ferrassende resultaat komt troch twa prinsipes. Earst is der in sterke korrelaasje tusken de lingte fan de platte tekst en de lingte fan de sifertekst; foar in protte sifers eksakte gelikensens. Twad, as kompresje wurdt útfierd, is der ek in sterke korrelaasje tusken de lingte fan it komprimearre berjocht en de graad fan "noisiness" fan de platte tekst, dat is, it oanpart fan net-werheljende tekens (de technyske term is "hege entropy" ).

Om it prinsipe yn aksje te sjen, beskôgje twa platte teksten:

Plaintekst 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Plaintekst 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Litte wy oannimme dat beide platte teksten wurde komprimearre en dan fersifere. Jo krije twa resultearjende siferteksten en moatte riede hokker sifertekst oerienkomt mei hokker platte tekst:

Sifertekst 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

Sifertekst 2: DWKJZXYU

It antwurd is dúdlik. Under de platte teksten koe allinnich platte tekst 1 yn de meagere lingte fan de twadde sifertekst komprimearre wurde. Wy hawwe dit útfûn sûnder wat te witten oer it kompresjealgoritme, de fersiferingskaai, of sels it sifer sels. Yn ferliking mei de hiërargy fan mooglike kryptografyske oanfallen is dit in soarte fan gek.

Kelsey wiist der fierder op dat ûnder bepaalde ûngewoane omstannichheden dit prinsipe ek brûkt wurde kin om in orakeloanfal út te fieren. Yn it bysûnder beskriuwt it hoe't in oanfaller de geheime platte tekst weromhelje kin as hy de tsjinner twinge kin om de formuliergegevens te fersiferjen (de platte tekst folge troch Kryptografyske oanfallen: in ferklearring foar betize geastenwylst hy yn kontrôle hat Kryptografyske oanfallen: in ferklearring foar betize geasten en kin op ien of oare manier de lingte fan it fersifere resultaat kontrolearje.

Nochris, lykas oare orakeloanfallen, hawwe wy de relaasje:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Nochris, wy kontrolearje ien term (Kryptografyske oanfallen: in ferklearring foar betize geasten), sjogge wy in lyts lek fan ynformaasje oer in oar lid (sifertekst) en besykje de lêste werom te heljen (plaintext). Nettsjinsteande de analogy is dit in wat ûngewoane situaasje yn ferliking mei oare orakeloanfallen dy't wy hawwe sjoen.

Om te yllustrearjen hoe't sa'n oanfal kin wurkje, litte wy in fiktyf kompresjeskema brûke dat wy krekt kamen mei: TOYZIP. It siket nei rigels mei tekst dy't earder yn 'e tekst ferskynden en ferfangt se mei trije plakhâlderbytes dy't oanjaan wêr't in earder eksimplaar fan 'e rigel te finen is en hoefolle kearen it dêr ferskynt. Bygelyks, de line helloworldhello kin wurde komprimearre yn helloworld[00][00][05] 13 bytes lang yn ferliking mei de oarspronklike 15 bytes.

Stel dat in oanfaller besiket de platte tekst fan in formulier werom te heljen password=..., wêr't it wachtwurd sels ûnbekend is. Neffens Kelsey's oanfalsmodel koe in oanfaller de tsjinner freegje om formulierberjochten te komprimearjen en dan te fersiferjen (plaintext folge troch Kryptografyske oanfallen: in ferklearring foar betize geasten) wêr Kryptografyske oanfallen: in ferklearring foar betize geasten - frije tekst. As de tsjinner klear is mei wurkjen, rapportearret it de lingte fan it resultaat. De oanfal giet sa:

Ynbreker: Komprimearje en fersiferje de platte tekst asjebleaft sûnder opfolling.

Tsjinner: Resultaatlengte 14.

Ynbreker: Komprimearje en fersiferje asjebleaft de platte tekst dêr't is taheakke password=a.

Tsjinner: Resultaatlengte 18.

De cracker notysjes: [orizjinele 14] + [trije bytes dy't ferfongen password=] + a

Ynbreker: Komprimearje en fersiferje asjebleaft de platte tekst dêr't oan tafoege wurdt password=b.

Tsjinner: Resultaatlengte 18.

Ynbreker: Komprimearje en fersiferje asjebleaft de platte tekst dêr't oan tafoege wurdt password=с.

Tsjinner: Resultaatlengte 17.

De cracker notysjes: [orizjinele 14] + [trije bytes dy't ferfongen password=c]. Dit giet derfan út dat de oarspronklike platte tekst de tekenrige befettet password=c. Dat is, it wachtwurd begjint mei in letter c

Ynbreker: Komprimearje en fersiferje asjebleaft de platte tekst dêr't oan tafoege wurdt password=сa.

Tsjinner: Resultaatlengte 18.

De cracker notysjes: [orizjinele 14] + [trije bytes dy't ferfongen password=с] + a

Ynbreker: Komprimearje en fersiferje asjebleaft de platte tekst dêr't oan tafoege wurdt password=сb.

Tsjinner: Resultaatlengte 18.

(... In skoftke letter...)

Ynbreker: Komprimearje en fersiferje asjebleaft de platte tekst dêr't oan tafoege wurdt password=со.

Tsjinner: Resultaatlengte 17.

De cracker notysjes: [orizjinele 14] + [trije bytes dy't ferfongen password=co]. Mei deselde logika konkludearret de oanfaller dat it wachtwurd begjint mei de letters co

En sa fierder oant it hiele wachtwurd is weromset.

De lêzer soe ferjûn wurde om te tinken dat dit in suver akademyske oefening is en dat sa'n oanfalsscenario nea ûntstean soe yn 'e echte wrâld. Och, sa't wy gau sille sjen, is it better net te jaan op kryptografy.

Merkkwetsberheden: CRIME, POODLE, DROWN

Uteinlik, nei it studearjen fan 'e teory yn detail, kinne wy ​​sjen hoe't dizze techniken wurde tapast yn real-life kryptografyske oanfallen.

MISDIE

Kryptografyske oanfallen: in ferklearring foar betize geastenAs de oanfal rjochte is op de browser en netwurk fan it slachtoffer, sille guon makliker wêze en guon dreger. It is bygelyks maklik om it ferkear fan it slachtoffer te sjen: sit gewoan by him yn itselde kafee mei WiFi. Om dizze reden wurde potinsjele slachtoffers (dus elkenien) algemien advisearre om in fersifere ferbining te brûken. It sil dreger wêze, mar noch altyd mooglik, om HTTP-oanfragen út namme fan it slachtoffer te meitsjen nei in side fan tredden (bygelyks Google). De oanfaller moat it slachtoffer nei in kweade webside lokje mei in skript dat it fersyk makket. De webblêder sil automatysk it korrespondearjende sesje-cookie leverje.

Dit liket geweldich. As Bob gie nei evil.com, koe it skript op dizze side Google gewoan freegje om it wachtwurd fan Bob nei te stjoeren [email protected]? No, yn teory ja, mar yn werklikheid nee. Dit senario wurdt in cross-site request forgery oanfal neamd (Cross-Site Fersyk ferfalsking, CSRF), en it wie populêr om 'e midden fan' e jierren '90. Hjoed as evil.com besiket dizze trúk, Google (as elke webside dy't sels respektearret) sil normaal reagearje mei, "Geweldich, mar jo CSRF-token foar dizze transaksje sil wêze ... um ... три триллиона и семь. Werhelje dit nûmer asjebleaft." Moderne browsers hawwe wat neamd in "selde-origin belied" wêrby't skripts op side A gjin tagong hawwe ta ynformaasje ferstjoerd troch webside B. Dus it skript op evil.com kinne fersiken stjoere nei google.com, mar kin de antwurden net lêze of de transaksje eins foltôgje.

Wy moatte beklamje dat, útsein as Bob in fersifere ferbining brûkt, al dizze beskermingen sinleas binne. In oanfaller kin it ferkear fan Bob gewoan lêze en it sesjekoekje fan Google weromhelje. Mei dit koekje sil hy gewoan in nije Google-ljepper iepenje sûnder syn eigen browser te ferlitten en Bob foar te dwaan sûnder ferfelend belied fan deselde oarsprong tsjin te kommen. Mar, spitigernôch foar in ynbrekker, wurdt dit hieltyd minder. It ynternet as gehiel hat lang de oarloch ferklearre oan net-fersifere ferbiningen, en Bob's útgeande ferkear is wierskynlik fersifere, oft hy it leuk fynt of net. Dêrneist, fan it begjin fan de útfiering fan it protokol, ferkear wie ek ynkrompen foardat fersifering; dit wie gewoane praktyk om latency te ferminderjen.

Dit is wêr it komt yn toanielstik MISDIE (Compression Ratio Infoleak Made Easy, ienfâldige lekkage troch de kompresjeferhâlding). De kwetsberens waard yn septimber 2012 iepenbiere troch feiligensûndersikers Juliano Rizzo en Thai Duong. Wy hawwe al analysearre de hiele teoretyske basis, dat makket it mooglik om te begripen wat se diene en hoe. In oanfaller koe Bob syn blêder twinge om fersiken te stjoeren nei Google en dan harkje nei de antwurden op it lokale netwurk yn in komprimearre, fersifere foarm. Dêrom hawwe wy:

Kryptografyske oanfallen: in ferklearring foar betize geasten

Hjir kontrolearret de oanfaller it fersyk en hat tagong ta de ferkearssnuffer, ynklusyf de pakketgrutte. Kelsey's fiktive senario kaam ta libben.

Begryp fan 'e teory, makken de auteurs fan CRIME in eksploitaasje dy't sesjekoekjes stelle kin foar in breed oanbod fan siden, ynklusyf Gmail, Twitter, Dropbox en Github. De kwetsberens beynfloede de measte moderne webbrowsers, wat resultearre yn patches dy't frijlitten wurde dy't de kompresjefunksje yn SSL stil begroeven, sadat it hielendal net brûkt wurde soe. De ienige beskerme tsjin de kwetsberens wie de earbiedweardige Internet Explorer, dy't noait SSL-kompresje brûkte.

POEDEL

Kryptografyske oanfallen: in ferklearring foar betize geastenYn oktober 2014 makke it Google-befeiligingsteam weagen yn 'e feiligensmienskip. Se koene in kwetsberens brûke yn it SSL-protokol dat mear dan tsien jier lyn wie patched.

It docht bliken dat wylst de tsjinners rinne de shiny nije TLSv1.2, in protte hawwe ferliet stipe foar de legacy SSLv3 foar efterút komptabiliteit mei Internet Explorer 6. Wy hawwe al praat oer downgrade oanfallen, dus jo kinne yntinke wat der bart. In goed orkestrearre sabotaazje fan it handshakeprotokol en de servers binne ree om werom te gean nei goede âlde SSLv3, yn essinsje de lêste 15 jier fan befeiligingsûndersyk ûngedien te meitsjen.

Foar histoaryske kontekst, hjir is in koarte gearfetting fan 'e skiednis fan SSL oant ferzje 2 fan Matthew Green:

Transport Layer Security (TLS) is it wichtichste befeiligingsprotokol op it ynternet. [..] hast elke transaksje dy't jo meitsje op it ynternet hinget ôf fan TLS. [..] Mar TLS wie net altyd TLS. It protokol begûn syn libben yn Netscape Communications neamd "Secure Sockets Layer" of SSL. Geroften hawwe it dat de earste ferzje fan SSL sa ferskriklik wie dat de ûntwikkelders alle printsjes fan 'e koade sammele en se begroeven yn in geheime stoart yn Nij-Meksiko. As gefolch is de earste iepenbier beskikbere ferzje fan SSL eins ferzje SSL 2. It is aardich eng, en [..] it wie in produkt fan 'e midden fan' e jierren '90, dy't moderne kryptografen beskôgje as "tsjustere tiden fan kryptografy" In protte fan 'e meast ôfgryslike kryptografyske oanfallen dy't wy hjoed kenne binne noch net ûntdutsen. As gefolch dêrfan waarden de ûntwikkelders fan it SSLv2-protokol yn essinsje oerlitten om har wei yn it tsjuster te fummeljen, en se konfrontearren in protte ferskriklike meunsters - ta har fertriet en ús foardiel, om't de oanfallen op SSLv2 ûnskatbere wearde lessen litte foar de folgjende generaasje protokollen.

Nei dizze barrens, yn 1996, hat in frustrearre Netscape it SSL-protokol fanôf it begjin opnij ûntworpen. It resultaat wie SSL ferzje 3, dy't ferskate bekende feiligensproblemen fan syn foargonger repareare.

Gelokkich foar ynbrekkers betsjut "in pear" net "allegear". Oer it algemien levere SSLv3 alle nedige boublokken om in Vodene-oanfal te starten. It protokol brûkt in CBC modus blok cipher en in ûnfeilich padding skema (dit waard korrizjearre yn TLS; fandêr de needsaak foar in downgrade oanfal). As jo ​​​​it paddingskema ûnthâlde yn ús orizjinele beskriuwing fan 'e Vaudenay-oanfal, is it SSLv3-skema heul gelyk.

Mar, spitigernôch foar ynbrekkers, betsjut "fergelykber" net "identyk". It SSLv3-paddingskema is "N willekeurige bytes folge troch it nûmer N". Besykje, ûnder dizze betingsten, in tinkbyldich blok fan sifertekst te selektearjen en gean troch alle stappen fan it orizjinele skema fan Vaudene: jo sille fine dat de oanfal mei súkses de lêste byte út it oerienkommende blok fan platte tekst ekstrahearret, mar net fierder giet. It ûntsiferjen fan elke 16e byte fan 'e sifertekst is in geweldige trúk, mar it is gjin oerwinning.

Te krijen mei mislearring, naam it Google-team in lêste ynstânsje: se skeakelen oer nei in machtiger bedrigingsmodel - dat brûkt wurdt yn CRIME. Oannommen dat de oanfaller in skript is dat rint yn 'e ljepper fan' e blêder fan it slachtoffer en kin sesjekoekjes ekstrahearje, is de oanfal noch altyd yndrukwekkend. Wylst it bredere bedrigingsmodel minder realistysk is, seagen wy yn 'e foarige seksje dat dit bepaalde model mooglik is.

Sjoen dizze machtiger oanfallermooglikheden kin de oanfal no trochgean. Tink derom dat de oanfaller wit wêr't it fersifere sesjekoekje yn 'e koptekst ferskynt en kontrolearret de lingte fan it HTTP-fersyk dat dêrfoar foarkomt. Dêrom is it yn steat om it HTTP-fersyk te manipulearjen sadat de lêste byte fan it koekje ôfstimd is mei it ein fan it blok. No is dizze byte geskikt foar dekodearring. Jo kinne gewoan ien karakter tafoegje oan it fersyk, en de foarlêste byte fan it koekje sil op itselde plak bliuwe en is geskikt foar seleksje mei deselde metoade. De oanfal giet op dizze manier troch oant it koekjebestân folslein weromset is. It hjit POODLE: Padding Oracle on Downgraded Legacy Encryption.

DROWN

Kryptografyske oanfallen: in ferklearring foar betize geastenLykas wy neamden, hie SSLv3 syn gebreken, mar it wie fûneminteel oars as syn foargonger, om't de lekkende SSLv2 in produkt wie fan in oar tiidrek. Dêr kinne jo it berjocht yn 't midden ûnderbrekke: соглашусь на это только через мой труп feroare yn соглашусь на это; de klant en tsjinner koenen online moetsje, fertrouwen fêstigje en geheimen útwikselje foar de oanfaller, dy't dan beide maklik foardwaan koe. D'r is ek it probleem mei eksportkryptografy, dy't wy neamden by it beskôgjen fan FREAK. Dit wiene kryptografyske Sodom en Gomorra.

Yn maart 2016 kaam in team fan ûndersikers út ferskate technyske fjilden byinoar en makke in ferrassende ûntdekking: SSLv2 wurdt noch altyd brûkt yn feiligenssystemen. Ja, oanfallers koene moderne TLS-sesjes net mear downgrade nei SSLv2, om't dat gat ticht waard nei FREAK en POODLE, mar se kinne noch ferbine mei servers en sels SSLv2-sesjes begjinne.

Jo kinne freegje, wêrom skele wy oer wat se dêr dogge? Se hawwe in kwetsbere sesje, mar it soe gjin ynfloed hawwe op oare sesjes of de feiligens fan 'e tsjinner - krekt? No, net hielendal. Ja, sa moat it yn teory. Mar nee - om't it generearjen fan SSL-sertifikaten in bepaalde lêst opleit, wat resulteart yn in protte servers dy't deselde sertifikaten brûke en, as gefolch, deselde RSA-kaaien foar TLS- en SSLv2-ferbiningen. Om saken slimmer te meitsjen, troch in OpenSSL-bug, wurke de opsje "SSLv2 útskeakelje" yn dizze populêre SSL-ymplemintaasje net echt.

Dit makke mooglik in cross-protokol oanfal op TLS, neamd DROWN (RSA ûntsiferje mei ferâldere en ferswakke fersifering, RSA ûntsiferje mei ferâldere en ferswakke fersifering). Tink derom dat dit net itselde is as in koarte oanfal; de oanfaller hoecht net te hanneljen as in "man yn 'e midden" en hoecht de kliïnt net te belûken om diel te nimmen oan in ûnfeilige sesje. Oanfallers begjinne gewoan in ûnfeilige SSLv2-sesje mei de tsjinner sels, oanfalle it swakke protokol, en helje de RSA-privee-kaai fan de tsjinner werom. Dizze kaai is ek jildich foar TLS-ferbiningen, en fan dit punt ôf sil gjin bedrach fan TLS-feiligens foarkomme dat it kompromitteare wurdt.

Mar om it te kraken, hawwe jo in wurkjende oanfal nedich tsjin SSLv2, wêrtroch jo net allinich spesifyk ferkear kinne weromhelje, mar ek de geheime RSA-tsjinnerkaai. Hoewol dit in komplekse opset is, koene de ûndersikers elke kwetsberens kieze dy't folslein sletten wie nei SSLv2. Se fûnen úteinlik in gaadlike opsje: de Bleichenbacher-oanfal, dy't wy earder neamden en dy't wy yn it folgjende artikel yn detail sille útlizze. SSL en TLS binne beskerme tsjin dizze oanfal, mar guon willekeurige funksjes fan SSL, kombinearre mei koarte kaaien yn eksport-grade kryptografy, makken it mooglik in spesifike útfiering fan DROWN.

Op it momint fan publikaasje waarden 25% fan 'e topsides fan it ynternet beynfloede troch de DROWN-kwetsberens, en de oanfal koe wurde útfierd mei beskieden boarnen beskikber foar sels mislike iensume hackers. It opheljen fan de RSA-kaai fan de tsjinner easke acht oeren fan berekkening en $ 440, en SSLv2 gie fan ferâldere nei radioaktyf.

Wachtsje, hoe sit it mei Heartbleed?

Dit is gjin kryptografyske oanfal yn 'e hjirboppe beskreaune betsjutting; Dit is in buffer oerstreaming.

Lit ús skoft hâlde

Wy begûnen mei wat basistechniken: brute krêft, ynterpolaasje, downgrading, cross-protokol, en precomputation. Dêrnei seagen wy nei ien avansearre technyk, faaks de wichtichste komponint fan moderne kryptografyske oanfallen: de orakeloanfal. Wy hawwe nochal wat tiid bestege om it út te finen - en begrepen net allinich it ûnderlizzende prinsipe, mar ek de technyske details fan twa spesifike ymplemintaasjes: de Vaudenay-oanfal op 'e CBC-fersiferingsmodus en de Kelsey-oanfal op pre-kompresje-fersiferingsprotokollen.

By it beoardieljen fan downgrade- en precomputation-oanfallen, hawwe wy koart de FREAK-oanfal sketst, dy't beide metoaden brûkt troch doelsites te downgraden nei swakke kaaien en dan deselde kaaien opnij te brûken. Foar it folgjende artikel sille wy de (hiel ferlykbere) Logjam-oanfal opslaan, dy't rjochte is op iepenbiere kaai-algoritmen.

Wy hawwe doe noch trije foarbylden sjoen fan de tapassing fan dizze prinsipes. Earst, CRIME en POODLE: twa oanfallen dy't fertrouden op it fermogen fan 'e oanfaller om willekeurige platte tekst neist de platte tekst fan it doel te ynjeksje, ûndersiikje dan de antwurden fan 'e tsjinner en dan, mei help fan orakel-oanfalmetoadyk, eksploitearje dizze sparse ynformaasje om de platte tekst foar in part werom te heljen. CRIME gie de rûte fan Kelsey's oanfal op SSL-kompresje, wylst POODLE ynstee in fariant fan Vaudenay's oanfal op CBC brûkte mei itselde effekt.

Wy hawwe doe ús oandacht rjochte op 'e cross-protokol DROWN-oanfal, dy't in ferbining makket mei de tsjinner mei it legacy SSLv2-protokol en dan de geheime kaaien fan' e tsjinner herstelt mei de Bleichenbacher-oanfal. Wy hawwe de technyske details fan dizze oanfal foar no oerslein; lykas Logjam, sil it wachtsje moatte oant wy in goed begryp hawwe fan kryptosystemen foar publike kaaien en har kwetsberens.

Yn it folgjende artikel sille wy prate oer avansearre oanfallen lykas meet-in-the-midden, differinsjaal krypto-analyze en jierdei oanfallen. Litte wy in rappe tocht nimme yn oanfallen op side-kanaal, en gean dan troch nei it leuke diel: kryptosystemen foar iepenbiere kaaien.

Boarne: www.habr.com

Add a comment