Čo je kryptografická hashovacia funkcia?

Obsah:

Čo je kryptografická hashovacia funkcia?
Čo je kryptografická hashovacia funkcia?
Anonim

Kryptografická hašovacia funkcia (CHF) je algoritmus, ktorý možno spustiť na údajoch, ako je individuálny súbor alebo heslo, na vytvorenie hodnoty nazývanej kontrolný súčet.

Hlavným použitím CHF je overenie pravosti údajov. Dva súbory možno považovať za identické iba vtedy, ak sú kontrolné súčty generované z každého súboru pomocou rovnakej kryptografickej hašovacej funkcie identické.

Niektoré bežne používané kryptografické hašovacie funkcie zahŕňajú MD5 a SHA-1, hoci existuje aj mnoho ďalších. Tieto funkcie sa často označujú ako „hashovacie funkcie“, ale to nie je technicky správne. Hašovacia funkcia je všeobecný pojem, ktorý zahŕňa CHF spolu s inými druhmi algoritmov, ako sú cyklické kontroly nadbytočnosti.

Kryptografické hašovacie funkcie: prípad použitia

Povedzme, že si stiahnete najnovšiu verziu prehliadača Firefox. Z nejakého dôvodu ste si ho museli stiahnuť z inej stránky ako Mozilla. Keďže nie je hosťovaný na stránke, ktorej ste sa naučili dôverovať, chceli by ste sa uistiť, že inštalačný súbor, ktorý ste si práve stiahli, je rovnaký ako ten, ktorý ponúka Mozilla.

Pomocou kalkulačky kontrolného súčtu vypočítate kontrolný súčet pomocou konkrétnej kryptografickej hašovacej funkcie, ako je SHA-2, a potom ho porovnáte s tou, ktorá je zverejnená na stránke Mozilly. Ak sú rovnaké, môžete si byť celkom istí, že stiahnutý súbor, ktorý máte, je ten, ktorý Mozilla zamýšľala mať.

Image
Image

Dajú sa kryptografické hašovacie funkcie obrátiť?

Kryptografické hašovacie funkcie sú navrhnuté tak, aby zabránili možnosti vrátiť kontrolné súčty, ktoré vytvárajú, späť na pôvodné texty. Avšak, aj keď je prakticky nemožné ich vrátiť späť, nie je 100 percent zaručené, že ochránia údaje.

Hackeri môžu použiť dúhovú tabuľku na zistenie čistého textu kontrolného súčtu. Dúhové tabuľky sú slovníky, ktoré uvádzajú tisíce, milióny alebo dokonca miliardy kontrolných súčtov spolu s ich zodpovedajúcou hodnotou obyčajného textu.

Aj keď to technicky nie je obrátenie kryptografického hashového algoritmu, mohlo by to tak byť, keďže je to také jednoduché. V skutočnosti, keďže žiadna dúhová tabuľka nemôže uvádzať všetky možné kontrolné súčty, ktoré existujú, sú zvyčajne užitočné iba pre jednoduché frázy, ako sú slabé heslá.

Tu je zjednodušená verzia dúhovej tabuľky, ktorá ukazuje, ako by fungovalo použitie kryptografickej hašovacej funkcie SHA-1:

Príklad dúhového stola
Plaintext SHA-1 Kontrolný súčet
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Hacker musí vedieť, ktorý kryptografický hašovací algoritmus bol použitý na generovanie kontrolných súčtov, aby zistil hodnoty.

Na zvýšenie ochrany vykonávajú niektoré webové stránky, ktoré uchovávajú heslá používateľov, dodatočné funkcie v kryptografickom hashovom algoritme po vygenerovaní hodnoty, ale pred jej uložením. Tento proces vytvára novú hodnotu, ktorej rozumie iba webový server a ktorá sa nezhoduje s pôvodným kontrolným súčtom.

Napríklad po zadaní hesla a vygenerovaní kontrolného súčtu môže byť pred uložením do databázy hesiel rozdelené na niekoľko častí a preusporiadané, alebo môžu byť určité znaky zamenené za iné. Pri pokuse o overenie pri ďalšom prihlásení používateľa server obráti túto dodatočnú funkciu a znova sa vygeneruje pôvodný kontrolný súčet, aby sa overilo, či je heslo používateľa platné.

Uskutočnenie týchto krokov obmedzuje užitočnosť hacku, pri ktorom sú ukradnuté všetky kontrolné súčty. Cieľom je vykonať funkciu, ktorá je neznáma, takže ak hacker pozná kryptografický hašovací algoritmus, ale nie vlastný, potom poznať kontrolné súčty hesla nie je užitočné.

