Kriptografinė fiksavimo funkcija

Kriptografinio fiksavimo funkcijos apibrėžimas

Kriptografinė maišos funkcija yra tam tikras algoritmas, kurį galima paleisti duomenų rinkinyje , pvz., Atskiru failu ar slaptažodžiu, kad būtų sukurta reikšmė, vadinama kontroline suma.

Pagrindinis kriptografinės maišos funkcijos naudojimas yra patikrinti duomenų rinkinio autentiškumą. Galima įsitikinti, 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.

Pastaba: kriptografinės maišos funkcijos trumpai vadinamos " hash" funkcijomis , tačiau tai nėra techniškai teisinga. "Hash" funkcija yra labiau bendroji sąvoka, kuri paprastai naudojama kriptografinių maišų funkcijoms kartu su kitais algoritmų tipais, pvz., Ciklišku dubliavimosi patikrinimu.

Kriptografinės skylių funkcijos: naudojimo atvejis

Tarkime, kad atsisiųsite naujausią "Firefox" naršyklės versiją . Dėl kokios nors priežasties jums reikėjo ją atsisiųsti iš kitos svetainės nei "Mozilla". Nesate laikoma svetainėje, kurioje išmokote pasitikėti, norėtumėte įsitikinti, kad įdiegimo failas, kurį ką tik atsisiųsite, yra tas pats, kurį siūlo "Mozilla".

Naudojant kontrolinės sumos skaičiuoklę , jūs apskaičiuojate kontrolinę sumą, naudodami tam tikrą kriptografinės maišos funkciją (pvz., SHA-2) ir palyginkite ją su ta, kuri buvo paskelbta Mozilos svetainėje.

Jei jie yra vienodi, tada galite būti pagrįstai įsitikinęs, kad turimas atsisiuntimas yra tas, kurį Mozilla norėjo turėti.

Žr. Kas yra kontrolinė suma? daugiau apie šiuos specialius skaičiuotuvus ir daugiau pavyzdžių, kaip naudoti kontrolines sumas, kad įsitikintumėte, jog tikrai atsisiųstų failų yra tai, ko tikėjotės.

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

Kriptografinės maišos funkcijos sukurtos taip, kad neleistų sugadinti kontrolinių sumų, kurias jie sukuria originaliuose tekstuose.

Tačiau, nors jų praktiškai neįmanoma pakeisti, tai nereiškia, kad jie užtikrina 100% duomenų apsaugą.

Kažkas, vadinamas vaivorykštės stalu, gali būti naudojamas greitai išsiaiškinti kontrolinės sumos paprastą tekstą. Vaivorykštės lentelės iš esmės yra žodynai, išvardijantys tūkstančius, milijonus ar net milijardus jų kartu su atitinkama teksto reikšme.

Nors tai nėra techniškai pakeista kriptografinio maišos algoritmu, tai taip pat gali būti, nes tai taip paprasta padaryti. Iš tikrųjų, kadangi nėra vaivorykštės lentelės, galima išvardinti kiekvieną galimą egzistuojančią kontrolinę sumą, paprastai jie yra "naudingi" paprastoms frazėms ... pvz., Silpni slaptažodžiai.

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

Paprastas tekstas SHA-1 kontrolinė suma
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
aš myliu savo šunį a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
Dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Kad šios vertės būtų apskaičiuotos naudojant kontrolinę sumą, reikėtų, kad įsilaužėlis suprastų, kuris kriptografinio maišos algoritmas buvo naudojamas jų generavimui.

Papildomai apsaugai kai kurios svetainės, kuriose saugomi vartotojo slaptažodžiai, atlieka papildomas kriptografinio maišos algoritmo funkcijas, kai sukuriama vertė, bet prieš ją išsaugant.

Tai sukuria naują vertę, kurią supranta tik žiniatinklio serveris ir kuri ne visai atitinka pradinę kontrolinę sumą.

Pavyzdžiui, įvedus slaptažodį ir sukūrus 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. Kai vartotojas bando autentifikuoti kitą kartą, kai jie prisijungs, ši papildoma funkcija tada bus pakeista žiniatinklio serveriu, o pirminė kontrolinė suma bus sugeneruota dar kartą, siekiant patikrinti, ar vartotojo slaptažodis yra galiojantis.

Tai padės apriboti piktogramos, kurioje pavogtos visos kontrolinės sumos, naudingumą.

