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.