Bcrypt Hash

Ověř identitu bez ukládání čitelného textu. Implementace s prioritou lokality.

Generovat hash

Ověřit hash

Co to dělá

Hashuje hesla tak, aby šla později ověřit bez ukládání původního hesla.

K čemu to použít

Ochrana databází hesel a autentizačních systémů.

Na co to není

Reverzibilní šifrování, ochranu souborů nebo generování tokenů.

Pochopit nástroj

Nejdřív mentální model, pak důvěra ve výstup.

Krátké a praktické vysvětlení, které ukáže k čemu nástroj je, jak funguje a kde se lidé nejčastěji pletou.

Jednoduše řečeno

Bcrypt je hashovací algoritmus zaměřený na hesla. Přemění heslo na jednosměrný výsledek, který lze později porovnat, ale ne vrátit zpátky do původní podoby.

Jak to funguje

Bcrypt kombinuje heslo s náhodnou solí a opakuje výpočetně drahou operaci mnohokrát. To zpomaluje každý pokus útočníka, což je přesně to, co při ochraně hesel chcete.

Heslo dovnitř, pomalý hash ven

Bcrypt přidává sůl a výpočetní náročnost, aby bylo ověření použitelné pro vás, ale drahé pro útočníka.

Kde se hodí

  • Ukládání uživatelských hesel v databázi webové aplikace.
  • Testování ověřování hesel během vývoje.
  • Migrace ze starých rychlých hashů na bezpečnější ukládání hesel.

Častý omyl

Lidé někdy chtějí pomocí bcryptu chránit data, která pak chtějí znovu dešifrovat. To je špatný nástroj. Bcrypt je pro ověřování hesel, ne pro návrat k původnímu tajemství.

Pozadí

Historie / zajímavost

Bcrypt byl navržen tak, aby zůstával záměrně drahý na výpočet. U hesel je pomalost výhoda, protože útočníkům zdražuje hrubou sílu.

Bezpečnostní poznámka

Work factor je potřeba nastavit dostatečně vysoko, aby brzdil útočníky, ale zároveň nezpomalil legitimní přihlášení víc, než je přijatelné.

Jít více do hloubky

Proč je důležitá sůl

Sůl zajistí, že stejné heslo vytvoří u různých uživatelů jiný hash. Tím se rozbíjejí jednoduché předpočítané útoky jako rainbow tables.

Proč záleží na cost faktoru

Cost faktor určuje, kolik práce bcrypt provede. Vyšší hodnota zvyšuje odolnost proti hádání, ale prodlužuje i legitimní ověřování.