Kriptografska funkcija

Definicija funkcije kriptografskog djelovanja

Kriptografska hash funkcija je vrsta algoritma koji se može izvoditi na komadu podataka, kao što je pojedinačna datoteka ili lozinka, kako bi se dobila vrijednost zove checksum.

Glavna upotreba kriptografske hashe funkcije je provjeriti vjerodostojnost dijela podataka. Dvije se datoteke mogu osigurati da budu identične samo ako su kontrolni zbrojevi generirani iz svake datoteke, koristeći istu funkciju kriptografske hashe, identični.

Neki često korišteni kriptografski hash funkcije uključuju MD5 i SHA-1 , iako mnogi drugi također postoje.

Napomena: Kriptografske hash funkcije često se nazivaju kratkotrajne funkcije hash , ali to nije tehnički ispravno. Funkcija hashe je općenitije pojam koji se obično koristi za obuhvaćanje kriptografskih hash funkcija zajedno s drugim vrstama algoritama kao što su cikličke redundantne provjere.

Kriptofunkcijske funkcije: slučaj upotrebe

Pretpostavimo da preuzimate najnoviju verziju Firefox preglednika . Iz bilo kojeg razloga, trebali biste je preuzeti s web-lokacije koja nije Mozilla-ina. Nećete biti domaćin na web mjestu koje ste naučili povjeriti, željeli biste provjeriti je li instalacijska datoteka koju ste upravo preuzeli točno ista stvar koju nudi Mozilla.

Pomoću kalkulatora za provjeru , izračunate kontrolni zbroj pomoću određene kriptografske hashefunkcije (recimo SHA-2), a zatim usporedite s onom objavljenom na Mozillinom web mjestu.

Ako su ravnopravni, možete biti razumno sigurni da je preuzimanje koju ste imali onaj koji je Mozilla trebala imati.

Pogledajte što je kontrolni zbroj? za više o ovim posebnim računalima i više primjera upotrebe checksumova kako biste provjerili jeste li stvarno preuzeli datoteke koje ste očekivali od njih.

Može li se funkcije kriptografske uklanjanja preokrenuti?

Kriptografske hash funkcije su dizajnirane kako bi spriječile sposobnost preokrenuti checksums koje stvaraju natrag u izvorne tekstove.

Međutim, iako je gotovo nemoguće preokrenuti, to ne znači da su 100% zajamčeni za zaštitu podataka.

Nešto što se naziva duga stol može se koristiti za brzo otkrivanje netočnog teksta čeka. Dnevni stolovi su u osnovi rječnici koji navode tisuće, milijune ili čak milijarde tih dokumenata uz njihovu odgovarajuću vrijednost teksta.

Iako ovo tehnički ne preokreće kriptografski hash algoritam, to bi također moglo biti jer je tako jednostavno za napraviti. U stvarnosti, budući da stolovi duga ne mogu prikazati sve moguće checksumove koji postoje, obično su samo "korisni" za jednostavne fraze ... kao slabe lozinke.

Evo pojednostavljene verzije duga tablice kako biste pokazali kako će se raditi pri upotrebi SHA-1 kriptografske hashe funkcije:

cisti SHA-1 kontrolni zbroj
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
volim svog psa a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Da bi se ove vrijednosti shvatile pomoću kontrolnog zbroja, to bi zahtijevalo da haker razumije koji je kriptografski hash algoritam upotrijebljen za njihovo generiranje.

Za dodatnu zaštitu neke web stranice koje pohranjuju korisničke lozinke obavljaju dodatne funkcije algoritmu kriptografskog hash-a nakon generiranja vrijednosti, ali prije nego što se pohranjuju.

To stvara novu vrijednost koju samo web-poslužitelj razumije i koji ne odgovara originalnom kontrolnom iznosu.

Na primjer, nakon unošenja lozinke i generiranja kontrolnog zbroja, ona se može razdvojiti na nekoliko dijelova i preurediti prije nego što se pohrani u bazu zaporke ili se neki znakovi mogu zamijeniti s drugima. Kada korisnik pokuša provjeriti autentičnost prilikom sljedećeg prijavljivanja, web poslužitelj bi zatim preokrenuo tu dodatnu funkciju i ponovno stvorio originalni kontrolni zbroj kako bi provjerio je li korisnička lozinka valjana.

Na taj način pomaže ograničiti korisnost hakiranja gdje su svi checksumovi ukradeni.

Opet, ovdje je ideja da izvršite funkciju koja je nepoznata, tako da ako haker zna kriptografski hash algoritam, ali ne i ovaj prilagođeni, onda poznavanje lozinke checksumova nije korisno.

