» »

Nov preboj na področju zgoščevalnih funkcij

Nov preboj na področju zgoščevalnih funkcij

Slo-Tech - Nemškim raziskovalcem je uspel nov preboj na področju zgoščevalnih funkcij. Pozimi se je začelo z nekaj teoretičnimi prebliski in končalo z metodo za generiranje certifikatov X.509, med katerimi lahko prosto prenašamo podpise, ker imajo zgoščeni z funkcijo MD5 enako vrednost (zaradi nekaterih težav z ohranjanjem tajnosti zasebnih ključev, če lahko napadalec izbere besedilo, ki ga bomo podpisali, se vedno podpisuje kratek niz znakov, dobljen iz dokumenta s kriptografsko zgoščevalno funkcijo in ne dokumenta samega).

V vmesnem času je raziskovalcem kar nekaj zgoraj omenjenih metod uspelo v rahlo modificirani obliki uporabiti tudi za igranje z zgoščevalno funkcijo SHA1.

V zadnjih dneh pa je bila celotna zgodba dvignjena na popolnoma nov nivo. Raziskovalcem je namreč uspelo ustvariti dva smiselna dokumenta z enako MD5 vrednostjo (torej lahko zanju uporabimo isti elektronski podpis).

Glede na to da sta algoritma MD5 in SHA-1 le majhna popravka algoritma MD4, lahko v bližnji prihodnosti pričakujemo tudi podobne preboje na področju zgoščevalne funkcije SHA-1 (trenutnih 269 poskusov je zaenkrat še preveč za praktično uporabo, vendar bi uspešen prenos katere izmed metod uporabljenih nad MD5 zelo verjetno znižal to število vsaj blizu praktično dosegljivih 256).

Kako se bo odzvala slovenska država, ko elektronski certifikati, ki jih je izdala, kmalu ne bodo več ustrezali zahtevam iz zakona o elektronskem poslovanju in elektronskem podpisu?

15 komentarjev

MrStein ::

Hmm, tale zakon pa ma res zanimivo formatiranje. (če drugo ne, sors poglejte)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

64202 ::

Torej, uspelo jim je narediti
A: <p>Nakazite na 483820-049483</p>

B: <p>Nakazite na 858399-494838<font color="white">eneparvrsticcudnihznakcov</font></p>

Kjer ima A in B isti MD5? Jejhata :)
I am NaN, I am a free man!

64202 ::

U ti matr, pa res:

$ md5sum *.ps
a25f7f0b29ee0b3968c860738533a4b9 letter_of_rec.ps
a25f7f0b29ee0b3968c860738533a4b9 order.ps
I am NaN, I am a free man!

Primoz ::

Obstaja bistvena razlika med collisionom z random svinjarijo (kjer uporabnik na prvi pogled opazi, da je nekaj narobe) in dvema uporabnima dokumentoma z popolnoma normalnim (pričakovanim) izgledom.
There can be no real freedom without the freedom to fail.

JerKoJ ::

se splaca pregledat link , predvsem prosojnice

trik je v tem da rabs (vsaj zaenkrat) dokument, ki podpira programiran prikaz (html, tex, pdf, ps, word, ...)
in zanasat se moras na hash funkcijo, ki ima slabost, da ce za razlicna M1 in M2 velja #(M1)==#(M2) potem
za poljuben dodatni string S velja #(M1+S)==#(M2+S).

Ce to velja potem naredis sledece
1. poiscen najmanjsi mozen veljaven header za vrsto datoteke, ki jo napadas (zato da je racunanje hitrejse) - H
2. dodas temu H neke random bite R1 (to da je stvar sintakticno se vedno pravilna)
3. izracunas #(H+R1)
4. s pomocjo pozimi ugotovjenega napada izracunas R2, tako da velja #(H+R2)==#(H+R1) in da je stvar sintakticno pravilna
5. generiras dva dokumenta, s tekstoma T1 in T2 in P del programa ki preveri enakost Rx z R1 ter na podlagi tega prikaze T1 ali T2
D1=H+R1+(P+R1+T1+T2)
D2=H+R2+(P+R1+T1+T2)
6. kar velja prej omenjena slabost bosta tudi #(D1)==#(D2)

primer :
H= "if ("
R1="1234"
R2="5678" - recimo
P1="=="
P2=") {"
P3="} else {"
T1="haha"
T2="neki"

