Skip to main content

Kaj je kriptografska hash funkcija?

Anonim

Kriptografska razpršilna funkcija je algoritem, ki se lahko zažene na podatkih, kot je posamezna datoteka ali geslo, da se proizvede vrednost, imenovana kontrolna vsota.

Glavna uporaba kriptografske razpršilne funkcije je preverjanje pristnosti kosov podatkov. Domneva se, da sta dve datoteki enaki le, če sta kontrolna vsota, ustvarjena iz vsake datoteke, z isto kriptografsko razpršilno funkcijo enaka.

Nekatere pogosto uporabljane kriptografske funkcije hašiša vključujejo MD5 in SHA-1, čeprav obstajajo tudi številne druge.

Funkcije kriptografskega razprševanja so pogosto označene kot "funkcije hašiša", vendar to tehnično ni pravilno. Funkcija razpršitve je generični izraz, ki vključuje kriptografske funkcije hašiša skupaj z drugimi vrstami algoritmov, kot so preverjanja ciklične redundance.

Kriptografske funkcije Hash: primer uporabe

Recimo, da prenesete najnovejšo različico brskalnika Firefox. Iz neznanega razloga ste ga morali prenesti s spletnega mesta, ki ni Mozilla. Ker na spletnem mestu, na katerega ste se naučili zaupati, ni gosti, bi se radi prepričali, da je namestitvena datoteka, ki ste jo pravkar prenesli, popolnoma enaka kot jo ponuja Mozilla.

S kalkulatorjem kontrolne vsote izračunate kontrolno vsoto s posebno kriptografsko razpršilno funkcijo, na primer SHA-2, in jo primerjate s tistim, objavljenim na spletnem mestu Mozilla. Če so enaki, ste lahko razumno prepričani, da je prenos, ki ga imate, namenjen tistemu, ki ste ga želeli imeti.

Ali se lahko kriptografske funkcije Hash preusmerijo?

Funkcije šifriranja kriptografije so zasnovane tako, da preprečijo možnost, da se preverjene povratne baze, ki jih ustvarjajo, vrnejo v izvirna besedila. Kljub temu, da so skoraj nemogoče obrniti, jih ne zagotavlja 100% jamstva za varovanje podatkov.

Hekerji lahko uporabijo mavrično mizo, da ugotovijo navadno besedilo kontrolne vsote.

Mavrične tabele so slovarji, ki naštevajo tisoče, milijone ali celo milijarde kontrolnih vsot, poleg njihove ustrezne navadne vrednosti besedila.

Čeprav to tehnično ne spreminja algoritma šifriranja kriptografije, bi bilo morda tako, saj je tako preprosto. V resnici, ker nobena mavrična miza ne more navesti vseh možnih kontrolnih vsot, ki so obstajala, so ponavadi le koristna za preproste fraze, kot so šibka gesla.

Tukaj je poenostavljena različica mavrične mize, da bi pokazali, kako bi deloval pri uporabi SHA-1 kriptografske razpršilne funkcije:

Golo besediloPreglednica SHA-1
123458cb2237d0679ca88db6464eac60da96345513964
geslo1e38ad214943daad1d64c102faec29de4afe9da3d
ilovemidoga25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Hacker mora vedeti, kateri kriptografski algoritem je bil uporabljen za generiranje kontrolnih vsot, da bi ugotovili vrednosti.

Za dodatno zaščito nekatera spletna mesta, ki shranjujejo uporabniška gesla, izvedejo dodatne funkcije v kriptografskem algoritmu šablone po ustvarjanju vrednosti, vendar preden so shranjene. Ta proces ustvarja novo vrednost, ki jo razume samo spletni strežnik in se ne ujema z izvirno kontrolno vsoto.

Po vnosu gesla in ustvarjanju kontrolne vsote se na primer lahko razdeli na več delov in preuredi, preden se shrani v bazo gesel, ali pa se lahko nekateri znaki zamenjajo z drugimi. Pri poskusu avtentikacije ob naslednjem vpisu uporabnika spletni strežnik preusmeri to dodatno funkcijo in prvotna kontrolna vsota se znova generira, da se preveri, ali je uporabniško geslo veljavno.

Upoštevanje teh korakov omejuje uporabnost kramljanja, kjer so ukradene vse kontrolne vsote. Zamisel je, da izvedete funkcijo, ki je neznana, tako da če hacker pozna algoritem šifriranja kriptografije, ne pa tudi po meri, potem poznavanje preverjanja gesla ni koristno.