Lozinke i kriptografske funkcije

Slično kao i dugačak tablica, način na koji baza podataka sprema korisničke lozinke. Kada unesete zaporku, generirat će se kontrolni zbroj i uspoređivati ​​s onom na snimci s korisničkim imenom. Tada ćete dobiti pristup ako su dva identična.

S obzirom da kriptografska hash funkcija proizvodi nepovratni kontrolni zbroj, znači li to da lozinka može biti jednostavna kao 12345 , umjesto 12 @ 34 $ 5 , jednostavno zato što se kontrolni zbrojevi sami ne mogu razumjeti? To definitivno ne, i evo zašto ...

Kao što vidite, ove su dvije lozinke nemoguće dešifrirati samo gledanjem samo na kontrolni zbroj:

MD5 za 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Dakle, na prvi pogled mislite da je apsolutno u redu koristiti bilo koju od tih lozinki. To je sasvim točno ako napadač pokušava shvatiti vašu lozinku pretpostavljajući kontrolni kontrolni broj MD5 (koji nitko ne čini), ali nije istina ako se izvodi silan ili rječnik napad (što je uobičajena taktika).

Brutalni napad napada je kada se uzme više slučajnih uboda na nagađanje zaporke. U ovom slučaju, bilo bi lako pogoditi "12345", ali je prilično teško slučajno odrediti drugu. Napad rječnik je sličan po tome što napadač može pokušati svaku riječ, broj ili frazu s popisa uobičajenih (i manje uobičajenih) lozinki, a "12345" svakako će biti pokušaj.

Dakle, iako kriptografska hash funkcija proizvodi teške do nemoguće-do-pogoditi checksums, i dalje biste trebali koristiti složenu lozinku za sve vaše online i lokalne korisničke račune.

Savjet: pogledajte primjere slabe i snažne zaporke ako niste sigurni je li vaša tvrdnja snažna zaporka.

Više informacija o kriptografskim funkcijama

Moglo bi se činiti da su kriptografske hashe funkcije povezane s enkripcijom, ali ova dva rada rade na vrlo različite načine.

Šifriranje je dvosmjerni proces u kojem se nešto šifrira kako bi postalo nečitljivo, a zatim se kasnije dešifrira kako bi se ponovno upotrijebili normalno. Možete šifrirati datoteke koje ste pohranili tako da svatko tko ih pristupi neće biti u mogućnosti koristiti ili možete koristiti šifriranje prijenosa datoteka za šifriranje datoteka koje se kreću putem mreže, poput onih koje prenesete ili preuzimate na mreži.

Kao što je gore opisano, kriptografske hashe funkcije rade drugačije po tome što se checksumovi ne trebaju preokrenuti posebnom lozinkom za de-hashing kako se čitaju šifrirane datoteke s posebnom lozinkom za dešifriranje. Jedina svrha kriptografske hash funkcije služi za usporedbu dva dijela podataka, kao kod preuzimanja datoteka, pohrane lozinki, povlačenja podataka iz baze podataka itd.

Moguće je da kriptografska hash funkcija proizvodi isti kontrolni zbroj za različite dijelove podataka. Kada se to dogodi, zove se sudar. Očito je da je riječ o ogromnom problemu s obzirom na cijelu točku kriptografske hashe funkcije da bi u potpunosti unijeli kontrolne vrijednosti za sve podatke upisane u nju.

Razlozi sudara mogu se dogoditi jer svaka kriptografska hash funkcija proizvodi vrijednost fiksne duljine bez obzira na ulazne podatke. Na primjer, kriptografska hash funkcija MD5 generira 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 i e10adc3949ba59abbe56e057f20f883e za tri potpuno različite blokove podataka.

Prvi provjera iznosi 12345 , drugi je generiran s više od 700 slova i brojeva, a treći od 123456 . Sva tri ulaza imaju različite duljine, ali rezultati su uvijek dugački samo 32 znaka od korištenja MD5.

Kao što vidite, praktički nema ograničenja broja čekova koji bi mogli biti stvoreni jer svaka sitna promjena u ulazu trebala bi proizvesti sasvim drugačiji kontrolni zbroj. Međutim, budući da postoji ograničenje broja checksumova koje kriptografska hash funkcija može proizvesti, uvijek postoji mogućnost da ćete naići na sudar.

Zato su stvorene druge kriptografske hash funkcije. Dok MD5 generira vrijednost od 32 znaka, SHA-1 generira 40 znakova, a SHA-2 (512) generira 128. Što je veći broj znakova čiji je kontrolni broj, to je manja vjerojatnost da će doći do sudara jer pruža više mjesta za jedinstvene vrijednosti.