Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

By die woord "kriptografie" onthou sommige mense hul WiFi-wagwoord, die groen hangslot langs die adres van hul gunsteling webwerf, en hoe moeilik dit is om in iemand anders se pos te kom. Ander onthou 'n reeks kwesbaarhede in onlangse jare met sprekende afkortings (DROWN, FREAK, POODLE ...), stylvolle logo's en 'n waarskuwing om die blaaier dringend op te dateer.

Kriptografie dek dit alles, maar essensie van in 'n ander. Dit is 'n fyn lyn tussen eenvoudig en kompleks. Sommige dinge is maklik om te doen, maar moeilik om terug te sit, soos om 'n eier te kraak. Ander dinge is maklik om te doen, maar moeilik om terug te sit wanneer 'n klein kritieke stukkie ontbreek: soos om 'n geslote deur oop te maak wanneer die "kritieke stuk" die sleutel is. Kriptografie bestudeer hierdie situasies en hoe dit prakties gebruik kan word.

In onlangse jare het die versameling kriptografiese aanvalle 'n dieretuin geword van spoggerige logo's propvol formules uit wetenskaplike artikels, en het aanleiding gegee tot 'n algemene grimmige gevoel dat alles stukkend is. Maar in werklikheid is baie van die aanvalle gebaseer op 'n paar algemene beginsels, en eindelose bladsye van formules kom dikwels neer op maklik verstaanbare idees.

In hierdie reeks artikels gaan ons kyk na die verskillende tipes kriptografiese aanvalle, met die fokus op die basiese beginsels. In algemene terme en nie heeltemal in daardie volgorde nie, maar ons sal die volgende dek:

  • Basiese strategieë: brute force, frekwensie-analise, interpolasie, afgradering en kruisprotokolle.
  • "Gemerkte" kwesbaarhede: FREAK, MISDAAD, POEDEL, VERdrink, Logjam.
  • Gevorderde strategieë: orakelaanvalle (Waudenay-aanval, Kelsey-aanval); ontmoeting-in-die-middel-metode, verjaardagaanval, statistiese vooroordeel (differensiële kriptanalise, integrale kripanalise, ens.).
  • Sykanaalaanvalle en hul naasbestaandes, mislukkingsanalisemetodes.
  • Aanvalle op publieke sleutel kriptografie: kubuswortel, uitsending, gekoppelde boodskap, Coppersmith-aanval, Polig-Hellman-algoritme, numeriese sif, Wiener-aanval, Bleichenbacher-aanval.

Hierdie spesifieke artikel dek die bogenoemde materiaal tot en met die Kelsey-aanval.

Basiese strategieë

Die volgende aanvalle is eenvoudig in die sin dat hulle amper heeltemal verduidelik kan word sonder te veel tegniese detail. Kom ons verduidelik elke tipe aanval in die eenvoudigste terme, sonder om in komplekse voorbeelde of gevorderde gebruiksgevalle in te gaan.

Sommige van hierdie aanvalle is grootliks verouderd en is vir baie jare nie gebruik nie. Ander is outydse mense wat in die 21ste eeu nog gereeld niksvermoedende kriptostelsel-ontwikkelaars insluip. Ons kan oorweeg dat die era van moderne kriptografie begin het met die koms van IBM DES - die eerste syfer wat al die aanvalle in hierdie lys weerstaan ​​het.

Eenvoudige brute krag

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesDie enkripsieskema bestaan ​​uit twee dele: 1) 'n enkripsiefunksie wat 'n boodskap (plaintext) in kombinasie met 'n sleutel neem, en dan 'n geënkripteerde boodskap skep - ciphertext; 2) 'n dekripsiefunksie wat 'n syferteks en 'n sleutel neem en die gewone teks produseer. Beide enkripsie en dekripsie moet maklik wees om met die sleutel te bereken - en moeilik daarsonder.

Gestel ons sien 'n syferteks en probeer dit dekripteer sonder enige bykomende inligting (dit word 'n syferteks-alleen-aanval genoem). As ons op een of ander manier die korrekte sleutel vind, kan ons maklik verifieer dat dit wel korrek is as die resultaat 'n redelike boodskap is.

Let daarop dat daar twee implisiete aannames hier is. Eerstens, dat ons weet hoe om dekripsie uit te voer, dit wil sê hoe 'n kriptostelsel werk. Dit is 'n standaard aanname wanneer kriptografie bespreek word. Om die implementeringsbesonderhede van 'n syfer vir aanvallers weg te steek, kan dalk na 'n bykomende sekuriteitsmaatreël lyk, maar sodra 'n aanvaller hierdie besonderhede leer, gaan hierdie bykomende sekuriteit onmerkbaar en onomkeerbaar verlore. Sulke Kerchhoff se beginsel: val in die hande van die vyand behoort nie ongerief te veroorsaak nie.

Tweedens neem ons aan dat die korrekte sleutel die enigste sleutel is wat tot 'n redelike dekripsie sal lei. Dit is ook 'n redelike aanname; dit geld as die syferteks baie langer as die sleutel is en goed leesbaar is. As 'n reël is dit wat in die regte wêreld gebeur, met die uitsondering van groot onpraktiese sleutels of ander skelmstreke wat die beste eenkant gelos word (As jy nie daarvan hou dat ons verduidelikings afgeskud het nie, sien asseblief Stelling 3.8 hier).

Gegewe bogenoemde, ontstaan ​​'n strategie: kontroleer elke moontlike sleutel. Dit word brute force genoem, en so 'n aanval sal gewaarborg teen alle praktiese syfers werk - uiteindelik. Byvoorbeeld, brute krag is genoeg om te hack caesar syfer, 'n antieke syfer waar die sleutel een letter uit die alfabet is, wat net meer as 20 moontlike sleutels impliseer.

Ongelukkig vir kriptanaliste is die verhoging van die sleutelgrootte 'n goeie verdediging teen brute krag. Soos die sleutelgrootte groei, neem die aantal moontlike sleutels eksponensieel toe. Met vandag se sleutelgroottes is eenvoudige brute krag heeltemal onprakties. Om te sien wat ons bedoel, kom ons neem die vinnigste bekende superrekenaar vanaf middel 2019: Summit van IBM, met 'n topprestasie van ongeveer 1017 bewerkings per sekonde. Vandag is die tipiese sleutellengte 128 bisse, wat 2128 moontlike kombinasies beteken. Dit sal die Summit-superrekenaar ongeveer 7800 XNUMX keer die ouderdom van die heelal neem om deur al die sleutels te sorteer.

Moet brute geweld as 'n historiese nuuskierigheid beskou word? Glad nie: dit is 'n noodsaaklike bestanddeel in die kripanalise-kookboek. Selde is syfers so swak dat dit slegs deur 'n slim aanval gebreek kan word, sonder die gebruik van geweld tot 'n mate. Baie suksesvolle hacks gebruik eers 'n algoritmiese metode om die teikensyfer te verswak en dit dan brutaal te dwing.

frekwensie-analise

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesDie meeste van die lirieke is nie brabbeltaal nie. Byvoorbeeld, in Engelse tekste is daar baie letters 'e' en artikels 'die'; in binêre lêers, baie nulgrepe as 'n plekhouer tussen stukke inligting. Frekwensie-analise is enige aanval wat hierdie feit uitbuit.

Die kanonieke voorbeeld van 'n syfer wat kwesbaar is vir hierdie aanval, is 'n eenvoudige vervangingssyfer. In hierdie syfer is die sleutel 'n tabel met die vervanging van alle letters. Byvoorbeeld, 'g' word 'h', 'o' word j, so die woord 'gaan' word 'hj'. Hierdie syfer is moeilik om brute-force te maak omdat daar soveel moontlike vervangingstabelle is. As jy in wiskunde belangstel, is die effektiewe sleutellengte ongeveer 88 bisse: dit is
Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Maar frekwensie-analise kry gewoonlik die werk vinnig gedoen.

Beskou die volgende syferteks wat met 'n eenvoudige vervangingssyfer verwerk is:

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

Sedert Y gereeld voorkom, insluitend aan die einde van baie woorde, kan ons voorlopig aanvaar dat dit 'n letter is e:

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

Paartjie XD herhaal aan die begin van verskeie woorde. Veral die kombinasie XDeLe impliseer duidelik die woord these of thereso kom ons gaan voort:

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

Volgende, veronderstel dit L соответствует r, A - a en so aan. Dit sal waarskynlik verskeie pogings neem, maar in vergelyking met 'n volle brute krag aanval, herstel hierdie aanval die oorspronklike teks in die kortste moontlike tyd:

