Kryptografinen Hash-toiminto

Salaus Hash Function Definition

Salaus hajautusfunktio on eräänlainen algoritmi, jota voidaan käyttää datapalaa, kuten yksittäistä tiedostoa tai salasanaa, tuottamaan arvo, jota kutsutaan tarkistussummaksi.

Kryptografisen hajautusfunktion pääasiallinen käyttö on tarkistaa tiedoston aitous. Kaksi tiedostoa voidaan varmistaa olevan identtisiä vain, jos kustakin tiedostosta tuotetut tarkistussummat käyttävät samaa kryptografista hajautusfunktiota ovat samat.

Joitakin yleisesti käytettyjä kryptografisia hajautusfunktioita ovat MD5 ja SHA-1 , vaikka monet muutkin ovat olemassa.

Huomaa: Salaus hajautusfunktioita kutsutaan usein vain hajautusfunktioiksi lyhyeksi, mutta se ei ole teknisesti oikea. Hajautusfunktio on yleisempi termi, jota käytetään tavallisesti kattamaan kryptografiset hajautusfunktiot sekä muut lajit algoritmit, kuten sykliset redundanssitarkastukset.

Salaus Hash-toiminnot: Käyttökotelo

Oletetaan, että lataat Firefox-selaimen uusimman version . Mistä tahansa syystä sinun tarvitsee ladata se muusta sivustosta kuin Mozillasta. Jos emme ole isännöimäsi sivustoon, jonka olet oppinut luottaa, haluat varmistaa, että juuri ladattu asennustiedosto on täsmälleen sama asia kuin Mozilla tarjoaa.

Käyttämällä tarkistussumman laskinta , lasketaan tarkistussumma tietyn kryptografisen hajautusfunktion avulla (sanoa SHA-2) ja verrataan sitä sitten Mozilla-sivustolla julkaistuun.

Jos he ovat samanlaisia, voit olla melko varma siitä, että sinulla on lataus Mozilla, jonka olet halunnut.

Katso Mikä on tarkistussumma? lisää näistä erikoislaskimista ja lisää esimerkkejä tarkistussummien käytöstä varmistaaksesi, että ladatut tiedostot todella ovat mitä odotit niiden olevan.

Voidaanko kryptografiset Hash-toiminnot peruuttaa?

Salauksen hajautusfunktiot on suunniteltu estämään kyky kääntää niiden luomat tarkistussummat takaisin alkuperäisiin teksteihin.

Vaikka ne ovat käytännössä mahdottomia peruuttaa, se ei tarkoita sitä, että ne ovat 100% taatusti suojassa tietoja.

Sateenkaaritaulukkoa voidaan kutsua nopeasti selvittämään tarkistussumman selkeästi. Sateenkaaripöydät ovat pohjimmiltaan sanakirjoja, joissa luetellaan tuhansia, miljoonia tai jopa miljardeja näistä rinnakkain niiden vastaavan selkeän arvon kanssa.

Vaikka tämä ei teknisesti kääntäisi kryptografista hash-algoritmia, se saattaa olla niin helppoa, koska se on niin helppo tehdä. Todellisuudessa, koska sateenkaaripöytä ei voi luetella kaikkia olemassa olevia tarkistussummia, ne ovat yleensä vain "hyödyllisiä" yksinkertaisille lauseille ... kuten heikot salasanat.

Tässä on yksinkertaistettu versio sateenkaaripöydästä, joka näyttää, miten työskentelisivät SHA-1-kryptografisen hajautusfunktiota käytettäessä:

plaintext SHA-1 tarkistusmäärä
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
rakastan koiraani a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Näiden arvojen selvittäminen tarkistussummalla edellyttää, että hakkeri ymmärtää, mihin kryptografiseen hash-algoritmiin on käytetty niiden generoimiseen.

Lisäsuojausta varten tietyt verkkosivustot, jotka tallentavat käyttäjän salasanoja, suorittavat lisätoimintoja kryptografiseen hash-algoritmiin arvon generoinnin jälkeen, mutta ennen sen tallentamista.

Tämä tuottaa uuden arvon, jonka vain verkkopalvelin ymmärtää ja joka ei täsmälleen vastaa alkuperäistä tarkistussummaa.

Esimerkiksi kun salasana on syötetty ja tarkistussumma syntyy, se voidaan jakaa useisiin osioihin ja järjestellä uudelleen ennen sen tallentamista salasanatietokantaan tai tiettyjä merkkejä voi vaihtaa muiden kanssa. Kun käyttäjä yrittää todentaa seuraavan kirjautumisen yhteydessä, verkkopalvelin palauttaa tämän lisätoiminnon ja alkuperäisen tarkistussumman uudelleen, jotta varmistetaan, että käyttäjän salasana on kelvollinen.

Tämä auttaa rajoittamaan hakkeen hyödyllisyyttä, jossa kaikki tarkistussummat varastetaan.

Jälleen ajatus tässä on suorittaa funktio, joka on tuntematon, joten jos hakkeri tuntee kryptografisen hash-algoritmin, mutta ei tätä räätälöityä, niin tietämyksen salasanan tarkistussummat ovat hyödyttömiä.

Salasanat ja kryptografiset Hash-toiminnot

