az MD5 hash algoritmus egy egyirányú kriptográfiai függvény, amely bármilyen hosszúságú üzenetet fogad bemenetként, és kimenetként visszatér az eredeti üzenet hitelesítéséhez használt rögzített hosszúságú digest értékhez.
az MD5 hash funkciót eredetileg biztonságos kriptográfiai hash algoritmusként tervezték a digitális aláírások hitelesítésére. Az MD5-et nem kriptográfiai ellenőrző összegként, hanem az adatok integritásának ellenőrzésére és a nem szándékos adatok sérülésének észlelésére használják.
Bár eredetileg úgy tervezték, mint egy kriptográfiai message authentication code algoritmust használja az internetet, MD5 hasító már nem tekinthető megbízható használata kriptográfiai ellenőrző összeg, mert a kutatók kimutatták, technikák képes könnyen generáló MD5 ütközések a commercial off-the-shelf számítógépek.
Ronald Rivest, az RSA Data Security alapítója és az MIT Intézet professzora az MD5-öt egy korábbi message digest algoritmus, az MD4 továbbfejlesztésére tervezte. Leírja, hogy az Internet Engineering Task Force RFC 1321, “az MD5 Message-Digest algoritmus,” írta:
az algoritmus tetszőleges hosszúságú üzenetet vesz fel bemenetként, és a bemenet 128 bites “ujjlenyomatát” vagy “üzenet emésztését” állítja elő. Azt feltételezik, hogy ez computationally kivitelezhetetlen, hogy készítsen két üzenetet, amelyek ugyanazt az üzenetet digest, vagy hogy készítsen olyan üzenetet, amelynek egy adott előre meghatározott cél üzenet digest. Az MD5 algoritmus digitális aláírási alkalmazásokhoz készült, ahol egy nagy fájlt biztonságos módon “tömöríteni” kell, mielőtt privát (titkos) kulccsal titkosítanák egy nyilvános kulcsú kriptosystem, például RSA alatt.
Az IETF azt sugallja, MD5 hasító is lehet használni, integritás védelem, megjegyezve, hogy “Hol az MD5 checksum használt inline a jegyzőkönyv kizárólag véd a hibák, egy MD5 checksum még elfogadható használni.”Ugyanakkor hozzátette, hogy” minden olyan alkalmazásnak és protokollnak, amely bármilyen célra MD5-öt alkalmaz, egyértelműen meg kell jelölnie a várt biztonsági szolgáltatásokat az MD5 használatából.”
Message digest algoritmus jellemzői
Az üzenet digestjei, más néven hash függvények, egyirányú funkciók; bármilyen méretű üzenetet fogadnak bemenetként, és készítsen kimenetként egy rögzített hosszúságú üzenet emésztést.
MD5 a harmadik message digest algoritmus által létrehozott Rivest. Mindhárom (a többi MD2 és MD4) hasonló szerkezettel rendelkezik, de az MD2-T 8 bites gépekre optimalizálták, összehasonlítva a két későbbi képlettel, amelyeket 32 bites gépekre optimalizáltak. Az MD5 algoritmus az MD4 kiterjesztése, amelyet a kritikus felülvizsgálat gyorsnak talált, de valószínűleg nem teljesen biztonságos. Összehasonlításképpen, az MD5 nem olyan gyors, mint az MD4 algoritmus, de sokkal nagyobb biztonságot nyújtott az adatbiztonság szempontjából.
Hogyan MD5 működik
Az MD5 message digest algoritmus folyamatok adatok 512 bites blokkokat, bontani 16 szavakat áll, 32 bit minden. Az MD5 kimenete egy 128 bites message digest érték.
az MD5 digest érték kiszámítása külön szakaszokban történik, amelyek minden 512 bites adatblokkot feldolgoznak az előző szakaszban kiszámított értékkel együtt. Az első szakasz kezdődik az üzenet digest értékek inicializált egymást követő hexadecimális numerikus értékeket. Minden szakasz tartalmaz négy üzenet digest halad, amelyek manipulálják az értékeket a jelenlegi adatblokk értékek feldolgozása az előző blokk. Az utolsó blokkból kiszámított végső érték az adott blokk MD5 digestje lesz.
MD5 security
bármely message digest funkció célja, hogy véletlenszerűen megjelenő emésztéseket készítsen. Figyelembe kell venni támadó biztonságos, a hash függvény felel meg a két követelmények: az első, hogy lehetetlen, hogy a támadó létrehoz egy üzenetet megfelelő egy adott hash érték; másodszor, hogy lehetetlen, hogy a támadó létre két üzenetet, hogy ugyanazt a hash értéket.
MD5 hash már nem tekinthető kriptográfiailag biztonságos, és nem kell használni a kriptográfiai hitelesítés.
2011-Ben az IETF közzétett RFC 6151, “Frissített Biztonsági Megfontolások az MD5 Üzenet-Digest-ben, a HMAC-MD5 Algoritmust,” amely idézett számos közelmúltbeli támadások ellen MD5 hash-eket, főleg, hogy a generált hash ütközések egy perc vagy kevesebb szabványos notebook meg egy másik, hogy képes generálni, hogy egy ütközés, mint 10 másodperc alatt egy 2.66 GHz-es Pentium 4-rendszer. Ennek eredményeként az IETF azt javasolta, hogy az új protokolltervezések egyáltalán ne használják az MD5-et, és hogy az algoritmus elleni legújabb kutatási támadások “elegendő okot szolgáltattak az MD5 használatának kiküszöbölésére olyan alkalmazásokban, ahol ütközési ellenállás szükséges, például digitális aláírások.”