daar is meer dinge in die hemel en aarde horatio as waarvan jy droom in jou filosofie

Vir sommige is die oplossing van sulke "kriptogramme" 'n opwindende stokperdjie.

Die idee van frekwensie-analise is meer fundamenteel as wat dit met die eerste oogopslag lyk. En dit geld vir baie meer komplekse syfers. Deur die geskiedenis heen het verskeie syferontwerpe gepoog om so 'n aanval met "polialfabetiese vervanging" teë te werk. Hier, tydens die enkripsieproses, word die lettervervangingstabel op komplekse maar voorspelbare maniere gewysig wat van die sleutel afhang. Al hierdie syfers was eens as moeilik om te kraak beskou; en tog het 'n beskeie frekwensie-analise hulle almal uiteindelik oorweldig.

Die mees ambisieuse polyalfabetiese syfer in die geskiedenis, en waarskynlik die bekendste, was die Enigma-syfer in die Tweede Wêreldoorlog. Dit was relatief kompleks in vergelyking met sy voorgangers, maar as gevolg van lang en harde werk het Britse kripto-ontleders dit met frekwensie-analise gekraak. Natuurlik het hulle nie daarin geslaag om 'n elegante aanval te ontwikkel soos die een hierbo gewys nie; hulle moes bekende pare van gewone tekste en syfertekste vergelyk (die sogenaamde “plaintext-aanval”) en selfs Enigma-gebruikers uitlok om sekere boodskappe te enkripteer en die resultaat te ontleed (“gekose gewone teksaanval”). Maar dit het nie die lot van die verslane vyandelike leërs en gesinkte duikbote verlig nie.

Na hierdie triomf het frekwensie-analise uit die geskiedenis van kriptanalise verdwyn. Die syfers van die moderne digitale era is ontwerp om met stukkies te werk, nie letters nie. Nog belangriker, hierdie syfers is ontwerp met die grimmige begrip van wat later bekend geword het Schneier se wet: enigiemand kan 'n enkripsie-algoritme skep wat hulle self nie kan kraak nie. Dit is nie genoeg dat die enkripsiestelsel gelyk het moeilik: om die waarde daarvan te bewys, moet dit 'n meedoënlose sekuriteitsoorsig deur baie kriptanaliste slaag wat hul bes sal doen om die syfer te breek.

Voorafberekeninge

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesNeem die hipotetiese stad Precom Heights, met 'n bevolking van 200 000. Elke huis in die stad hou waardevolle items ter waarde van gemiddeld $30 000, maar nie meer as $50 000. Die sekuriteitsmark in Precom is gemonopoliseer deur ACME Industries, wat die legendariese Coyote™-klas deurslotte maak. Volgens deskundige ontleding kan slegs 'n baie komplekse hipotetiese masjien, wat sowat vyf jaar en 'n belegging van $50 000 benodig, 'n Coyote-klas slot breek. Is die stad veilig?

Heel waarskynlik nee. Op die ou end sal 'n voldoende ambisieuse misdadiger verskyn. Hy sal so redeneer: “Ja, ek sal groot voorafkoste aangaan. Vyf jaar se geduldige wag, en $50 000. Maar aan die einde van die werk sal ek toegang hê tot vir al die rykdom van hierdie stad. As ek my kaarte reg speel, sal hierdie belegging baie keer terugbetaal.”

Dieselfde geld vir kriptografie. Aanvalle teen 'n bepaalde syfer word aan genadelose koste-voordeel-analise onderwerp. As die verhouding gunstig is, sal die aanval nie plaasvind nie. Maar aanvalle wat teen baie potensiële slagoffers tegelyk werk, betaal byna altyd vrugte, in welke geval die beste ontwerppraktyk is om aan te neem dat hulle van dag een af ​​begin het. Ons het in wese 'n kriptografiese weergawe van Murphy se wet: "Enigiets wat werklik die stelsel kan breek, sal die stelsel breek."

Die eenvoudigste voorbeeld van 'n kriptostelsel wat kwesbaar is vir 'n voorafberekening aanval is 'n syfer met 'n konstante algoritme sonder om 'n sleutel te gebruik. Dit was die geval met Caesar se syfer, wat elke letter van die alfabet eenvoudig drie letters vorentoe skuif (die tabel is lus, dus word die laaste letter in die alfabet as die derde geïnkripteer). Hier kom die beginsel van Kerchhoffs weer ter sprake: as 'n stelsel eers gebreek is, is dit vir altyd gebreek.

Die konsep is eenvoudig. Selfs 'n beginner kriptostelsel-ontwikkelaar sal waarskynlik die bedreiging herken en dienooreenkomstig voorberei. As ons na die evolusie van kriptografie kyk, was sulke aanvalle nie in plek vir die meeste syfers nie, van die eerste verbeterde weergawes van die Caesar-syfer tot die afname van poli-alfabetiese syfers. Sulke aanvalle het eers teruggekeer met die koms van die moderne era van kriptografie.

Hierdie opbrengs is te wyte aan twee faktore. Eerstens, uiteindelik, het redelik komplekse kriptostelsels verskyn, waar die moontlikheid van uitbuiting na inbraak nie voor die hand liggend was nie. Tweedens het kriptografie so wydverspreid geword dat miljoene nie-professionele mense elke dag besluit waar en watter dele van kriptografie om te hergebruik. Dit het 'n rukkie geneem voordat die kenners die risiko's besef en alarm gemaak het.

Onthou die voorafberekening aanval: aan die einde van die artikel sal ons kyk na twee werklike kriptografiese voorbeelde waar dit 'n belangrike rol gespeel het.

Interpolasie

Hier is die bekende speurder Sherlock Holmes wat 'n interpolasie-aanval op die ongelukkige Dr. Watson uitvoer:

Ek het dadelik geraai dat jy van Afghanistan af gekom het... Die verloop van my gedagtes was soos volg: “Hierdie persoon is 'n dokter van tipe, maar hy het 'n militêre houding. Dus, 'n militêre dokter. Hy het pas van die trope aangekom - sy gesig is donker, maar dit is nie die natuurlike skakering van sy vel nie, aangesien sy polse baie witter is. Sy gesig is uitgeteer – natuurlik het hy baie gely en die siekte verduur. Hy is in sy linkerhand gewond – hy hou dit roerloos en effens onnatuurlik vas. Waar, onder die trope, kon 'n Engelse militêre dokter ontberings verduur en 'n wond opdoen? Natuurlik, in Afghanistan. Die hele gedagtegang het nie eers 'n sekonde geneem nie. En so het ek gesê dat jy van Afghanistan af gekom het, en jy was verras.

Holmes kon baie min inligting uit elke bewysstuk onttrek. Hy kon slegs tot sy gevolgtrekking kom deur hulle almal saam te oorweeg. 'n Interpolasie-aanval werk soortgelyk deur bekende gewone teks- en syfertekspare te ondersoek wat verkry is deur dieselfde sleutel toe te pas. Individuele waarnemings word uit elke paar onttrek, wat ons in staat stel om 'n algemene gevolgtrekking oor die sleutel te maak. Al hierdie afleidings is vaag en lyk nutteloos totdat hulle skielik 'n kritieke massa bereik en tot die enigste moontlike gevolgtrekking lei: hoe onwaarskynlik dit ook al is, dit moet waar wees. Daarna word óf die sleutel geopenbaar, óf die dekripsieproses word so volwasse dat dit gerepliseer kan word.

Kom ons illustreer met 'n eenvoudige voorbeeld hoe interpolasie werk. Gestel ons wil die persoonlike dagboek van ons vyand, Bob, lees. Hy enkripteer elke nommer in sy dagboek met 'n eenvoudige kriptostelsel waarvan hy geleer het uit 'n advertensie in 'n bespotting van kriptografie tydskrif. Die stelsel werk so: Bob kies twee nommers waarvan hy hou: Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes и Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Van nou af, om enige nommer te enkripteer Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes, bereken dit Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Byvoorbeeld, as Bob gekies het Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes и Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes, dan die nommer Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes geïnkripteer as Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes.

Gestel ons merk op 28 Desember dat Bob besig is om iets in sy dagboek te krabbel. Wanneer hy klaar is, neem ons hom diskreet en kyk na die laaste inskrywing:

datum: 235/520

Liewe Dagboek,

Vandag was 'n goeie dag. Deur 64 dag het ek 'n afspraak met Alice, wat in 'n woonstel woon 843. Ek dink regtig sy kan wees 26!

