Skip to main content

Kas yra kriptografinė fiksavimo funkcija?

Anonim

Kriptografinė maišos funkcija yra algoritmas, kurį galima paleisti tokiose duomenų formose kaip atskiras failas ar slaptažodis, kad būtų sukurta vertė, vadinama kontroline suma.

Pagrindinis kriptografinės maišos funkcijos naudojimas yra patikrinti duomenų rinkinio autentiškumą. Galima manyti, kad du failai yra identiški tik tuo atveju, jei iš kiekvieno failo sukurtos kontrolinės sumos, naudojant tą pačią kriptografinę maišos funkciją, yra identiškos.

Kai kurios dažnai naudojamos kriptografinės maišos funkcijos apima MD5 ir SHA-1, nors daugelis kitų taip pat egzistuoja.

Kriptografinės maišos funkcijos dažnai vadinamos "maišos funkcijomis", tačiau tai nėra techniškai teisinga. "Hash" funkcija yra bendras terminas, apimantis kriptografinių hash funkcijas kartu su kitais algoritmų tipais, pvz., Ciklišku dubliavimosi patikrinimu.

Kriptografinės skylių funkcijos: naudojimo atvejis

Pasakykite, kad atsisiųsite naujausią "Firefox" naršyklės versiją. Dėl kokių nors priežasčių reikėjo jį atsisiųsti iš svetainės, kuri nėra Mozilla. Kadangi tai nėra svetainė, kurią išmokote pasitikėti, norėtumėte įsitikinti, kad įdiegimo failas, kurį ką tik atsisiųsite, yra toks pat kaip ir vienas "Mozilla" pasiūlymų.

Naudodami kontrolinės sumos skaičiuoklę apskaičiuokite kontrolinę sumą naudodami tam tikrą kriptografinės maišos funkciją, pvz., SHA-2, tada palyginkite ją su ta, kuri buvo paskelbta "Mozilla" svetainėje. Jei jie yra vienodi, galite būti pagrįstai įsitikinęs, kad jūsų atsiųstas atsisiuntimas yra tas, kurį jums reikia Mozilla.

Ar kriptografinės bėgių funkcijos gali būti pakeistos?

Kriptografinės maišos funkcijos sukurtos taip, kad neleistų sugrąžinti kontrolinių sumų, kurias jos sugeneruoja į originalius tekstus. Tačiau, nors jų praktiškai neįmanoma pakeisti, jų saugumas nėra 100 proc.

Įsilaužėliai gali naudoti vaivorykštės lentelę, kad išsiaiškintų paprastą kontrolinės sumos tekstą.

Vaivorykštės lentelės yra žodynai, kuriuose yra tūkstančiai, milijonai ar net milijardai kontrolinių sumų kartu su atitinkama teksto verte.

Nors tai nėra techniškai pakeista kriptografinio maišos algoritmas, tai taip pat gali būti, atsižvelgiant į tai, kad tai taip paprasta padaryti. Iš tiesų, nes nėra vaivorykštės stalo, galima nurodyti kiekvieną galimą egzistuojančios kontrolinės sumos egzistavimą, dažniausiai jie naudingi tik paprastoms frazėms, pavyzdžiui, silpniems slaptažodžiams.

Štai supaprastinta vaivorykštės lentelės versija, rodanti, kaip dirbti naudojant SHA-1 kriptografinės maišos funkciją:

Paprastas tekstasSHA-1 kontrolinė suma
123458cb2237d0679ca88db6464eac60da96345513964
password1e38ad214943daad1d64c102faec29de4afe9da3d
aš myliu savo šunįa25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
Dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Įsilaužėlis turi žinoti, kuris kriptografinio maišos algoritmas buvo naudojamas generuoti kontrolines sumas, kad išsiaiškintų vertes.

Papildomos apsaugos atveju kai kurios svetainės, kuriose saugomi naudotojo slaptažodžiai, atlieka papildomas funkcijas kriptografinio maišos algoritmui po vertės sukūrimo, bet prieš jį saugant. Šis procesas sukuria naują vertę, kurią supranta tik žiniatinklio serveris ir kuri neatitinka pradinės kontrolinės sumos.

Pavyzdžiui, įvedus slaptažodį ir sukuriant kontrolinę sumą, jis gali būti suskirstytas į keletą dalių ir pertvarkytas, kol jis bus saugomas slaptažodžių duomenų bazėje, o kai kurie simboliai gali būti keičiami kitais. Bandydami autentifikuoti kitą kartą, kai vartotojas užsiregistruos, žiniatinklio serveris pakeičia šią papildomą funkciją, o pirminė kontrolinė suma vėl sukuriama, kad patikrintų, ar vartotojo slaptažodis yra galiojantis.

Atsižvelgiant į šiuos veiksmus riboja piktnaudžiavimą, kai visi kontroliniai pinigai yra pavogti. Idėja yra atlikti nežinomą funkciją, taigi, jei įsilaužėlis pažįsta kriptografinio maišos algoritmą, bet ne įprastą, tada žinant slaptažodžių kontrolines sumas yra netinkama.

