Sprawdzanie siły hasła
Wygeneruj hasło
Narzędzie do sprawdzania siły hasła GeekFormat naukowo ocenia bezpieczeństwo hasła na podstawie entropii Shannona. Po wprowadzeniu hasła natychmiast wyświetla 5-gwiazdkową ocenę siły, wartość entropii (w bitach), szacowanie czasu złamania w trzech scenariuszach (zwykły komputer, superkomputer, atak online z ograniczeniem szybkości), szczegółowo sprawdza 7 wskaźników bezpieczeństwa (długość, wielkie/małe litery, cyfry, znaki specjalne, wzorce powtórzeń, kolejne sekwencje, dopasowanie w bazie popularnych słabych haseł) i dostarcza spersonalizowanych sugestii poprawy. Zawiera kryptograficznie bezpieczny generator losowych haseł (crypto.getRandomValues), obsługuje długość od 8 do 64 znaków i konfigurowalny zestaw znaków. Całkowicie lokalne przetwarzanie w przeglądarce, bez wysyłania hasła na serwer.
Powiązane Rekomendacje
O sile i bezpieczeństwie haseł
Siła hasła (Password Strength) jest miarą zdolności hasła do opierania się Brute-force Attack i Dictionary Attack. Silne hasło powinno mieć wystarczającą długość, wystarczająco dużą pulę znaków (mieszankę wielu typów znaków), wystarczającą losowość (bez wzorców, nieprzewidywalne) i nie znajdować się na liście wyciekłych haseł. Hasło jest najbardziej podstawowym i najpowszechniej używanym środkiem uwierzytelniania tożsamości cyfrowej, od poczty e-mail, kont społecznościowych po bankowość internetową i portfele kryptowalutowe, prawie wszystkie usługi online zależą od ochrony hasłem. Słabe hasło jest główną przyczyną wycieków danych i kradzieży kont — wieloletnie statystyki Verizon DBIR (Data Breach Investigations Report) pokazują że ponad 80% incydentów wycieków danych jest związanych ze słabymi hasłami lub wyciekiem haseł.
Entropia Shannona (Shannon Entropy) jest naukowym wskaźnikiem do pomiaru siły hasła, zaproponowanym przez Claude'a Shannona, ojca teorii informacji, w 1948 roku. W kryptografii jednostką entropii jest bit, reprezentujący logarytm (przy podstawie 2) średniej liczby prób potrzebnych do złamania hasła metodą brute force. Na przykład 40 bitów entropii oznacza że atakujący musi średnio spróbować 2⁴⁰≈1 trylion kombinacji; 80 bitów wymaga 2⁸⁰≈1 trylion trylionów; 128 bitów nie jest możliwe do złamania metodą brute force w przewidywalnej przyszłości. Ważne jest aby pamiętać że entropia Shannona zakłada że znaki hasła są całkowicie losowe; jeśli hasło ma wzorzec (np. słowo + sufiks cyfrowy), rzeczywista efektywna entropia będzie niższa od wartości teoretycznej.
Brute-force Attack jest najbardziej bezpośrednią metodą ataku na hasła: systematyczne próbowanie wszystkich możliwych kombinacji znaków aż do znalezienia prawidłowego hasła. Szybkość Brute-force Attack zależy od dwóch czynników: mocy obliczeniowej (ile prób na sekundę) i wartości entropii hasła (ile prób potrzeba aby odgadnąć). Wraz ze wzrostem mocy obliczeń równoległych GPU szybkość łamania brute force szybko rośnie — wysokiej jakości karty graficzne z lat 2020-tych mogą próbować dziesiątki miliardów password hash na sekundę. Ale gdy wartość entropii hasła jest wystarczająco wysoka (np. powyżej 100 bitów), nawet przy połączeniu wszystkich zasobów obliczeniowych świata niemożliwe jest ukończenie wyczerpującego wyszukiwania w wieku wszechświata. Dlatego najskuteczniejszą metodą przeciwko Brute-force Attack jest używanie długich losowych haseł o wysokiej entropii.
Dictionary Attack jest bardziej efektywną metodą ataku niż Brute-force Attack: atakujący nie próbuje wszystkich kombinacji, ale używa „słownika” zawierającego popularne hasła, wyciekłe hasła, listy słów i kombinacje popularnych wzorców do prób. Większość użytkowników wybiera hasła które nie są całkowicie losowe — badania pokazują że ponad 50% użytkowników używa wariantów z 1000 najpopularniejszych haseł. Dictionary Attack jest o kilka rzędów wielkości szybszy od Brute-force Attack, ponieważ próbuje tylko najbardziej prawdopodobnych kandydatów. Bazy danych popularnych haseł (np. 14 milionów wyciekłych haseł z rockyou, baza danych Pwned Passwords z Have I Been Pwned) rejestrują miliardy haseł które już wyciekły w internecie, każde hasło które pojawia się na tych listach powinno być uznane za niebezpieczne.
Szacowanie czasu złamania hasła musi uwzględniać scenariusz ataku. Ataki online (próba przez interfejs logowania witryny) są zazwyczaj ściśle ograniczone szybkościowo — serwer ogranicza częstotliwość prób, blokuje konto po kilku niepowodzeniach, wymaga CAPTCHA, dlatego najniższa szybkość (od kilku do kilkuset razy na sekundę). Ataki offline (atakujący łamie lokalnie po uzyskaniu bazy danych password hash) są ekstremalnie szybkie — przy użyciu klastrów wysokiej jakości GPU może próbować setki miliardów razy na sekundę, przy użyciu chmury obliczeniowej lub superkomputera może osiągnąć tryliony lub kwadryliony razy na sekundę. Ponadto szybkość łamania różnych algorytmów haszujących znacznie się różni: MD5 i NTHash są bardzo szybkie, algorytmy powolnego haszowania takie jak bcrypt/Argon2 są specjalnie zaprojektowane aby opierać się Brute-force Attack, szybkość miliony razy mniejsza.
NIST (Narodowy Instytut Standaryzacji i Technologii USA) przedstawił nowoczesne rekomendacje dla polityk haseł w wytycznych SP 800-63B: 1) Długość hasła co najmniej 8 znaków, zaleca się używanie dłuższych haseł (password phrase/passphrase); 2) Obsługiwać wszystkie znaki ASCII i Unicode (w tym spację); 3) Nie wymuszać już obowiązkowej okresowej zmiany hasła (zmieniać tylko przy dowodach wycieku); 4) Nie wymuszać już określonych reguł kombinacji znaków (ale zalecać używanie wielu typów); 5) Zabronić używania znanych wyciekłych haseł; 6) Dostarczać informacji zwrotnej o sile hasła. Sedno tych rekomendacji jest następujące: prawdziwa siła hasła pochodzi z długości i losowości, a nie ze złożonych reguł kompozycji; długość jest ważniejsza od złożoności.
Passphrase jest strategią haseł równoważącą bezpieczeństwo i zapamiętywalność: używanie 4-6 losowo wybranych słów (np. correct horse battery staple) w kombinacji, uzyskiwanie wysokiej entropii dzięki liczbie słów zamiast złożoności znaków. Hasło składające się z 5 losowych angielskich słów ma wartość entropii około 65-70 bitów (przy założeniu losowego wyboru z 7776 popularnych słów), co odpowiada 10-11 całkowicie losowym znakom ASCII, ale jest łatwiejsze do zapamiętania. Ale ważne jest aby pamiętać: słowa w passphrase muszą być wybierane losowo, używanie znaczących zdań lub popularnych wyrażeń (np. iloveyou, tobeornottobe) drastycznie obniża bezpieczeństwo.
Najlepsze praktyki bezpieczeństwa haseł: Po pierwsze, używaj menedżera haseł (np. Bitwarden, KeePassXC, 1Password itp.) do generowania i przechowywania unikalnego silnego losowego hasła (16+ znaków wszystkich typów) dla każdej witryny, unikaj ponownego używania haseł; Po drugie, włączaj gdzie to możliwe uwierzytelnianie dwuskładnikowe (2FA/TOTP/klucz bezpieczeństwa), aby chronić konto nawet jeśli hasło wycieknie; Po trzecie, regularnie sprawdzaj czy Twój adres e-mail pojawił się w wyciekach danych (przez usługi takie jak Have I Been Pwned); Po czwarte, bądź ostrożny z wiadomościami phishingowymi i fałszywymi witrynami, jest to najpowszechniejszy sposób kradzieży haseł; Po piąte, używaj dodatkowej silnej ochrony dla ważnych kont (poczta e-mail, bankowość internetowa, portfel kryptowalutowy), unikaj logowania do wrażliwych kont w publicznej sieci Wi-Fi; Po szóste, bezpieczeństwo haseł to projekt systemowy, silne hasło to tylko pierwsza linia obrony.
Przypadki użycia
- Sprawdzaj siłę hasła przed rejestracją w nowej witrynie, aby uniknąć używania słabych haseł, które mogą prowadzić do kradzieży konta
- Oceniaj bezpieczeństwo nowego hasła podczas okresowej zmiany, potwierdzając że nowe hasło jest silniejsze od starego
- Używaj jako narzędzia referencyjnego dla wymagań złożoności haseł, gdy działy IT przedsiębiorstw opracowują polityki haseł zespołowych
- Korzystaj ze standardów kontroli podczas projektowania wskazówek siły hasła w frontendzie przy tworzeniu funkcji rejestracji/zmiany hasła
- Sprawdzaj czy istniejące hasła są popularnymi słabymi hasłami lub mają zbyt krótki czas złamania podczas badania incydentów bezpieczeństwa kont
- Generuj hasła o odpowiedniej sile dla kont o różnych poziomach bezpieczeństwa — bardzo silne hasło do poczty e-mail i bankowości internetowej, średnie hasło do forów
- Wyjaśniaj użytkownikom nietechnicznym dlaczego hasła, które „wyglądają na długie” (np. password123), w rzeczywistości nie są bezpieczne, wizualnie demonstrując ryzyko za pomocą czasu złamania
- Ponownie sprawdzaj wartość entropii i poziom siły po tym, jak menedżery haseł wygenerują hasła
- Obserwuj zależność między zmianami kombinacji znaków a zmianami entropii i czasu złamania podczas nauki o bezpieczeństwie haseł
- Porównuj efekty różnych polityk haseł — np. różnicę w czasie złamania między 8 cyframi, 8 mieszanymi znakami a 16 mieszanymi znakami
- Prezentuj słabość słabych haseł na prezentacjach szkoleniowych z bezpieczeństwa, wprowadzając popularne hasła aby pokazać ryzyko natychmiastowego złamania
- Potwierdź że hasło osiąga poziom ★★★★ lub wyższy podczas ustawiania hasła Wi-Fi, hasła bazy danych, klucza szyfrowania i innych scenariuszy o wysokich wymaganiach bezpieczeństwa
Jak Używać
- Wprowadź hasło do sprawdzenia w polu wprowadzania, kliknij ikonę oka aby przełączyć między tekstem jawnym a ukrytym w celu sprawdzenia
- Narzędzie analizuje hasło w czasie rzeczywistym, wyświetlając 5-gwiazdkową ocenę siły, wartość entropii Shannona (w bitach), czas złamania w trzech scenariuszach
- Przejrzyj tabelę kontroli zestawu znaków aby potwierdzić czy 7 wskaźników bezpieczeństwa (długość, wielkie litery, małe litery, cyfry, znaki specjalne, brak powtórzeń, nie jest popularnym hasłem) zostało spełnionych
- Optymalizuj hasło zgodnie z sugestiami w obszarze porad — np. zwiększ długość, dodaj brakujące typy znaków, unikaj popularnych haseł
- Jeśli potrzebujesz wygenerować silne hasło, ustaw długość (od 8 do 64 znaków) i opcje typów znaków, kliknij przycisk generuj aby otrzymać kryptograficznie bezpieczne losowe hasło
Funkcje
- Algorytm entropii Shannona: oblicza wartość entropii Shannona (w bitach) na podstawie rozmiaru zestawu znaków i długości hasła, naukowo kwantyfikuje siłę losowości hasła zamiast prostego oceniania według reguł
- 5-gwiazdkowa ocena siły: 5 poziomów od ☆☆☆☆☆ (bardzo słabe) do ★★★★★ (bardzo silne), określanych na podstawie kombinacji przedziałów entropii (<30/30-45/45-60/60-80/>80 bitów) i wyników kontroli bezpieczeństwa
- Szacowanie czasu złamania w trzech scenariuszach: szacuje czas Brute-force Attack na zwykłym komputerze (1 miliard prób/sek), superkomputerze (1 kwadrylion prób/sek) i ataku online z ograniczeniem szybkości (100 prób/sek), obejmując zakresy od milisekund do trylionów lat
- Szczegółowa kontrola 7 wskaźników bezpieczeństwa: automatycznie wykrywa, czy hasło ma długość ≥8 znaków, zawiera wielkie litery, małe litery, cyfry, znaki specjalne, nie ma kolejno powtarzających się znaków (np. aaa/111), nie ma kolejnych sekwencji cyfrowych (np. 123/456) i nie znajduje się w bazie popularnych słabych haseł
- Wykrywanie bazy popularnych słabych haseł: wbudowana lista popularnych słabych haseł, natychmiastowe czerwone ostrzeżenie po wprowadzeniu klasycznych słabych haseł, takich jak 123456, password, qwerty, które są błyskawicznie łamane przy ataku Rainbow Table
- Dynamiczne sugestie poprawy: dostarcza spersonalizowanych sugestii poprawy w czasie rzeczywistym na podstawie wyników kontroli — dodaj wielkie litery jeśli ich brakuje, zwiększ długość jeśli jest niewystarczająca, zmień jeśli hasło jest popularne, precyzyjnie kierując użytkownika w celu zwiększenia siły hasła
- Wbudowany bezpieczny generator haseł: generuje hasła przy użyciu crypto.getRandomValues() przeglądarki (kryptograficznie bezpieczne liczby losowe), długość regulowana od 8 do 64 znaków, opcja dołączenia wielkich liter, małych liter, cyfr i znaków specjalnych (!@#$%^&*-_+=?)
- Przełącznik pokaż/ukryj hasło: przełącza między tekstem jawnym a ukrytym jednym kliknięciem, ułatwiając sprawdzanie wprowadzonej treści i unikając błędów spowodowanych nieprawidłowymi znakami
- Liczenie znaków w czasie rzeczywistym: pod polem wprowadzania wyświetla bieżącą liczbę znaków hasła, ułatwiając ocenę czy długość spełnia wymagania
- Natychmiastowa analiza bez opóźnień: analizuje hasło podczas wpisywania, bez potrzeby klikania przycisków, natychmiastowa informacja zwrotna o zmianach siły
- Kopiowanie wyników jednym kliknięciem: obsługa kopiowania jednym kliknięciem pełnego podsumowania z poziomem siły, wartością entropii i trzema czasami złamania, do zapisu lub udostępnienia
- Umiędzynarodowiony format liczb: liczby czasu złamania są automatycznie formatowane zgodnie z ustawieniami językowymi użytkownika (separatory tysięcy itp.)
- Funkcja czyszczenia: czyści pole wprowadzania jednym kliknięciem do nowej kontroli, wygodna obsługa
- Całkowicie lokalne przetwarzanie w przeglądarce: analiza i generowanie hasła odbywają się w JavaScript w przeglądarce, wprowadzone hasło nie jest wysyłane przez sieć na żadne serwery, bezpieczeństwo hasła jest gwarantowane
Często Zadawane Pytania
Jaka jest zasada sprawdzania siły hasła? Jak obliczana jest entropia Shannona?
To narzędzie kwantyfikuje siłę hasła na podstawie teorii entropii informacji zaproponowanej przez Claude'a Shannona. Formuła obliczania entropii: Entropia = Długość hasła × log₂(rozmiar puli znaków). Rozmiar puli znaków jest sumowany na podstawie używanych typów znaków: 26 małych liter, 26 wielkich liter, 10 cyfr, 33 znaki specjalne (!@#$%^&*-_+=? itp.). Na przykład 8-znakowe hasło używające tylko małych liter ma pulę=26, entropia=8×log₂(26)≈37.6 bitów; 16-znakowe hasło używające wszystkich czterech typów znaków ma pulę=95, entropia=16×log₂(95)≈105 bitów. Im wyższa entropia, tym więcej kombinacji musi spróbować Brute-force Attack i tym bezpieczniejsze jest hasło.
Dlaczego hasła takie jak 123456, password są długie ale oceniane jako bardzo słabe?
Ponieważ siła hasła zależy nie tylko od długości, ale także od losowości i nieprzewidywalności. 123456 ma 6 cyfr, ale jest jednym z najpopularniejszych haseł, obecnym w każdej Rainbow Table i słowniku haseł. Hakerzy próbują te częste hasła najpierw i mogą je odgadnąć w ciągu kilku sekund. To narzędzie ma wbudowaną bazę popularnych słabych haseł; jeśli wykryje że hasło znajduje się na liście popularnych haseł, klasyfikuje je bezpośrednio jako bardzo słabe (☆☆☆☆☆), niezależnie od długości. Podobne słabe hasła obejmują: qwerty, abc123, admin, letmein, welcome, monkey, dragon itp.
Jaka jest różnica między trzema scenariuszami w szacowaniu czasu złamania?
Trzy scenariusze symulują szybkości złamania przy różnych możliwościach ataku: 1) Atak online z ograniczeniem szybkości (100 prób/sek): symuluje interfejs logowania witryny, serwery zazwyczaj ograniczają częstotliwość prób (np. maksymalnie kilka prób na sekundę na konto, blokada po 5 niepowodzeniach), jest to najczęstszy scenariusz ataku zdalnego, najniższa szybkość; 2) Atak offline na zwykłym komputerze (1 miliard prób/sek): po uzyskaniu password hash atakujący wykonuje Brute-force Attack lokalnie na karcie graficznej, nowoczesne GPU próbują miliardy razy na sekundę; 3) Superkomputer/atak rozproszony (1 kwadrylion prób/sek): atakujący na poziomie państwowym lub duże botnety o ekstremalnie dużej mocy obliczeń równoległych. Twoje hasło musi wytrzymywać wystarczająco długo również w scenariuszu superkomputera, aby można je było uznać za naprawdę bezpieczne.
Ile znaków musi mieć hasło aby było bezpieczne? Jaka jest zalecana polityka haseł?
Poziom bezpieczeństwa różni się w zależności od scenariusza: 1) Zwykłe fora/nieistotne konta: ≥12 mieszanych znaków, entropia ≥60 bitów (★★★☆☆), wymaga lat na superkomputerze; 2) Poczta e-mail/konta społecznościowe: ≥14 mieszanych znaków, entropia ≥80 bitów (★★★★☆); 3) Bankowość internetowa/portfel kryptowalutowy/konto administratora: ≥16 znaków wszystkich typów, entropia ≥100 bitów (★★★★★), złamanie na superkomputerze wymaga trylionów lat lub więcej. Ogólna rekomendacja: używaj menedżera haseł do generowania losowych haseł o długości 16+ znaków z wielkimi+małymi literami+cyframi+znakami specjalnymi, używaj unikalnego hasła do każdej witryny, włącz uwierzytelnianie dwuskładnikowe (2FA).
Dlaczego nadal wskazywane jest że hasło nie jest wystarczająco silne, mimo wielkich+małych liter+cyfr+znaków specjalnych?
Może być kilka przyczyn: 1) Niewystarczająca długość — nawet przy wszystkich czterech typach znaków, jeśli hasło ma tylko 8 znaków, entropia wynosi około 52 bitów i nadal może zostać złamane stosunkowo szybko na superkomputerze; 2) Wzorce powtórzeń — np. AAAbbb123!!! zawiera kolejno powtarzające się znaki, narzędzie to wykrywa i karze; 3) Kolejne cyfry — np. 123 w abc123! jest sekwencją kolejną; 4) Ogólna struktura ma wzorzec — np. Password1! spełnia cztery typy znaków, ale Password jest popularnym słowem z wielką pierwszą literą i cyfrowym/symbolicznym sufiksem, łatwo trafiane przez Dictionary Attack. Zalecana długość co najmniej 12 znaków i jak najbardziej losowe ułożenie znaków.
Czy wprowadzone hasło jest wysyłane na serwer? Czy to bezpieczne?
Absolutnie nie. Wszystkie obliczenia analizy hasła tego narzędzia są wykonywane lokalnie w JavaScript w Twojej przeglądarce, wprowadzone hasło nie jest wysyłane przez sieć na żadne zewnętrzne serwery. Strona używa API crypto.getRandomValues() przeglądarki do generowania losowych haseł (interfejs kryptograficznie bezpiecznych liczb losowych dostarczany przez przeglądarkę), nie jest zależna od serwera. Możesz używać tego narzędzia w trybie offline, wszystkie funkcje działają normalnie. Po zamknięciu lub odświeżeniu strony wprowadzone hasło jest automatycznie czyszczone i nie jest trwale przechowywane w przeglądarce.
Dlaczego hasło wygląda na losowe ale wynik pokazuje że nie znajduje się w bazie popularnych haseł? Jak to jest określane?
Narzędzie ma wbudowany zbiór danych popularnych słabych haseł (commonPasswords), zawierający tysiące haseł o najwyższej częstotliwości z historycznych wycieków danych (np. hasła o wysokiej częstotliwości statystycznie zebrane z wycieku rockyou itp.). Jeśli Twojego hasła nie ma na tej liście, oznacza to że nie jest jednym z tych powszechnie używanych słabych haseł. Ale ważne jest aby pamiętać: nie bycie w bazie popularnych haseł nie jest równoznaczne z absolutnym bezpieczeństwem — jeśli hasło zawiera dane osobowe (imię, data urodzenia, numer telefonu), ścieżki klawiaturowe (asdfgh) lub kombinacje słów ze znaczeniem, nadal może zostać złamane przez ukierunkowany Dictionary Attack. Najbezpieczniejsze hasło to całkowicie losowo wygenerowana sekwencja znaków.
Czy liczby losowe używane przez generator haseł są bezpieczne?
Tak. Generator haseł używa interfejsu crypto.getRandomValues() dostarczanego przez przeglądarkę, który jest CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) dostarczanym przez Web Cryptography API, którego jakość losowości jest znacznie wyższa niż Math.random(). Losowa entropia crypto.getRandomValues() pochodzi z puli entropii systemu operacyjnego (fizyczne losowe źródła, takie jak odstępy między naciśnięciami klawiszy, ruch myszy, czas operacji wejścia-wyjścia dysku itp.), jest nieprzewidywalna i nieodtwarzalna, odpowiednia do generowania haseł, kluczy i innych danych wrażliwych na bezpieczeństwo. Znaki wygenerowanego hasła są wybierane równomiernie i losowo z wybranego przez Ciebie zestawu znaków.
Dlaczego klasyfikacja siły tego samego hasła może się różnić w różnych narzędziach?
Różne narzędzia do sprawdzania siły haseł używają różnych algorytmów i progów, wyniki klasyfikacji mogą się różnić. Typowe różnice obejmują: 1) Inny sposób obliczania entropii — niektóre narzędzia obliczają prosto na podstawie liczby klas znaków, inne wykonują dokładniejszą analizę wzorców; 2) Inny rozmiar bazy popularnych haseł — im pełniejsza baza, tym więcej słabych haseł może rozpoznać; 3) Inny próg poziomu siły — nie ma jednolitego standardu ile bitów liczy się jako „silne”; 4) Czy wykrywają wzorce klawiaturowe (qwerty, qazwsx), formaty dat, powtórzone znaki itp. To narzędzie używa kombinacji entropii Shannona + kontroli 7 reguł i przeprowadza specjalne wykrywanie popularnych słabych haseł, klasyfikacja odwołuje się do standardów branżowych (rekomendacje NIST, OWASP).
Jakie znaki specjalne są uwzględnione? Dlaczego nie obsługiwano więcej znaków specjalnych?
Zestaw znaków specjalnych tego narzędzia to !@#$%^&*-_+=? (łącznie 14), generator haseł również używa tego zestawu. Dzieje się tak ponieważ wiele witryn ma ograniczenia dotyczące dozwolonych znaków specjalnych w hasłach — na przykład apostrofy, cudzysłowy, ukośnik wsteczny, spacja, nawiasy ostre mają specjalne znaczenie w SQL, HTML, wierszu poleceń, mogą powodować problemy z iniekcją lub być odrzucane przez witryny. Wybranie najczęściej używanych i powszechnie akceptowanych znaków specjalnych gwarantuje że wygenerowane hasła będą działać w zdecydowanej większości witryn. Jeśli używasz innych znaków specjalnych podczas ręcznego wprowadzania haseł (np. %, ~, |, {}[] itp.), narzędzie nadal rozpozna je jako znaki specjalne i uwzględni w puli znaków.
Czy okresowa zmiana hasła poprawia bezpieczeństwo?
Według najnowszych wytycznych NIST SP 800-63B wymuszona okresowa zmiana haseł (np. co 90 dni) ma ograniczoną korzyść bezpieczeństwa i może nawet prowadzić użytkowników do wybierania słabych haseł lub dokonywania małych zmian w starych hasłach (np. password1→password2). Lepszą strategią jest: 1) Używaj wystarczająco silnych długich losowych haseł (16+ znaków); 2) Używaj unikalnego hasła do każdego konta (zarządzanych przez menedżera haseł); 3) Włącz uwierzytelnianie dwuskładnikowe (2FA); 4) Natychmiast zmieniaj odpowiednie hasła po powiadomieniu o wycieku danych; 5) Natychmiast zmieniaj hasło po wykryciu nieprawidłowego logowania. To narzędzie może pomóc Ci ocenić czy siła istniejącego hasła wymaga aktualizacji.
Czy hasła wygenerowane przez menedżery haseł nadal trzeba sprawdzać tym narzędziem?
Zazwyczaj nie jest to potrzebne, hasła wygenerowane przez głównych menedżerów haseł (1Password, Bitwarden, KeePassXC, LastPass itp.) domyślnie używają kryptograficznie bezpiecznych liczb losowych i pełnego zestawu znaków, długość zazwyczaj od 12 do 20 znaków lub więcej, siła zazwyczaj powyżej ★★★★. Ale jeśli dostosowałeś reguły generowania menedżera haseł (np. wykluczając znaki specjalne, skracając długość), możesz użyć tego narzędzia aby sprawdzić czy wartość entropii i czas złamania spełniają Twoje wymagania bezpieczeństwa. Ponadto, jeśli nie masz pewności co do wiarygodności implementacji liczb losowych menedżera haseł, ponowne sprawdzenie jest również dobrym nawykiem.
Dlaczego kolejne cyfry lub kolejno powtarzające się znaki obniżają bezpieczeństwo hasła?
Ponieważ narzędzia Brute-force Attack i Dictionary Attack nie tylko próbują popularnych haseł, ale także generują kandydatów haseł ukierunkowanych na popularne wzorce. Kolejne cyfry (123, 456, 789, 012) i kolejno powtarzające się znaki (aaa, 111, !!!) są wzorcami o bardzo wysokiej częstotliwości, występującymi w dużej liczbie haseł. Silnik reguł narzędzi do łamania haseł specjalnie generuje te warianty (np. dodawanie 123, !!!, 2024 i innych lat po słowach), hasła zawierające te wzorce są równoważne obniżeniu efektywnej entropii — atakujący nie muszą przeprowadzać wyczerpującego wyszukiwania wszystkich kombinacji, mogą odgadnąć po prostu próbując popularne wzorce.
Czy chińskie hasła lub hasła ze znakami pełnej szerokości są bezpieczne?
Większość witryn i systemów nie obsługuje chińskich znaków lub znaków pełnej szerokości jako haseł, ponieważ obsługa kodowania może powodować problemy ze zgodnością. To narzędzie liczy wszystkie niealfanumeryczne znaki jako znaki specjalne, ale w praktyce jeśli używasz chińskiego hasła możesz napotkać problemy takie jak nieudane logowanie, zniekształcone znaki między platformami itp. Zaleca się używanie haseł składających się z zestawu znaków ASCII (wielkie litery, małe litery, cyfry, symbole półszerokości), co jest rozwiązaniem o najlepszej zgodności. Jeśli system obsługuje hasła Unicode (np. niektóre systemy Linux), hasła Unicode mają większą pulę znaków, ale należy zapewnić że wszystkie terminale mogą je poprawnie wprowadzać.
Co to jest Rainbow Table? Jaka jest różnica od Brute-force Attack?
Brute-force Attack próbuje wszystkie możliwe kombinacje znaków jedna po drugiej; podczas gdy Rainbow Table to wstępnie obliczona tabela porównawcza (rainbow table) popularnych haseł i ich hashy, podczas ataku wystarczy odwołać się do tabeli zamiast obliczać jedno po drugim, ekstremalnie duża szybkość. Jeśli użytkownik używa popularnego hasła, nawet jeśli algorytm haszujący jest silny (np. SHA-256), atakujący może odnaleźć oryginalne hasło w ciągu kilku sekund za pomocą rainbow table. Metody ochrony przed Rainbow Table obejmują: 1) Używanie wystarczająco losowych długich haseł (poza zasięgiem rainbow table); 2) System powinien używać salted hash (np. bcrypt, scrypt, Argon2), aby unieważnić wstępnie obliczone rainbow table. Wykrywanie bazy popularnych haseł przez to narzędzie pomaga użytkownikom unikać wyboru haseł już objętych rainbow table.
Rozwiązywanie problemów
Dlaczego po wprowadzeniu hasła nie wyświetla się wynik analizy?
Wynik analizy jest wyświetlany w czasie rzeczywistym po wprowadzeniu hasła. Jeśli nie widzisz obszaru wyników po wpisaniu, sprawdź: 1) Wprowadziłeś hasło (puste pole wprowadzania nie wyświetla wyników); 2) Strona została w pełni załadowana (JavaScript jest włączony i nie ma błędów). Jeśli nadal nie odpowiada, spróbuj odświeżyć stronę. Analiza hasła jest wykonywana całkowicie w lokalnej przeglądarce, nie jest zależna od żądań sieciowych, odświeżenie nie traci wprowadzonych danych ale czyści zawartość.
Przycisk generowania hasła nie reaguje po kliknięciu?
Przycisk generowania hasła wymaga aby wybrany był co najmniej jeden typ znaków (co najmniej jeden z wielkich/małych liter/cyfr/symboli). Jeśli żadna opcja nie jest zaznaczona, nie można wygenerować hasła; domyślnie małe litery + cyfry są używane jako rezerwa. Zaleca się utrzymywanie zaznaczonych wszystkich czterech opcji (wielkie litery, małe litery, cyfry, symbole) aby wygenerować najsilniejsze hasło. Suwak długości waha się od 8 do 64 znaków. Wygenerowane hasło jest automatycznie wypełniane w polu wprowadzania i natychmiast analizowane.
Przycisk pokaż/ukryj hasło nie działa?
Przycisk z ikoną oka przełącza atrybut type pola hasła między password a text. Jeśli nie przełącza się po kliknięciu, może to być wyjątek JavaScript przeglądarki, spróbuj odświeżyć stronę. Uwaga: w trybie password wprowadzone znaki są wyświetlane jako kropki (•••), w trybie text są wyświetlane jako tekst jawny. Zaleca się używanie trybu password w miejscach publicznych lub podczas nagrywania ekranu.
Moje hasło jest wyraźnie złożone, dlaczego klasyfikacja nie jest wysoka?
Sprawdź te typowe problemy: 1) Niewystarczająca długość? Mniej niż 12 znaków nawet przy pełnym wymieszaniu może nadal zostać złamane stosunkowo szybko na superkomputerze, zaleca się co najmniej 14; 2) Czy zawiera powtórzone sekwencje? Jak AAA111!!! zawiera kolejno powtarzające się znaki; 3) Czy to popularne słowo z sufiksem? Jak Password123! lub Qwerty@2024 spełniają cztery typy znaków, ale rdzeń to popularne słowo + sufiks wzorcowy; 4) Czy to ścieżka klawiaturowa? Jak Qazwsx123! to ścieżka w kształcie Z na klawiaturze, te wzorce są próbowane w pierwszej kolejności przez narzędzia do łamania. Zaleca się używanie generatora haseł do tworzenia całkowicie losowych haseł.
Słownik
- Shannon Entropy
- Koncepcja teorii informacji zaproponowana przez Claude'a Shannona, używana do pomiaru siły losowości hasła, jednostka w bitach. Wartość entropii = długość hasła × log₂(rozmiar puli znaków). Im wyższa entropia, tym więcej kombinacji potrzeba do Brute-force Attack.
- Character Pool
- Rozmiar zbioru wszystkich możliwych znaków używanych w haśle. 26 małych liter, 26 wielkich liter, 10 cyfr, około 33 znaki specjalne. Im więcej typów znaków jest używanych, tym większa pula znaków, tym większy przyrost entropii daje każdy dodatkowy znak.
- Brute-force Attack
- Metoda ataku polegająca na próbie odgadnięcia hasła poprzez systematyczne próbowanie wszystkich możliwych kombinacji znaków. Czas złamania zależy od wartości entropii hasła i mocy obliczeniowej atakującego, hasło o wysokiej entropii może uczynić Brute-force Attack obliczeniowo niemożliwym.
- Dictionary Attack
- Metoda ataku polegająca na odgadywaniu haseł przy użyciu wstępnie skompilowanej listy zawierającej popularne hasła, wyciekłe hasła, słowa i popularne wzorce, efektywność znacznie wyższa od czystego Brute-force Attack, jest najpowszechniejszym środkiem ataku na hasła w rzeczywistości.
- Rainbow Table
- Wstępnie obliczona tabela porównawcza password hash, używana do szybkiego wyszukiwania oryginalnego hasła po uzyskaniu wartości hasha. Używanie salted hash i algorytmów powolnego haszowania (bcrypt/Argon2) może skutecznie chronić przed Rainbow Table.
- CSPRNG
- Cryptographically Secure Pseudo-Random Number Generator, generator liczb losowych którego wyjście jest nieprzewidywalne i nieodtwarzalne. To narzędzie używa interfejsu CSPRNG crypto.getRandomValues() przeglądarki do generowania haseł.
- Common Password
- Hasła które pojawiają się z wysoką częstotliwością w różnych incydentach wycieków danych (np. 123456, password, qwerty, admin itp.). Te hasła znajdują się w każdym słowniku do łamania i powinny być całkowicie unikane.
- 2FA/MFA
- Two-Factor/Multi-Factor Authentication, oprócz hasła wymagany jest drugi czynnik weryfikacji (np. kod weryfikacyjny na telefon, TOTP, sprzętowy klucz bezpieczeństwa), chroniący konto nawet jeśli hasło wycieknie.
- Passphrase
- Długie hasło składające się z wielu losowych słów, uzyskuje wysoką wartość entropii dzięki liczbie słów i jest łatwiejsze do zapamiętania niż losowa sekwencja znaków. Na przykład losowa kombinacja 4 słów „correct horse battery staple”.
- Password Hash
- Używanie jednokierunkowej funkcji skrótu do przekształcenia hasła w nieodwracalny ciąg znaków o stałej długości do przechowywania. Podczas weryfikacji porównywane są wartości hasha zamiast tekstu jawnego, nawet jeśli baza danych wycieknie, hasło nie jest bezpośrednio ujawniane. Należy używać algorytmów powolnego haszowania takich jak bcrypt/Argon2.
- Salt
- Losowy ciąg znaków dołączany do hasła przed obliczeniem hasha, sprawiający że te same hasła generują różne wartości hasha, zapobiegając Rainbow Table i masowemu łamaniu. Każde hasło powinno mieć unikalny salt.
- crypto.getRandomValues()
- Interfejs generowania kryptograficznie bezpiecznych liczb losowych dostarczany przez Web Cryptography API, implementowany przez przeglądarkę, źródło losowości pochodzi z puli entropii systemu operacyjnego, znacznie lepszy od Math.random(), odpowiedni do generowania haseł i kluczy.
Tabela referencyjna entropii hasła i czasu złamania
Tabela referencyjna trudności złamania haseł o różnych wartościach entropii w scenariuszu ataku na superkomputerze (1 kwadrylion prób/sek):
| Entropia(bity) | Typowa kombinacja | Czas złamania (PC) | Czas złamania (superkomputer) | Ocena siły |
|---|---|---|---|---|
< 30 | 6 cyfr, popularne słowo | < 1 sekunda | Natychmiast | ☆☆☆☆☆ Bardzo słabe |
30-45 | 8 małych liter | Sekundy do godzin | < 1 sekunda | ★☆☆☆☆ Słabe |
45-60 | 8 wielkich/małych liter + cyfry | Dni do lat | Sekundy do minut | ★★☆☆☆ Średnie |
60-80 | 10 mieszanych znaków | Dziesięciolecia do tysiącleci | Godziny do dni | ★★★☆☆ Dobre |
80-100 | 14 mieszanych znaków | Wieki lub więcej | Lata do wieków | ★★★★☆ Silne |
> 100 | 16 losowych znaków | Niemożliwe | Tryliony lat lub więcej | ★★★★★ Bardzo silne |
Porównanie entropii dla różnych kombinacji typów znaków
Różnica w teoretycznej wartości entropii i bezpieczeństwie dla 12-znakowego hasła przy użyciu różnych kombinacji:
| Kombinacja znaków | Pula | Entropia (12 zn.) | Rząd wielkości kombinacji | Ocena bezpieczeństwa |
|---|---|---|---|---|
| Tylko cyfry (0-9) | 10 | ~40 bits | 10¹² | Bardzo słabe, złamanie w sekundach |
| Tylko małe litery | 26 | ~56 bits | 10¹⁷ | Słabe, złamanie w minutach |
| Wielkie i małe litery | 52 | ~68 bits | 10²⁰ | Średnie, złamanie w godzinach |
| Wielkie/małe litery + cyfry | 62 | ~71 bits | 10²¹ | Dobre, złamanie w dniach |
| Wielkie/małe litery + cyfry + symbole | 95 | ~79 bits | 10²³ | Silne, złamanie w latach |
| 16 losowych znaków (pełny zestaw) | 95 | ~105 bits | 10³¹ | Bardzo silne, nie do złamania przez Brute-force Attack |
Opis 7 wskaźników kontroli bezpieczeństwa
7 wskaźników bezpieczeństwa haseł szczegółowo sprawdzanych przez narzędzie:
| Element kontroli | Kryterium zaliczenia | Ryzyko przy niezaliczeniu |
|---|---|---|
| Długość ≥8 znaków | Hasło o długości co najmniej 8 znaków | Krótkie hasło ma małą przestrzeń dla Brute-force Attack |
| Zawiera wielkie litery | Zawiera co najmniej jeden znak A-Z | Pula znaków zmniejszona o 26, entropia obniżona |
| Zawiera małe litery | Zawiera co najmniej jeden znak a-z | Pula znaków zmniejszona o 26, entropia obniżona |
| Zawiera cyfry | Zawiera co najmniej jedną cyfrę 0-9 | Pula znaków zmniejszona o 10, entropia obniżona |
| Zawiera znaki specjalne | Zawiera symbole niealfanumeryczne | Pula znaków zmniejszona o około 33, entropia obniżona |
| Brak wzorców powtórzeń/sekwencji | Brak 3+ takich samych znaków lub kolejnych cyfr | Hasło wzorcowe jest łatwo trafiane przez ataki oparte na regułach |
| Nie w bazie popularnych haseł | Nie znajduje się na liście znanych słabych haseł | Popularne hasła są łamane w sekundach przez słownik |
Privacy & Security
Wszystkie operacje tego narzędzia do sprawdzania siły hasła są wykonywane całkowicie w Twojej lokalnej przeglądarce: wprowadzone hasło jest używane wyłącznie do obliczania entropii i analizy bezpieczeństwa w JavaScript w przeglądarce, nie jest wysyłane przez sieć na żadne zewnętrzne serwery. Generator haseł używa wbudowanego interfejsu crypto.getRandomValues() przeglądarki do lokalnego generowania losowych haseł, nie jest zależny od serwera. Strona nie używa śledzenia Cookie, nie zbiera haseł wprowadzonych przez użytkowników ani żadnych danych o użytkowaniu. Po zamknięciu lub odświeżeniu strony wprowadzone hasło i wyniki analizy są automatycznie czyszczone i nie są trwale przechowywane w przeglądarce. Możesz używać tego narzędzia w trybie offline, wszystkie funkcje są normalnie dostępne.
Authoritative References
- Symulator daltonizmu
- Konwerter kolorów
- Konwerter .htaccess na Nginx
- Konwerter SQL
- Parser Cookie
- Generator wyrażeń Cron
- Weryfikator wyrażeń Cron
- Formatowanie CSS
- Kompresja CSS
- CSV na Excel
- Konwerter walut
- Porównywanie różnic
- Generator ikon witryn
- Formatowanie XML
- Konwerter Szesnastkowy
- Formatowanie HTML
- Kompresja HTML
- HTML na Markdown
- Markdown na HTML
- Formatowanie JavaScript
- Kompresja JavaScript
- Formatownik JSX
- Kompresja JSX
- Grupowanie słów kluczowych
- Generator Lorem Ipsum
- Generator tabel Markdown
- Generator Meta Tagów
- Generator haseł
- Sprawdzanie siły hasła
- Generator QR Code i kodów kreskowych
- Tester Wyrażeń Regularnych
- Generator Slug
- Kreator SQL
- Narzędzie do formatowania SQL
- Licznik Słów
- Narzędzia czasowe
- Formatowanie TS
- Kompresja TS
- Formatowanie TSX
- Kompresja TSX
- Konwerter Unix Timestamp
- Generator UUID
- Formatowanie YAML
- Konwersja sprawy