Aangesien ons baie ernstig is om Bob op sy datum te volg (ons is 15 jaar oud in hierdie scenario), is dit van kritieke belang om die datum sowel as Alice se adres te ken. Gelukkig merk ons ​​op dat Bob se kriptostelsel kwesbaar is vir 'n interpolasie-aanval. Ons weet dalk nie Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes и Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes, maar ons ken vandag se datum, so ons het twee gewone teks-syferteks-pare. Ons weet dit naamlik Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes geïnkripteer in Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesEn Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes - in Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Wat ons sal skryf:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Aangesien ons 15 jaar oud is, weet ons reeds van die stelsel van twee vergelykings in twee onbekendes, wat in hierdie situasie genoeg is om te vind Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes и Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes sonder te veel moeite. Elke gewone teks-syferteks-paar plaas 'n beperking op Bob se sleutel, en die twee beperkings saam is genoeg om die sleutel heeltemal te herwin. In ons voorbeeld, die antwoord Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes и Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes (by Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes, sodat 26 in die dagboek stem ooreen met die woord 'die een', dit wil sê, "die een" - ongeveer. per.).

Interpolasie-aanvalle is natuurlik nie beperk tot sulke eenvoudige voorbeelde nie. Elke kriptostelsel wat gereduseer word tot 'n goed verstaanbare wiskundige voorwerp en 'n lys parameters loop die risiko van 'n interpolasie-aanval - hoe meer verstaanbaar die voorwerp, hoe hoër is die risiko.

Beginners kla dikwels dat kriptografie "die kuns is om dinge so lelik as moontlik te ontwerp." Interpolasie-aanvalle is waarskynlik grootliks te blameer. Bob kan óf elegante wiskundige ontwerp gebruik óf sy afspraak met Alice privaat hou – maar helaas, jy kan gewoonlik nie albei kry nie. Dit sal glashelder word wanneer ons uiteindelik by die onderwerp van publieke sleutel kriptografie kom.

Kruisprotokol/afgradering

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesIn The Illusion of Deception (2013) poog ’n groep illusioniste om die hele fortuin van die korrupte versekeringsmagnaat Arthur Tressler te bedrieg. Om toegang tot Arthur se bankrekening te verkry, moet die illusioniste óf sy gebruikersnaam en wagwoord verskaf, óf hom persoonlik by die bank laat verskyn en aan die skema deelneem.

Albei opsies is baie moeilik; die ouens is gewoond daaraan om op die verhoog op te tree, en nie aan spesiale dienste-operasies deel te neem nie. Hulle kies dus die derde moontlike opsie: hul medepligtige bel die bank en maak asof hy Arthur is. Die bank vra verskeie vrae om identiteit te verifieer, soos die naam van die oom en die naam van die eerste troeteldier; ons helde by voorbaat kry hierdie inligting maklik by Arthur met behulp van slim sosiale ingenieurswese. Van hierdie punt af maak uitstekende wagwoordsekuriteit nie meer saak nie.