D1="if (1234==1234) { haha } else { neki }"
D2="if (5678==1234) { haha } else { neki }"

elektronsko das podpisati prvi dokument, prevet das pa drugi dokument -> ampak stvar se izide

64202 ::

Poglejte v ps dokumente, pa boste videli, da imajo random svinjarijo v headerju. Samo se ne zrendra, isto kot <font color="white">
I am NaN, I am a free man!

JerKoJ ::

tut ce je random "pizdarija" v dokumentu notr se ni nujno da je prikazana
vse kar so uspel lepo dokazat je da ima lahko dokument razlicen poljuben tekst (barvo, obliko, ...)
in enak hash podpis v kolikor je stvar v takem formatu, da se najprej sprocesira in omogoja neko obliko pogojnih skokov (if, ....)
Zal vecina priljubljenih formatov formatov to omogoca na sreco varnostni formati kolikor je meni znano ne (certifikati, ....)

To pomen, da bos mogu it vsak source podpisanega dokumenta gledat - da notri ni 1024 bitov (128 znakov) random piz...
in da ni dvojnega teksta


//edit
v glavnem gre za postopek kako pred uporabnikom lepo zakrit piz..., tako da ta misli da je vse ok
na obzorju ze vidim nove spame in viruse podpisane s strani pravih organizacij ...

Zgodovina sprememb…

  • spremenil: JerKoJ ()

64202 ::

Ena, cist mal povezana novica - The Underhanded C Contest - kako v C kodo skrit zlobnenamene[tm], da tega nek znalec ne bo opazil.
I am NaN, I am a free man!

minmax ::

jerkoj: ja nekdo ti ne bo mogel sfejkat podpisa od CAja.. to je eno

ampak certifikati se uporalbjajo za podpisovanje navadnih datotek/mailov - to je njihov point ... in torej so vse prakticne rabe teh algoritmov nevarne.

no kot je napisal primož, md5 se ne uporablja pri recimo bančništvu... a očitno prihajajo v doseg napadov tudi stvari, ki so hudo občutljive in to je tisto, kar je problem.

Primoz ::

V bistvu se da tudi certifikate tako "fejkat". Glejte link do X.509 čudes v novici ;) (različna javna in zasebna ključa, isti podpis na certifikatu)

V glavnem rešitev za nekaj naslednjih let je uporaba SHA256 ali SHA512 (ali česa podobnega), potem bomo pa verjetno že imeli kakšen spodobnejši hash algoritem, katerega razvoj bo upošteval nove dosežke na tem področju.
There can be no real freedom without the freedom to fail.

CaqKa ::

kaj pa one cifre 2 na nekaj pomenijo?

MrStein ::

JerKoJ :
na obzorju ze vidim nove spame in viruse podpisane s strani pravih organizacij

Kak bodo pripravili pravne organizacije, da kaj podpišejo ?
Sicer pa , kdo bo upošteval, da ima spam digitalni podpis ? Še bolj sumljiv bo, ker 99,999% emaila NIMA podpisa.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

64202 ::

Ne, recimo activex binaryi so podpisani. Naredis tak executable, da zgleda kot da je podpisan od nekoga, isto kot tisti .ps fajli.
I am NaN, I am a free man!

MrStein ::

To pa je že drugo. Po drugi strani pa ljudje itak vsepovsod kliknejo YES, tak da ...

(med tednom, ko me ni bilo doma, je brat uspel 300 "objektov" na PC spravit; spy/ad/ipd-ware, sem celi vikend pucal :( )
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

pecorin ::

caqka, ce se prav spomnim, je 1:2^69(ali karkoli) verjetnost kolizije..


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Izračunana uspešna kolizija nad SHA-1

Oddelek: Novice / Varnost
189397 (7100) matijadmin
»

[Java] Kako izračunati hash diska.

Oddelek: Programiranje
335160 (3990) kunigunda
»

online davčne blagajne - plagiat hrvaških?

Oddelek: Loža
2310262 (8812) Matako
»

Kompresija s pomočjo /dev/random (strani: 1 2 )

Oddelek: Znanost in tehnologija
517804 (7279) BaToCarx
»

SHA1 hash - prevod

Oddelek: Programiranje
104184 (3841) darkolord

Več podobnih tem