Kryptografická funkcia Hash

Definícia kryptografickej funkcie Hash

Kriptografická hashová funkcia je druh algoritmu, ktorý môže byť spustený na kus dát, ako je individuálny súbor alebo heslo, na vytvorenie hodnoty nazývanej kontrolný súčet.

Hlavným použitím kryptografickej funkcie hash je overiť autentickosť časti dát. Dva súbory môžu byť zaistené, aby boli identické len vtedy, ak sú kontrolné súčty generované z každého súboru s rovnakou kryptografickou hash funkciou identické.

Niektoré bežne používané kryptografické hashové funkcie zahŕňajú MD5 a SHA-1 , hoci mnohé existujú.

Poznámka: Kryptografické funkcie hash sa často krát len ​​označujú ako funkcie hash , ale to nie je technicky správne. Funkcia hash je všeobecnejší výraz, ktorý sa zvyčajne používa na zahrnutie kryptografických hashových funkcií spolu s inými druhmi algoritmov, ako sú cyklické kontroly redundancie.

Funkcie kryptografického hashovania: Použitie

Povedzme, že si stiahnete najnovšiu verziu prehliadača Firefox . Z akéhokoľvek dôvodu ste ju museli stiahnuť z inej stránky, ako je Mozilla. Ak sa nenachádzate na stránkach, na ktorých ste sa naučili dôverovať, chcete sa uistiť, že inštalačný súbor, ktorý ste práve prevzali, je to isté, čo ponúka Mozilla.

Pomocou kalkulátora kontrolného súčtu vypočítajte kontrolný súčet pomocou konkrétnej kryptografickej funkcie hash (napríklad SHA-2) a porovnávajte ju s kontrolnou sumou publikovanou na stránke Mozilly.

Ak sú rovnaké, potom môžete byť dostatočne presvedčený, že prevzatie, ktoré máte, je tá, ktorú ste chceli mať Mozilla.

Pozrite si Čo je kontrolný súčet? viac informácií o týchto špeciálnych kalkulačkách a ďalšie príklady použitia kontrolných súčtov, aby ste sa ubezpečili, že súbory na stiahnutie skutočne sú to, čo ste očakávali, že budú.

Môžu byť kryptografické funkcie Hash obrátené?

Kryptografické hash funkcie sú navrhnuté tak, aby zabránili možnosti zvrátenia kontrolných súčtov, ktoré vytvárajú späť, do pôvodných textov.

Napriek tomu, že sú prakticky nemožné zvrátiť, neznamená to, že sú zaručené 100% na ochranu údajov.

Niečo, čo sa nazýva dúhový stôl, môže byť použité na rýchle zistenie úplného opisu kontrolného súčtu. Dúhové stoly sú v podstate slovníky, ktoré zobrazujú tisíce, milióny alebo dokonca miliardy z nich spolu s ich zodpovedajúcou hodnotou voľného textu.

Zatiaľ čo to technicky nereverzuje šifrovací algoritmus šifrovacieho algoritmu, mohlo by to byť aj preto, lebo je to tak jednoduché. V skutočnosti, keďže žiadny tabuľka dúhovky nemôže obsahovať všetky možné kontrolné súčty, sú zvyčajne iba "užitočné" pre jednoduché frázy ... ako slabé heslá.

Tu je zjednodušená verzia tabuľky dúhy, ktorá ukáže, ako by bolo možné použiť šifrovací funkciu SHA-1:

Obyčajný text SHA-1 Kontrolný súčet
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
milujem svojho psa a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Aby sa tieto hodnoty zistili pomocou kontrolného súčtu, bolo by potrebné, aby hacker pochopil, ktorý algoritmus šifrovacieho algoritmu bol použitý na ich generovanie.

Pre zvýšenú ochranu niektoré webové stránky, ktoré ukladajú používateľské heslá, vykonávajú dodatočné funkcie algoritmu šifrovacieho algoritmu po generovaní hodnoty, ale pred uložením.

Toto vytvára novú hodnotu, ktorú chápe iba webový server a nezodpovedá presne pôvodnému kontrolnému súčtu.

Napríklad po zadaní hesla a vygenerovaní kontrolného súčtu môže byť toto číslo rozdelené na niekoľko častí a usporiadané pred uložením do databázy hesiel, alebo niektoré znaky môžu byť vymieňané s inými. Keď sa používateľ pokúsi autentifikovať pri ďalšom prihlásení, táto ďalšia funkcia by potom bola obrátená webovým serverom a pôvodným kontrolným súčtom vygenerovaným znova, aby sa overilo, že heslo používateľa je platné.

To umožňuje pomôcť obmedziť užitočnosť hackerov, kde sú ukradnuté všetky kontrolné súčty.

Znovu tu ide o vykonanie funkcie, ktorá je neznáma, takže ak hacker pozná kryptografický hashový algoritmus, ale nie tento vlastný algoritmus, potom vedomie kontrolných súčtov hesiel je nepodstatné.