(Volgens 'n stedelike legende wat ons persoonlik geverifieer en geverifieer het, het kriptograaf Eli Beeham eenkeer 'n bankteller teëgekom wat daarop aangedring het om 'n sekuriteitsvraag op te stel. Toe die teller na sy ouma aan moederskant se naam vra, het Beeham begin dikteer: "Hoofstad X, klein y, drie ... ").

Dit is dieselfde in kriptografie, as twee kriptografiese protokolle parallel gebruik word om dieselfde bate te beskerm, en die een is baie swakker as die ander. Die gevolglike stelsel word kwesbaar vir 'n kruisprotokolaanval wanneer 'n swakker protokol aangeval word om by die prys uit te kom sonder om die sterker een aan te raak.

In sommige komplekse gevalle is dit nie genoeg om net die bediener te kontak deur 'n swakker protokol te gebruik nie, maar die onwetende deelname van 'n wettige kliënt word vereis. Dit kan gedoen word met 'n sogenaamde afgraderingsaanval. Om hierdie aanval te verstaan, kom ons neem aan dat ons illusioniste 'n moeiliker taak het as in die fliek. Gestel 'n bankwerknemer (kassier) en Arthur het 'n paar onvoorsiene omstandighede gehad, as gevolg waarvan die volgende dialoog plaasgevind het:

Kraker: Hallo? Dit is Arthur Tressler. Ek wil graag my wagwoord herwin.

Kassier: Groot. Kyk asseblief na jou persoonlike geheime kodeboek, bladsy 28, woord 3. Al die volgende boodskappe sal geïnkripteer word met hierdie spesifieke woord as die sleutel. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV...

Kraker: Haai, wag, wag. Is dit regtig nodig? Kan ons nie maar soos gewone mense praat nie?

Kassier: Ek beveel nie aan om dit te doen nie.

Kraker: Ek het net... kyk, ek het 'n slegte dag gehad, okay? Ek is 'n BBP-kliënt en nie in die bui om deur daardie dom kodeboeke te grawe nie.

Kassier: Goed. As jy daarop aandring, meneer Tressler. Wat wil jy hê?

Kraker: Asseblief, ek wil graag al my geld aan die Arthur Tressler National Victims Fund skenk.

(Pouse).

Kassier: Is dit nou duidelik. Voer asseblief jou PIN in vir groot transaksies.

Kraker: My wat?

Kassier: Op jou persoonlike versoek vereis transaksies van hierdie grootte 'n PIN vir groot transaksies. Hierdie kode is aan jou gegee toe jy jou rekening oopgemaak het.

Kraker:… Ek het dit verloor. Is dit regtig nodig? Kan jy nie maar die transaksie goedkeur nie?

Kassier: Geen. Ek is jammer, meneer Tressler. Weereens, dit is die sekuriteitsmaatreël waarvoor u gevra het. As jy wil, kan ons 'n nuwe pin-kode na die posbus stuur.

Ons helde stel die operasie uit. Hulle luister na verskeie van Tressler se groot transaksies in die hoop om die pen te hoor; maar elke keer verander die gesprek in geënkripteerde brabbeltaal voordat iets interessants gehoor word. Uiteindelik word die plan eendag in werking gestel. Hulle wag geduldig vir die oomblik wanneer Tressler 'n groot transaksie op die telefoon moet maak, hy koppel aan die lyn, en dan ...

Tressler: Hallo. Ek wil asseblief 'n afstandtransaksie uitvoer.

Kassier: Groot. Kyk asseblief na jou persoonlike boek van geheime kodes, bladsy...

(Die inbreker druk die knoppie; die kassier se stem verander in onverstaanbare geraas).

Kassier: — #@$#@$#*@$$@#* sal geïnkripteer word met hierdie woord as die sleutel. AAAYRR PLRQRZ MMNJK LOJBAN…

Tressler: Jammer, ek het nie mooi verstaan ​​nie. Weereens? Op watter bladsy? Watter woord?

Kassier: Hierdie bladsy is @#$@#*$)#*#@()#@$(#@*$(#@*.

Tressler: Wat?

Kassier: Woord nommer twintig @$#@$#%#$.

Tressler: Ernstig! Dis nou genoeg! Jy met jou sekuriteitsprotokol is 'n soort sirkus. Ek weet jy kan net normaal met my praat.

Kassier: Ek beveel nie aan…

Tressler: Ek raai jou nie aan om my tyd te mors nie. Ek wil nie meer hiervan hoor voordat jy jou telefoonlynprobleme reggemaak het nie. Kan ons hierdie ooreenkoms maak of nie?

Kassier:… Ja. Goed. Wat wil jy hê?

Tressler: Ek wil graag $20 oordra na Lord Business Investments, rekeningnommer ...

Kassier: Een minuut asseblief. Dit is 'n groot saak. Voer asseblief jou PIN in vir groot transaksies.

Tressler: Wat? Ag, reg. 1234.

Hier is 'n afgradering aanval. Die swakker "praat net reguit" protokol is in die vooruitsig gestel as opsie in geval van nood. En tog is ons hier.

Jy mag dalk wonder wie by hul volle verstand 'n regte "kluis totdat jy anders vra" tipe stelsel sal ontwerp soos hierbo beskryf. Maar net soos 'n fiktiewe bank risiko's neem om kliënte te hou wat nie van kripto hou nie, so leun stelsels as 'n geheel dikwels na vereistes wat onverskillig of selfs heeltemal vyandig teenoor sekuriteit is.

Dit is presies wat met die SSLv2-protokol in 1995 gebeur het. Die Amerikaanse regering het lankal begin om kriptografie te beskou as 'n wapen wat die beste weggehou word van eksterne en interne vyande. Kodebrokkies is individueel goedgekeur vir uitvoer vanaf die VSA, dikwels met opsetlike verslapping van die algoritme. Netscape, die ontwikkelaar van die gewildste Netscape Navigator-blaaier, het slegs toestemming vir SSLv2 gekry met 'n inherent kwesbare RSA-sleutel van 512 bisse (en 40 bisse vir RC4).

Teen die einde van die millennium was die reëls verslap en het toegang tot moderne enkripsie wyd beskikbaar geword. Kliënte en bedieners het egter jare lank verswakte "uitvoer"-kriptografie ondersteun as gevolg van dieselfde traagheid wat ondersteuning vir enige nalatenskapstelsel behou. Kliënte het gedink dat hulle dalk 'n bediener teëkom wat niks anders ondersteun nie. Die bedieners het dieselfde gedoen. Natuurlik bepaal die SSL-protokol dat kliënte en bedieners nooit 'n swakker protokol moet gebruik wanneer 'n beter een beskikbaar is nie. Maar dieselfde uitgangspunt het vir Tressler en sy bank gewerk.

Hierdie teorie het sy weg gevind in twee hoëprofiel-aanvalle wat die sekuriteit van die SSL-protokol een na die ander in 2015 geskud het, beide ontdek deur Microsoft-navorsers en INRIA. Eers, in Februarie, is die besonderhede van die FREAK-aanval bekend gemaak, en drie maande later, nog 'n soortgelyke aanval genaamd Logjam, wat ons in meer besonderhede sal bespreek wanneer ons oorgaan na aanvalle op publieke sleutel-kriptografie.

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesKwesbaarheid FRATS (ook bekend as "Smack TLS") het na vore gekom toe navorsers TLS-kliënt/bediener-implementerings ontleed het en 'n eienaardige fout gevind het. In hierdie implementerings, as die kliënt nie eens vra om swak uitvoerkriptografie te gebruik nie, maar die bediener reageer steeds met sulke sleutels, sê die kliënt "Goed" en skakel oor na 'n swak kodereeks.

Op daardie tydstip het almal uitvoerkriptografie as verouderd en verbode beskou om te gebruik, so die aanval het as 'n ware skok gekom en baie belangrike domeine geraak, insluitend die webwerwe van die Wit Huis, die Amerikaanse IRS en die NSA. Nog erger, dit het geblyk dat baie kwesbare bedieners werkverrigting geoptimaliseer het deur dieselfde sleutels te hergebruik eerder as om nuwes vir elke sessie te skep. Dit het dit moontlik gemaak om 'n voorafberekening aanval uit te voer na die protokol afgradering: die kraak van 'n enkele sleutel het relatief duur gebly ($100 en 12 uur ten tyde van publikasie), maar die praktiese koste om 'n verbinding aan te val is aansienlik verminder. Dit is genoeg om die bedienersleutel een keer op te tel - en die syfers vir alle daaropvolgende verbindings van daardie oomblik af te kraak.

En voordat u verder gaan, moet een gevorderde aanval genoem word ...

Oracle aanval

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesMoxie Marlinspike veral bekend as die vader van die kruis-platform kripto boodskapper Signal; maar persoonlik hou ons van een van sy minder bekende innovasies - beginsel van kriptografiese ondergang (Kryptografiese Doom-beginsel). Effens geparafraseer, kan ons dit sê: "As die protokol presteer enige kriptografiese bewerking op 'n boodskap van 'n potensieel kwaadwillige bron en optree anders, afhangende van die resultaat, is dit gedoem." Of in 'n skerper vorm: "Moenie inligting van die vyand neem vir verwerking nie, en as jy moes, wys ten minste nie die resultaat nie."

As u buffer-oorvloeie, beveel inspuitings en dies meer opsy laat; hulle is buite die bestek van hierdie bespreking. Oortreding van die "doembeginsel" lei tot ernstige onderbrekings in kriptografie as gevolg van die feit dat die protokol presies optree soos verwag word.

Kom ons neem byvoorbeeld 'n fiktiewe konstruk met 'n kwesbare vervangingsyfer, en demonstreer dan 'n moontlike aanval. Alhoewel ons reeds die aanval op die vervangingsyfer gesien het deur gebruik te maak van frekwensie-analise, is dit nie net "nog 'n manier om dieselfde syfer te breek nie". Inteendeel, orakelaanvalle is 'n baie meer moderne uitvinding, van toepassing op baie situasies waar frekwensie-analise misluk, en ons sal 'n demonstrasie hiervan in die volgende afdeling sien. Die eenvoudige syfer word hier slegs gekies om die voorbeeld duideliker te maak.

Dus, Alice en Bob kommunikeer met behulp van 'n eenvoudige vervangingsyfer met 'n sleutel wat net aan hulle bekend is. Hulle is baie streng oor die lengte van boodskappe: hulle is presies 20 karakters lank. Hulle het dus ooreengekom dat as iemand 'n korter boodskap wil stuur, hulle 'n paar dummy-teks aan die einde van die boodskap moet byvoeg om dit presies 20 karakters lank te maak. Na 'n paar bespreking het hulle besluit dat hulle slegs die volgende dummy-tekste sal aanvaar: a, bb, ccc, dddd en so meer, 'n fiktiewe teks van enige verlangde lengte is dus bekend.

Wanneer Alice of Bob 'n boodskap ontvang, kyk hulle eers of die boodskap die korrekte lengte is (20 karakters) en dat die agtervoegsel die korrekte skynteks is. As dit nie die geval is nie, reageer hulle met 'n toepaslike foutboodskap. As die tekslengte en skynteks in orde is, lees die ontvanger die boodskap self en stuur 'n geënkripteerde antwoord.

Tydens die aanval verpersoonlik die aanvaller Bob en stuur vals boodskappe aan Alice. Boodskappe is volslae onsin – die aanvaller het nie die sleutel nie, en kan dus nie 'n sinvolle boodskap smee nie. Maar aangesien die protokol die doembeginsel oortree, kan 'n aanvaller Alice steeds vasvang sodat sy die sleutelinligting openbaar, soos hieronder getoon.

Kraker: PREWF ZHJKL MMMN. LA

Alice: Ongeldige dummy teks.

Kraker: PREWF ZHJKL MMMN. LB

Alice: Ongeldige dummy teks.

Kraker: PREWF ZHJKL MMMN. LC

Alice: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

Die inbreker het geen idee wat Alice sopas gesê het nie, maar merk op dat die simbool C moet ooreenstem aomdat Alice 'n dummy-teks ontvang het.

Kraker: REWF ZHJKL MMMN. LAA

Alice: Ongeldige dummy teks.

Kraker: REWF ZHJKL MMMN. LBB

Alice: Ongeldige dummy teks.

Na 'n aantal pogings...

Kraker: REWF ZHJKL MMMN. LGG

Alice: Ongeldige dummy teks.

Kraker: REWF ZHJKL MMMN. LHH

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

Weereens, die kraker het geen idee wat Alice sopas gesê het nie, maar merk op dat H moet ooreenstem met b omdat Alice dummy teks aanvaar het.

En so aan, totdat die aanvaller die betekenis van elke karakter ken.

Met die eerste oogopslag lyk die metode soos 'n gepaste gewone teks aanval. Op die ou end tel die aanvaller die syfertekste op, en die bediener verwerk dit gehoorsaam. Die belangrikste verskil wat hierdie aanvalle lewensvatbaar maak in die werklike wêreld, is dat die aanvaller nie toegang tot die werklike dekripsie nodig het nie - 'n bedienerreaksie, selfs so onskadelik soos "Inkorrekte dummy teks", is genoeg.

Alhoewel hierdie spesifieke aanval leersaam is, moet 'n mens nie te vashou aan die besonderhede van die "fop-teks"-skema, die spesifieke kriptostelsel wat gebruik word, of die presiese volgorde van boodskappe wat deur die aanvaller gestuur word nie. Die hoofgedagte is hoe Alice verskillend reageer op grond van die eienskappe van die gewone teks, en dit doen sonder om te verifieer dat die ooreenstemmende syferteks werklik van 'n vertroude party ontvang word. So laat Alice 'n aanvaller toe om geheime inligting uit haar antwoorde te pers.

Daar is baie dinge wat in hierdie scenario verander kan word. Die simbole waarop Alice reageer, of die verskil in haar gedrag, of selfs die kriptostelsel wat gebruik word. Maar die beginsel sal dieselfde bly, en die aanval as geheel sal in een of ander vorm lewensvatbaar bly. Die onderliggende implementering van hierdie aanval het gehelp om verskeie sekuriteitsfoute te ontbloot, waarna ons binnekort sal kyk; maar eers is daar 'n paar teoretiese lesse om te leer. Hoe om hierdie fiktiewe "Alice-scenario" te gebruik in 'n aanval wat op 'n regte moderne syfer kan werk? Is dit enigsins moontlik, selfs in teorie?

In 1998 het die Switserse kriptograaf Daniel Bleichenbacher hierdie vraag bevestigend beantwoord. Hy het 'n orakelaanval op die wyd gebruikte RSA publieke sleutel kriptostelsel gedemonstreer deur 'n spesifieke boodskapskema te gebruik. In sommige implementerings van RSA reageer die bediener met verskillende foutboodskappe, afhangende van of die gewone teks by die skema pas of nie; dit was genoeg om die aanval uit te voer.

Vier jaar later, in 2002, het die Franse kriptograaf Serge Vaudenay 'n orakelaanval gedemonstreer wat byna identies is aan dié wat in Alice se scenario hierbo beskryf word - behalwe dat hy in plaas van 'n fiktiewe syfer 'n hele respekvolle klas moderne syfers gekraak het wat mense werklik gebruik. Vaudeney se aanval teiken veral syfers met 'n vaste invoergrootte ("bloksyfers") wanneer dit in die sogenaamde "CBC-syfermodus" gebruik word en met 'n sekere gewilde opvulskema wat basies gelykstaande is aan dié van Alice se scenario.

Ook in 2002 was die Amerikaanse kriptograaf John Kelsey mede-outeur Twee visse - verskeie orakelaanvalle op stelsels voorgestel wat boodskappe saamdruk en dan enkripteer. Die belangrikste hiervan was 'n aanval wat die feit uitgebuit het dat dit dikwels moontlik is om die oorspronklike gewone tekslengte uit die syfertekslengte af te lei. In teorie maak dit voorsiening vir 'n orakelaanval wat gedeeltes van die oorspronklike gewone teks herwin.

Vervolgens gee ons 'n meer gedetailleerde beskrywing van die Vaudeney- en Kelsey-aanvalle (ons sal 'n meer gedetailleerde beskrywing van die Bleichenbacher-aanval gee wanneer ons oorgaan na aanvalle op publieke sleutel-kriptografie). Ten spyte van ons beste pogings, word die teks ietwat tegnies; so as die bogenoemde vir jou genoeg is, slaan die volgende twee afdelings oor.