Gesla in kriptografske funkcije Hash

Baza podatkov shrani uporabniška gesla na podoben način kot mavrična tabela. Ko vnesete geslo, se generira kontrolna vsota in primerja s tistim, ki je vpisano z uporabniškim imenom. Nato vam omogoči dostop, če sta obe enaki.

Glede na to, da kriptografska funkcija hašiša ustvari nepovratno kontrolno vsoto, ali je varno, da vaše geslo preprosto 12345, namesto 12@34$5, preprosto zato, ker samih preverjanj ni mogoče razumeti? Ne, in tukaj je zakaj.

Ta dva gesla sta nemogoča za dešifriranje samo s pregledovanjem kontrolnih vsot:

MD5 za 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Na prvi pogled lahko mislite, da je dobro uporabiti eno od teh gesel. To drži, če je napadalec poskusil ugotoviti vaše geslo z uganjanjem kontrolne vsote MD5, kar nihče ne dela, vendar ni res, če se izvaja napad z brutalno silo ali slovar, kar je običajna taktika.

Napad z brutalnim silo se pojavi, ko se pri ugibanju gesla vzame več naključnih izboklin. V tem primeru bi bilo enostavno uganiti 12345, vendar je precej težko naključno ugotoviti drugo. Napad slovarja je podoben, ker lahko napadalec vsake besede, številko ali frazo preskusi s seznama skupnih (in ne tako pogostih) gesel in12345 je eno od teh skupnih gesel.

Čeprav kriptografske funkcije hašiša povzročajo težko nemogoče premikanje kontrolnih opomb, morate še vedno uporabljati zapleteno geslo za vse vaše spletne in lokalne uporabniške račune.

Več informacij o funkcijah šifriranja kriptografije

Morda se zdi, da so kriptografske funkcije hash povezane s šifriranjem, vendar obe delujejo na različne načine.

Šifriranje je dvosmerni proces, kjer je nekaj šifrirano, da postane neberljivo, nato pa se dešifrira kasneje, da se običajno ponovno uporabi. Lahko šifrirate datoteke, ki ste jih shranili, tako da jih vsakdo, ki jih dostopa, ne more uporabljati, ali pa lahko šifrirate prenos datotek za šifriranje datotek, ki se premikajo prek omrežja, kot so tisti, ki jih naložite ali prenesete na spletu.

Funkcije šifriranja kriptografije delujejo drugače, ker se kontrolna vsota ne sme spremeniti s posebnim geslom za odzivanje. Edini cilji kriptografskih razpršilnih funkcij so primerjava dveh podatkov, na primer pri nalaganju datotek, shranjevanju gesel in vlečenju podatkov iz baze podatkov.

Možno je, da kriptografska funkcija hašiša ustvari isto kontrolno točko za različne podatke. Ko se to zgodi, se to imenuje trk, kar je ogromen problem, saj je celotna točka kriptografske hešne funkcije, da naredi edinstvene kontrolne vsote za vsak vnos podatkov vanj.

Do trkov lahko pride, ker vsaka kriptografska razpršilna funkcija proizvede vrednost fiksne dolžine, ne glede na vhodne podatke. Na primer, kriptografska funkcija MD5 generira 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 in e10adc3949ba59abbe56e057f20f883e za tri popolnoma drugačne blokade podatkov.

Prva kontrolna vsota je od 12345. Drugi je bil ustvarjen z več kot 700 črkami in številkami, tretji pa iz 123456.

Vsi trije vhodi so različnih dolžin, rezultati pa so vedno od dolžine 32 znakov, odkar je bila uporabljena kontrolna vsota MD5.

Ni omejitev števila kontrolnih vsot, ki bi jih bilo mogoče ustvariti, ker naj bi vsaka majhna sprememba vnosa povzročila povsem drugačno kontrolno vsoto. Ker obstaja omejitev števila kontrolnih vsot, ki jih lahko povzroči ena kriptografska razpršilna funkcija, obstaja vedno možnost, da boste naleteli na trk.

Zato so bile ustvarjene druge kriptografske funkcije. Medtem ko MD5 ustvari vrednost 32 znakov, SHA-1 ustvari 40 znakov in SHA-2 (512) ustvari 128. Večje število znakov, ki jih ima kontrolna vsota, manj verjetno bo trk.