Mis on krüptograafiline räsifunktsioon?
Krüptograafiline räsifunktsioon on algoritm, mida saab käitada andmetel, nagu üksikisik faili või parool, et tekitada väärtus, mida nimetatakse kontrollsummaks.
Krüptograafilise räsifunktsiooni peamine kasutusala on andmeosa autentsuse kontrollimine. Kahte faili võib pidada identseks 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 ka palju teisi.
Krüptograafilisi räsifunktsioone nimetatakse sageli "räsifunktsioonideks", kuid see pole tehniliselt õige. Räsifunktsioon on üldmõiste, mis hõlmab krüptograafilisi räsifunktsioone koos muud tüüpi algoritmidega, nagu tsüklilised liiasuskontrollid.
Krüptograafilised räsifunktsioonid: kasutusjuht
Ütle, et laadite alla Firefoxi brauseri uusim versioon. 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 Mozilla jaoks mõeldud.
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üptograafilise räsi algoritmi ümber, võib see sama hästi olla, kuna seda on nii lihtne teha. Tegelikult, kuna ükski vikerkaare tabel ei suuda loetleda kõiki olemasolevaid võimalikke kontrollsummasid, on need tavaliselt abiks lihtsate fraaside (nt nõrgad paroolid) puhul.
Siin on vikerkaaretabeli lihtsustatud versioon, mis näitab, kuidas see toimiks krüptograafilise räsifunktsiooni SHA-1 kasutamisel:
Vikerkaare tabeli näide | |
---|---|
Lihttekst | SHA-1 kontrollsumma |
12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
parool1 | e38ad214943daad1d64c102faec29de4afe9da3d |
ma armastan oma koera | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
Jenny 400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
Dallas 1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
Häkker peab teadma, millist krüptograafilist räsialgoritmi kasutati väärtuste väljaselgitamiseks kontrollsummade genereerimiseks.
Lisakaitseks mõned veebisaidid, mis salvestavad kasutaja paroolid täidab krüptograafilise räsi algoritmi 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 jagada mitmeks osaks ja korraldatakse ümber enne paroolide andmebaasi salvestamist, vastasel juhul võidakse teatud tähemärke vahetada teised. Kui proovite autentida järgmisel korral, kui kasutaja sisse logib, pöörab veebiserver selle ümber lisafunktsioon 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, pole parooli kontrollsummade teadmisest abi.
Paroolid ja krüptograafilised räsifunktsioonid
Andmebaas salvestab kasutajate paroolid sarnaselt vikerkaaretabeliga. Kui parool on sisestatud, kuvatakse kontrollsumma luuakse ja võrreldakse teie kasutajanimega salvestatud kasutajanimega. Kui need kaks on identsed, antakse teile juurdepääs.
Arvestades, et krüptograafiline räsifunktsioon loob pöördumatu kontrollsumma, kas on turvaline muuta oma parool nii lihtsaks kui 12345, selle asemel 12@34$5, lihtsalt sellepärast, et kontrollsummadest endist ei saa aru? Ei, ja siin on põhjus.
Neid kahte parooli on võimatu dešifreerida ainult kontrollsummasid vaadates:
MD5 12345 jaoks: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 üritas 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.
Toore jõu rünnak toimub siis, kui parooli äraarvamisel tehakse mitu juhuslikku torki. Sel juhul oleks seda 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. 12345 on üks neist levinud paroolidest.
Kuigi krüptograafilised räsifunktsioonid toodavad raskesti või võimatuid kontrollsummasid, peaksite seda siiski tegema kasutage keerulist parooli kõigi teie võrgu- ja kohalike kasutajakontode jaoks.
Lisateave krüptograafiliste räsifunktsioonide kohta
Võib tunduda, et krüptograafilised räsifunktsioonid on krüptimisega seotud, kuid need kaks töötavad erineval viisil.
Krüpteerimine on kahesuunaline protsess, mille käigus midagi krüpteeritakse loetamatuks muutmiseks ja seejärel dekrüpteeritakse, et seda tavapäraselt uuesti kasutada. Sa võid krüptida salvestatud faile nii et igaüks, kes neile ligi pääseb, ei saa neid kasutada või saate seda kasutada failiedastuse krüptimine üle võrgu liikuvate failide krüpteerimiseks, näiteks need, mille laadite üles või alla laadite võrgus.
Krüptograafilised räsifunktsioonid töötavad erinevalt, kuna kontrollsummad ei ole mõeldud ümberpööramiseks spetsiaalse dehashing parooliga. Krüptograafiliste räsifunktsioonide ainus eesmärk on võrrelda kahte andmeosa, näiteks failide allalaadimisel, paroolide salvestamisel ja andmebaasist andmete tõmbamisel.
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 krüptograafilise räsifunktsiooni eesmärk on teha iga sellesse sisestatud andmete jaoks kordumatu kontrollsumma.
Kokkupõrked võivad tekkida seetõttu, et iga krüptograafiline räsifunktsioon loob kindla pikkusega väärtuse sõltumata sisendandmetest. Näiteks MD5 krüptograafiline räsifunktsioon genereerib 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 ja e10adc3949ba59abbe56e057f20f883e kolme täiesti erineva jaoks andmeplokid.
Esimene kontrollsumma pärineb 12345. Teine genereeriti enam kui 700 tähest ja numbrist ning kolmas on pärit 123456. Kõik kolm sisendit on erineva pikkusega, kuid tulemused on alati vaid 32 tähemärgi pikkused MD5 kontrollsumma oli kasutatud.
Loodatavate kontrollsummade arv ei ole piiratud, sest iga väike sisendi muudatus peaks tootma täiesti erineva kontrollsumma. Kuna kontrollsummade arv, mida üks krüptograafiline räsifunktsioon võib tekitada, 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ärgilise 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.