Kryptografická funkce Hash

Definice kryptografické funkce hašování

Kryptografická hashová funkce je druh algoritmu, který může být spuštěn na kus dat, jako je individuální soubor nebo heslo, pro vytvoření hodnoty nazývané kontrolní součet.

Hlavním použitím kryptografické hashové funkce je ověření pravosti určitého datového souboru. Dva soubory mohou být zajištěny, aby byly shodné pouze tehdy, jsou-li kontrolní součty vygenerované z každého souboru s použitím stejné šifrovací funkce shodné.

Některé běžně používané kryptografické hashové funkce zahrnují MD5 a SHA-1 , i když existují i ​​mnohé další.

Poznámka: Kryptografické hashové funkce jsou často krát jen označovány jako funkce hash , ale to není technicky správné. Funkce hash je obecnějším pojmem, který se obvykle používá k zahrnutí funkcí šifrovacích hashů spolu s jinými druhy algoritmů, jako jsou cyklické kontroly nadbytečnosti.

Funkce kryptografického hashování: pouzdro pro použití

Řekněme, že stáhnete nejnovější verzi prohlížeče Firefox . Z jakéhokoli důvodu jste ho museli stáhnout z jiné stránky, než je Mozilla. Pokud se nenacházíte na stránkách, na kterých jste se naučili důvěřovat, měli byste se ujistit, že instalační soubor, který jste právě stáhli, je přesně to, co Mozilla nabízí.

Pomocí kalkulátoru kontrolního součtu vypočítejte kontrolní součet pomocí konkrétní kryptografické funkce hash (například SHA-2) a porovnejte ji s tím, který je publikován na webu společnosti Mozilla.

Jsou-li rovnocenní, můžete si být přiměřeně jisti, že stahování, které máte k dispozici, je program Mozilla, který máte v úmyslu mít.

Podívejte se, co je kontrolní součet? více informací o těchto speciálních kalkulačkách a další příklady využití kontrolních součtů, aby se ujistil, že stažené soubory skutečně jsou to, co jste očekávali.

Mohou kryptografické funkce Hash být obráceny?

Kryptografické hashové funkce jsou navrženy tak, aby zabránily tomu, aby kontrolní součty, které vytvářejí, zpět do původních textů.

Nicméně, i když jsou prakticky nemožné zvrátit, neznamená to, že jsou garantovány 100%, aby ochránily data.

Něco, které se nazývá duhový stůl, může být použito pro rychlé zjištění otevřeného kontrolního součtu. Tabulky Rainbow jsou v podstatě slovníky, které zobrazují tisíce, miliony nebo dokonce miliardy z nich vedle jejich odpovídající hodnoty.

Zatímco to není technicky převrácené kryptografické hash algoritmus, to by mohlo být, protože to je tak jednoduché dělat. Ve skutečnosti, protože žádný duhový stůl nemůže vypsat každý možný kontrolní součet, jsou obvykle jen "užitečné" pro jednoduché fráze ... jako slabá hesla.

Zde je zjednodušená verze tabule duhy, která vám ukáže, jak by fungoval při použití šifrovací funkce SHA-1:

Prostý text Kontrolní součet SHA-1
12345 8cb2237d0679ca88db6464eac60da96345513964
heslo1 e38ad214943daad1d64c102faec29de4afe9da3d
miluji svého psa a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Aby tyto hodnoty byly zjištěny pomocí kontrolního součtu, bylo by třeba, aby hacker chápal, který šifrovací algoritmus šifrovacího algoritmu byl použit k jejich generování.

Pro zvýšenou ochranu některé webové stránky, které ukládají uživatelská hesla, provádějí další funkce šifrovacího algoritmu po generování hodnoty, ale před uložením.

To vytváří novou hodnotu, kterou chápe pouze webový server a který se přesně neodpovídá původnímu kontrolnímu součtu.

Například po zadání hesla a vygenerování kontrolního součtu, může být před uložením do databáze hesel rozděleno do několika částí a přeskupeno, nebo některé znaky mohou být vyměněny za jiné. Když se uživatel pokusí ověřit při příštím přihlášení, bude tato další funkce obrácena webovým serverem a původním kontrolním součtem znovu generovaným, aby se ověřilo, zda je heslo uživatele platné.

Tímto způsobem pomůžete omezit užitečnost hacků, kde jsou odcizeny všechny kontrolní součty.

Znovu je zde myšlenka provést funkci, která není známa, takže pokud hacker zná šifrovací algoritmus šifrovacího algoritmu, ale ne tento vlastní, pak znalost kontrolních součtů hesel je neopodstatněná.