Slaptažodžiai ir šifravimo atribojimo funkcijos

Duomenų bazė išsaugo naudotojo slaptažodžius panašią į vaivorykštės lentelę. Kai įvesite savo slaptažodį, kontrolinė suma bus sukurta ir palyginta su įrašu su vartotojo vardu. Tada jums suteikiama prieiga, jei abi yra identiškos.

Atsižvelgiant į tai, kad kriptografinė maišos funkcija sukuria negrįžtamą kontrolinę sumą, ar saugu, kad slaptažodis būtų toks paprastas, kaip ir 12345, vietoj 12@34$5, tiesiog todėl, kad pačių kontrolinių sumų negalima suprasti? Ne, ir štai kodėl.

Du tokie slaptažodžiai yra neįmanoma iššifruoti tik ieškodami tik kontrolinėse sumos:

MD5 už 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 už 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Iš pirmo žvilgsnio galite manyti, kad naudinga naudoti šiuos slaptažodžius. Tai yra tiesa, jei užpuolikas bandė suprasti savo slaptažodį, atspindėdamas MD5 kontrolinę sumą, kurią niekas nedaro, bet ne tiesa, jei atliekama brutalia jėga arba žodynų ataka, kuri yra įprasta taktika.

Brute force strike įvyksta, kai atsiranda keletas atsitiktinių stabs, kai spėliojate slaptažodį. Šiuo atveju būtų lengva atspėti 12345, bet sunku atsitiktinai išsiaiškinti kitą. Žodynas ataka yra panaši tuo, kad užpuolikas gali išbandyti kiekvieną žodį, numerį ar frazę iš bendrų (ir ne taip dažnai pasitaikančių) slaptažodžių sąrašo ir12345 yra vienas iš tų bendrų slaptažodžių.

Nors iš kriptografinių maišų funkcijų atsiranda sunku ir neįmanoma neįsivaizduoti kontrolinių sumų, vis tiek turėtumėte naudoti sudėtingą slaptažodį visiems savo interneto ir vietos vartotojų abonementams.

Daugiau informacijos apie kriptografinio šalmo funkcijas

Tai gali atrodyti kaip kriptografinės maišos funkcijos, susijusios su šifravimu, tačiau du veiksmai skirtingais būdais.

Šifravimas yra dvipusis procesas, kai kaštai yra užkoduoti, kad taptų neįskaitomi, o vėliau vėliau iššifruoti, kad būtų vėl naudojamas. Galite užšifruoti saugomus failus, kad bet kuris, kuris juos įjungtų, negalėtų jų naudoti, arba galite naudoti failų perkėlimo šifravimą, kad šifruotumėte failus, kurie perkelti per tinklą, pvz., Kuriuos įkeliate arba atsisiųsite internetu.

Kriptografinės maišos funkcijos veikia skirtingai, nes kontrolinės sumos nėra pakeistos specialiu dehashing slaptažodžiu. Vienintelis tikslas kriptografinių maišos funkcijų tikslas - palyginti du duomenų tipus, pavyzdžiui, atsisiųsti failus, saugoti slaptažodžius ir iš duomenų bazės ištraukti duomenis.

Kriptografinės maišos funkcija gali sukurti tą pačią kontrolinę sumą skirtingiems duomenų vienetams. Kai taip atsitinka, tai vadinama susidūrimu, o tai yra didžiulė problema, atsižvelgiant į visą kriptografinės maišos funkcijos tašką - tai padaryti unikalias kontrolines sumas kiekvienam duomenų įvedimui į jį.

Galima susidurti su tuo, kad kiekviena kriptografinės maišos funkcija sukuria fiksuoto ilgio vertę, nepriklausomai nuo įvesties duomenų. Pavyzdžiui, MD5 kriptografinės maišos funkcija generuoja 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 ir e10adc3949ba59abbe56e057f20f883e tris visiškai skirtingus duomenų blokus.

Pirmoji kontrolinė suma yra nuo 12345. Antrasis buvo sukurtas iš daugiau nei 700 raidžių ir skaičių, o trečiasis - nuo 123456.

Visi trys įėjimai yra skirtingo ilgio, tačiau jų rezultatai visada yra tik 32 simboliai, kol buvo naudojama MD5 kontrolinė suma.

Kontrolinių sumų, kurios gali būti sukurtos, skaičius neribojamas, nes kiekvienas nedidelis įvesties pokytis turėtų sukurti visiškai kitokią kontrolinę sumą. Kadangi kontrolinių sumų skaičius, kurį gali sukelti viena kriptografinė maišos funkcija, yra ribotas, visada yra galimybė susidurti su susidūrimu.

Štai kodėl buvo sukurtos kitos kriptografinės maišos funkcijos. Nors MD5 sukuria 32 simbolių reikšmę, SHA-1 generuoja 40 simbolių, o SHA-2 (512) generuoja 128. Kuo didesnis kontrolinių sumų simbolių skaičius, tuo mažiau tikėtina, kad įvyks susidūrimas.