← Back to Blog

Czy bezpiecznie jest korzystać z internetowych generatorów haseł? Jak to naprawdę sprawdzić

2025-12-26

„Czy bezpiecznie jest wygenerować hasło na przypadkowej stronie internetowej?” to uzasadnione pytanie — prosisz narzędzie, nad którym nie masz kontroli, o wytworzenie sekretu, któremu zaraz powierzysz swoje konta. Szczera odpowiedź brzmi: to zależy wyłącznie od tego, jak działa dane narzędzie, i wcale nie musisz wierzyć stronie na słowo. Ten artykuł wyjaśnia, co możesz sprawdzić samodzielnie.

W skrócie

  • Prawdziwym ryzykiem nie jest samo hasło — lecz to, czy strona przesyła wygenerowaną treść na serwer, gdzie mogłaby zostać zapisana w logach.
  • Możesz to sprawdzić samodzielnie: otwórz narzędzia deweloperskie przeglądarki, przejdź do zakładki Sieć, wygeneruj hasło i obserwuj, czy pojawi się jakiekolwiek żądanie.
  • Prawdziwie działający po stronie klienta generator nie wywołuje żadnej aktywności sieciowej podczas generowania hasła — kod JavaScript działa wyłącznie w Twojej przeglądarce.
  • Preferuj narzędzia, które wyraźnie korzystają z interfejsu Web Crypto API (crypto.getRandomValues()), zamiast tych, które w ogóle nie ujawniają źródła swojej losowości.

Krótka odpowiedź

Internetowy generator haseł jest bezpieczny w użyciu wtedy i tylko wtedy, gdy generuje hasło całkowicie w Twojej przeglądarce i nigdy go nigdzie nie przesyła. PassGenerate działa właśnie w ten sposób: generowanie odbywa się lokalnie za pomocą interfejsu Web Crypto API, a Ty możesz to zweryfikować samodzielnie w niecałą minutę, korzystając z wbudowanych narzędzi deweloperskich przeglądarki, bez konieczności ufania jakiemukolwiek twierdzeniu na stronie.

Jak samodzielnie zweryfikować generator

Nie musisz być programistą, aby przeprowadzić tę kontrolę:

  1. Otwórz stronę generatora haseł.
  2. Otwórz narzędzia deweloperskie przeglądarki (F12 lub kliknij prawym przyciskiem myszy → Zbadaj element, w większości przeglądarek).
  3. Kliknij zakładkę Sieć (Network).
  4. Wygeneruj hasło na stronie.
  5. Obserwuj zakładkę Sieć. Jeśli jest to narzędzie faktycznie działające po stronie klienta, nie zobaczysz żadnego nowego żądania w momencie generowania hasła — nic nigdzie nie jest wysyłane. Jeśli zauważysz, że żądanie wychodzi do serwera dokładnie w momencie kliknięcia „generuj”, warto to zbadać: sprawdź, jakie dane są wysyłane w treści żądania.

Działa to dlatego, że kod JavaScript uruchamiany w Twojej przeglądarce może albo wykonać całą pracę lokalnie (obliczyć losowe hasło i je wyświetlić, kropka), albo wysłać dane na serwer i czekać na odpowiedź. Zakładka Sieć pokazuje, co faktycznie się dzieje — strona nie może tego sfałszować bez Twojej wiedzy, ponieważ obserwujesz rzeczywisty ruch wysyłany przez Twoją przeglądarkę.

Co „generowanie po stronie klienta” właściwie oznacza technicznie

Prawdziwie działający po stronie klienta generator haseł korzysta z wbudowanego w przeglądarkę interfejsu Web Crypto API, a konkretnie z funkcji crypto.getRandomValues(), aby wytworzyć kryptograficznie bezpieczne losowe bajty, a następnie mapuje te bajty na wybrany przez Ciebie zestaw znaków — całość dzieje się w kodzie JavaScript uruchomionym na Twoim urządzeniu. Żaden element tego procesu nie wymaga żądania sieciowego ani nie odnosi z niego żadnej korzyści. Jeśli narzędzie potrzebuje, aby Twoja przeglądarka komunikowała się z serwerem w celu „wygenerowania” hasła, jest to architektonicznie zbędne dla tego zadania, co samo w sobie warto zakwestionować.