Vaudeney se aanval

Om die Vaudeney-aanval te verstaan, moet ons eers 'n bietjie meer praat oor bloksyfers en syfermodusse. 'n "Bloksyfer" is, soos reeds genoem, 'n syfer wat 'n sleutel en 'n invoer van 'n sekere vaste lengte ("bloklengte") neem en 'n geënkripteerde blok van dieselfde lengte produseer. Bloksyfers word wyd gebruik en word as relatief veilig beskou. Die nou afgetrede DES, wat as die eerste moderne syfer beskou word, was 'n bloksyfer. Soos hierbo genoem, geld dieselfde vir AES, wat vandag wyd gebruik word.

Ongelukkig het bloksyfers een skreiende swakheid. Die tipiese blokgrootte is 128 bisse, of 16 karakters. Dit is duidelik dat moderne kriptografie vereis dat jy met groter insette werk, en dit is waar enkripsiemodusse inkom. Die enkripsiemodus is in wese 'n hack: dit is 'n manier om 'n blokkode toe te pas wat slegs insette van 'n sekere grootte na 'n inset van arbitrêre lengte neem.

Vaudeney se aanval is teiken op die gewilde CBC (Cipher Block Chaining) werkswyse. Die aanval behandel die onderliggende bloksyfer as 'n magiese ondeurdringbare swart boks en omseil sy sekuriteit heeltemal.

Hier is 'n diagram wat wys hoe die CBC-modus werk:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Die omsirkelde plus dui die XOR (eksklusiewe OF) bewerking aan. Byvoorbeeld, die tweede syferteksblok word ontvang:

  1. Deur die tweede blok gewone teks met die eerste blok syferteks te XOR.
  2. Enkripteer die ontvangde blok met 'n blokkode deur die sleutel te gebruik.

Aangesien CBC die binêre XOR-bewerking so baie gebruik, laat ons 'n oomblik neem om sommige van sy eienskappe te onthou:

  • Idempotensie: Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes
  • Kommutatiwiteit: Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes
  • Assosiatiwiteit: Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes
  • Self-omkeerbaarheid: Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes
  • Byte-gewys: byte n van Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes = (greep n van Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes) Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes (grepe n van Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes)

Oor die algemeen impliseer hierdie eienskappe dat as ons 'n vergelyking het wat XOR-bewerkings en een onbekende insluit, dit opgelos kan word. Byvoorbeeld, as ons dit weet Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes met die onbekende Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes en beroemd Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes и Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes, dan kan ons staatmaak op die bogenoemde eienskappe hierbo om die vergelyking op te los Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Deur beide kante van die vergelyking te XORing met Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes, ons kry Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Binne 'n oomblik sal dit alles baie relevant word.

Daar is twee klein verskille en een groot verskil tussen ons Alice-scenario en Vaudeney se aanval. Twee minderjariges:

  • In die draaiboek het Alice verwag dat die gewone tekste by die karakters sou eindig a, bb, ccc en so aan. In 'n Vaudeney-aanval verwag die slagoffer eerder dat gewone tekste N keer eindig met die N greep (d.w.s. heksadesimale 01 of 02 02 of 03 03 03 ensovoorts). Dit is 'n suiwer kosmetiese verskil.
  • In Alice se draaiboek was dit maklik om te sê of Alice die boodskap aanvaar het deur die antwoord "Incorrect dummy text". In Vaudeney se aanval word meer ontleding vereis en presiese implementering aan die slagoffer se kant is belangrik; maar kortheidshalwe, laat ons dit as vanselfsprekend aanvaar dat hierdie ontleding steeds moontlik is.

Belangrikste verskil:

  • Aangesien ons nie dieselfde kriptostelsel gebruik nie, sal die verhouding tussen aanvaller-beheerde syferteksgrepe en geheime (sleutel en gewone teks) natuurlik anders wees. Daarom sal 'n aanvaller 'n ander strategie moet gebruik wanneer syfertekste geskep word en bedienerantwoorde geïnterpreteer word.

Hierdie groot verskil is die laaste stukkie van die legkaart om Vaudeney se aanval te verstaan, so kom ons dink vir 'n oomblik oor hoekom en hoe 'n orakelaanval op die CBC selfs opgevoer kan word.

Gestel ons kry 'n CBC-syferteks van 247 blokke en ons wil dit dekripteer. Ons kan vals boodskappe na die bediener stuur, net soos ons gebruik het om vals boodskappe aan Alice te stuur. Die bediener sal boodskappe vir ons dekripteer, maar sal nie die dekripsie wys nie - in plaas daarvan, weer, soos in die geval van Alice, sal die bediener slegs een stukkie inligting rapporteer: het die gewone teks geldige opvulling of nie.

Oorweeg dat ons in Alice se scenario die volgende verhoudings gehad het:

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

Kom ons noem dit "Alice se vergelyking". Ons het die syferteks beheer; die bediener (Alice) het vae inligting oor die ontvangde gewone teks uitgelek; en dit het ons in staat gestel om inligting oor die laaste faktor – die sleutel – af te lei. In analogie, as ons so 'n verband vir die CBC-skrif kan vind, kan ons ook 'n paar geheime inligting daar onttrek.

Gelukkig is daar inderdaad verhoudings wat ons kan gebruik. Oorweeg die uitset van die blokkode-dekripsie-eindoproep en dui hierdie data aan as Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Ons dui ook gewone teks blokke aan Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes en syferteksblokke Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes. Kyk weer na die CBC-grafiek en let op wat gebeur:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Kom ons noem dit die "CBC-vergelyking".

In Alice se scenario, deur die syferteks te beheer en waar te neem dat inligting oor die ooreenstemmende gewone teks uitgelek is, kon ons 'n aanval opstel wat die derde term van die vergelyking, die sleutel, herstel het. In die CBC-scenario beheer ons ook die syferteks en neem inligtinglekkasies op die ooreenstemmende gewone teks waar. As die analogie geld, kan ons inligting kry oor Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes.