Heslá a kryptografické funkcie Hash

Podobne ako tabuľka dúhovky, ako databáza ukladá používateľské heslá. Po zadaní hesla sa kontrolný súčet vygeneruje a porovná s kontrolným súčtom s vaším používateľským menom. Potom máte prístup, ak sú dva rovnaké.

Vzhľadom na to, že šifrovacia funkcia šifrovania vytvára neregulovateľný kontrolný súčet, znamená to, že vaše heslo je jednoduché ako 12345 , namiesto 12 @ 34 $ 5 , jednoducho preto, lebo samotné kontrolné súčety nemožno pochopiť? Určite to nie je a tu je dôvod, prečo ...

Ako vidíte, tieto dve heslá nie je možné dešifrovať len tým, že sa pozeráme práve na kontrolný súčet:

MD5 pre 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Takže na prvý pohľad si možno myslíte, že je absolútne dobré používať niektorú z týchto hesiel. To je určite pravda, ak sa útočník pokúsil zistiť vaše heslo odhadnutím kontrolného súčtu MD5 (čo nikto nekoná), ale nie je to pravda, ak sa vykoná brutálna sila alebo slovníkový útok (čo je bežná taktika).

Útok na hrubou silou je, keď sa pri hádaní hesla vykoná viacero náhodných stôp. V tomto prípade by bolo veľmi jednoduché uhádnuť "12345", ale je veľmi ťažké náhodne zistiť druhú. Slovník útoku je podobný tomu, že útočník môže vyskúšať každé slovo, číslo alebo frázu zo zoznamu bežných (a menej bežne používaných) hesiel, pričom "12345" je určite jedno, ktoré by bolo vyskúšané.

Takže aj keď kryptografické hashové funkcie vytvárajú ťažko až nemožné odhadnúť kontrolné sumy, stále by ste mali používať zložité heslo pre všetky vaše on-line a lokálne používateľské účty.

Tip: Pozrite si príklady slabých a silných hesiel, ak si nie ste istí, či sa vaše heslo považuje za silné.

Ďalšie informácie o funkcii kryptografického hashovania

Mohlo by sa zdať, že kryptografické hashové funkcie súvisia so šifrovaním, ale tieto dve pracujú veľmi rôznymi spôsobmi.

Šifrovanie je dvojsmerný proces, v ktorom je niečo šifrované, aby sa stalo nečitateľným, ale potom neskódované neskôr sa znova používa. Môžete zašifrovať súbory, ktoré ste uložili , aby ich nikto, kto ich pristupuje, nebol schopný ich použiť, alebo šifrovanie prenosu súborov môžete použiť na zašifrovanie súborov, ktoré sa pohybujú v sieti, napríklad tie, ktoré odovzdáte alebo sťahujete online.

Ako je to popísané vyššie, kryptografické hashové funkcie fungujú inak, pretože kontrolné súčty nie sú zamenené špeciálnym heslom, ako je čítanie šifrovaných súborov špeciálnym heslom dešifrovania. Jediným cieľom kryptografických hashových funkcií je porovnať dve údaje, napríklad pri sťahovaní súborov, ukladaní hesiel, priťahovaní dát z databázy atď.

Je možné, že funkcia kryptografického hashovania vytvorí rovnaký kontrolný súčet pre rôzne údaje. Keď sa to stane, nazýva sa to kolízia. Je zrejmé, že ide o obrovský problém vzhľadom na to, že celý bod kryptografickej hashovej funkcie má robiť úplne jedinečné kontrolné súčty pre všetky údaje, ktoré sú do nej vložené.

Príčiny zrážky môžu nastať, pretože každá kryptografická hashová funkcia vytvára hodnotu pevnej dĺžky bez ohľadu na vstupné dáta. Napríklad kryptografická hashová funkcia MD5 generuje 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 a e10adc3949ba59abbe56e057f20f883e pre tri úplne odlišné bloky dát.

Prvý kontrolný súčet je od 12345 , druhý bol generovaný z viac ako 700 písmen a čísel a tretí je od 123456 . Všetky tri vstupy majú rozdielne dĺžky, ale výsledky sú vždy len 32 znakov od používania MD5.

Ako vidíte, neexistuje prakticky žiaden limit počtu kontrolných súčtov, ktoré by mohli byť vytvorené, pretože každá malá zmena na vstupe by mala vytvoriť úplne iný kontrolný súčet. Pretože existuje obmedzenie počtu kontrolných súčtov, ku ktorým môže dôjsť k jednej kryptografickej hashovej funkcii, vždy existuje možnosť, že sa stretnete s kolíziou.

Preto boli vytvorené ďalšie kryptografické hash funkcie. Zatiaľ čo MD5 generuje hodnotu 32 znakov, SHA-1 generuje 40 znakov a SHA-2 (512) generuje 128. Čím väčší je počet znakov kontrolného súčtu, tým je menej pravdepodobné, že dôjde ku kolízii, pretože poskytuje viac priestoru pre jedinečné hodnoty.