Vėlgi, idėja čia yra atlikti funkciją, kuri yra nežinoma, taigi, jei įsilaužėlis pažįsta kriptografinio maišos algoritmą, bet ne tai įprasta, tada žinant, kad kontrolinės sumos yra neveiksmingos.

Slaptažodžiai ir šifravimo atribojimo funkcijos

Panašus į vaivorykštės lentelę, kaip duomenų bazė išsaugo naudotojo slaptažodžius. 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 tai reiškia, kad galite įvesti savo slaptažodį tik paprastu būdu, kaip 12345 , o ne 12 34 $ 5 , tiesiog nes pačių kontrolinių sumų negalima suprasti? Tai tikrai ne , ir štai kodėl ...

Kaip matote, šiuos du slaptažodžius ir neįmanoma iššifruoti, tiesiog žiūrint į kontrolinę sumą:

MD5 už 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 už 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Taigi, iš pirmo žvilgsnio galite manyti, kad visiškai gerai naudoti bet kurį iš šių slaptažodžių. Tai tikrai yra teisinga, jei užpuolikas bando suprasti savo slaptažodį, atspindėdamas MD5 kontrolinę sumą (kuri niekas to nedaro), bet netiesa, jei atliekama brutalia jėga arba žodyno ataka (kuri yra dažna taktika).

Grubus jėgos išpuolis yra tada, kai atsiranda keletas atsitiktinių įsibėgėjimų atskleidžiant slaptažodį. Šiuo atveju būtų labai 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į, skaičių ar frazę iš bendrų (ir mažiau dažniausiai naudojamų) slaptažodžių sąrašo, "12345" tikrai yra tas, kuris bus išbandytas.

Taigi, nors iš kriptografinių maišų funkcijų atsiranda sunku neįmanoma suprasti kontrolines sumas, vis tiek turėtumėte naudoti sudėtingą slaptažodį visiems savo interneto ir vietos vartotojų abonemoms.

Patarimas: žr . Silpnų ir stiprių slaptažodžių pavyzdžius, jei nesate tikri, ar tavo yra laikomas patikimu slaptažodžiu.

Daugiau informacijos apie kriptografinio šalmo funkcijas

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

Šifravimas yra dvipusis procesas, kai kai kurie kodai tampa neįskaitomi, bet vėliau vėliau iššifruoti, kad jie vėl būtų naudojami. Galite užšifruoti saugomus failus , kad visi, kurie juos įjungs, negalėtų jų naudoti, arba galite naudoti failų perkėlimo šifravimą, kad šifruotumėte failus, kurie perkelti per tinklą, pvz., Įkelti arba atsisiųsti internetu.

Kaip aprašyta aukščiau, kriptografinės maišos funkcijos veikia skirtingai, nes kontrolinės sumos nėra pakeistos specialiu slaptažodžio šalinimu, pvz., Kaip užkoduoti failai yra skaitomi naudojant specialų iššifravimo slaptažodį. Vienintelis tikslas kriptografinės maišos funkcijoms yra palyginti du duomenų tipus, pvz., Kai atsisiųsti failus, saugoti slaptažodžius, traukti duomenis iš duomenų bazės ir tt

Kriptografinės maišos funkcija gali sukurti tą pačią kontrolinę sumą skirtingiems duomenų vienetams. Kai taip nutinka, tai vadinama susidūrimu. Akivaizdu, kad tai yra didžiulė problema, atsižvelgiant į tai, kad visas kriptografinės maišos funkcijos taškas yra visiškai unikali kontrolinė suma už kiekvieną į ją įvestą informaciją.

Priežastis gali kilti dėl to, 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 iš 12345 , antroji buvo sukurta iš daugiau nei 700 raidžių ir skaičių, o trečioji - iš 123456 . Visi trys įėjimai yra skirtingo ilgio, bet rezultatai visada yra tik 32 simboliai nuo MD5 naudojimo.

Kaip matote, tikrų sumų, kurios gali būti sukurtos, skaičiaus praktiškai nėra jokių apribojimų, nes kiekvienas mažas įvesties pokytis turi sukurti visiškai kitokią kontrolinę sumą. Tačiau dėl to, kad kontrolinių sumų skaičius yra ribotas, gali būti sukurta viena kriptografinė maišos funkcija, 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, nes jis suteikia daugiau vietos unikalios vertybės.