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:
- Zadáte své požadavky (délka, typy znaků)
- Generátor vytvoří sadu povolených znaků na základě vašeho výběru
- Bezpečná náhodná funkce vybírá znaky z této sady
- 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ě.