Kom ons neem aan ons het herstel Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagteswat dan? Wel, dan kan ons die hele laaste blok gewone teks op een slag uitvoer (Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes) deur eenvoudig in te voer Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes (wat ons het) en
ontvang Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes in die CBC-vergelyking.

So, ons is optimisties oor die algehele plan van aanval, en dit is tyd om die besonderhede uit te werk. Gee aandag aan presies hoe inligting oor die gewone teks op die bediener uitgelek word. In Alice se scenario was die lekkasie te wyte aan Alice wat slegs met die korrekte boodskap gereageer het as $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ met die reël geëindig het a (Of bb, ensovoorts, maar die kanse dat hierdie toestande lukraak geaktiveer word, was baie klein). Soortgelyk aan CBC, aanvaar die bediener opvulling as en slegs as Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes eindig in heksadesimale 01. Kom ons probeer dus dieselfde truuk: stuur vals syfertekste met ons eie valse waardes Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtestotdat die bediener die opvulling aanvaar.

Wanneer die bediener opvulling vir een van ons vals boodskappe aanvaar, beteken dit dat:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Nou gebruik ons ​​die XOR byte-eienskap:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Ons ken die eerste en derde terme. En ons het reeds gesien dat dit jou toelaat om die oorblywende lid te herstel - die laaste greep van Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Dit gee ons ook die laaste greep van die finale gewone teksblok via die CBC-vergelyking en die greepwyse-eienskap.

Ons kan daar eindig en tevrede wees om 'n teoreties sterk syfer aan te val. Maar eintlik kan ons baie meer doen: ons kan eintlik die hele teks herstel. Dit vereis 'n sekere truuk wat nie in Alice se oorspronklike draaiboek was nie en nie 'n voorvereiste vir 'n orakelaanval is nie, maar die metode is steeds die moeite werd om te leer.

Om dit te verstaan, let eers daarop dat as gevolg van die afleiding van die korrekte waarde van die laaste greep Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes ons het 'n nuwe vermoë. Nou, wanneer ons syfertekste smee, kan ons die laaste greep van die ooreenstemmende gewone teks beheer. Weereens, dit is te danke aan die CBC-vergelyking en die byte-wyse-eienskap:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Aangesien ons nou die tweede term ken, kan ons ons beheer oor die eerste gebruik om die derde te beheer. Ons bereken net:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Voorheen kon ons dit nie doen nie omdat ons nog nie die laaste greep gehad het nie. Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes.

Hoe sal dit ons help? Kom ons neem aan dat ons nou alle syfertekste sal skep sodat in die ooreenstemmende gewone tekste die laaste greep gelyk is aan 02. Nou aanvaar die bediener slegs opvulling as die gewone teks eindig met 02 02. Aangesien ons die laaste greep reggemaak het, sal dit net gebeur as die voorlaaste greep van die gewone teks ook 02 is. Ons hou aan om vals syferteksblokke te stuur, en die voorlaaste greep te verander, totdat die bediener opvulling vir een van hulle aanvaar. Op hierdie punt kry ons:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

En ons herstel die voorlaaste greep Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes net soos die laaste een wat gerestoureer is. Ons gaan voort in dieselfde gees: ons korrigeer die laaste twee grepe van die gewone teks na 03 03, herhaal hierdie aanval vir die derde greep van die einde af, ensovoorts, en herstel uiteindelik heeltemal Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes.

Wat van die res van die teks? Let daarop dat die waarde Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes is eintlik $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. Ons kan enige ander blokkie plaas Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes, en die aanval sal steeds suksesvol wees. Trouens, ons kan die bediener vra om $inline$text{BLOCK_DECRYPT}$inline$ vir enige data te maak. Op hierdie stadium is die speletjie verby - ons kan enige syferteks dekripteer (kyk weer na die CBC-dekripsiediagram om dit te sien; en let daarop dat die IV-vektor publiek beskikbaar is).

Hierdie spesifieke metode speel 'n deurslaggewende rol in die orakelaanval wat ons later sal teëkom.

Kelsey aanval

Die gemoedelike John Kelsey het die beginsels agter baie moontlike aanvalle uiteengesit, nie net die besonderhede van 'n spesifieke aanval op 'n spesifieke syfer nie. Syne 2002 artikel van die jaar is 'n studie van moontlike aanvalle op geïnkripteer saamgeperste data. Het jy gedink dat inligting alleen nie genoeg was om 'n aanval uit te voer nie, dat die data voor enkripsie saamgepers is? Dit blyk dat dit genoeg is.

Hierdie verrassende resultaat is te danke aan twee beginsels. Eerstens is daar 'n sterk korrelasie tussen die lengte van die gewone teks en die lengte van die syferteks; vir baie syfers presiese gelykheid. Tweedens, wanneer kompressie uitgevoer word, is daar ook 'n sterk korrelasie tussen die lengte van die saamgeperste boodskap en die mate van "geraas" van die gewone teks, dit wil sê die proporsie van nie-herhalende karakters (die tegniese term is "groot entropie" ).

Om die beginsel in aksie te sien, oorweeg twee gewone tekste:

Gewone teks 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Gewone teks 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Gestel beide gewone tekste word saamgepers en dan geïnkripteer. Jy kry twee resulterende syfertekste en moet raai watter syferteks ooreenstem met watter gewone teks:

Siferteks 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

Siferteks 2: DWKJZXYU

Die antwoord is duidelik. Onder die gewone tekste kon slegs gewone teks 1 tot die skrale lengte van die tweede syferteks saamgepers word. Ons het dit uitgepluis sonder om iets van die kompressie-algoritme, die enkripsiesleutel of selfs die syfer self te weet. In vergelyking met die hiërargie van moontlike kriptografiese aanvalle, is dit nogal kranksinnig.

