Krüptograafiline räsi funktsioon

Krüptograafiline räsifunktsioon Määratlus

Krüptograafiline räsifunktsioon on teatud tüüpi algoritm, mida saab käivitada andmetel, näiteks üksikfailil või paroolil, et luua väärtus, mida nimetatakse kontrollsummaks.

Krüptograafilise räsifunktsiooni peamine kasutamine on andmeside autentsuse kontrollimine. Kaks faili saab olla identsed ainult siis, kui iga faili jaoks loodud kontrollsummad, mis kasutavad sama krüptograafilise hash-funktsiooni, on identsed.

Mõned sagedasti kasutatavad krüptograafilised hash-funktsioonid hõlmavad MD5 ja SHA-1 , kuigi paljud on ka olemas.

Märkus. Krüptograafilise räsi funktsioone nimetatakse sageli räsifunktsioonideks lühikeseks, kuid see pole tehniliselt korrektne. Räpsufunktsioon on üldisem mõiste, mida kasutatakse tavaliselt krüptograafiliste räsi funktsioonide ja muude algoritmide, näiteks tsükliliste koondamiskontrollide, hõlmamiseks.

Krüptograafilised rünnakufunktsioonid: kasutage juhtumit

Oletame, et laadite alla Firefoxi brauseri uusima versiooni . Mis tahes põhjusel peate selle alla laadima muust saidist kui Mozilla. Kui te ei ole veebisaidil, kus olete õppinud usaldama, hostitud, soovite veenduda, et allalaaditud installifail on täpselt sama asi, mida pakub Mozilla.

Kontrollsumma kalkulaatori abil arvutate kontrollsumma, kasutades mõnda konkreetset krüptograafilise hash-funktsiooni (näiteks SHA-2) ja võrrelda seda siis, kui see on avaldatud Mozilla saidil.

Kui nad on võrdsed, siis võite olla kindel, et teie allalaaditav fail on see, mida Mozilla soovib kasutada.

Vaadake, mis on kontrollsumma? nende spetsiaalsete kalkulaatorite kohta lisateabe saamiseks ja lisateabe näidete kohta kontrollsummade kasutamise kohta, et veenduda, et failid, mida te tegelikult alla laadite, olid need, mida te neid oodates pidasid.

Kas krüptograafilise räsi funktsioone saab muuta?

Krüptograafilise räsi funktsioonid on loodud selleks, et vältida nende tagasisaadetavate kontrollsummade tagasikäiku originaaltekstidesse.

Kuigi see on peaaegu võimatu tagasipööramiseks, ei tähenda see, et nad kaitseksid andmeid 100% -ga.

Kontrollsumma lihtsa teksti kiireks selgitamiseks saab kasutada midagi vikerkaaritabelit . Vikeriba tabelid on põhimõtteliselt sõnaraamatud, mis loetlevad tuhandeid, miljoneid või isegi miljardeid neid koos vastava lihtsa tekstiga.

Kuigi see krüptograafilise räsimisalgoritmi tehniliselt ei muutu, võib see olla ka nii, kuna seda on nii lihtne teha. Tegelikkuses, kuna ei ole vikerkaaritabelit, võib loetleda kõik võimalikud olemasolevad kontrollsummad, on need tavaliselt lihtsalt "kasulikud" lihtsate lausete korral ... nagu nõrgad paroolid.

Siin on vikerkaaritabeli lihtsustatud versioon, mis näitab, kuidas töötaks SHA-1 krüptograafilise räsifunktsiooni kasutamisel:

Tavaline tekst SHA-1 kontrollsumma
12345 8cb2237d0679ca88db6464eac60da96345513964
parool1 e38ad214943daad1d64c102faec29de4afe9da3d
ma armastan oma koera a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Nende väärtuste puhul, mida kontrollsumma abil arvutatakse, oleks vaja, et häkker mõistaks, millist krüptograafilise räsimisalgoritmi kasutati nende genereerimiseks.

Lisakaitse eesmärgil täidavad mõned veebisaitid, mis salvestavad kasutaja parooli, krüptograafilise hash-algoritmi täiendavaid funktsioone pärast väärtuse loomist, kuid enne selle salvestamist.

See annab uue väärtuse, mida ainult veebiserver saab aru ja see ei vasta täpselt algsele kontrollsummale.

Näiteks kui salasõna sisestatakse ja kontrollsumma genereeritakse, võib see jagada mitmeks osaks ja ümber paigutada, enne kui see salasõnaandmekogusse salvestatakse või teatud märke võib teistega vahetada. Kui kasutaja üritab autentida järgmisel korral, kui nad sisselogimiseks, veebiserveri ja esialgse kontrollsumma tagantjärele, tühistab see täiendav funktsioon, et kontrollida kasutaja parooli õigsust.

See aitab piirata häkkimise kasulikkust, kui kõik kontrollsummad on varastatud.

Jällegi on mõte siin teostada tundmatu funktsiooni, nii et kui häkker teab krüptograafilise räsimisalgoritmi, kuid mitte seda kohandatud, siis on paroolikontrollide teadmine ebaefektiivne.

