Jak fungují generátory hesel

Už jste se někdy ptali, jak generátory hesel vytváří ty zdánlivě náhodné řetězce znaků? Pojďme prozkoumat vědu a technologii za generováním hesel.

Základy náhodnosti

Skutečná náhodnost je v počítačích obtížná. Většina generátorů hesel používá 'pseudonáhodné generátory čísel' (PRNG), které vytvářejí dostatečně nepředvídatelné výstupy pro bezpečné hesla.

Typy generátorů hesel

Existují tři hlavní typy generátorů hesel:

  • Zcela náhodné: Vytváří kompletně náhodné řetězce znaků. Nejbezpečnější, ale obtížné k zapamatování.
  • Vyslovovatelné: Generuje hesla sledující vzory výslovnosti. Snazší k zapamatování, ale potenciálně méně bezpečné.
  • Passphrase: Kombinuje náhodná slova do zapamatovatelné fráze. Dobrá rovnováha mezi bezpečností a použitelností.

Porozumění entropii hesla

Entropie je matematická míra nepředvídatelnosti hesla. Čím vyšší entropie, tím obtížnější je heslo prolomit. Pochopení entropie vám pomůže činit informovaná rozhodnutí o bezpečnosti vašich hesel.

Vzorec pro entropii

Entropie hesla se počítá podle vzorce: E = L × log₂(R), kde E je entropie v bitech, L je délka hesla a R je velikost množiny znaků. Každý další bit entropie zdvojnásobuje počet možných kombinací.

Velikosti množin znaků

