Kezdőoldal » Számítástechnika » Programozás » Valaki dekódolná nekem a...

Valaki dekódolná nekem a lentebb lévő, md5-ben cryptelt kódot?

Figyelt kérdés
cedba5177392031731eec14484f324b9
2011. szept. 6. 19:34
1 2
 1/14 danceinthedark válasza:
100%

Az MD5 hashek visszafejtése nem lehetséges.

[link]

2011. szept. 6. 19:45
Hasznos számodra ez a válasz?
 2/14 2xSü ***** válasza:
89%

Az MD5 egy hash algoritmus, így nem lehet dekódolni. A működése nagyon-nagyon végletekig leegyszerűsítve olyan, mintha összeadnál számokat. Van egy eredeti számsorod, mondjuk 1,3,9,2,8 amiből csinálsz egy összeget, ami jelen esetben 23. A 23-ból soha az életbe nem fogod megtudni, hogy mi volt az eredeti számsor.


Persze lehet md5-öt is dekódolni bruteforce és egyéb eljárásokkal. Ilyenkor kb. olyan, mintha végigpróbálnál egy csomó számsort, hogy vajon melyiknek az összege 23. (A különbség annyi, hogy az MD5-nél ez nem ilyen egyszerű.) De pl. van szótárral támogatott megoldás is. (Magyarán nem vaktában próbálkozunk, hanem értelmes szavak és kombinációik mentén haladva próbáljuk megtalálni az eredeti tartalmat. (Lásd Google: MD5 rainbow)


Amire az MD5-öt használni szokták. Egy honlapnál pl. a jelszót nem sima szövegként helyezik el az adatbázisban, mert úgy egy betörés során össze lehet gyűjteni, hanem az md5-el kódolt változatát tárolják. Az md5 jellegéből fakadóan így hiába szerzik meg, nem tudják az eredeti jelszavakat visszaállítani. Mikor egy user bejelentkezik, akkor az általa megadott jelszót is kódolják md5-el, és ezt vetik össze az adatbázisban található kóddal. (Mint írtam, nüansznyi az esélye, hogy két különböző karaktersornak azonos az md5 hash-e.)

2011. szept. 6. 19:53
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:
100%

Az md5 hash generáló algoritmus ami egy egyirányú függvény.

Fájlok sértetlenségét lehet vele ellenőrizni. Pl hálózaton átmásolt fálok másolása közbe nem e történt hiba: Hiba ellenőrzésre jó, de ebből nem lehet eldönteni mi a hiba.

Az md5-el kódolt(vagy más hasító függvénnyel) fájlt a fájl ujjlenyomatának is szokták nevezni, mert hasonlóan emberi lenyomathoz abból a szempontból hogy az ujjlenyomat nem tartalmazza az ember teljes genetikai génállományát, nem tartalmazza DNS-t vagyis abból nem lehetne klónozni, de lehet ellenőrizni hogy azaz ember e.


Az ilyen egyirányú kódolási algoritmus(oka)-t vesztességes titkosításnak is szokták nevezni. Mivel 128 bit információt tartalmaz akkor is ha az eredeti adatunk akár több giga/tera volt.

Ha jelszót kódolunk akkor azt azért lehet visszafejteni mert a jelszó kevesebb mint 128 bit információt tartalmaz (erre vannak adatbázisok is de az más kérdés, a nélkül is lehetne csak lassabb)

Mint írtam, hogy fálok sértetlenségét lehet vele ellenőrizni,várhatóan évmilliárdok alatt 1x sem fordul elő hogy egy fájl véletlenül ütközés vagyis úgy sérül hogy az mégis md5-je stimmel, de digitális aláírás-ra nem jó.


Matematikusoknak sikerült ütközést találni, vagyis olyan különböző fálokat csinálni aminek stimmel az md5-je és ezek ráadásul értelmes pdf-ek.

Részletek: [link]

2011. szept. 6. 22:21
Hasznos számodra ez a válasz?
 4/14 anonim ***** válasza:

22:21

Kifelejtettem: Egy informatikus válasza.

2011. szept. 6. 22:29
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:
78%

"A decryption for this hash wasn't found in our database"


pedig én mindent megpróbáltam :(

2011. szept. 6. 22:48
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
90%

Az MD5, ha egy matematikai függvényként képzeled el(gy.k. beadsz neki egy értéket, és ahhoz hozzárendel egy másik értéket), akkor a szinuszra vagy akár pl. a négyzetre emelésre hasonlít abból a szempontból, hogy ezek a függvények az értékkészlet és az értelmezési tartomány között nem képeznek kölcsönösen egyértelmű megfeleltetést, ergo nem invertálhatóak, azaz F(x) függvényhez nem találsz olyan G függvényt, amire igaz, hogy G(F(x)) = x.(ha belegondolsz, a négyzetre emelés pont ilyen, mert ha ismersz egy kimeneti értéket, pl. 4, arról nem tudod megmondani, hogy az a -2 vagy 2 négyzeteként állt elő, szinuszra ugyanez érvényes, a 0 szinusz érték származhat a 0 fokból, 180 fokból, 360 fokból, etcetc.)

Ergo, ha van egy MD5 hash-ed, amit Pistike gépéről elloptál, amibe ő annak a csajnak a nevét kódolta bele, amelyiket elkapta a Szigeten a prince koncert után, akkor nem fogod tudni megmondani belőle az eredeti nevet, bármennyire is kíváncsi vagy rá.

Az egyetlen, amit tehetsz, hogy az összes létező női névre(vezeték+keresztnév) kiszámolod az MD5 hash-t, és figyeled, hogy melyiknek a hash-e egyezik meg azzal, amit Pistike gépéről elloptál.

Viszont itt egy újabb problémába fogsz ütközni : nem csak egy olyan női nevet találsz majd, aminek a MD5 hash-e megegyezik.

Ez elsőre meglepő lehet persze, de ha kicsit jobban belegondolsz:

az MD5 hash 128 bites,azaz 2^128 különböző értéke lehet.


Egy elnagyolt számítás a női nevekre: Legyen egy átlagos vezetéknév 15 karakter hosszú, egy átlagos keresztnév ugyancsak 15 karakter. Az összesen 30.

Az angol ABC 26 betűből áll, de mivel a Szigetre mindenféle náció jár, számításba kell vegyük a speciális karaktereket is.

Így mondjuk tegyük fel, hogy 64 karakter közül választhatunk minden egyes pozíción.(Ennél több, de így egyszerűbb lesz közös hatványalapra hozni)

Tehát ez 64^30.

64 az ugye 2^6, tehát (2^6)^30. A kitevőket összeszorozva: 2^180.

Nyilván ezeknek a karaktersorozatoknak csak a töredéke lehet értelmes név, ez legyen mondjuk hasraütésre 2^129.

2^129-en ugye pontosan 2x annyi, mint 2^128-on.

Ebből nyilvánvalóan következik, hogy legalább 2 olyan nevet fogsz találni, aminek a hashkódja pontosan ugyanaz, mint amit elloptál Pistike gépéről.


Mindezeknek - többek között - az a következménye, hogy ha egy rendszerben MD5 hash-el vannak letárolva a felhasználók jelszavai(ami elég gyakori, biztonsági okokból: gy.k. még akinek hozzáférése van a nyers adatokhoz, az se lássa a userek jelszavát), akkor a rendszer csak egy dolgot tehet(és ezt is teszi): Belépéskor a megadott jelszóból generál egy hash-t és ezt összehasonlítja az adott user-hez letárolt hash kóddal. Ha megegyezik, akkor engedi a belépést, ha nem egyezik, akkor nem.

És ezt lehet továbbgondolni olyan irányba, hogy pl. ez azt is jelenti, hogy nem csak EGYETLEN EGY jelszóval lehet belépni egy ilyen rendszerbe, hanem bármilyen jelszóval, aminek a hash kódja ugyanaz, mint ami le van tárolva.

Egyébként az MD5 hash már ritkán használt, mivel a generált kulcsok nem elég "egyenletesen" oszlanak el az értékkészleten belül, így bizonyos hash-eket jóval nagyobb valószínűséggel generál, mint másokat. És ugye a számítási kapacitás ugrásszerű növekedése miatt nem túl elérhetetlen egy hozzáérő személy részére olyan erőforrás, amivel egy adott esetben szűk értelmezési tartományra(pl. egy béna rendszer, amiben min 6, max 8 karakter hosszú jelszavak, ami case-insensitive, ráadásul csak angol betűk és számok vannak) legenerálhatja az összes hash-t, és ezután a leggyakrabban előforduló hash-ekhez tartozó bemenetekkel próbálkozik csak, mint jelszavakkal.

Na de ennyit mára a kriptográfia rejtelmeiről, ha ennél is jobban érdekel, guglizz :D Vagy tartok előadást 30 K/óra :D:D

2011. szept. 7. 20:29
Hasznos számodra ez a válasz?
 7/14 2xSü ***** válasza:
100%

Az utolsó hozzászólóval vitatkoznék kicsit, úgy offtopic jelleggel, hiszen az általa felhozott példáról van szó.


Ismereteim szerint úgy 64E keresztnév létezik (számoljunk tehát úgy 100E-el) és a legnagyobb adatbázis, amit találtam kb. 400E vezetéknevet tartalmazott (számoljunk inkább 1M-val). Ha dupla keresztneves nevekben is gondolkodunk, akkor is 10^6*10^5*10^5=10^16 (azaz tíz billiárd) kombináció van. (Megjegyzem, ez egy pöttyet több, mint a föld össznépessége.) Ha mondjuk 34 nyelvvel számolunk és hasonló statisztikát veszünk alapul minden nyelvnél (már ami a vezetéknevek és keresztnevek számát illeti), valamint eltekintünk attól is, hogy sok nyelvben egy-egy keresztnevet ugyanúgy írnak (Lásd latin eredetű keresztneve, akkor is 34*10^16=3.4*10^17 nevet kapunk.


Az md5 mivel 128 bites, így a lehetséges hash-ek száma: 2^128=3.4*10^38


Azaz kb. 10^21-al több hash kód létezik, mint ahány név. (Értsd: minden névre 1000000000000000000000 hash esik még mindig.)


De ha belegondolsz, az md5 128 bites, azaz 16 bájtos. Az átlagos nevek hossza meg nem 30, hanem inkább 16 karakter körül van. Márpedig ritkán hívnak egy embert ”@K5X$S_% }}#7&” -nek.


A saccolást több helyen rontottad el. Egy átlagos név hosszánál 30 karakterrel számolni? Kicsit sok. Igen mellésaccoltál a valódi név / kriksz-kraksz aránynak. (Pl. azt sem vetted figyelembe, hogy nagybetű-kisbetű a névnél nem számít, valamint a legritkább esetben keverednek különböző nyelvek karakterei. A magánhangzó-mássalhangzó váltakozás sem mindegy, ez utóbbiból pl. sokkal kevesebb van.)


Közelítsük meg máshogy a témát. A magyar nyelv szókincse ugyan nehezen meghatározható, de vegyünk 1 millió szót. (A legnagyobb lexikonban, szótárban kb. 120 000 szócikk van.) Ha a földrajzi neveket, vezeték és keresztneveket is hozzávesszük, akkor legyen 10 millió szó. (Nem kevés.) Ezeknek van ragozott alakjuk, így számoljunk 10 milliárd (10^10) magyar szóval. Ha háromszavas kifejezéseket nézünk, akkor ez 10^30 számú variációt jelent. Ez még mindig 10^8 nagyságrendben kisebb az összes hashnál. Ha 1000 nyelvvel számolunk – és eltekintünk attól, hogy a nyelvek jó része nem ragozó –, akkor is 10^5 hash jut minden három szavas mondatra, íródjon az bármilyen nyelven, bármilyen ragozással.

2011. szept. 7. 22:06
Hasznos számodra ez a válasz?
 8/14 2xSü ***** válasza:

Hoppá, az egyik helyen lerövidítette a rendszer a nulláimat!


Helyesen:


Azaz kb. 10^21-al több hash kód létezik, mint ahány név. (Értsd: minden névre 1 000 000 000 000 000 000 000 hash esik még mindig.)

2011. szept. 7. 22:09
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
100%

I bow before you, master :)

Kissé jobban átgondoltad ezt a neves problémát, én csak egy nagyon elnagyolt példát írtam :)

Ennek fényében módosítok is rajta: Pistike gépéről nem egy név md5 hash-ét, hanem a csajának meztelen fotójának(legyen egy 10Kb-s jpeg) md5 hash-ét lopod el :D

2011. szept. 8. 00:16
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:

tl; dr


amúgy mekkora a valószínűsége hogy egy véletlenül előállított byte-sorozat egy meztelen nőt ábrázoló kép?

2011. szept. 8. 19:45
Hasznos számodra ez a válasz?
1 2

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!