Krüptograafiline räsifunktsioon (CHF) on algoritm, mida saab käitada andmetel, nagu üksikud failid või parool, et tekitada väärtus, mida nimetatakse kontrollsummaks.
CHF-i peamine kasutusala on andmete autentsuse kontrollimine. Kahte faili võib eeldada identsetena ainult siis, kui igast failist sama krüptograafilise räsifunktsiooni abil genereeritud kontrollsummad on identsed.
Mõned sagedamini kasutatavad krüptograafilised räsifunktsioonid hõlmavad MD5 ja SHA-1, kuigi on olemas ka palju teisi. Neid nimetatakse sageli "räsifunktsioonideks", kuid see pole tehniliselt õige. Räsifunktsioon on üldtermin, mis hõlmab CHF-e koos muud tüüpi algoritmidega, nagu tsüklilised koondamise kontrollid.
Krüptograafilised räsifunktsioonid: kasutusjuht
Ütleme, et laadite alla Firefoxi brauseri uusima versiooni. Mingil põhjusel pidite selle alla laadima muult saidilt kui Mozilla oma. Kuna seda ei hostita saidil, mida olete õppinud usaldama, soovite veenduda, et äsja allalaaditud installifail on täpselt sama, mida Mozilla pakub.
Kontrollsumma kalkulaatorit kasutades arvutate kontrollsumma teatud krüptograafilise räsifunktsiooni (nt SHA-2) abil ja seejärel võrdlete seda Mozilla saidil avaldatuga. Kui need on võrdsed, võite olla üsna kindel, et teie allalaaditav fail on see, milleks Mozilla on ette näinud.
Kas krüptograafilisi räsifunktsioone saab ümber pöörata?
Krüptograafilised räsifunktsioonid on loodud selleks, et takistada nende loodud kontrollsummade tagasipööramist algtekstideks. Kuigi neid on peaaegu võimatu tagasi pöörata, ei ole nende andmete kaitsmine 100 protsenti garanteeritud.
Häkkerid võivad kontrollsumma lihtteksti leidmiseks kasutada vikerkaaretabelit. Rainbow tabelid on sõnastikud, mis loetlevad tuhandeid, miljoneid või isegi miljardeid kontrollsummasid koos nende vastava lihtteksti väärtusega.
Kuigi see ei muuda tehniliselt krüptograafilist räsialgoritmi, võib see sama hästi olla, kuna seda on nii lihtne teha. Tegelikult, kuna ükski vikerkaare tabel ei suuda loetleda kõiki olemasolevaid kontrollsummasid, on need tavaliselt abiks lihtsate fraaside puhul, nagu nõrgad paroolid.
Siin on vikerkaaretabeli lihtsustatud versioon, mis näitab, kuidas see toimiks krüptograafilise räsifunktsiooni SHA-1 kasutamisel:
Vikerkaaretabeli näide | |
---|---|
Lihttekst | SHA-1 Kontrollsumma |
12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
parool1 | e38ad214943daad1d64c102faec29de4afe9da3d |
ilovemydog | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
Jenny400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
dallas1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
Häkker peab teadma, millist krüptograafilist räsialgoritmi kasutati väärtuste väljaselgitamiseks kontrollsummade genereerimiseks.
Lisaks kaitseks täidavad mõned kasutajate paroole salvestavad veebisaidid krüptograafilise räsialgoritmiga lisafunktsioone pärast väärtuse loomist, kuid enne selle salvestamist. See protsess loob uue väärtuse, millest ainult veebiserver aru saab ja mis ei ühti algse kontrollsummaga.
Näiteks pärast parooli sisestamist ja kontrollsumma genereerimist võib selle enne paroolide andmebaasi salvestamist mitmeks osaks jagada ja ümber korraldada või teatud tähemärke teistega vahetada. Kui proovite autentida järgmisel korral, kui kasutaja sisse logib, pöörab server selle lisafunktsiooni ümber ja algne kontrollsumma genereeritakse uuesti, et kontrollida, kas kasutaja parool on kehtiv.
Nende sammude tegemine piirab häkkimise kasulikkust, kui kõik kontrollsummad varastatakse. Idee on täita funktsioon, mis on tundmatu, nii et kui häkker teab krüptograafilist räsialgoritmi, kuid mitte kohandatud algoritmi, pole parooli kontrollsummade teadmisest abi.
Paroolid ja krüptograafilised räsifunktsioonid
Andmebaas salvestab kasutajate paroolid sarnaselt vikerkaaretabeliga. Parooli sisestamisel genereeritakse kontrollsumma ja võrreldakse seda teie kasutajanimega registreeritud parooliga. Kui need kaks on identsed, antakse teile juurdepääs.
Arvestades, et CHF loob mittepööratava kontrollsumma, kas on turvaline muuta oma parool 12345, mitte 12@34 $5 lihts alt sellepärast, et kontrollsummasid ise ei saa aru saada? Ei, ja siin on põhjus.
Neid kahte parooli on võimatu dešifreerida pelg alt kontrollsummasid vaadates:
MD5 jaoks 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 hinnaga 12@34$5: a4d3cc004f487b18b2ccd4853053818b
Esmapilgul võite arvata, et on hea kasutada mõnda neist paroolidest. See kehtib juhul, kui ründaja proovis teie parooli välja mõelda, arvates ära MD5 kontrollsumma, mida keegi ei tee, kuid see pole tõsi, kui sooritatakse toore jõu või sõnaraamatu rünnak, mis on tavaline taktika.
Jõhja jõu rünnak toimub siis, kui parooli äraarvamisel tehakse mitu juhuslikku torki. Sel juhul oleks lihtne ära arvata 12345, kuid teist on üsna raske juhuslikult välja mõelda. Sõnaraamaturünnak on sarnane selle poolest, et ründaja saab proovida iga sõna, numbrit või fraasi levinud (ja mitte nii levinud) paroolide loendist ning 12345 on üks neist levinud paroolidest. paroolid.
Kuigi krüptograafilised räsifunktsioonid toodavad kontrollsummasid, mida on raske või võimatu ära arvata, peaksite siiski kasutama keerulist parooli kõigi oma võrgu- ja kohalike kasutajakontode jaoks.
Lisateave krüptograafiliste räsifunktsioonide kohta
Võib tunduda, et krüptograafilised räsifunktsioonid on krüpteerimisega seotud, kuid need kaks töötavad erineval viisil.
Krüptimine on kahesuunaline protsess, mille käigus midagi krüpteeritakse loetamatuks muutmiseks ja seejärel dekrüpteeritakse, et seda tavapäraselt uuesti kasutada. Võite salvestatud failid krüpteerida nii, et igaüks, kes neile juurde pääseb, ei saaks neid kasutada, või saate kasutada failiedastuskrüptimist, et krüpteerida faile, mis liiguvad üle võrgu, näiteks need, mida laadite üles või alla võrgus.
Krüptograafilised räsifunktsioonid töötavad erinev alt, kuna kontrollsummad ei ole mõeldud ümberpööramiseks spetsiaalse dehashing parooliga. CHF-ide ainus eesmärk on võrrelda kahte andmeosa, näiteks failide allalaadimisel, paroolide salvestamisel ja andmete hankimisel andmebaasist.
Krüptograafiline räsifunktsioon võib luua erinevate andmete jaoks sama kontrollsumma. Kui see juhtub, nimetatakse seda kokkupõrkeks, mis on suur probleem, arvestades, et funktsiooni kogu mõte on teha iga sellesse sisestatud andmete jaoks kordumatu kontrollsumma.
Kokkupõrked võivad tekkida seetõttu, et iga CHF loob kindla pikkusega väärtuse sõltumata sisendandmetest. Näiteks MD5 krüptograafiline räsifunktsioon genereerib 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 ja e10adc3949ba09abbe3 kokku kolm erinevat 6f3949ba09abbe8f5.
Esimene kontrollsumma pärineb 12345. Teine genereeriti enam kui 700 tähest ja numbrist ning kolmas pärineb 123456. Kõik kolm sisendit on erineva pikkusega, kuid tulemused on alati vaid 32 tähemärgi pikkused, kuna kasutati MD5 kontrollsummat.
Luuatavate kontrollsummade arvul pole piiranguid, sest iga väike muudatus sisendis peaks tootma täiesti erineva kontrollsumma. Kuna kontrollsummade arv, mida üks CHF suudab toota, on piiratud, on alati võimalus, et teil tekib kokkupõrge.
Seetõttu on loodud ka teisi krüptograafilisi räsifunktsioone. Kui MD5 genereerib 32 märgist koosneva väärtuse, siis SHA-1 genereerib 40 märki ja SHA-2 (512) 128. Mida suurem on kontrollsumma märkide arv, seda väiksem on kokkupõrke tõenäosus.