Sygnały ostrzegawcze, na które warto zwracać uwagę

  • Brak ujawnionego źródła losowości. Jeśli strona nie podaje, w jaki sposób generuje losowość, nie możesz zweryfikować, czy korzysta z CSPRNG zamiast słabszej metody, takiej jak Math.random(), która w niektórych silnikach jest na tyle przewidywalna, że można ją zrekonstruować na podstawie obserwowanych wyników — nienadająca się do niczego istotnego dla bezpieczeństwa.
  • Aktywność sieciowa podczas generowania. Potwierdzona za pomocą powyższej kontroli w narzędziach deweloperskich. Nawet jeśli strona twierdzi, że niczego nie zapisuje w logach, jeśli istnieje żądanie, istnieje też okazja, by zostało zalogowane, celowo lub przez błąd po stronie serwera.
  • Zbieranie kont lub adresów e-mail, zanim można skorzystać z narzędzia. Generator haseł nie ma żadnego uzasadnionego powodu, by potrzebować Twojego adresu e-mail do wygenerowania losowego ciągu znaków.
  • Nadmierna liczba skryptów zewnętrznych. Ciężkie narzędzia reklamowe lub analityczne na stronie obsługującej sekrety zwiększają powierzchnię ataku — więcej kodu firm trzecich działającego na stronie oznacza więcej okazji dla przejętego skryptu na przechwycenie tego, co znajduje się na stronie, nawet jeśli sam generator działa po stronie klienta. To nie jest hipotetyczna obawa: w czerwcu 2024 roku szeroko wykorzystywane CDN Polyfill.js zostało przejęte, a wstrzyknięty złośliwy kod był serwowany odwiedzającym ponad 490 000 stron internetowych, które po prostu dołączyły ten skrypt jako rutynową zależność — żadna z tych stron nie była indywidualnie celem ataku ani nie zrobiła niczego złego poza zaufaniem skryptowi firmy trzeciej. Przeciętna strona internetowa ładuje obecnie kilkadziesiąt skryptów, z czego mniej więcej dwie trzecie pochodzi od firm trzecich, a udział firm trzecich w naruszeniach bezpieczeństwa rośnie z roku na rok coraz gwałtowniej. Żadne z tego nie oznacza, że strona ze skryptami firm trzecich jest automatycznie niebezpieczna — ale to realny powód, by preferować generator z lekką, możliwą do zweryfikowania stroną zamiast takiego, który jest opakowany w mnóstwo niepowiązanych narzędzi.

Dlaczego to ma większe znaczenie dla niektórych haseł niż dla innych

Stawka związana z użyciem niegodnego zaufania generatora skaluje się wraz z tym, co dane hasło chroni. Wygenerowanie jednorazowego hasła do zapisu na newsletter niesie niewielkie ryzyko nawet w przypadku wątpliwego narzędzia. Generowanie hasła do bankowości, hasła do e-maila czy hasła głównego menedżera haseł to dokładnie ten moment, w którym powinieneś nalegać na samodzielną weryfikację zachowania po stronie klienta, zamiast wierzyć na słowo — ponieważ to właśnie te hasła, w przypadku których zalogowana kopia w postaci jawnego tekstu faktycznie miałaby znaczenie.

Najważniejsze wnioski

  • Podstawowym pytaniem o bezpieczeństwo dla każdego internetowego generatora haseł jest to, czy przesyła hasło gdziekolwiek — zweryfikuj to samodzielnie za pomocą zakładki Sieć, zamiast wierzyć deklaracjom.
  • Prawdziwe generowanie po stronie klienta nie wywołuje żadnych żądań sieciowych podczas generowania hasła.
  • Preferuj narzędzia, które wyraźnie deklarują użycie CSPRNG z interfejsu Web Crypto API, ponad te, które nie wyjaśniają źródła swojej losowości.
  • Stosuj większą ostrożność wobec generatorów dla haseł o wysokiej stawce (bankowość, e-mail, hasła główne) niż dla haseł o niskiej stawce, jednorazowych.

Dlaczego możesz zaufać PassGenerate

  • Hasła są generowane lokalnie w Twojej przeglądarce za pomocą interfejsu Web Crypto API.
  • Żadne hasła nie są przesyłane na serwery.
  • Wykorzystuje kryptograficznie bezpieczny generator liczb pseudolosowych (CSPRNG).
  • Stosuje nowoczesne najlepsze praktyki bezpieczeństwa zalecane przez NIST i OWASP.

Źródła

  • Kompromitacja łańcucha dostaw CDN Polyfill.js, czerwiec 2024
  • Dokumentacja Web Crypto API na MDN
  • OWASP Password Storage Cheat Sheet
  • NIST SP 800-63B – Digital Identity Guidelines

Podsumowanie

Nie musisz wierzyć internetowemu generatorowi haseł na słowo co do tego, jak działa — minuta spędzona w zakładce Sieć Twojej przeglądarki mówi Ci definitywnie, czy przesyła on to, co generuje. Preferuj narzędzia, które korzystają z CSPRNG interfejsu Web Crypto API, nie proszą o nic poza wygenerowaniem hasła i które osobiście potwierdziłeś jako niewywołujące żadnej aktywności sieciowej — a najwięcej ostrożności zachowaj dla haseł, które miałyby największe znaczenie, gdyby coś poszło nie tak.