Paroolid ja krüptograafilised rünnakufunktsioonid

Sarnaselt vikerkaaritabeliga on andmebaas salvestada kasutaja paroolid. Kui teie parool on sisestatud, luuakse kontrollsumma ja võrreldakse seda kasutajanimega salvestatud kirjaga. Seejärel antakse teile juurdepääs, kui need kaks on identsed.

Arvestades, et krüptograafiline räsifunktsioon tekitab mitte-pöördumatu kontrollmahu, kas see tähendab, et saate parooli nii lihtsalt kirjutada kui 12345 , selle asemel et 12 34 $ 5 , lihtsalt sellepärast, et kontrollimisi ise ei saa aru saada? See kindlasti ei ole ja siin on miks ...

Nagu näete, on mõlemad paroolid mõlemad võimatu dešifreerida, lihtsalt vaadates kontrollsummale:

MD5 jaoks 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 jaoks 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Nii et esimesel pilgul võite arvata, et mõlemad paroolid on täiesti korras. See on kindlasti tõsi, kui ründaja proovis oma parooli välja selgitada, arvates MD5 kontrollsumma (mida keegi ei tee), kuid mitte tõene, kui tehakse jõudu või sõnastikurünnakut (mis on tavaline taktika).

Vasturünnak rünnak on siis, kui parooli arvates võetakse mitu juhuslikku staabid. Sellisel juhul oleks "12345" väga lihtne arvata, kuid teiselt poolt on suhteliselt keeruline juhuslikult välja arvutada. Sõnastikurünnak on sarnane, kuna ründaja saab proovida kõiki sõnu, numbreid või fraasi ühiste (ja vähem levinud) paroolide loendist, mis kindlasti on proovitud "12345".

Niisiis, kuigi krüptograafiliste räsi funktsioonide abil on raskesti võimatuks arvata kontrollsummasid, peaksite siiski kasutama keerukat parooli kõigile oma võrgupõhistele ja kohalikele kasutajakontodele.

Nõuanne. Vt näiteid nõrkade ja tugevate paroolide näidete kohta, kui te pole kindel, kas teie peetakse tugevaks parooliks.

Lisateavet krüptograafilise räsi funktsioonide kohta

Võib tunduda, et krüptograafilised hash-funktsioonid on seotud krüptimisega, kuid need kaks töötavad väga erineval viisil.

Krüptimine on kahesuunaline protsess, kus midagi on krüptitud lugemata, kuid hiljem lahti krüpteeritakse, et seda uuesti kasutada. Võite krüptida salvestatud failid, nii et igaüks, kes sellele pääseb, ei saa neid kasutada, või võite kasutada failiedastuse krüptimist võrgu kaudu liikuvate failide krüptimiseks, nagu need, mida laadite üles või alla veebis.

Nagu eespool kirjeldatud, toimivad krüptograafilised räsifunktsioonid erinevalt, kuna kontrollsümbolid ei ole mõeldud spetsiaalse dehiseerimisparaadi jaoks, näiteks kuidas krüptitud faile loetakse spetsiaalse dekrüpteerimisparooliga. Ainus krüptograafiliste räsifunktsioonide eesmärk on võrrelda kahte andmemahtu, näiteks failide allalaadimisel, paroolide salvestamisel, andmebaaside andmete tõmbamisel jne.

Krüptograafilise räsifunktsiooniga on võimalik luua eri andmetes sama kontrollsumma. Kui see juhtub, nimetatakse seda kokkupõrget. On selge, et see on suur probleem, kuna krüptograafilise räsifunktsiooni kogu punkt on täiesti unikaalne kontrollarv kõigi selle sisestatud andmete jaoks.

Põhjused, millega kokkupõrkeid võib juhtuda, on see, et iga krüptograafiline räsifunktsioon annab sisendandmete põhjal kindlaksmääratud pikkusega väärtuse. Näiteks MD5 krüptograafiline räsifunktsioon genereerib kolme täiesti erinevat andmeplokki 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 ja e10adc3949ba59abbe56e057f20f883e .

Esimene kontrollsumma pärineb 12345-st , teine ​​on loodud üle 700 tähe ja numbri ning kolmas on 123456-st . Kõik kolm sisendit on erineva pikkusega, kuid tulemusi on alati MD5-st kasutatud vaid 32 tähemärki.

Nagu näete, pole peaaegu mingit piirangut kontrollsummade arvule, mida oleks võimalik luua, kuna iga väike sisendkäik muudab täiesti erinevat kontrollsummat. Kuid kuna kontrollsummade arv on piiratud, saab ühe krüptograafilise räsifunktsiooni luua, on alati võimalus, et tekib kokkupõrge.

Sellepärast on loodud muud krüptograafilised hash-funktsioonid. Kuigi MD5 genereerib 32-kohalise väärtuse, genereerib SHA-1 40 tähemärki ja SHA-2 (512) genereerib 128. Mida suurem kontrollmärgiga tähtede arv, seda väiksem on tõenäosus, et tekib kokkupõrge, kuna see annab rohkem ruumi ainulaadsed väärtused.