Hesla a kryptografické funkce Hash

Stejně jako u tabulky duhových je jak databáze ukládá uživatelská hesla. Po zadání hesla je kontrolní součet generován a porovnán s kontrolním součtem s vaším uživatelským jménem. Potom máte přístup, pokud jsou tyto dvě stejné.

Vzhledem k tomu, že šifrovací funkce šifrovacího kódu vytváří nevratný kontrolní součet, znamená to, že můžete vytvořit heslo tak jednoduché jako 12345 namísto 12 @ 34 $ 5 , jednoduše proto, že samotné kontrolní součet nelze pochopit? Určitě to neznamená a tady je důvod ...

Jak je vidět, tato dvě hesla jsou oba nedeciplifická, když se podíváme pouze na kontrolní součet:

MD5 pro 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Takže na první pohled si můžete myslet, že je naprosto v pořádku používat některou z těchto hesel. To je určitě pravda, pokud se útočník pokusil zjistit vaše heslo tím, že odhadne kontrolní součet MD5 (což nikdo nečiní), ale není pravda, pokud je provedena brutální síla nebo slovníkový útok (což je běžná taktika).

K útoku na hrubou sílu dochází, když se při hádání hesla odeberou více náhodných bodů. V tomto případě by bylo velmi snadné odhadnout "12345", ale je těžké náhodně zjistit druhou. Slovník útoku je podobný tomu, že útočník může vyzkoušet každé slovo, číslo nebo frázi ze seznamu běžných (a méně běžně používaných) hesel, "12345", což je určitě jedno, které by bylo vyzkoušeno.

Takže i když kryptografické hashové funkce vytvářejí obtížné až nemožné odhadnout kontrolní součty, měli byste stále používat složité heslo pro všechny vaše online a lokální uživatelské účty.

Tip: Viz příklady slabých a silných hesel, pokud si nejste jisti, zda se vaše heslo považuje za silné.

Další informace o funkcích šifrovacích funkcí

Mohlo by se zdát, že šifrovací funkce šifrovacích funkcí se týkají šifrování, ale tyto dvě pracují velmi odlišným způsobem.

Šifrování je dvoucestný proces, kdy je něco zašifrováno, aby se stalo nečitelným, ale pak bylo později dešifrováno a normálně se znovu používá. Můžete šifrovat soubory, které jste uložili , aby k nim, kteří je přistupují, nebyli schopni je použít, nebo šifrování přenosu souborů za účelem šifrování souborů, které se pohybují v síti, jako jsou ty, které nahráváte nebo stahujete online.

Stejně jako je popsáno výše, kryptografické hashové funkce fungují odlišně v tom, že kontrolní součet není určen k obrácení se zvláštním heslem dehashingu, jako je čtení šifrovaných souborů se speciálním heslem pro dešifrování. Jediným účelem kryptografických hashových funkcí je porovnání dvou dat, například při stahování souborů, ukládání hesel, tažení dat z databáze apod.

Je možné, že šifrovací funkce šifrování vytvoří stejný kontrolní součet pro různé části dat. Když k tomu dojde, nazývá se to kolize. Je zřejmé, že je to obrovský problém vzhledem k tomu, že celý bod šifrovací funkce šifrovacího prvku je zcela unikátní kontrolní součet pro všechna data, která jsou do něj vložena.

Důvody srážky mohou nastat, protože každá kryptografická hash funkce produkuje hodnotu pevné délky bez ohledu na vstupní data. Kriptografická hashová funkce MD5 například generuje 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 a e10adc3949ba59abbe56e057f20f883e pro tři zcela odlišné bloky dat.

První kontrolní součet je od 12345 , druhý byl generován z více než 700 písmen a čísel a třetí z 123456 . Všechny tři vstupy mají různé délky, ale výsledky jsou vždy pouhých 32 znaků od doby, kdy byl použit MD5.

Jak vidíte, neexistuje prakticky žádný limit počtu kontrolních součtů, které by mohly být vytvořeny, protože každá drobná změna ve vstupu by měla produkovat zcela jiný kontrolní součet. Protože však existuje limit kontrolního součtu, který může způsobit jedna šifrovací funkce, existuje vždy možnost, že narazíte na kolizi.

Z tohoto důvodu byly vytvořeny další šifrovací funkce. Zatímco MD5 generuje hodnotu 32 znaků, SHA-1 generuje 40 znaků a SHA-2 (512) generuje 128. Čím větší počet znaků má kontrolní součet, tím je pravděpodobnost, že dojde ke kolizi, protože poskytuje větší prostor pro jedinečné hodnoty.