Kelsey wys verder daarop dat hierdie beginsel onder sekere ongewone omstandighede ook gebruik kan word om 'n orakelaanval te loods. Spesifiek beskryf dit hoe 'n aanvaller die geheime gewone teks kan herstel as hy die bediener kan kry om die vormdata te enkripteer (die gewone teks gevolg deur Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtessolank hy beheer Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes en kan op een of ander manier die lengte van die geënkripteerde resultaat nagaan.

Weereens, soos in ander orakelaanvalle, het ons 'n verhouding:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Weereens, ons beheer een lid (Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes), sien ons 'n klein lekkasie van inligting oor 'n ander lid (syferteks) en probeer om die laaste een te herwin (plaintext). Ten spyte van die analogie, is dit 'n ietwat ongewone situasie in vergelyking met ander orakelaanvalle wat ons gesien het.

Om te illustreer hoe so 'n aanval kan werk, kom ons gebruik 'n fiktiewe kompressieskema waarmee ons pas vorendag gekom het: TOYZIP. Dit soek teksreëls wat reeds voorheen in die teks verskyn het en vervang dit met drie plekhouergrepe wat aandui waar om die vroeëre instansie van die reël te vind en hoeveel keer dit daar voorkom. Byvoorbeeld, die lyn helloworldhello saamgepers kan word in helloworld[00][00][05] 13 grepe lank in vergelyking met die oorspronklike 15 grepe.

Gestel 'n aanvaller probeer om die gewone teks van 'n vorm te herwin password=..., waar die wagwoord self onbekend is. Volgens die Kelsey-aanvalsmodel kan 'n aanvaller die bediener vra om boodskappe van die vorm saam te komprimeer en dan te enkripteer (plaintext gevolg deur Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes), waar Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes - arbitrêre teks. Wanneer die bediener klaar is, rapporteer dit die lengte van die resultaat. Die aanval verloop soos volg:

Kraker: Druk en enkripteer asseblief die gewone teks sonder enige opvulling.

Bediener: Die lengte van die resultaat is 14.

Kraker: Druk en enkripteer asseblief die gewone teks waarby gevoeg is password=a.

Bediener: Die lengte van die resultaat is 18.

Die kraker notas: [oorspronklike 14] + [drie grepe wat vervang het password=] + a

Kraker: Druk en enkripteer asseblief die gewone teks waarby gevoeg is password=b.

Bediener: Die lengte van die resultaat is 18.

Kraker: Druk en enkripteer asseblief die gewone teks waarby gevoeg is password=с.

Bediener: Die lengte van die resultaat is 17.

Die kraker notas: [oorspronklike 14] + [drie grepe wat vervang het password=c]. Dit veronderstel dat die oorspronklike gewone teks die string bevat password=c. Dit wil sê, die wagwoord begin met 'n letter c

Kraker: Druk en enkripteer asseblief die gewone teks waarby gevoeg is password=сa.

Bediener: Die lengte van die resultaat is 18.

Die kraker notas: [oorspronklike 14] + [drie grepe wat vervang het password=с] + a

Kraker: Druk en enkripteer asseblief die gewone teks waarby gevoeg is password=сb.

Bediener: Die lengte van die resultaat is 18.

(… Heelwat later…)

Kraker: Druk en enkripteer asseblief die gewone teks waarby gevoeg is password=со.

Bediener: Die lengte van die resultaat is 17.

Die kraker notas: [oorspronklike 14] + [drie grepe wat vervang het password=co]. Deur dieselfde logika kom die aanvaller tot die gevolgtrekking dat die wagwoord met die letters begin co

En so aan totdat die hele wagwoord herstel is.

Dit is verskoonbaar vir die leser om te dink dat dit 'n suiwer akademiese oefening is en dat so 'n aanvalscenario nooit in die werklike wêreld sou plaasvind nie. Helaas, soos ons binnekort sal sien, is dit beter om nie kriptografie te belowe nie.

Handelsmerkkwesbaarhede: MISDAAD, POEDEL, VERdrink

Laastens, na 'n gedetailleerde studie van die teorie, kan ons sien hoe hierdie metodes toegepas word in werklike kriptografiese aanvalle.

MISDAAD

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesAs die aanval die slagoffer se blaaier en netwerk teiken, sal sommige makliker wees en ander moeiliker. Dit is byvoorbeeld maklik om die verkeer van die slagoffer te sien: dit is genoeg om saam met haar in dieselfde kafee met WiFi te sit. Om hierdie rede word potensiële slagoffers (dit wil sê almal) oor die algemeen aangeraai om 'n geënkripteerde verbinding te gebruik. Dit sal moeiliker wees, maar steeds moontlik, om HTTP-versoeke namens die slagoffer na een of ander derdeparty-werf (byvoorbeeld Google) te rig. Die aanvaller moet die slagoffer na 'n kwaadwillige webblad lok met 'n skrif wat die versoek sal rig. Die webblaaier sal outomaties die toepaslike sessiekoekie verskaf.

Dit lyk wonderlik. As Bob na evil.com, kan die skrif op hierdie webwerf net vir Google vra om Bob se wagwoord na te e-pos [email protected]? Wel, in teorie ja, maar in werklikheid nee. Hierdie scenario word 'n kruis-werf versoek vervalsing aanval genoem (Vervalsing van versoeke oor verskillende terreine, CSRF), en dit was gewild rondom die middel-90's. Vandag as evil.com so 'n truuk probeer, sal Google (of enige werf met selfrespek) gewoonlik reageer met "Fantastisch, maar jou CSRF-token vir hierdie transaksie sal ... mmm ... три триллиона и семь. Herhaal asseblief hierdie nommer." Moderne blaaiers dwing iets af wat 'n "selfde-oorsprongbeleid" genoem word waarvolgens skrifte op werf A nie toegang het tot inligting wat deur werf B gestuur word nie. Daarom is die skrif op evil.com versoeke kan stuur na google.com, maar kan nie antwoorde lees of die transaksie werklik voltooi nie.

Ons moet beklemtoon dat as Bob nie 'n geënkripteerde verbinding gebruik nie, al hierdie beskermings betekenisloos is. Die aanvaller kan eenvoudig Bob se verkeer lees en die Google-sessiekoekie herwin. Met hierdie koekie sal hy eenvoudig 'n nuwe Google-oortjie oopmaak sonder om sy eie blaaier te verlaat en Bob naboots sonder om die irriterende dieselfde-oorsprong-beleide teë te kom. Maar, ongelukkig vir die kraker, word dit al hoe minder algemeen. Die internet as geheel het lankal oorlog verklaar teen ongeënkripteerde verbindings, en Bob se uitgaande verkeer is waarskynlik geïnkripteer of hy daarvan hou of nie. Daarbenewens, vanaf die begin van die implementering van die protokol, verkeer ook gekrimp voor enkripsie; dit was 'n algemene praktyk om latensie te verminder.

Hier kom ter sprake MISDAAD (Kompressieverhouding Infoleak Maklik gemaak, eenvoudige lek deur kompressieverhouding). ’n Kwesbaarheid wat in September 2012 deur sekuriteitsnavorsers Giuliano Rizzo en Thai Duong getoon is. Ons het reeds die hele teoretiese basis ontleed, wat ons in staat stel om te verstaan ​​wat hulle gedoen het en hoe. 'n Aanvaller kan Bob se blaaier versoeke na Google laat stuur en dan na die antwoorde op die plaaslike netwerk in 'n saamgeperste, geënkripteerde vorm luister. Daarom het ons:

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtes

Hier beheer die aanvaller die versoek en het toegang tot die verkeersnuffel, insluitend die grootte van die pakkies. Kelsey se fiktiewe draaiboek het lewe gekry.

Om die teorie te verstaan, het die skrywers van CRIME 'n uitbuiting geskep wat sessiekoekies vir 'n wye verskeidenheid werwe kan steel, insluitend Gmail, Twitter, Dropbox en Github. Die kwesbaarheid het die meeste moderne webblaaiers geraak, wat gelei het tot die vrystelling van pleisters wat die kompressie-kenmerk stilweg in SSL begrawe het sodat dit glad nie gebruik is nie. Die enigste een wat teen die kwesbaarheid beskerm is, was die eerbiedwaardige Internet Explorer, wat glad nie SSL-kompressie gebruik het nie.

poedel

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesIn Oktober 2014 het die Google-sekuriteitspan 'n opskudding in die sekuriteitsgemeenskap veroorsaak. Hulle kon 'n kwesbaarheid uitbuit in die SSL-protokol wat meer as 'n dekade gelede opgepas is.

Dit blyk dat terwyl die bedieners die wonderlike nuwe TLSv1.2 bestuur, baie ondersteuning vir die nalatenskap SSLv3 gelaat het vir agterwaartse versoenbaarheid met Internet Explorer 6. Ons het reeds gepraat oor afgraderingaanvalle, so jy kan jou voorstel wat aangaan. 'n Goed georganiseerde sabotasie van die handdrukprotokol en die bedieners is gereed om terug te gaan na die goeie ou SSLv3, wat in wese die laaste 15 jaar se sekuriteitsnavorsing kanselleer.

Vir historiese konteks, hier is 'n kort opsomming van die geskiedenis van SSL tot weergawe 2 deur Matthew Green:

Transport Layer Security (TLS) is die belangrikste sekuriteitsprotokol op die internet. [..] byna elke transaksie wat jy op die internet maak, hang van TLS af. [..] Maar TLS was nie altyd TLS nie. Die protokol het sy lewe begin in Netscape Kommunikasie genoem "Secure Sockets Layer" of SSL. Gerugte het dit dat die eerste weergawe van SSL so verskriklik blyk te wees dat die ontwikkelaars al die uitdrukke van die kode versamel en dit in 'n geheime stortplek in New Mexico begrawe het. As gevolg hiervan is die eerste publieke weergawe van SSL eintlik SSL weergawe 2. Dit is redelik lelik, en [..] dit was 'n produk van die middel-90's, wat moderne kriptograwe beskou as "donker eeue van kriptografie". Baie van die mees gruwelike kriptografiese aanvalle waarvan ons vandag weet, moet nog ontdek word. Gevolglik moes die ontwikkelaars van die SSLv2-protokol in wese in die donker rondtas, en hulle het in baie verskriklike monsters - tot hul spyt en tot ons voordeel, aangesien die aanvalle op SSLv2 waardevolle lesse gelaat het vir die volgende generasie protokolle.

Na hierdie gebeure, in 1996, het 'n gefrustreerde Netscape-maatskappy die SSL-protokol van nuuts af herontwerp. Die resultaat was SSL weergawe 3, wat het verskeie bekende sekuriteitskwessies van sy voorganger opgelos.

Gelukkig vir klappers beteken "'n paar" nie "almal" nie. In die algemeen het SSLv3 al die nodige boublokke verskaf om 'n Wodenay-aanval te loods. Die protokol het 'n bloksyfer in CBC-modus gebruik en 'n onveilige opvullingskema (dit is in TLS reggestel; vandaar die behoefte aan 'n afgraderingsaanval). As jy die opvullingskema in ons oorspronklike beskrywing van Vaudeney se aanval onthou, is die SSLv3-skema baie soortgelyk.