Heslá a kryptografické hašovacie funkcie

Databáza ukladá heslá používateľov podobným spôsobom ako dúhová tabuľka. Po zadaní hesla sa vygeneruje kontrolný súčet a porovná sa so zaznamenaným súčtom s vaším používateľským menom. Potom vám bude udelený prístup, ak sú tieto dva rovnaké.

Vzhľadom na to, že CHF vytvára nevratný kontrolný súčet, je pre vás bezpečné urobiť si heslo tak jednoduchým ako 12345 namiesto 12@34 $5, jednoducho preto, že samotné kontrolné súčty nie je možné pochopiť? Nie a tu je dôvod.

Tieto dve heslá nie je možné rozlúštiť jednoduchým pohľadom na kontrolné súčty:

MD5 pre 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12@34$5: a4d3cc004f487b18b2ccd4853053818b

Na prvý pohľad sa vám môže zdať, že je v poriadku použiť jedno z týchto hesiel. To platí, ak sa útočník pokúsil zistiť vaše heslo uhádnutím kontrolného súčtu MD5, čo nikto neurobí, ale neplatí to, ak sa vykoná hrubá sila alebo slovníkový útok, čo je bežná taktika.

Útok hrubou silou nastane, keď sa pri uhádnutí hesla uskutoční niekoľko náhodných bodnutí. V tomto prípade by bolo ľahké uhádnuť 12345, ale dosť ťažké náhodne zistiť ten druhý. Slovníkový útok 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 bežných) hesiel a 12345 je jedným z tých bežných heslá.

Hoci kryptografické hašovacie funkcie vytvárajú kontrolné súčty, ktoré je ťažké až nemožné uhádnuť, aj tak by ste mali používať zložité heslo pre všetky svoje online a miestne používateľské účty.

Viac informácií o kryptografických hashovacích funkciách

Mohlo by sa zdať, že kryptografické hašovacie funkcie súvisia so šifrovaním, no fungujú rôznymi spôsobmi.

Šifrovanie je obojsmerný proces, pri ktorom sa niečo zašifruje, aby sa stalo nečitateľným, a neskôr sa dešifruje, aby sa znova normálne použilo. Uložené súbory môžete zašifrovať tak, aby ich nemohol použiť ktokoľvek, kto k nim pristúpi, alebo môžete použiť šifrovanie prenosu súborov na zašifrovanie súborov, ktoré sa presúvajú po sieti, napríklad tie, ktoré nahrávate alebo sťahujete online.

Kryptografické hašovacie funkcie fungujú odlišne v tom, že kontrolné súčty nie sú určené na to, aby ich bolo možné zvrátiť pomocou špeciálneho hesla na odstránenie hašovania. Jediným účelom CHF je porovnať dve časti údajov, napríklad pri sťahovaní súborov, ukladaní hesiel a získavaní údajov z databázy.

Je možné, že kryptografická hašovacia funkcia vytvorí rovnaký kontrolný súčet pre rôzne časti údajov. Keď sa to stane, nazýva sa to kolízia, čo je obrovský problém vzhľadom na to, že hlavným cieľom funkcie je vytvoriť jedinečné kontrolné súčty pre každý vstup údajov.

Kolízie môže nastať preto, lebo každý CHF produkuje hodnotu pevnej dĺžky bez ohľadu na vstupné dáta. Napríklad, kryptografická hašovacia funkcia MD5 generuje 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 a e10adc3949ba058 úplne odlišných blokov údajov 8ef3f058abbe

Prvý kontrolný súčet je z 12345. Druhá bola vygenerovaná z viac ako 700 písmen a číslic a tretia je z 123456. Všetky tri vstupy majú rôznu dĺžku, ale výsledky majú vždy len 32 znakov, pretože bol použitý kontrolný súčet MD5.

Počet kontrolných súčtov, ktoré je možné vytvoriť, nie je obmedzený, pretože každá malá zmena vo vstupe má vytvoriť úplne iný kontrolný súčet. Pretože existuje limit na počet kontrolných súčtov, ktoré môže vytvoriť jeden CHF, vždy existuje možnosť, že narazíte na kolíziu.

Preto boli vytvorené ďalšie kryptografické hašovacie funkcie. Zatiaľ čo MD5 generuje 32-znakovú hodnotu, SHA-1 generuje 40 znakov a SHA-2 (512) generuje 128. Čím väčší počet znakov má kontrolný súčet, tým je menšia pravdepodobnosť, že dôjde ku kolízii.

Odporúča: