„Je bezpečné generovat heslo na náhodné webové stránce?" je oprávněná otázka — žádáte nástroj, který nemáte pod kontrolou, aby vytvořil tajemství, kterému máte svěřit své účty. Upřímná odpověď zní: záleží zcela na tom, jak nástroj funguje, a nemusíte věřit tomu, co o sobě stránka tvrdí. Tento článek vysvětluje, co si můžete ověřit sami.
Ve zkratce
- Skutečné riziko nespočívá v samotném hesle — spočívá v tom, zda stránka odesílá vygenerovaný obsah na server, kde by mohl být zaznamenán.
- Můžete si to ověřit sami: otevřete vývojářské nástroje prohlížeče, přejděte na kartu Síť, vygenerujte heslo a sledujte, zda se odešle nějaký požadavek.
- Skutečně klientský generátor při generování hesla nevytváří žádnou síťovou aktivitu — JavaScript běží zcela ve vašem prohlížeči.
- Upřednostněte nástroje, které explicitně používají Web Crypto API (
crypto.getRandomValues()), před těmi, které vůbec neuvádějí svůj zdroj náhodnosti.
Krátká odpověď
Online generátor hesel je bezpečné používat pouze tehdy, pokud heslo generuje zcela ve vašem prohlížeči a nikam ho neodesílá. PassGenerate funguje přesně takto: generování probíhá lokálně prostřednictvím Web Crypto API a můžete si to sami ověřit za necelou minutu pomocí vestavěných vývojářských nástrojů prohlížeče, aniž byste museli věřit tvrzení na webové stránce.
Jak si generátor skutečně sami ověřit
K provedení této kontroly nemusíte být vývojář:
- Otevřete stránku generátoru hesel.
- Otevřete vývojářské nástroje prohlížeče (F12, nebo klik pravým tlačítkem → Prozkoumat, ve většině prohlížečů).
- Klikněte na kartu Síť.
- Vygenerujte na stránce heslo.
- Sledujte kartu Síť. Pokud jde o skutečně klientský nástroj, při generování hesla neuvidíte žádný nový odeslaný požadavek — nic se nikam neposílá. Pokud uvidíte, že v okamžiku kliknutí na generování odchází požadavek na server, stojí za to to prozkoumat: zkontrolujte, jaká data se v obsahu požadavku odesílají.
Funguje to proto, že JavaScript běžící ve vašem prohlížeči může buď udělat veškerou práci lokálně (vypočítat náhodné heslo a zobrazit ho, a tím to končí), nebo odeslat data na server a čekat na odpověď. Karta Síť vám ukáže, co se skutečně děje — to není něco, co by stránka mohla předstírat, aniž byste si toho všimli, protože zkoumáte skutečný provoz odesílaný vaším prohlížečem.
Co „generování na straně klienta" technicky skutečně znamená
Skutečně klientský generátor hesel používá vlastní Web Crypto API prohlížeče, konkrétně crypto.getRandomValues(), k vytvoření kryptograficky bezpečných náhodných bajtů, které pak mapuje na vámi zvolenou znakovou sadu zcela v JavaScriptu běžícím na vašem zařízení. Na tomto procesu nic nevyžaduje síťový požadavek — ani z něj netěží. Pokud nástroj potřebuje, aby váš prohlížeč komunikoval se serverem, aby „vygeneroval" heslo, je to pro tento úkol architektonicky zbytečné, což samo o sobě stojí za zpochybnění.
Varovné signály, na které si dát pozor
- Neuvedený zdroj náhodnosti. Pokud stránka neuvádí, jak generuje náhodnost, nemůžete ověřit, zda používá CSPRNG namísto slabší metody, jako je
Math.random(), která je v některých enginech dostatečně předvídatelná na to, aby ji bylo možné rekonstruovat z pozorovaných výstupů — nevhodná pro cokoliv bezpečnostně citlivého. - Síťová aktivita během generování. Potvrzeno výše uvedenou kontrolou ve vývojářských nástrojích. I když stránka tvrdí, že nic nezaznamenává, pokud existuje požadavek, existuje i příležitost k tomu, aby byl zaznamenán, ať už úmyslně, nebo kvůli chybě na straně serveru.
- Vyžadování účtu nebo e-mailu, než můžete nástroj použít. Generátor hesel nemá žádný legitimní důvod potřebovat vaši e-mailovou adresu k vygenerování náhodného řetězce.
- Nadměrné množství skriptů třetích stran. Rozsáhlé reklamní nebo analytické nástroje na stránce, která pracuje s tajemstvími, zvyšují útočnou plochu — čím víc kódu třetích stran na stránce běží, tím víc příležitostí má kompromitovaný skript zachytit, co se na stránce děje, i když je samotný generátor klientský. Nejde o hypotetickou obavu: v červnu 2024 byla kompromitována široce používaná CDN Polyfill.js a vložený škodlivý kód byl doručen návštěvníkům více než 490 000 webových stránek, které tento skript jednoduše zahrnuly jako běžnou závislost — žádná z těchto stránek nebyla cílena individuálně ani neudělala nic špatného kromě toho, že důvěřovala skriptu třetí strany. Průměrná webová stránka dnes načítá desítky skriptů, z toho zhruba dvě třetiny od třetích stran, a podíl třetích stran na únicích dat každý rok prudce roste. Nic z toho neznamená, že stránka se skripty třetích stran je automaticky nebezpečná — ale je to reálný důvod upřednostnit generátor se strohou, ověřitelnou stránkou před tím, který je obalený spoustou nesouvisejících nástrojů.
Proč na tom u některých hesel záleží více než u jiných
Rizika spojená s použitím nedůvěryhodného generátoru rostou s tím, co heslo chrání. Vygenerování jednorázového hesla pro jednorázovou registraci k newsletteru nese malé riziko i od pochybného nástroje. Generování vašeho bankovního hesla, hesla k e-mailu nebo hlavního hesla vašeho správce hesel je přesně místo, kde byste měli trvat na tom, že si chování na straně klienta ověříte sami, místo abyste věřili tvrzení — protože to jsou hesla, u kterých by na zaznamenané kopii v čitelné podobě skutečně záleželo.
Klíčové poznatky
- Zásadní bezpečnostní otázkou u jakéhokoli online generátoru hesel je, zda heslo někam odesílá — ověřte si to sami pomocí karty Síť, místo abyste věřili tvrzení.
- Skutečné generování na straně klienta při generování hesla nevytváří žádné síťové požadavky.
- Upřednostněte nástroje, které výslovně uvádějí použití CSPRNG z Web Crypto API, před těmi, které nevysvětlují svůj zdroj náhodnosti.
- U generátorů pro vysoce riziková hesla (bankovnictví, e-mail, hlavní hesla) uplatňujte větší obezřetnost než u nízkorizikových, jednorázových hesel.
Proč můžete PassGenerate důvěřovat
- Hesla jsou generována lokálně ve vašem prohlížeči pomocí Web Crypto API.
- Žádná hesla nejsou odesílána na servery.
- Používá kryptograficky bezpečný generátor pseudonáhodných čísel (CSPRNG).
- Řídí se moderními osvědčenými bezpečnostními postupy doporučenými NIST a OWASP.
Zdroje
- Kompromitace dodavatelského řetězce CDN Polyfill.js, červen 2024
- Dokumentace MDN k Web Crypto API
- OWASP Password Storage Cheat Sheet
- NIST SP 800-63B – Digital Identity Guidelines
Závěr
Nemusíte věřit tvrzení online generátoru hesel o tom, jak funguje — minuta strávená s kartou Síť ve vašem prohlížeči vám definitivně řekne, zda odesílá to, co generuje. Upřednostněte nástroje, které používají CSPRNG z Web Crypto API, které nevyžadují nic víc než vygenerování hesla a u kterých jste si osobně ověřili, že nevytváří žádnou síťovou aktivitu — a největší obezřetnost si nechte na hesla, na kterých by nejvíc záleželo, kdyby se něco pokazilo.