Maar, ongelukkig vir klappers, beteken "soortgelyk" nie "identies" nie. Die SSLv3-opvullingskema is "ewekansige N grepe gevolg deur 'n getal N". Probeer onder sulke toestande om 'n denkbeeldige syferteksblok te kies en gaan deur al die stappe van Vaudeney se oorspronklike skema: jy sal vind dat die aanval die laaste greep suksesvol uit die ooreenstemmende gewone teksblok onttrek, maar nie verder gaan nie. Om elke 16de greep van die syferteks te ontsyfer is 'n wonderlike truuk, maar dit is nie 'n wen nie.

Gekonfronteer met mislukking, het die Google-span 'n uiterste opsie gebruik: hulle het oorgeskakel na 'n kragtiger bedreigingsmodel - die een wat in MISDAAD gebruik word. Gestel die aanvaller is 'n skrip wat op die slagoffer se blaaieroortjie loop en sessiekoekies kan onttrek, is die aanval steeds indrukwekkend. Alhoewel die breër bedreigingsmodel minder realisties is, het ons reeds in die vorige afdeling gesien dat hierdie spesifieke model haalbaar is.

Gegewe hierdie kragtiger kraker-vermoëns, kan die aanval nou voortgaan. Let daarop dat die aanvaller weet waar die geënkripteerde sessiekoekie in die kopskrif verskyn en die lengte van die HTTP-versoek wat dit voorafgaan, beheer. Daarom is dit in staat om die HTTP-versoek te manipuleer om die laaste greep van die koekie volgens die einde van die blok in lyn te bring. Nou is hierdie greep geskik vir dekripsie. Jy kan eenvoudig een karakter by die versoek voeg, en die voorlaaste greep van die koekie sal op dieselfde plek bly en is geskik vir seleksie met dieselfde metode. Die aanval gaan op hierdie manier voort totdat die koekie heeltemal herstel is. Dit heet POODLE: Padding Oracle on Downgraded Legacy Encryption.

VERdrink

Kriptografiese aanvalle: 'n verduideliking vir verwarde gedagtesSoos ons reeds genoem het, het SSLv3 foute gehad, maar dit was fundamenteel anders as sy voorganger, aangesien die lekkende SSLv2 'n produk van 'n ander era was. Daar was dit moontlik om die boodskap in die middel te onderbreek: соглашусь на это только через мой труп verander in соглашусь на это; die kliënt en bediener kan mekaar op die internet ontmoet, vertroue vestig en geheime uitruil voor die aanvaller, wat dan maklik albei nageboots het. Daar is ook die probleem met uitvoerkriptografie, wat ons genoem het toe ons FREAK hersien het. Dit was die kriptografiese Sodom en Gomorra.

In Maart 2016 het 'n span navorsers uit verskeie tegniese velde bymekaargekom en 'n onthutsende ontdekking gemaak: SSLv2 word steeds in sekuriteitstelsels gebruik. Ja, aanvallers kon nie meer moderne TLS-sessies na SSLv2 afgradeer nie, aangesien daardie gat ná FREAK en POODLE gesluit is, maar hulle kan steeds aan bedieners koppel en SSLv2-sessies op hul eie begin.

Jy vra, wat gee ons om wat hulle daar doen? Hulle het 'n kwesbare sessie, maar dit behoort nie ander sessies of bedienersekuriteit te beïnvloed nie - reg? Wel, nie heeltemal nie. Ja, dit is hoe dit in teorie moet wees. Maar nee - want die generering van SSL-sertifikate plaas 'n sekere las, as gevolg waarvan baie bedieners dieselfde sertifikate en, as gevolg daarvan, dieselfde RSA-sleutels vir TLS- en SSLv2-verbindings gebruik. Om sake te vererger, as gevolg van 'n OpenSSL-fout, het die "Deaktiveer SSLv2"-opsie eintlik nie gewerk in hierdie gewilde SSL-implementering nie.

Dit het 'n kruisprotokolaanval op TLS moontlik gemaak, wat genoem is VERdrink (Dekripteer RSA met verouderde en verswakte enkripsie). Onthou dat dit nie dieselfde is as 'n kort aanval nie; die kraker hoef nie soos 'n "man in die middel" op te tree nie en hoef nie die kliënt te betrek om aan 'n onsekere sessie deel te neem nie. Aanvallers begin eenvoudig 'n onveilige SSLv2-sessie met die bediener self, val die swak protokol aan en herstel die bediener se private RSA-sleutel. Hierdie sleutel is ook geldig vir TLS-verbindings, en van nou af sal geen hoeveelheid TLS-sekuriteit dit red om gekap te word nie.

Maar om te kraak, het jy 'n werkende aanval teen SSLv2 nodig, wat jou toelaat om nie net spesifieke verkeer te herstel nie, maar ook die geheime RSA-bedienersleutel. Alhoewel dit 'n moeilike opstelling is, kon die navorsers enige kwesbaarheid gekies het wat heeltemal gesluit was na SSLv2. Uiteindelik het hulle 'n geskikte opsie gevind: die Bleichenbacher-aanval, wat ons vroeër genoem het en wat ons in die volgende artikel in detail sal verduidelik. SSL en TLS is immuun teen hierdie aanval, maar sommige willekeurige SSL-kenmerke, gekombineer met kort sleutels in uitvoerklas-kriptografie, het dit moontlik gemaak spesifieke implementering van DROWN.

Ten tyde van publikasie het DROWN-kwesbaarhede 25% van die top-internetwerwe geraak, en die aanval kan uitgevoer word met beskeie hulpbronne beskikbaar, selfs vir ondeunde alleenkrakers. Dit het agt uur se rekenaar en $440 geneem om die bediener se RSA-sleutel te onttrek, en SSLv2 het sy status verander van "verouderd" na "radioaktief".

Wag, wat van Heartbleed?

Dit is nie 'n kriptografiese aanval in die sin hierbo beskryf nie; dis 'n buffer oorloop.

Kom ons neem 'n blaaskans

Ons het begin met 'n paar basiese metodes: brute force, interpolasie, afgradering, kruisprotokol en voorafberekening. Ons het toe gekyk na een gevorderde tegniek, miskien die hoofkomponent van moderne kriptografiese aanvalle: die orakelaanval. Ons het dit vir 'n geruime tyd hanteer - en het nie net die beginsel in die kern verstaan ​​nie, maar ook die tegniese besonderhede van twee spesifieke implementerings: Vaudeney se aanvalle op die CBC-enkripsiemodus en Kelsey se aanvalle op voorkompressie-enkripsieprotokolle.

In 'n oorsig van afgradering en voorafberekening-aanvalle, het ons die FREAK-aanval kortliks uiteengesit, wat beide metodes gebruik aangesien die teikenwebwerwe afgradeer na swak sleutels en dan dieselfde sleutels hergebruik. Vir die volgende artikel het ons die (baie soortgelyke) Logjam-aanval verlaat, wat publieke sleutelalgoritmes teiken.

Ons het daarna gekyk na nog drie voorbeelde van die toepassing van hierdie beginsels. Eerstens, MISDAAD en POEDEL: twee aanvalle wat staatgemaak het op die aanvaller se vermoë om arbitrêre gewone teks langs die teiken-klaarteks in te spuit, ondersoek dan die bediener se antwoorde en dan, gebruik orakelaanvalmetodologie, gebruik hierdie karige inligting om die gewone teks gedeeltelik te herwin. MISDAAD het die roete gegaan om Kelsey met SSL-kompressie aan te val, terwyl POODLE eerder 'n variant van Vaudeney se aanval op CBC met dieselfde effek gebruik het.

Toe het ons ons aandag gevestig op die kruisprotokol DROWN-aanval, wat 'n verbinding met die bediener tot stand bring deur die verouderde SSLv2-protokol te gebruik, en dan die bediener se geheime sleutels met behulp van die Bleichenbacher-aanval herwin. Vir eers het ons die tegniese besonderhede van hierdie aanval oorgeslaan; soos Logjam, sal dit moet wag totdat ons 'n goeie begrip van publieke sleutel kriptostelsels en hul kwesbaarhede het.

In die volgende artikel sal ons praat oor gevorderde aanvalle soos die ontmoet-in-die-middel-metode, differensiële kriptanalise en die verjaardagaanval. Kom ons maak 'n kort uitstappie na sykanaalaanvalle, en dan kom ons by die lekker deel, publieke-sleutel kriptostelsels.

Bron: will.com

Voeg 'n opmerking