[Translated by Jouko Voutilainen (KYBS2004 course assignment at JYU.FI)]
"Cryptoneulan löytäminen tavuheinäsuovasta"
Hän on haittaohjelmatutkija Check Pointilla
ja tulee Israeli Institute of Technologysta.
Hän aikoo kertoa meille jotain avainvirtauksen uudelleenkäytöstä ja siitä,
miten välttää jatkuvat yölliset yritykset
ymmärtää salaustekniikkaprotokollaa,
mutta oliko se vaivan arvoista.
Tarkoitan että sen sijaan,
että vietät yösi automatisoinnissa sen sijaan,
että tarkistat sen itse.
Katsotaanpa.
Kiitos.
Antakaa hänelle vielä kunnon aplodit.
[Yleisö taputtaa]
Hei, olen Ben.
Olen Check Pointin haittaohjelmien haavoittuvuuksien tutkimusryhmästä.
Tämä mainittiin jo aiemmin,
mutta halusin mainita sen uudelleen.
Minä tarkastelen teoreettisen tietojenkäsittelytieteen
sovelluksia torjuakseni ongelmia,
joita kohtaamme tietoturva-alalla.
Vähemmän kaunisteltuna tämä tarkoittaa sitä,
että olen amatöörimatematiikko,
joka jotenkin tunkeutui alalle.
Älä kerro kenellekään,
erityisesti kaikille kanssani työskenteleville ihmisille.
On tarpeeksi vaikeaa pitää tämä salassa,
kun otetaan huomioon,
että kun annoin pomolleni ensimmäisen luonnoksen tästä esityksestä,
hän katsoi sitä ja sanoi:
"Aiotko todella esittää tämän kaavojen kanssa? He tulevat lynkkaamaan sinut."
Joten ensinnäkin,
älä lynkkaa minua.
Toiseksi yritin parhaani poistaakseni suurimman osan kaavoista.
Yksi kaava on jossakin yhdellä dioista.
Tämä esitys käsittelee automaattista havaitsemista
salausavaimen uudelleenkäyttöhaavoittuvuuksista
Haluaisin sukeltaa suoraan aiheeseen,
mutta valitettavasti minun täytyy ensin selittää,
mikä tämä haavoittuvuus on.
Ja vielä valitettavammin,
jotta voin selittää sen merkityksen,
minun täytyy selittää,
miten virtasalaus toimii.
Joten käydään se läpi mahdollisimman nopeasti.
OK, näin virtasalaus toimii:
periaatteessa on olemassa tämä laite,
jota kutsutaan pseudosatunnaisluvun generaattoriksi.
Ja pseudosatunnaisluvun generaattori hyväksyy lyhyen avaimen
ja tuottaa mitä tahansa,
joka käytännössä näyttää kohinalta.
He ketkä eivät olleet tuttuja avaimen suhteen,
se näyttää kohinalta.
Sitä voi käyttää salaamisessa.
Miten?
Lisäät symmetrisen avaimen,
jonka molemmat osapuolet,
kuten esimerkiksi Alice ja Bob,
tuntevat yrittäessään kommunikoida,
ja pseudosatunnaisluvun generaattori
tuottaa tämän avainvirran,
joka näyttää kohinalta,
ja suoritat XOR:n selkokieliselle tekstille (tässä tapauksessa hymiölle).
Tämä johtaa salattuun tekstiin,
joka on selkokielinen teksti eksklusiivinen
tai -operaattorin (XOR) avainvirran kanssa.
Ja maallikoille, jotka eivät tunne avainta tai sijaintia,
näyttää myös kohinalta.
Tämä on XOR-operaation ominaisuus.
Kun otat mukavan selkokielisen tekstin ja
XORaat sen jotakin kohinan kaltaista vastaan,
saat myös jotakin,
joka näyttää kohinalta.
Mitä voit tehdä seuraavaksi?
Nyt tässä on salattu teksti.
Se näyttää kohinalta,
mutta jos XORaat sen uudelleen samalla avainvirralla,
jota Bob toisella puolella viestintää käyttää,
saat alkuperäisen tekstin takaisin.
Miksi?
Koska tämä on toinen XOR-operaation ominaisuus.
Jos XORaat jotakin saman elementin kanssa,
oli se sitten kohinaa tai ei,
kahdesti, saat sen kumoamaan itsensä.
Jos XORaat kohinan kanssa
, XORaat sen uudelleen kohinan kanssa,
kohinan kumoaa itsensä
ja saat alkuperäisen tekstin takaisin.
Joten mikä on avaimen uudelleenkäyttö?
Avaimen uudelleenkäyttö
on hämmästyttävästi saman avaimen käyttöä kahdesti,
salataksesi kaksi selkokielistä viestiä.
Kuten näette, otetaan tietty avain.
Tämä on avain.
Ja XOR:aamme tekstin ensimmäisen selkokielisen viestin avaimella
ja toisen selkokielisen viestin jälleen samalla avaimella.
Ja saamme kaksi kokonaisuutta kohinaa.
Kuten aiemmin mainittiin,
jos XOR:aamme kohinaan,
saamme jotakin,
joka näyttää kohinalta,
ellei tiedä avainta,
jolla avainvirta on alun perin generoitu
Ja nyt,
jos Eve on viestinnän keskellä,
hän salakuuntelee tätä kommunikaatiota,
Ja hän saa tämän kohinan ja tämän toisen kohinan.
ja se näyttää kaikki kohinalta hänelle.
Ja tietenkin hän ei voi tehdä mitään.
Eikä ole olemassa avaimen uudelleenkäytön haavoittuvuutta,
joten voit nyt nousta ylös istuimistasi ja mennä kotiin.
Ei, ei todellakaan.
Tämä on mitä tapahtuu,
kun salaat kaksi erilaista selkokielistä viestiä samalla avaimella.
On mahdollista, että Eve,
jolla on pääsy molempiin salattuihin viesteihin,
suorittaa kahden salakirjoitetun viestin XOR-operaatio.
Ja mitä me sanoimme aiemmin saman elementin kahdesti toistuvasta XOR-operaatiosta?
Tässä avain esiintyy kahdesti.
Sinulla on ensimmäinen selkokielinen teksti
XOR-avain,
toinen selkokielinen teksti XOR-avain.
Ja jos XOR:aat kaksi salattua viestiä suoritetaan,
avain kumoaa itsensä,
ja sinä saat ensimmäisen selkokielisen viestin XOR:aamaan
toisen selkokielisen tekstin.
Tämä ei ole jotain,
mitä haluat mahdollistaa,
kuten voit nähdä täällä.
Even on hyvin helppo tarkastella tätä asiaa
ja saada erittäin hyvä käsitys alkuperäisistä selkokielisistä viesteistä.
Tämä johtuu redundanssista kahdessa alkuperäisessä selkokielisessä tekstissä.
Meidän tilanteessamme,
jossa tulemme työskentelemään
ja mainitsemaan hetken kuluttua,
se on vähän vaikeampaa.
Se ei ole niin ilmeistä.
Se ei vain hypi silmille.
Itse asiassa kaikki vaiva ja algoritmit ovat omistautuneet
alkuperäisen selkokielisen tekstin erottamiseen,
mutta tämä on esimerkki,
jotta voit katsoa sitä
ja nähdä kuinka kauhea tämä haavoittuvuus on,
jos se on olemassa.
Se ei ole kovin kiva asia.
Joten mihin se on hyvä?
Miksi haluamme tunnistaa avaimen uudelleenkäytön?
Tässä on ensimmäinen esimerkki:
Tämä on dokumentti Venona-projektista.
Venona-projekti kesti 40 vuotta 1940-luvulta 1980-luvulle,
USA:n aloittamana salakuunnella Neuvostoliiton viestintää.
Tämä aloitettiin ennen kuin NSA edes perustettiin.
Neuvostoliitto käytti uudelleen avainvirtaansa.
Yhden kerran padejaan.
Oikein käytettynä yhden kerran padit on murtamattomia salauksia,
mutta he käyttivät näitä uudestaan,
ja mitä tapahtui oli,
että haavoittuvuus jonka näimme tuli esille siitä syystä.
Ja USA:n tiedustelu onnistui keräämään
tietoa noista salatuista viesteistä seuraavan 40 vuoden ajan.
Kyse ei ole siitä,
että Neuvostoliitto jatkoi haavoittuneen tiedon lähettämistä 40 vuoden ajan.
Sitä kesti vain 4 vuotta ja sen jälkeen he viisastuivat.
Mutta 40 vuoden ajan Amerikkalaiset jatkoivat tätä projektia
keräten yhä enemmän tietoa
ja he saivat paljon hyödyllistä tietoa
kuten vakoojapiirien nimiä ja identiteettejä.
Eli tässä on yksi käyttötapa sille.
Jos pystyt tarkastelemaan verkkoliikennettä
ja toteamaan että "hei, tässä on avaimen uudelleenkäyttöä".
Se on hyödyllistä.
Voit aloittaa hyökkäämällä verkkoliikenteeseen ja etsimään tietoa.
Tämä on toinen käyttötarkoitus.
Nyt aion häpeilemättömästi mainostaa kollegaani Nitayta,
koska hän on mahtava.
Aiemmin tänä vuonna tutkimme tiettyä lunnasohjelmaa nimeltä Dircrypt.
Se on käytännössä kuin Cryptolockerin wannabe.
Se saastuttaa tietokoneeseesi ja alkaa salata tiedostojasi.
Valitettavasti kun Nitay kaivautui syvemmälle lähdekoodiin,
huomasin, että heidän salaus toteuttaa avainten uudelleenkäyttöä.
Se käyttää virtasalausta RC4.
Tämä on hyvä kohta mainita,
että kaikki mitä puhun juuri nyt
koskee vain virtasalauksia
ja kertakäyttöisiä malleja,
jotka ovat kuin virtasalaus,
ei lohkosalauksia kuten AES .
DES ja vastaavat.
Selvitimme että näin tapahtuu.
Jokainen Dircryptin salausavaimella RC4 salattu tiedosto käytti samaa avainta.
Se oli viiden kirjaimen avain,
"black" kaikki pienillä kirjaimilla.
Tämä tarkoittaa,
että kaikki salatut tiedostot voitaisiin teoriassa palauttaa
hyödyntämällä redundanssia selkokielisessä tekstissä.
Joka tapauksessa tämä ei ollut jotain,
jonka haittaohjelman toimija suunnitteli tekevänsä.
Hauska juttu on,
että emme edes joutuneet menemään niin pitkälle,
koska haittaohjelma itse asiassa sisällytti avaimen jokaiseen tiedostoon.
Emme oikeastaan tiedä miksi,
todennäköisesti se näytti siltä, että tunnistaisimme sen sillä hetkellä.
Joten, jos haittaohjelman tekijä ei olisi tehnyt tätä,
olisimme voineet palauttaa sen selkokielisen tekstin tai suuren osan siitä kuitenkin.
Jos meillä olisi ollut tapa katsoa tiedostoja ja tulla oivallukseen,
että tässä on tehty avaimen uudelleenkäyttöä,
Nitay ei olisi joutunut istumaan ruudun edessä katsomassa IDA Pro:ta
verisin silmin yhä toistuvina öinä.
Olisimme voineet vain katsoa tiedostoja ja sanoa:
"Hei, täällä on avaimen uudelleenkäyttöhaavoittuvuus",
ja edetä siitä ja säästää paljon aikaa ja vaivaa.
Tämä on jotain samankaltaista.
Tämä on liikennettä Ramnit haittaohjelmasta.
Ramnit-haittaohjelma tuli esiin noin vuonna 2010.
Se varastaa tunnistetietoja ja sitä käytettiin talouspetoksessa.
Ramnit lähettää liikenteensä erityisellä kotikutoisella protokollalla portista 443.
Se ei ole oikeastaan SSL,
mutta se käyttää porttia 443.
Tämä protokolla sisältää lohkoja,
ja jotkut lohkot voivat olla salattuja.
Jokainen lohko salataan samalla avaimella,
ja pseudosatunnaislukugeneraattori käynnistetään uudelleen ennen jokaista käyttöä.
Joten tässä tapauksessa avaimen uudelleenkäyttö tapahtuu lohkon tasolla.
Jokainen lohko salataan käyttämällä samaa avainta.
Jos voimme tarkastella tätä liikennettä ja ymmärtää,
että "täällä on jotain avaimen uudelleenkäyttöä",
se on hyödyllistä,
koska tarkastellessamme liikennettä emme tiedä siitä mitään.
Nyt jos voitaisiin vain tarkastella liikennettä
että jotain avaimen uudelleenkäyttöä on tapahtunut täällä, se on mielenkiintoista.
Emme odota avaimen uudelleenkäyttöä normaalissa liikenteessä.
Tämä on viimeinen esimerkkimme,
jos uskot, että vain haittaohjelmat ja epämääräiset hahmot
harrastavat avaimen uudelleenkäyttöä.
Microsoft toteutti Officen 2003 versiossaan dokumentin salaustoiminnon.
Käytännössä
Joka kerta, kun tallensit tiedoston,
muokkasit sitä ja tallensit sen uudelleen,
se salattiin uudelleen samalla avaimella.
Avain oli sidottu tiedostoon,
ja se oli yksi ja sama avain joka kerta.
Joku, joka seurasi hakemistoasi pitkään,
voisi katsoa tiedostoja uudelleen ja uudelleen
ja nähdä, miten erilaiset selkokieliset tiedostot
salattiin uudelleen
ja uudelleen samalla avainvirralla.
Tämä mahdollistaa avaimen uudelleenkäyttöhyökkäyksen.
Ihmisten kesti aikaa huomata tämä.
Jos voisimme vain katsoa tiedostoja ja
tulla ymmärrykseen, että
"Oho! Täällä on taas avaimen uudelleenkäyttöä!",
se olisi voitu havaita paljon aikaisemmin.
Joten miten onnistumme tekemään tämän?
Nyt vietän neljä diaa selittäen,
kuinka hienoa olisi,
jos voisimme vain katsoa tätä tavuläjää
ja ymmärtää,
että tässä on avaimen uudelleenkäyttöä.
Se olisi kiva. Mutta miten me tämän toteutamme?
Noh. Muistatteko onko kukaan jäänyt jumiin
vanhoissa 90-luvun seikkailuissa kuten Sam and the Sorcerer ja Monkey Island.
Kun olet täysin jumissa etkä tiedä mitä tehdä,
niin mitä teet?
Kyllä.
Yrität kaikkea mahdollista kunnes joku toimii.
Eli tämä on mitä teemme tässä.
Käytännössä jos otamme jokaisen tavun alkuperäisestä syötteestä
ja XOR:aamme sen jokaisen muun tavun kanssa, saamme tämän tilan,
jossa jokainen XOR:attu tavu XOR:attu toisillaan.
Esimerkiksi tämä ruutu on XOR:n tulos R:n ja R:n kohdassa.
ja se tulee olemaan Null-tavu,
sillä XOR itsensä kanssa on null-tavu.
Ja jokainen ruutu tässä tilassa,
on käytännössä oman sarakkeensa ja rivinsä merkin XOR.
Mihin tämä on hyvä?
Näemme kohta.
Ensinnäki tältä se näyttää.
Vinosarakkeessa kaikki ovat null-tavuja.
Koska siinä on XOR:attu arvo itsellään. Eli.
Mikä on suunnitelmamme yllä olevan perusteella?
Jos otamme syötteen,
tarkastellaan tyypillistä syötettä,
jolle haluamme suorittaa toimintoja
ja löytää jotain mielenkiintoista.
Otetaan tämä syöte.
Siellä on kaikenlaisia häiriöitä.
Jossain täällä on kätketty kaksi salausviestiä
Ne ovat molemmat eri selkotekstejä,
jotka on salattu samalla avaimella.
Tämä on se asia, jonka haluamme löytää.
Ja jos XOR:ataan jokainen tavu toisensa kanssa,
jossain täällä, okei?
Tämä on tämän salausviestin ensimmäinen tavu
XOR:attuna tämän salausviestin ensimmäisen tavun kanssa.
Miksi tämä kiinnostaa meitä?
Aiemman näkemämme takia.
Jos XOR:ataan salauksen
ensimmäinen tavu, avain peruuttaa itsensä.
Sama pätee,
jos XOR-muunnetaan molempien salausviestien toinen tavu.
Ja tätä viivaa pitkin, okei?
Jos siirrymme yhden yksikön ylöspäin
ja yhden yksikön oikealle,
siirrymme käytännössä seuraavaan merkkiin molemmissa merkkijonoissa.
Tämän valkoisen viivan varrella voit nähdä kaksi salausviestiä XOR:aavan toisensa.
Kaksi eri salausviestiä voidaan lukea tätä viivaa pitkin.
Miksi tämä on tärkeää jälleen?
Koska aiemmin näimme,
mitä tapahtuu, jos teemme niin.
Avain kumoaa itsensä.
Voit itse asiassa nähdä hymynaaman ja lähettää viestejä.
Täällä se ei ole yhtä ilmeistä,
mutta se on silti askel,
joka auttaa meitä.
Mitä meidän tarvitsee tehdä.
Miksi?
Tulemme tähän koko juttuun olettaen jotain selkotekstin jaosta.
Selkokieli on eri kuin satunnaiset merkit,
eikö?
Odotamme kirjaimia, odotamme välimerkkejä.
Odotamme joka tapauksessa jakelun olevan erilainen verrattuna tasaisesti jakautuneisiin satunnaisiin merkkeihin.
Tämä ei ole selkotekstin jakelu.
Tämä on XOR-testijakelu.
Tämä on jakelu,
jonka saat,
kun valitset satunnaisen selkotekstin merkin selkotekstin jakelusta
ja sitten toisen satunnaisen merkin selkotekstin jakelusta
ja XOR-muunnat ne.
Saat toisen jaon.
Ja tämä jako on taas erilainen kuin satunnainen jako.
Eli meille se näyttää erilaiselta, eikö?
Jos katsomme tavua joka tuli kahdesta eri selkokielisestä merkistä jotka XOR:attiin,
se näyttäytyy meille erilaiselta
kuin vain satunnainen tavu pitkässä juoksussa.
Joten mitä me aiomme tehdä?
Me skannaamme tämän tilan,
josta mainitsin aikaisemmin.
Me rakennamme sen ensin ja sitten skannaamme sen diagonaalisesti,
koska todisteet ovat kuin rikospaikka, ja raskauttavat todisteet ovat
kaikki tavut jotka tulevat näyttämään epäilyttäviltä eivätkä tulleet satunnaisesta jakelusta.
Ne ilmestyvät diagonaalin varrelle.
Meillä ei ole kaikkia värejä ja väriohjauksia,
ja meillä vain syöte,
mutta jos skannaamme sen diagonaalisesti,
tiedämme että täällä jossain on avaimen uudelleenkäyttöä.
Lopulta törmäämme tähän diagonaaliin.
Aiomme tarkastella jokaista tavua kuin pientä todisteen palasta,
jotka saattavat ohjata meitä ymmärtämään, että kyseessä on ollut avaimen uudelleenkäyttöä. Ja nyt me
katsomme kahta salaustekstiä,
jotka on salattu samalla virtausavaimella,
ja työskentelemme diagonaalien kanssa.
Joka kerta kun törmäämme tavuun,
poimimme sen ja analysoimme sen selvittääksemme,
tukeeko se vai kumoaa hypoteesimme.
Jos kuljemme diagonaalia pitkin
ja löydämme ylivoimaisen määrän todisteita,
jotka tukevat hypoteesiamme, että avaimen uudelleenkäyttöä on tehty
nostamme hälytyksen ja sanomme, että
tässä oli tarpeeksi todisteita.
Ei ole mahdollista, että tämä olisi vain sattumaa.
Avaimen uudelleenkäyttöä on tapahtunut tässä.
Haavoittuvainen salateksin avaimen uudelleenkäyttöhyökkäys
on tässä kohtaa ja sen pituus on näin ja näin.
Tämä on se kaava josta varoitin jo aiemmin.
Tämä on lyhennelmä aiheeseen liittyvästä matematiikasta.
Käytännössä sanoin että katso todisteita,
aion kertoa mitä sillä tarkoitin.
Käytännössä on rubriikki
joka päättää kuinka paljon tavu,
todiste, vaikuttaa
hypoteesiimme ja
laittaa meidät ajattelemaan,
että hypoteesi on todennäköisempi.
Tämä on käytännössä laskentaa eroavaisuuden ja todennäköisyyden välillä,
että tavu syntyi salaustekstin XOR-operaatiosta sinisissä luvuissa.
Ja todennäköisyys,
että se tapahtuisi satunnaisesti.
En mene kaavaan,
mutta jokatapauksessa se on oleellinen.
Mitä tulee kysymykseen siitä,
kuinka paljon todisteita tarvitaan,
tämä on tärkeä kysymys,
voimme asettaa riman korkealle tai matalalle.
Todistuskokeen vuoksi asetimme riman siten,
että yhden väärän positiivisen tuloksen hyväksymme.
Tietysti voit asettaa sen pienemmäksi.
Se riippuu siitä,
missä yhteydessä aiot käyttää tätä asiaa.
Kysymys on,
jos asetamme todistusriman niin korkealle,
voimmeko todella havaita jotain?
Saattaa hyvinkin olla niin,
että jos vaadimme vain,
kun törmäämme kahteen salakirjoitettuun tekstiin,
joita etsimme,
emme pysty löytämään niitä,
koska todisteita ei ole tarpeeksi.
Mutta käy ilmi,
että meillä on tämä kaava,
jonka löysimme käyttämällä niin kutsuttua Chebyshevin epäyhtälöä.
Lyhyesti sanottuna,
niin kauan kuin etsimämme salakirjoitettu teksti
on tarpeeksi pitkä,
jokainen tavu antaa meille
jonkin verran todisteita,
positiivisia todisteita, jotka kertovat meille,
että tämä saattaa olla oikea asia.
Periaatteessa, jos tekstinpätkä on tarpeeksi pitkä,
meillä on tarpeeksi todisteita.
Ainoa kysymys on,
että se on numeropeli,
mikä on todennäköisyys,
että epäonnistumme joka tapauksessa,
vaikka teksti oli teoriassa tarpeeksi pitkä,
ja odotimme sen toimivan.
Siihen Chebyshevin epäyhtälö on tarkoitettu.
Se rajaa ylhäältä todennäköisyyden,
että jotain epätodennäköistä tapahtuu.
Joten jos tekstinpätkä on tarpeeksi pitkä,
ja jos katsot kaavaa,
voit päätellä,
että "tarpeeksi pitkä" on logaritminen syötteen pituudessa,
mikä on hyvä.
Jos kaksinkertaistamme syötteen,
tarvitsemme vain yhden merkin lisää salakirjoitetussa tekstissä hälytyksen käynnistymiseksi.
Periaatteessa tätä se on. Kun katsomme kaavaa...
en todellakaan odota kenenkään täällä
vain katsomalla sitä ja ymmärtävän,
miten keksimme tämän asian,
mutta se on vain todiste siitä,
että tutkimme sitä.
Tämä algoritmi tulisi toimimaan teoriassa.
Nyt kaikki tämä on hienoa,
mutta meidän täytyy todella näyttää,
miten se toimii käytännössä,
koska en usko,
että kaavan tarkasteleminen vakuutti ketään
täällä kovin paljoa.
Periaatteessa katsomme jonkinlaista lämpökarttaa.
Näet, mitä algoritmi näkee,
kun se toimii.
Kun algoritmi läpikäy tekemämme alueen
se katsoo eri tavuja
ja jokainen tavu näyttää enemmältä tai vähemmältä todisteita meidän
hypoteesiamme varten liittyen avaimen uudelleenkäyttöön.
Tavut, jotka antava lisää todisteita,
merkitään punaisella,
ja vähemmän todisteita sisältävät tavut sinisellä.
Algoritmi etsii pääasiassa viivoja muodostavia diagonaaleja.
Hypoteesillemme on paljon todisteita,
jotka näkyvät punaisella.
Nyt katsomme todistusaineiston lämpökarttaa,
joka liittyy aiemmin mainitsemaani Ramnit-viestintään.
Elikkä.. Ensimmäiseksi älä kiinnitä huomiota tähän.
Tämä on päädiagonaali,
jossa syöte on XOR:attu itsellään
Kaikki tavut ovat nulleja,
joten se näyttää algoritmin kannalta epäilyttävältä
eikä näytä yhtään satunnaiselta.
Mutta jos katsot hieman pidemmälle,
voit nähdä sen täältä.
Tämä on pitkä diagonaali,
ainutlaatuinen diagonaali,
jossa algoritmi havaitsee kiinnostavan ilmiön,
koska diagonaalin varrella on viiva todisteita.
Kyllä, koska se on itse asiassa elliptinen niille,
jotka eivät jostain syystä näe laserpointteria.
Tämä on kartta toisesta tapauksesta.
Se on hieman vaikeampi.
En tiedä, näkeekö kukaan sen täältä,
mutta jälleen kerran päädiagonaali on merkityksetön.
Tämä on kahden Dircrypt-haittaohjelman salaaman tiedoston lämpökartta,
josta aiemmin puhuin.
Ja molemmat tiedostot salattiin käyttäen samaa avainvirtaa,
joten avaimen uudelleenkäyttöä
pitäisi pystyä havaitsemaan.
Jos katsomme tätä,
se näkyy punaisena diagonaalina viivana jossain täällä.
Ja tässä se on
eikö niin?
Diagonaali menee tuosta.
Se on punainen diagonaali,
jossa jokainen tavu näyttää epäilyttävältä,
näyttää enemmän tai vähemmän siltä,
kuin se olisi tullut ei satunnaisesti,
vaan selkokielisten tavujen XOR-selkokielisistä tavuista,
eikö niin?
Joten, en tiedä,
huomasitteko,
mutta olemme käytännössä onnistuneet suunnitelmassamme.
Olemme pystyneet vain
ottamaan syötteen,
tietämättä siitä mitään etukäteen,
ja laskemaan kaikenlaisia ominaisuuksia
eri tavujen XOR:ista.
Ja algoritmi pystyy,
aivan kuten voit katsoa tätä diagonaalia
ja automaattisesti havaita missä avaimen uudelleenkäyttö on,
niin pystyy myös algoritmi.
Katsotaan,
onko meillä aikaa demonstrointiin
Katsotaanpa. Näyttää siltä,
että toinen demo ei toimi jostain syystä.
No, ei se mitään.
Toinen demo ei ollut yhtä jännittävä kuin tämä,
koska se näytti käynnissä olevan skriptin.
Skripti,
joka luo tämän.
Käytännössä... Ramnit-haittaohjelma, jonka näimme aiemmin,
lähettää tätä kommunikaatiota,
ja skripti iteroi sen yli.
Ja lopulta ohjelman suorittamisen piti todella nähdä...
Skripti kulkemassa tätä diagonaalia pitkin
keräten todistusaineistoa.
Näen tämän määrän positiivista todistusaineistoa,
ja se kasvaa ja kasvaa.
Lopulta se päättyy,
koska se kulkee syötteen lopun yli,
ja sitten se sanoo: "Aha, löysin sen! Löysin avaimen uudelleenkäytön!"
ja se tulostaa kaksi siirtymää.
Tämä on itse asiassa se jännittävämpi asia.
Ei tarvitse katsoa demoa ymmärtääksesi
mitä täällä tapahtuu.
Olemme onnistuneet suunnitelmassamme käyttäen aiemmin hahmottelemaani suunnitelmaa,
ja toivon todella, että tästä on
hyötyä. Aion ladata sen
ja heti kun saan koodin tilaan,
jossa voin antaa sen jonkun tarkasteltavaksi
ja myöhemmin katsoa heitä silmiin,
tämä ladataan kaikkien niiden hyväksi,
jotka haluavat tarkastella sitä.
Ja tämä se periaatteessa on.
Toivon, että ymmärrätte nyt paremmin,
mikä avaimen uudelleenkäyttö on
ja miten havaitsemme sen tällä menetelmällä.
Ok, ja kiitos.
[Yleisö taputtaa]
Onko mitään kysyttävää?
Okei
Lämpökartta?
Tämä.
Olin ihmetellyt sitä täysin ei-epäilyttävää vaakasuoraa viivaa alhaalla.
Kyllä, vaakasuorat viivat ovat todennäköisesti artefakteja.
Periaatteessa mikä on vaakasuora viiva täällä,
Tämä on tietty merkki jostakin entisestä selkokielisestä tekstistä,
XOR:attuna muuhun selvitettyyn tekstiin.
Se ei käytännössä liity siihen,
mistä olemme aiemmin puhuneet,
koska kun poimimme kaksi salattua viestiä,
se ilmestyy diagonaalille.
Hmm, luultavasti se on yksi tietty tavu salausavaintekstissä,
jossa XOR itsessään tuottaa jonkinlaisen poikkeaman.
Onneksi se ei näy diagonaalissa,
joten emme kärsi vääristä positiivisista tuloksista sen takia.
OK, kiitos.
Kun segmentit ovat saman kokoisia,
salausavain uudelleenkäytetään.
Kun nämä segmentit on tunnistettu,
kuinka paljon manuaalista salauksen
purkamista tarvitaan tekstin palauttamiseen?
Itse asiassa näin esseen julkaistuna juuri tästä aiheesta.
On olemassa automaattisia menetelmiä,
joilla voi saada selville tekstin niissä tapauksissa,
joissa tiedetään kahden salausavaintekstin
olevan alttiita hyökkäykselle.
Se ei toimi 100% tapauksissa,
mutta näin tehtiin todellisessa tapauksessa,
jossa käytettiin Word 2003 -salausta,
ja se toimi melko hyvin.
Sinun ei tarvitse käyttää manuaalista työtä salauksen purkamiseen;
on automaattisia menetelmiä sen tekemiseen.
Kyllä,
Eli sinun täytyy tietää tavujen jakautuminen tekstin osalta.
Aivan.
Nämä lämpökartat onkin luotu arvauksen perusteella siitä,
miltä teksti näyttää.
Siinä pitäisi olla joitain isoja kirjaimia,
pieniä kirjaimia ja merkkejä ja niin edelleen.
Toivottavasti tämä arvaus on
tarpeeksi lähellä minkä tahansa todellisen tekstin tapausta,
jotta hälytys nousee riippumatta tarkasta jakaumasta.
Yksi kysymys IRC:stä.
Kyllä kiitos.
Kysymys internetistä kuuluu:
"Onko näitä dokumentteja jossain saatavilla?"
Onko nämä dokumentit jossain saatavilla?
Dokumentteja ei ole,
mutta kuten sanoin,
suunnittelen työstäväni sen ja lataavani sen nettiin.
Ilmoitan heti, kun se on saatavilla.
Kiitos
Kiitos, että näytit tänään yleisesti ottaen stream-salausten haavoittuvuudet.
Suositukseni kenelle tahansa on
olla käyttämättä virtasalausalgoritmeja ollenkaan.
Joten jos joku,
mukaan lukien haittasuunnittelijat,
haluaa suunnitella oman salausjärjestelmänsä,
mikä on selvästi typerä idea,
heidän pitäisi käyttää näitä AEAD-salauksia,
eli todennettuja salausalgoritmeja.
Tämä on totta.
Koska mitä et maininnut, pelkän tiedon salauksen lisäksi tarvitset
myös "key message digestin",
jonka nämä uusimmat salaukset tarjoavat.
Ja tämä on syy siihen,
miksi uusissa versioissa kuljetuskerroksen tietoturvasta,
joita kehitetään,
et löydä enää näitä virtasalauksia,
koska ne ovat turvattomia.
Tämä on totta.
Itse asiassa haittaohjelmat käyttävät usein virtasalauksia,
koska niitä on helppo toteuttaa.
RC4 on esimerkiksi erittäin suosittu,
koska se on helppo toteuttaa.
Ja tämä on syy,
miksi sitä käytetään.
Kuten voit ymmärtää,
todellisen turvallisuuden saavuttaminen
ei ole ensimmäinen asia mielessä,
en tiedä mitä Microsoft ajatteli,
mutta haittaohjelmien tekijöitä tämä ei kiinnosta.
He ajattelevat: "Ok, käytetään salauksia",
mutta ilmeisesti he eivät ajatelleet
paljoakaan pidemmälle kuin sitä.
Palataan kolmoseen.
Hei, nopea kysymys täältä.
Palataan visualisointiosuuteen.
Teetkö vain bitti bitiltä,
koska tässä on kaksi väriä,
vai onko siinä enemmän värejä?
Joo,
Katsoin RGB-arvojen satunnaista jakautumista punaisesta siniseen ja
laskin sen keskiarvon ja keskihajonnan,
joka on tietysti keskellä.
Sitten katsoin näiden todisteiden jakautumista
ja käytin vastaavuustoimintoa
ensimmäisestä keskiarvosta todistetaulukon keskiarvoon.
Laskin kalibroidut arvot todistusarvoista suhteessa todistusarvojen keskijakaumaan.
ja jaoin ne keskihajonnalla saadakseni tämän.
Tämä on tavu tavulta?
Kyllä,
tavu tavulta
Sanoit, että virtasalaukset,
kuten RC4, ovat alttiita tälle ongelmalle,
mutta mitä tapahtuu,
kun käytät CTR-tilaa tai jotain tällaista?
Ovatko nämä myös alttiina tälle ongelmalle?
Minäpä selitän,
että salaustyyppi jota tämä ongelma koskee,
on jokainen salaus,
jossa sinun on keksittävä jonkinlainen avainvirta.
Periaatteessa on olemassa satunnainen avain,
ja saat salakirjoitetun tekstin käyttämällä XOR-toimintoa selkokielisen tekstin
ja avaimen välillä.
Minkään muun tyyppinen salakirjoitus,
kuten lohkosalaus tai vastaava,
ei ole haavoittuvainen tälle hyökkäykselle.
Mutta mitä tapahtuu,
kun käytät laskuritilaa ja käytät uudelleen noncea?
En ymmärrä.
Voitko toistaa kysymyksen?
Kun käytät laskuritilaa ja uudelleenkäytät noncea.
Uskoisin,
että eikö tämä johtaisi samaan ongelmaan?
Luulisin...
Kun sinä...
Mitä?
Kun käytät AES ja laskuritilaa.
Aa kyllä...
Ei, ei.
Koska tarkoitat, jos XOR on jossain päin salauksen toimintaa?
Ei,
tämä on todella erityinen sivuvaikutus siitä,
että teet lineaarisen salauksen.
Salakirjoitettu teksti on
lineaarinen funktio selkokielisestä tekstistä
ja satunnaisesta avaimesta.
Hetkellä, jolloin salauksen toiminto sisältää
XOR-toiminnon,
mutta se ei ole täysin lineaarinen.
Siinä on vaiheita jotka varmistavat
ettei se ole lineaarinen
tällöin tulos ei ole haavoittuvainen tälle hyökkäykselle.
Ok, kiitos.
No, me ollaan kai valmiita.
Joten kiitos vielä kerran.
Mmhm
[Yleisö taputtaa]
[Translated by Jouko Voutilainen (KYBS2004 course assignment at JYU.FI)]