Samankaltainen kuin sateenkaaripöytä on, miten tietokanta tallentaa käyttäjän salasanat. Kun salasanasi syötetään, tarkistussumma luodaan ja verrataan rekisteriin käyttäjänimelläsi. Sinulla on sitten oikeus käyttää, jos nämä kaksi ovat samat.

Koska kryptografinen hash-funktio tuottaa peruuttamattoman tarkistussumman, tämä tarkoittaa sitä, että salasanasi on yksinkertainen kuin 12345 , eikä 12 @ 34 $ 5 yksinkertaisesti siksi, että tarkistussummia itseään ei voida ymmärtää? Se ei todellakaan ole , ja siksi ...

Kuten näet, nämä kaksi salasanaa ovat mahdottomia tulkita vain katsomalla vain tarkistussummasta:

MD5 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Niinpä ensi silmäyksellä voi ajatella, että on ehdottoman hyvä käyttää kumpaa näistä salasanoista. Tämä on varmasti totta, jos hyökkääjä yrittää selvittää salasanasi arvaamalla MD5-tarkistussumman (jota kukaan ei tee), mutta se ei ole totta, jos raakajoukko tai sanakirjahyökkäys suoritetaan (mikä on yleinen taktiikka).

Haravoidun hyökkäyksen kohteena on, kun useita satunnaisia ​​potkia otetaan salasanan arvaamiseksi. Tällöin olisi helppo arvailla "12345", mutta melko vaikea satunnaisesti selvittää toinen. Sanakirjahyökkäys on samanlainen, koska hyökkääjä voi kokeilla kaikkia sanomia, numeroita tai lauseita yleisten (ja vähemmän yleisimmin käytettyjen) salasanojen luettelosta, "12345", joka ehdottomasti olisi kokeiltavissa.

Joten, vaikka kryptografiset hash-funktiot tuottavat vaikeita mahdottomista arvata tarkistussummia, sinun pitäisi silti käyttää monimutkaista salasanaa kaikille verkko- ja paikallistileille.

Vinkki: Katso esimerkkejä heikoista ja voimakkaista salasanoista, jos et ole varma, onko sinun katsottava olevan vahva salasana.

Lisätietoja kryptografisista Hash-toiminnoista

Se saattaa tuntua, että kryptografiset hajautusfunktiot liittyvät salaukseen, mutta molemmat toimivat hyvin eri tavoin.

Salaus on kaksisuuntainen prosessi, jossa jotain salataan lukemattomaksi, mutta sen jälkeen salaus puretaan uudelleen normaalisti. Voit tallentaa tallennetut tiedostot niin, että ne, jotka käyttävät niitä, eivät voi käyttää niitä tai voit käyttää tiedostojen siirron salausta salaamaan verkossa siirrettävät tiedostot, kuten lataamasi tai verkossa ladatut tiedostot.

Kuten edellä on kuvattu, kryptografiset hajautusfunktiot toimivat eri tavoin, koska tarkistussummia ei ole tarkoitus kääntää erityisellä de-hashing-salasanalla, kuten salattujen tiedostojen lukemisesta erityisellä salauksen salasanalla. Ainoa tarkoitus salauksen hajautusfunktiot on vertailla kahta dataa, kuten tiedostojen lataamisessa, salasanojen tallentamisessa, tietokannan tietojen vetämisessä jne.

Salauksen hajautusfunktiolla on mahdollista tuottaa samat tarkistussummat eri tietueille. Kun näin tapahtuu, sitä kutsutaan törmäykseksi. On selvää, että tämä on valtava ongelma, kun otetaan huomioon, että kryptografisen hash-toiminnon koko kohta on tehdä täysin ainutlaatuiset tarkistussummat jokaiselle siihen syötettyyn tietoon.

Syyt, joita voi tapahtua törmäyksillä, johtuu siitä, että kukin kryptografinen hajautusfunktio tuottaa kiinteän pituisen arvon syöttötiedoista riippumatta. Esimerkiksi MD5-kryptografinen hajautusfunktio tuottaa 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 ja e10adc3949ba59abbe56e057f20f883e kolmelle täysin erilaiselle datablokille .

Ensimmäinen tarkistussumma on 12345 , toinen syntyy yli 700 kirjaimesta ja numerosta ja kolmas on 123456 . Kaikki kolme tuloa ovat eri pituisia, mutta tulokset ovat aina vain 32 merkkiä pitkä, koska MD5: tä käytettiin.

Kuten näet, käytännössä ei ole rajoituksia niiden tarkistussummien lukumäärään, jotka voitiin luoda, koska pienen muutoksen tulon oletetaan tuottavan täysin toisen tarkistussumman. Kuitenkin, koska tarkistussummien määrä on rajallinen, voi tuottaa yksi kryptografinen hajautusfunktio, mutta aina on mahdollista, että kohtaat törmäyksen.

Siksi on luotu myös muita kryptografisia hajautusfunktioita. Vaikka MD5 tuottaa 32 merkin arvon, SHA-1 generoi 40 merkkiä ja SHA-2 (512) tuottaa 128. Mitä suurempi merkkien lukumäärä, jolla tarkistussummalla on, sitä vähemmän on todennäköistä, että törmäys tapahtuu, koska se tarjoaa enemmän tilaa ainutlaatuisia arvoja.