Množina znaků určuje, kolik možných znaků může být na každé pozici:

  • Pouze malá písmena (a-z): 26 znaků = 4,7 bitů na znak
  • Přidání velkých písmen (A-Z): 52 znaků = 5,7 bitů na znak
  • Přidání čísel (0-9): 62 znaků = 5,95 bitů na znak
  • Přidání symbolů (!@#$%^&*...): 94+ znaků = 6,5+ bitů na znak

Příklady entropie

Zde je, jak se entropie promítá do skutečné síly hesla:

Heslo Entropie Čas k prolomení
password ~0 bitů (slovníkové slovo) Okamžitě
abc123 ~10 bitů < 1 sekunda
Tr0ub4dor ~28 bitů ~3 hodiny
X9#mK2$pQw8@ ~78 bitů Staletí
correct-horse-battery-staple ~44 bitů (passphrase) ~550 let

Doporučené úrovně entropie

Bezpečnostní experti doporučují různé úrovně entropie podle důležitosti účtu:

  • Základní účty (fóra, newslettery): minimálně 40+ bitů
  • Důležité účty (sociální sítě, e-shopy): 60+ bitů
  • Kritické účty (e-mail, bankovnictví, práce): 80+ bitů
  • Maximální zabezpečení (kryptoměny, admin účty): 100+ bitů

Rychlý kalkulátor entropie

Pro dosažení 80+ bitů entropie potřebujete buď: 12znakové heslo používající všechny typy znaků (malá, velká písmena, čísla, symboly), nebo 17znakové heslo používající pouze malá písmena, nebo 5slovnou passphrase ze slovníku 7 776 slov (jako Diceware).

Praktické důsledky

Moderní hardware pro prolamování hesel dokáže otestovat miliardy kombinací za sekundu. Heslu s 80 bity entropie by i těm nejvýkonnějším superpočítačům trvalo déle než stáří vesmíru prolomit ho hrubou silou. Nicméně výpočty entropie předpokládají skutečně náhodný výběr znaků - vzory, slovníková slova a osobní informace dramaticky snižují efektivní entropii.

Srovnání algoritmů: Jak fungují různé generátory

Ne všechny generátory hesel jsou stejné. Použitý algoritmus určuje úroveň bezpečnosti, rychlost a vhodnost pro různé aplikace. Zde je podrobné srovnání nejběžnějších přístupů.

Standardní PRNG (Pseudonáhodný generátor čísel)

Standardní PRNG jako Math.random() v JavaScriptu vytvářejí sekvence, které vypadají náhodně, ale ve skutečnosti jsou deterministické. Používají matematický vzorec a počáteční seed hodnotu k generování čísel.

Výhody:

  • Velmi rychlé generování - miliony hodnot za sekundu
  • Jednoduchá implementace, dostupné všude

Nevýhody:

  • Předvídatelné, pokud je seed znám
  • NEVHODNÉ pro bezpečnostně kritické aplikace

CSPRNG (Kryptograficky bezpečný PRNG)

CSPRNG jako Web Crypto API (používané RndPass), /dev/urandom na Linuxu nebo CryptGenRandom na Windows používají entropii ze systémových zdrojů (pohyb myši, časování klávesnice, hardwarová přerušení) kombinovanou s kryptografickými algoritmy.

Výhody:

  • Kryptograficky bezpečný - nepředvídatelný výstup
  • Odolný vůči reverznímu inženýrství
  • Průběžně sbírá entropii ze systému

Nevýhody:

  • Mírně pomalejší než standardní PRNG (stále velmi rychlý)

Hardwarový generátor náhodných čísel (HRNG)

Skutečné generátory náhodných čísel používají fyzikální jevy jako tepelný šum, radioaktivní rozpad nebo kvantové efekty k vytváření náhodnosti. Příklady zahrnují instrukci Intel RDRAND a specializovaná hardwarová zařízení.

Výhody:

  • Skutečná náhodnost z fyzikálních procesů
  • Nelze předpovědět ani s neomezeným výpočetním výkonem

Nevýhody:

  • Vyžaduje specializovaný hardware
  • Pomalejší než softwarová řešení

Metoda Diceware

Diceware používá fyzické hody kostkou mapované na seznam 7 776 slov. Každé slovo je vybráno hodem pěti kostek, což je zcela nezávislé na počítačem generované náhodnosti.

Výhody:

  • Ověřitelně náhodné - kdokoli může auditovat proces
  • Vytváří zapamatovatelné passphrase

Nevýhody:

  • Manuální proces - pomalý a zdlouhavý
  • Vyžaduje fyzické kostky a seznam slov

Přímé srovnání

Algoritmus Úroveň bezpečnosti Rychlost Nejlepší pro
PRNG Nízká (předvídatelné) Velmi rychlé Hry, simulace
CSPRNG Vysoká (kryptografická) Rychlé Hesla, tokeny, klíče
HRNG Nejvyšší (skutečně náhodné) Střední Kryptografické klíče, HSM
Diceware Vysoká (auditovatelná) Velmi pomalé Hlavní hesla

Kterému algoritmu věřit?

Pro běžné generování hesel je CSPRNG zlatým standardem. Poskytuje vynikající rovnováhu bezpečnosti, rychlosti a dostupnosti. Hardwarové RNG jsou pro většinu uživatelů přehnané, zatímco standardní PRNG by nikdy neměly být používány pro hesla. Diceware je vynikající pro hlavní hesla, kde potřebujete maximální důvěru ve zdroj náhodnosti.

Co používá RndPass

RndPass používá Web Crypto API, implementaci CSPRNG vestavěnou do moderních prohlížečů. Toto API je standardizované, auditované výrobci prohlížečů a splňuje bezpečnostní požadavky pro generování hesel, šifrovacích klíčů a dalších kryptografických materiálů. Vaše hesla jsou generována se stejnou úrovní náhodnosti, jakou používají banky a vládní agentury.

Jak náš generátor funguje

RndPass používá kryptograficky bezpečný generátor náhodných čísel ve vašem prohlížeči. Zde je proces:

  1. Zadáte své požadavky (délka, typy znaků)
  2. Generátor vytvoří sadu povolených znaků na základě vašeho výběru
  3. Bezpečná náhodná funkce vybírá znaky z této sady
  4. Proces se opakuje, dokud není dosaženo požadované délky

Bezpečnostní důležitosti

Ne všechny generátory hesel jsou stejné. Zde je to, co hledat:

  • Generování na straně klienta - hesla by se neměla posílat na server
  • Kryptograficky bezpečná náhodnost - ne jen Math.random()
  • Open source - komunita může auditovat kód bezpečnosti

Nejlepší postupy

Pro maximální bezpečnost používejte hesla s alespoň 16 znaky zahrnujícími všechny typy znaků. Ukládejte generovaná hesla ve správci hesel a nikdy je nesdílejte nezabezpečeně.

Vyzkoušejte náš generátor