Kriptografická hashová funkcia je algoritmus, ktorý môže byť spustený na údajoch, 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 možno považovať za identické len vtedy, ak sú kontrolné súčty generované z každého súboru s použitím tej istej kryptografickej funkcie hash rovnaké.
Niektoré bežne používané kryptografické hashové funkcie zahŕňajú MD5 a SHA-1, aj keď mnoho ďalších existuje.
Kryptografické funkcie hash sa často označujú ako "funkcie hash", ale to nie je technicky správne. Funkcia hash je všeobecný pojem, ktorý zahŕňa kryptografické hashové funkcie spolu s inými druhmi algoritmov, ako sú cyklické kontroly redundancie.
Funkcie kryptografického hashovania: Použitie
Povedzte, že si stiahnete najnovšiu verziu prehliadača Firefox. Z nejakého dôvodu ste ju museli stiahnuť z inej stránky, ako je Mozilla. Keďže sa nenachádza 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 úplne rovnaký ako ten, ktorý ponúka Mozilla.
Pomocou kalkulátora kontrolného súčtu vypočítajte kontrolný súčet pomocou konkrétnej šifrovacej funkcie, napríklad SHA-2, a potom ju porovnajte s tou, ktorá bola zverejnená na stránkach Mozilly. Ak sú rovnaké, môžete byť dostatočne presvedčený, že sťahovanie, ktoré máte, je tá, ktorú ste chceli mať Mozilla.
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äť, k pôvodným textom. Avšak aj napriek tomu, že je prakticky nemožné zvrátiť, nie sú zaručené 100% na ochranu údajov.
Hackeri môžu použiť tabuľku dúhy, aby zistili prostý text kontrolného súčtu.
Tabuľky dúhovky sú slovníky, ktoré zobrazujú tisícky, milióny alebo dokonca miliardy kontrolných súčtov vedľa ich zodpovedajúcej hodnoty obyčajného textu.
Zatiaľ čo to technicky nereverzuje šifrovací algoritmus šifrovacieho algoritmu, mohlo by to byť aj vzhľadom na to, že je to tak jednoduché. V skutočnosti, keďže žiadny tabuľka dúhovky nemôže uvádzať všetky možné kontrolné súčty, sú zvyčajne užitočné len 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 |
Hacker musí vedieť, ktorý kryptografický hash algoritmus bol použitý na generovanie kontrolných súčtov na zistenie hodnôt.
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. Tento proces prináša novú hodnotu, ktorú iba webový server rozumie a nezodpovedá pôvodnému kontrolnému súčtu.
Napríklad po zadaní hesla a vygenerovaní kontrolného súčtu môže byť tento kód rozdelený na niekoľko častí a usporiadaný pred jeho uložením do databázy hesiel alebo niektoré znaky môžu byť vymenené s inými. Pri pokuse o autentifikáciu pri nasledujúcom prihlásení sa webový server obráti túto dodatočnú funkciu a pôvodný kontrolný súčet sa znova vygeneruje, aby sa overilo, že heslo používateľa je platné.
Uvedenie týchto krokov obmedzuje užitočnosť hackerov, kde sú ukradnuté všetky kontrolné súčty. Myšlienka je vykonať nejakú neznámu funkciu, takže ak hacker pozná algoritmus šifrovacieho algoritmu, ale nie je vlastný algoritmus, znalosť kontrolných súčtov hesiel je neopodstatnená.
Heslá a kryptografické funkcie Hash
Databáza ukladá používateľské heslá podobným spôsobom ako tabuľka dúh. 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 nereverzibilný kontrolný súčet, je pre vás bezpečné, aby ste svoje heslo urobili tak jednoducho ako 12345, namiesto 12@34$5, jednoducho preto, lebo samotné kontrolné súčty nemožno pochopiť? Nie a tu je dôvod.
Tieto dve heslá sú obaja nemožné dešifrovať len pri pohľade na kontrolné súčty:
MD5 pre 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b
Na prvý pohľad si možno myslíte, že je vhodné použiť jedno z týchto hesiel. To je pravda, ak sa útočník pokúsil nájsť vaše heslo tým, že odhadne kontrolný súčet MD5, čo nikto nekoná, ale nie je to pravda, ak sa vykonáva brutálna sila alebo slovník, čo je bežná taktika.
K útoku na hrubou silou dochádza, ak sa pri hádaní hesla odohrá niekoľko náhodných stôp. V tomto prípade by bolo ľahké uhádnuť 12345, ale je ťažké náhodne zistiť druhú. Slovník útoku je podobný v tom, že útočník môže vyskúšať každé slovo, číslo alebo frázu zo zoznamu bežných (a nie tak častých) hesiel a12345 je jedno z týchto bežných hesiel.
Hoci kryptografické hash funkcie vytvárajú ťažko až nemožné odhadnúť kontrolné súčty, stále by ste mali používať zložité heslo pre všetky online a lokálne používateľské účty.
Ď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ú rôznymi spôsobmi.
Šifrovanie je obojsmerný proces, v ktorom je niečo šifrované, aby sa stalo nečitateľným a neskôr dešifroval, aby sa znova používal zvyčajne. Môžete zašifrovať súbory, ktoré ste uložili, aby ich nikto nemohol používať, alebo šifrovanie prenosu súborov na zašifrovanie súborov, ktoré sa pohybujú v sieti, ako sú tie, ktoré odovzdáte alebo sťahujete online.
Kryptografické funkcie hash fungujú inak, pretože kontrolné súčty nie sú určené na zvrátenie pomocou špeciálneho dehashing hesla. Jediným cieľom kryptografických hashových funkcií je porovnať dve údaje, napríklad pri sťahovaní súborov, ukladaní hesiel a pri ťahaní údajov z databázy.
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, čo je obrovský problém vzhľadom na to, že celý bod kryptografickej hashovej funkcie je robiť jedinečné kontrolné súčty pre každý vstup dát do nej.
Kolízie 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á bola vygenerovaná z viac ako 700 písmen a čísel a tretí je od 123456.
Všetky tri vstupy majú rôzne dĺžky, ale výsledky sú vždy len 32 znakov, kým bol použitý kontrolný súčet MD5.
Neexistuje žiadny 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, ktoré môže spôsobiť jedna kryptografická hashova funkcia, je vždy možné, že narazíte na kolíziu.
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 ku kolízii dôjde.













