MD5-tiivistegeneraattori verkossa - Ilmainen MD5-salaustyökalu
Luo MD5-tiivisteet välittömästi ilmaisella verkkotyökalullamme. Asiakaspuolen käsittely takaa yksityisyyden. Täydellinen tietoeheyden tarkistuksiin ja tiedostojen varmistamiseen.
MD5-tiivistegeneraattori
Dokumentaatio
Mikä on MD5-hajautusgeneraattori?
MD5-hajautusgeneraattori on työkalu, joka muuntaa minkä tahansa tekstin kiinteän pituiseksi koodiksi, jota kutsutaan MD5-hajautusarvoksi. MD5 on lyhenne sanoista Message-Digest Algorithm 5, joka on 1992 julkaistu hajautusfunktio. Sanan, lauseen tai kokonaisen tiedoston syöttäminen tuottaa aina saman 32 merkin pituisen tuloksen, ja pienikin muutos syötteessä tuottaa täysin erilaisen tuloksen. Työkalu suorittaa algoritmin suoraan selaimessa JavaScriptillä, joten kirjoitettua tekstiä ei koskaan lähetetä palvelimelle.
Miten MD5-hajautus toimii
MD5 on yksisuuntainen funktio. Se ottaa minkä tahansa pituisen syötteen ja tuottaa kiinteän kokoisen tuloksen, jota kutsutaan hajautusarvoksi tai tiivisteeksi. ”Yksisuuntainen” tarkoittaa, ettei prosessia voi kääntää toiseen suuntaan: alkuperäistä tekstiä ei voi rekonstruoida pelkän hajautusarvon perusteella.
Algoritmi käsittelee tiedot seuraavissa vaiheissa:
- Viesti muunnetaan tavuiksi ja täydennetään niin, että sen pituus on 512 bitin monikerta.
- Viestin alkuperäisen pituuden ilmoittava 64 bitin kenttä liitetään loppuun.
- Neljälle 32 bitin luvulle asetetaan kiinteät alkuarvot.
- Täydennetty viesti jaetaan 512 bitin lohkoihin. Jokainen lohko käy läpi neljä kierrosta, joista kukin sisältää 16 operaatiota, eli 64 operaatiota lohkoa kohti. Jokaisessa operaatiossa lohkon tiedot yhdistetään neljään käsiteltävään lukuun bittikohtaisten funktioiden, yhteenlaskun ja bittikierron avulla.
- Kun kaikki lohkot on käsitelty, neljä 32 bitin lukua yhdistetään ja kirjoitetaan heksadesimaalilukuina.
Tulos on aina 128 bittiä pitkä, ja se esitetään 32 heksadesimaalimerkkinä (0-9 ja a–f), koska 128 bitin tuloksen jokainen tavu kirjoitetaan kahtena heksadesimaalimerkkinä.
Hajautusfunktiota pidetään turvallisena, kun sillä on kolme ominaisuutta: sama syöte tuottaa aina saman tuloksen, valitun hajautusarvon tuottavan syötteen löytäminen on käytännössä mahdotonta ja kahden eri syötteen löytäminen saman hajautusarvon tuottamiseksi on käytännössä mahdotonta. MD5 täyttää edelleen ensimmäisen ominaisuuden, mutta kaksi muuta on murrettu, kuten jäljempänä kerrotaan.
MD5-hajautusarvon esimerkki
Sanan ”hello” hajauttaminen MD5-algoritmilla tuottaa seuraavan tuloksen:
1Input: hello
2Output: 5d41402abc4b2a76b9719d911017c592
3Tyhjän merkkijonon hajauttaminen tuottaa myös kiinteän, nollasta poikkeavan tuloksen, koska täydennys ja pituuskenttä käsitellään silti algoritmissa:
1Input: (empty string)
2Output: d41d8cd98f00b204e9800998ecf8427e
3Yhden merkin muuttaminen, esimerkiksi ensimmäisen kirjaimen muuttaminen isoksi kirjaimeksi sanassa ”Hello”, tuottaa täysin erilaisen 32 merkin merkkijonon. Tätä kutsutaan vyöryvaikutukseksi: pienet muutokset syötteessä aiheuttavat suuria ja ennustamattomia muutoksia tuloksessa.
Näin käytät tätä MD5-hajautusgeneraattoria
- Kirjoita tai liitä teksti syöttökenttään.
- Hajautusarvo tulee automaattisesti tekstikentän alapuolelle ja päivittyy tekstin muuttuessa. Erillistä painiketta ei tarvitse painaa.
- Napsauta ”Copy”, jos haluat kopioida 32 merkin hajautusarvon leikepöydälle.
- Tuloksen alle ilmestyy pieni värillinen palkki, joka muodostetaan hajautusarvon osasta ja jonka avulla voi nopeasti tarkistaa, eroavatko kaksi hajautusarvoa toisistaan.
Koska laskenta suoritetaan selaimen omassa JavaScript-moottorissa, sivu ei tarvitse Internet-yhteyttä latautumisen jälkeen, eikä kirjoitettua tekstiä lähetetä mihinkään.
MD5-hajautusarvojen yleisiä käyttötarkoituksia
- Ladatun tiedoston siirron aikaisen vioittumisen tarkistaminen vertaamalla sen hajautusarvoa julkaistuun arvoon.
- Hakuavainten tai välimuistitunnisteiden muodostaminen tietoja varten, koska hajautusarvo on lyhyt, kiinteän kokoinen korvike pidemmälle arvolle.
- Kaksoiskappaleiden tunnistaminen vertaamalla tiedostojen hajautusarvoja koko tiedostosisällön sijaan.
- Versionhallinta- ja koontijärjestelmät, jotka käyttävät hajautusarvoja tiedoston muuttumisen havaitsemiseen.
MD5 ei sovellu salasanojen tallentamiseen, digitaalisten allekirjoitusten luomiseen tai mihinkään muuhun tilanteeseen, jossa hyökkääjä voisi yrittää väärentää hajautusarvon tai palauttaa sen alkuperäiseen muotoonsa. Syyt käsitellään seuraavassa osiossa.
MD5:n historia
Yhdysvaltalainen kryptografi Ronald Rivest suunnitteli MD5:n 1991 aiemman MD4-algoritminsa seuraajaksi. Internet Engineering Task Force julkaisi määrittelyn RFC:nä 1321 vuonna 1992, ja MD5:tä alettiin käyttää laajasti tarkistussummiin sekä jonkin aikaa myös turvallisuustarkoituksiin.
MD5:n sisäisen rakenteen heikkoudet havaittiin jo 1996. 2004 kryptografi Xiaoyun Wangin johtama ryhmä osoitti käytännöllisen menetelmän kahden eri syötteen luomiseksi siten, että ne tuottavat saman MD5-hajautusarvon; tätä puutetta kutsutaan törmäykseksi. 2008 erillinen tutkijaryhmä käytti törmäyshyökkäystä väärän verkkosivuston varmenteen väärentämiseen, ja tuon ajan selaimet olisivat hyväksyneet sen aidoksi. Nämä tulokset saivat turvallisuusstandardiorganisaatiot lopettamaan MD5:n suosittelemisen kaikissa tilanteissa, joissa väärentämisellä on merkitystä.
MD5:n turvallisuusheikkoudet
- Törmäysten vastustuskyky on murrettu. On laskennallisesti käytännöllistä muodostaa kaksi eri syötettä, joilla on sama MD5-hajautusarvo.
- Nopeus on haitta salasanojen yhteydessä. MD5 suunniteltiin laskettavaksi nopeasti, mikä on hyödyllistä tarkistussummissa mutta huono ominaisuus salasanojen tallennuksessa, koska hyökkääjä voi kokeilla tavanomaisella laitteistolla miljardeja arvauksia sekunnissa.
- Julkisesti ei tunneta raa'an voiman hyökkäystä nopeampaa esikuvahyökkäystä, joten tarkan syötteen palauttaminen hajautusarvosta on edelleen vaikeaa. Tämä ei kuitenkaan yksin tee MD5:stä sopivaa turvallisuusherkkiin käyttötarkoituksiin.
Näiden ongelmien vuoksi MD5 ei sovellu salasanojen tallentamiseen, digitaalisiin allekirjoituksiin, SSL/TLS-varmenteisiin eikä mihinkään sovellukseen, jossa joku voisi tarkoituksellisesti yrittää tuottaa vastaavan hajautusarvon.
Vaihtoehtoja MD5:lle
- SHA-256, joka kuuluu SHA-2-perheeseen, tuottaa 256 bitin hajautusarvon, eikä sille tunneta käytännöllistä törmäyshyökkäystä.
- SHA-3 on uudempi standardi, joka perustuu erilaiseen sisäiseen rakenteeseen kuin SHA-2.
- BLAKE2 on nopea hajautusfunktio, jonka turvallisuutta pidetään verrattavana SHA-3:een.
- Bcrypt, scrypt tai Argon2 on suunniteltu erityisesti salasanojen tallentamiseen, sillä ne ovat tarkoituksella hitaita ja kestävät laitteistokiihdytettyä salasanojen arvaamista.
Usein kysyttyä
Mihin MD5:tä käytetään nykyään?
Enimmäkseen muihin kuin turvallisuuteen liittyviin tehtäviin, kuten tiedostojen eheyden tarkistamiseen, kaksoiskappaleiden poistamiseen ja välimuistiavaimiin. Sitä ei enää suositella salasanoihin, allekirjoituksiin tai varmenteisiin.
Voiko MD5-hajautusarvon kääntää alkuperäiseksi tekstiksi?
Ei. MD5 on yksisuuntainen funktio, joten ei ole laskentamenetelmää, joka muuntaisi hajautusarvon takaisin syötteeksi. Hyökkääjä voi silti arvata todennäköisiä syötteitä ja laskea kustakin hajautusarvon tarkistaakseen vastaavuuden, minkä vuoksi MD5 ei ole turvallinen salasanoille.
Miksi MD5 ei ole turvallinen salasanojen tallentamiseen?
Koska se laskee hajautusarvon erittäin nopeasti, nykyaikaisella laitteistolla varustettu hyökkääjä voi kokeilla valtavan määrän salasanoja sekunnissa. Erityisesti tähän tarkoitukseen suunnitellut algoritmit, kuten bcrypt, scrypt ja Argon2, ovat tarkoituksellisesti hitaita vastustaakseen tätä.
Kuinka pitkä MD5-hajautusarvo on?
Se on aina 128 bittiä pitkä ja esitetään 32 heksadesimaalimerkkinä riippumatta syötetyn tekstin pituudesta.
Voivatko kaksi eri syötettä tuottaa saman MD5-hajautusarvon?
Kyllä. Tätä kutsutaan törmäykseksi, ja tutkijat ovat osoittaneet käytännöllisiä menetelmiä tällaisten parien muodostamiseen 2004 lähtien. Tämä on tärkein syy siihen, ettei MD5:tä enää pidetä turvallisena.
Lähettääkö tämä työkalu kirjoitetun tekstin palvelimelle?
Ei. Hajautusarvo lasketaan selaimessa suoritettavalla JavaScriptillä, eikä syöte poistu laitteelta.
Mikä ero on MD5:n ja SHA-256:n välillä?
Molemmat ovat hajautusfunktioita, mutta SHA-256 tuottaa pidemmän, 256 bitin hajautusarvon, eikä sille tunneta käytännöllistä törmäyshyökkäystä, kun taas MD5:n törmäysten vastustuskyky on murrettu. SHA-256 on parempi valinta aina, kun turvallisuudella on merkitystä.
Viitteet
- Rivest, R. (1992). "The MD5 Message-Digest Algorithm." RFC 1321, Internet Engineering Task Force. https://tools.ietf.org/html/rfc1321
- Turner, S., Chen, L. (2011). "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms." RFC 6151, Internet Engineering Task Force. https://tools.ietf.org/html/rfc6151
- Wang, X., Yu, H. (2005). ”How to Break MD5 and Other Hash Functions.” Advances in Cryptology - EUROCRYPT 2005.
- Sotirov, A. ym. (2008). ”MD5 Considered Harmful Today: Creating a Rogue CA Certificate.” Esitetty 25. Chaos Communication Congressissa.
- National Institute of Standards and Technology (2015). "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions." FIPS 202. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf