Jak Określić Siłę Hasła: Techniczny Przewodnik po Entropii, Odporności na Łamanie i Bezpiecznym Zarządzaniu Danymi Uwierzytelniającymi
Siła hasła to ilościowa miara jego odporności na nieautoryzowane odkrycie poprzez ataki brute-force, ataki słownikowe, credential stuffing i statystyczne zgadywanie. Jest ona określana przez trzy nakładające się zmienne: długość, różnorodność przestrzeni znaków i nieprzewidywalność (entropia). Hasło uzyskujące powyżej 60 bitów entropii Shannona i zawierające co najmniej 16 znaków zaczerpniętych z mieszanego zestawu znaków jest uważane za kryptograficznie silne według aktualnych standardów NIST SP 800-63B.
Zrozumienie siły hasła to nie tylko przestrzeganie listy kontrolnej — wymaga uchwycenia matematycznej zależności między pulami znaków, długością hasła a kosztem obliczeniowym narzuconym atakującemu. Ten przewodnik omawia tę zależność w precyzyjnych terminach technicznych, wyjaśnia, jak profesjonalni inżynierowie bezpieczeństwa oceniają poświadczenia, i dostarcza praktycznych wskazówek zarówno dla indywidualnych użytkowników, jak i administratorów systemów zarządzających politykami uwierzytelniania na serwerach i infrastrukturze hostingowej.
Co tak naprawdę mierzy siła hasła
Siła hasła jest miarą zastępczą kosztu ataku — konkretnie liczby prób, jakie przeciwnik musi wykonać przed znalezieniem właściwego poświadczenia. Koszt ten jest wyrażany w bitach entropii za pomocą wzoru:
H = L × log₂(N)Gdzie H to entropia w bitach, L to długość hasła w znakach, a N to rozmiar puli znaków (liczba odrębnych symboli, które atakujący musi wziąć pod uwagę).
Wyższa wartość entropii oznacza wykładniczo więcej pracy przy zgadywaniu. Różnica między 40 bitami a 80 bitami to nie dwukrotna trudność — jest to 2^40 razy trudniejsze, co przekłada się na około jeden bilion dodatkowych prób.
Pula znaków i jej wpływ na entropię
| Zestaw znaków | Rozmiar puli (N) | Entropia na znak |
|---|---|---|
| — | — | — |
| Tylko małe litery (a–z) | 26 | 4,70 bitów |
| Małe + wielkie litery | 52 | 5,70 bitów |
| Alfanumeryczne (a–z, A–Z, 0–9) | 62 | 5,95 bitów |
| Pełne drukowalne ASCII (z symbolami) | 95 | 6,57 bitów |
| Hasło Diceware (duża lista EFF) | 7 776 słów | 12,92 bitów na słowo |
Ta tabela ilustruje, dlaczego dodanie nawet jednego symbolu do czysto alfabetycznego hasła przynosi mierzalny wzrost entropii, i dlaczego czterosłowne hasło Diceware może przewyższać złożone, ale krótkie hasło.
Kluczowe czynniki determinujące siłę hasła
Długość hasła
Długość jest pojedynczą najbardziej wpływową zmienną we wzorze entropii. Podwojenie długości hasła podnosi do kwadratu przestrzeń wyszukiwania dla stałej puli znaków. Rozważmy kontrast:
- 8-znakowe hasło używające pełnego drukowalnego ASCII:
H = 8 × 6.57 = ~52.6 bits - 16-znakowe hasło używające tego samego zestawu znaków:
H = 16 × 6.57 = ~105 bits
Przy 52,6 bitach nowoczesne zestawy do łamania haseł akcelerowane GPU działające z Hashcat na hashach MD5 mogą wyczerpać przestrzeń w ciągu godzin. Przy 105 bitach ten sam sprzęt wymagałby geologicznych skal czasowych. NIST SP 800-63B zaleca minimum 8 znaków dla haseł wybieranych przez użytkowników, ale świadomi bezpieczeństwa administratorzy powinni egzekwować minimum 12–16 znaków, bez sztucznego górnego limitu.
Różnorodność znaków i złożoność
Mieszanie klas znaków rozszerza N i tym samym zwiększa entropię na znak. Silne hasło powinno czerpać z:
- Wielkich liter (A–Z)
- Małych liter (a–z)
- Cyfr (0–9)
- Znaków specjalnych (
!,@,#,$,%,^,&,*, itd.)
Jednak krytyczna kwestia, którą wiele przewodników pomija: obowiązkowe reguły złożoności mogą paradoksalnie osłabiać hasła. Gdy użytkownicy są zmuszeni do dołączenia symbolu, przewidywalnie dołączają ! lub 1 na końcu słowa. Ten wzorzec jest dobrze znany łamaczom haseł i jest zakodowany w zestawach reguł używanych przez narzędzia takie jak Hashcat. Prawdziwa złożoność pochodzi z losowości, a nie z spełniania pola wyboru.
Nieprzewidywalność i odporność na ataki wzorcowe
Nowoczesne łamanie haseł nie jest czysto brute-force. Narzędzia takie jak Hashcat i John the Ripper używają ataków opartych na regułach, które stosują transformacje do słów słownikowych — pisanie pierwszej litery wielką literą, zastępowanie a przez @, dołączanie lat i tak dalej. Hasło takie jak P@ssw0rd!23 wydaje się złożone, ale jest trywialnie łamane, ponieważ podąża za dobrze znanym wzorcem podstawiania.
Prawdziwa nieprzewidywalność oznacza:
- Brak słów słownikowych, nawet z podstawieniami leetspeak
- Brak sekwencji klawiaturowych (
qwerty,zxcvbn) - Brak danych osobowych (imiona, daty urodzenia, imiona zwierząt)
- Brak przewidywalnych wzorców na początku lub końcu (sufiks
!, prefiks1)
Najbardziej niezawodnym źródłem nieprzewidywalności jest kryptograficznie bezpieczny generator liczb losowych (CSPRNG), którego używają wewnętrznie renomowane menedżery haseł.
Unikalność między kontami
Ponowne użycie poświadczeń przekształca pojedyncze naruszenie w systemowy kompromis. Gdy usługa przechowująca hasła w postaci zwykłego tekstu lub słabym MD5 zostaje naruszona, atakujący natychmiast uruchamiają te poświadczenia przeciwko innym wartościowym celom — technika zwana credential stuffing. Usługi takie jak Gmail, portale bankowe i panele kontrolne hostingu są głównymi celami.
Każde konto musi mieć odrębne hasło. Jest to operacyjnie niemożliwe bez menedżera haseł dla większości użytkowników zarządzających więcej niż kilkoma kontami.
Metody oceny siły hasła
Obliczanie entropii
Wzór entropii H = L × log₂(N) jest najbardziej obiektywną miarą. Oto wartości referencyjne do praktycznej oceny:
| Przykład hasła | Długość | Pula znaków | Entropia (bity) | Odporność |
|---|---|---|---|---|
| — | — | — | — | — |
| `password` | 8 | 26 | ~37,6 | Znikoma |
| `P@ssw0rd` | 8 | 95 | ~52,6 | Godziny (GPU) |
| `Tr0ub4dor&3` | 11 | 95 | ~72,3 | Miesiące |
| `correct-horse-battery-staple` | 28 | 26+1 | ~130+ | Wieki |
| Losowe 16-znakowe pełne ASCII | 16 | 95 | ~105 | Astronomiczna |
Należy zauważyć, że correct-horse-battery-staple — słynne hasło XKCD — osiąga nadzwyczajną entropię dzięki długości pomimo używania tylko małych liter i myślników. To jest siła długości nad złożonością.
Narzędzia do łamania haseł używane przez specjalistów ds. bezpieczeństwa
Inżynierowie bezpieczeństwa i testerzy penetracyjni używają następujących narzędzi do empirycznego testowania polityk haseł:
Hashcat to branżowe standardowe narzędzie do odzyskiwania haseł akcelerowane GPU. Obsługuje ponad 300 typów hashów i może przeprowadzać ataki słownikowe, brute-force, oparte na regułach i hybrydowe. Na nowoczesnym RTX 4090 Hashcat może testować około 164 miliardów hashów MD5 na sekundę — kontekst, który sprawia, że powyższe liczby entropii stają się namacalnie realne.
John the Ripper to łamacz oparty na CPU z silnymi możliwościami ataków opartych na regułach i szeroką obsługą formatów hashów. Jest powszechnie używany w kontekstach kryminalistycznych i audytowych.
zxcvbn to estymator siły hasła po stronie klienta opracowany przez Dropbox. W przeciwieństwie do prostych kalkulatorów entropii, modeluje realistyczne zachowanie atakującego, sprawdzając słowniki, typowe wzorce, sekwencje klawiaturowe i formaty dat. Jest to najdokładniejszy miernik siły dla aplikacji skierowanych do użytkowników.
Aby przetestować hash hasła offline używając Hashcat w trybie benchmarku:
hashcat -b -m 0Aby przeprowadzić atak słownikowy z regułami przeciwko plikowi hashów MD5:
hashcat -a 0 -m 0 hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.ruleInternetowe narzędzia do testowania haseł
Kilka narzędzi przeglądarkowych zapewnia szybką ocenę siły:
- Have I Been Pwned (HIBP) Password Check — sprawdza prefiks hasha SHA-1 hasła w bazie danych ponad 800 milionów naruszonych haseł używając modelu k-anonimowości, co oznacza, że pełne hasło nigdy nie jest przesyłane.
- Bitwarden Password Strength Tester — używa zxcvbn pod spodem do realistycznego szacowania czasu łamania.
- Kaspersky Password Checker — zapewnia analizę długości, złożoności i wzorców.
Krytyczne ostrzeżenie operacyjne: Nigdy nie wprowadzaj prawdziwego, używanego hasła do żadnego narzędzia online. Używaj strukturalnie podobnego, ale odrębnego poświadczenia testowego. Nawet narzędzia używające modeli k-anonimowości nie powinny otrzymywać Twoich rzeczywistych haseł produkcyjnych.
Mierniki siły hasła w aplikacjach
Wbudowane mierniki siły znacznie różnią się jakością. Wiele używa uproszczonych heurystyk (progi długości, obecność klas znaków), które można obejść. Miernik oceniający P@ssw0rd1! jako „Silne” jest mylący — ten ciąg pojawia się w każdym głównym słowniku naruszeń. Preferuj aplikacje integrujące zxcvbn lub równoważne estymatory uwzględniające wzorce.
Wektory ataków na hasła: przed czym tak naprawdę się bronisz
Zrozumienie modelu zagrożeń wyostrza każdą decyzję dotyczącą polityki haseł.
Ataki brute-force systematycznie próbują każdej możliwej kombinacji w przestrzeni znaków. Są ograniczone obliczeniowo i stają się niepraktyczne powyżej ~80 bitów entropii przy obecnym sprzęcie.
Ataki słownikowe używają list słów pochodzących z prawdziwych haseł ujawnionych w naruszeniach. Zbiór danych RockYou (14 milionów haseł) i jego następcy obejmują zdecydowaną większość haseł wybieranych przez ludzi. Jeśli Twoje hasło pojawia się w języku naturalnym, jest w słowniku.
Ataki oparte na regułach stosują reguły transformacji do słów słownikowych — wielkie litery, dołączanie liczb, podstawianie symboli. Łamią one większość „złożonych” haseł, które użytkownicy konstruują modyfikując proste słowa.
Credential stuffing używa par nazwa użytkownika/hasło z jednego naruszenia do atakowania innych usług. Jest to całkowicie pokonywane przez unikalność haseł.
Ataki rainbow table używają wstępnie obliczonych mapowań hash-do-tekstu-jawnego. Są one pokonywane przez właściwe hashowanie haseł z unikalną solą (bcrypt, Argon2, scrypt) po stronie serwera — odpowiedzialność aplikacji, a nie użytkownika.
Inżynieria społeczna i phishing całkowicie omijają siłę hasła. Uwierzytelnianie wieloskładnikowe jest tutaj główną obroną.
Najlepsze praktyki tworzenia i zarządzania silnymi hasłami
Używaj menedżera haseł
Menedżer haseł to pojedyncze ulepszenie bezpieczeństwa o najwyższej dźwigni dostępne dla większości użytkowników i administratorów. Narzędzia takie jak Bitwarden (open-source, audytowany), 1Password i KeePassXC (offline, lokalne przechowywanie) generują kryptograficznie losowe hasła i przechowują je w zaszyfrowanym sejfie. Eliminuje to kognitywny ciężar zapamiętywania i sprawia, że unikalne, losowe hasła o długości 20+ znaków są praktyczne dla każdego konta.
Dla administratorów systemów zarządzających poświadczeniami na serwerach — w tym środowiskach Hostingu VPS i Serwerów Dedykowanych — zorientowany na zespół menedżer haseł z kontrolą dostępu opartą na rolach (taki jak Bitwarden Teams lub HashiCorp Vault) jest niezbędną infrastrukturą.
Generuj hasła za pomocą CSPRNG
Nigdy nie konstruuj haseł ręcznie. Używaj generatora swojego menedżera haseł lub na Linux/macOS:
# Generate a 20-character random password using /dev/urandom
LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&*()-_=+' < /dev/urandom | head -c 20; echo# Generate a Diceware-style passphrase using OpenSSL
openssl rand -base64 32Wdrożenie uwierzytelniania wieloskładnikowego (MFA)
MFA jest niezbywalną warstwą dla każdego konta o znaczącej wartości. Nawet skompromitowane hasło nie może przyznać dostępu bez drugiego czynnika. Preferuj aplikacje uwierzytelniające TOTP (Authy, Google Authenticator, Aegis) nad 2FA opartym na SMS, który jest podatny na ataki SIM-swapping. W środowiskach o najwyższym poziomie zapewnienia używaj sprzętowych kluczy bezpieczeństwa (YubiKey, FIDO2), które są odporne na phishing z założenia.
Na serwerach uruchamiających aplikacje webowe lub panele kontrolne — w tym środowiskach zarządzanych przez Panele Kontrolne VPS — egzekwuj MFA na warstwie aplikacji i rozważ uwierzytelnianie oparte na kluczach SSH jako zamiennik logowania SSH opartego na haśle.
Egzekwowanie silnych polityk haseł na poziomie systemu
Dla administratorów zarządzających serwerami Linux, PAM (Pluggable Authentication Modules) zapewnia szczegółowe egzekwowanie polityki haseł. Zainstaluj i skonfiguruj libpam-pwquality:
apt install libpam-pwqualityNastępnie edytuj /etc/security/pwquality.conf:
minlen = 16
minclass = 3
maxrepeat = 2
gecoscheck = 1
dictcheck = 1To egzekwuje minimalną długość 16 znaków, wymaga znaków z co najmniej 3 klas, zabrania więcej niż 2 kolejnych identycznych znaków i sprawdza pod kątem słów słownikowych i pola GECOS użytkownika (imię).
Dla polityki starzenia haseł edytuj /etc/login.defs:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 1
PASS_WARN_AGE 14Monitorowanie naruszeń poświadczeń
Zintegruj monitorowanie naruszeń ze swoimi operacjami bezpieczeństwa. Have I Been Pwned oferuje bezpłatne API do sprawdzania adresów e-mail w znanych bazach danych naruszeń. Do użytku organizacyjnego usługi takie jak SpyCloud lub Enzoic zapewniają monitorowanie poświadczeń w czasie rzeczywistym i mogą wyzwalać wymuszone resetowanie haseł, gdy poświadczenia pracownika pojawią się w zbiorze danych naruszeń.
Bezpieczne hashowanie haseł po stronie serwera
Jeśli obsługujesz aplikacje webowe przechowujące poświadczenia użytkowników — czy to na Współdzielonym Hostingu WWW czy w środowisku dedykowanym — nigdy nie przechowuj haseł w postaci zwykłego tekstu ani ze słabymi algorytmami hashowania (MD5, SHA-1, niezasolony SHA-256). Używaj dedykowanej funkcji hashowania haseł:
- Argon2id — zwycięzca Password Hashing Competition; zalecany przez OWASP dla nowych aplikacji
- bcrypt — szeroko obsługiwany, sprawdzony w boju; używaj współczynnika pracy 12 lub wyższego
- scrypt — pamięciochłonny; dobra odporność na ataki oparte na GPU
Przykład używający biblioteki argon2-cffi Pythona:
from argon2 import PasswordHasher
ph = PasswordHasher(time_cost=2, memory_cost=65536, parallelism=2)
hash = ph.hash("user_supplied_password")
# Verify:
ph.verify(hash, "user_supplied_password")Hasła jako praktyczna alternatywa
Dla haseł, które muszą być zapamiętane (główne hasło menedżera haseł, klucz szyfrowania całego dysku), hasło Diceware oferuje najlepszą równowagę entropii i zapamiętywalności. Rzuć fizyczną kostką pięć razy, aby wybrać każde słowo z Dużej Listy Słów EFF. Pięć słów daje około 64,6 bitów entropii; sześć słów daje 77,5 bitów.
Example: "clam-unmasked-revival-stunt-dagger"
Entropy: ~64.6 bits (5 words × 12.92 bits)Jest to silniejsze niż większość „złożonych” haseł wybieranych przez użytkowników i znacznie łatwiejsze do zapamiętania.
Ochrona poświadczeń w całej infrastrukturze hostingowej
Bezpieczeństwo haseł wykracza poza indywidualne konta na cały stos infrastruktury. Administratorzy zarządzający środowiskami hostingowymi powinni stosować warstwowe kontrole poświadczeń:
- Dostęp SSH: Całkowicie wyłącz uwierzytelnianie hasłem; używaj par kluczy Ed25519 lub RSA-4096. Przechowuj klucze prywatne z silnym hasłem.
- Poświadczenia bazy danych: Używaj długich, losowo generowanych haseł dla użytkowników bazy danych. Nigdy nie używaj kont root bazy danych do połączeń aplikacyjnych.
- Konta panelu kontrolnego: Egzekwuj silne hasła i MFA dla wszystkich logowań do panelu kontrolnego. Platformy dostępne przez VPS z cPanel powinny mieć egzekwowanie siły hasła cPanel ustawione na minimalny wynik 65.
- Konta e-mail: Słabe hasła e-mail są głównym wektorem ataku przejęcia konta. Jeśli zarządzasz Hostingiem Poczty E-mail, egzekwuj silne polityki haseł na poziomie serwera pocztowego i włącz DMARC, DKIM i SPF, aby zmniejszyć narażenie na phishing.
- Klucze prywatne SSL/TLS: Chroń klucze prywatne powiązane z Certyfikatami SSL uprawnieniami systemu plików (
chmod 600) i, gdzie to możliwe, przechowuj je w sprzętowym module bezpieczeństwa (HSM) lub menedżerze sekretów.
Siła hasła a polityka haseł: porównanie
| Wymiar | Odpowiedzialność użytkownika | Odpowiedzialność administratora |
|---|---|---|
| — | — | — |
| Generowanie haseł | Używaj menedżera opartego na CSPRNG | Egzekwuj minimalne wymagania entropii |
| Przechowywanie | Zaszyfrowany sejf (menedżer haseł) | Argon2id/bcrypt z unikalnymi solami |
| Zapobieganie ponownemu użyciu | Unikalne hasło na konto | Egzekwuj przez parametr PAM `remember` |
| Wykrywanie naruszeń | Monitoruj HIBP | Zintegruj API naruszeń z przepływem uwierzytelniania |
| MFA | Włącz na wszystkich kontach | Egzekwuj na poziomie aplikacji/serwera |
| Rotacja | Zmień przy podejrzeniu kompromitacji | Ustaw wygaśnięcie oparte na polityce (90–180 dni) |
| Dostęp SSH | Używaj par kluczy | Wyłącz `PasswordAuthentication yes` w `sshd_config` |
Macierz decyzyjna i kluczowe wnioski techniczne
Użyj tej listy kontrolnej, aby ocenić i wzmocnić swoją obecną postawę dotyczącą haseł:
- Cel entropii: Dąż do minimum 80 bitów dla kont ogólnych; 100+ bitów dla dostępu uprzywilejowanego (root serwera, główne hasło menedżera haseł, klucze szyfrowania).
- Minimalna długość: Nigdy nie akceptuj haseł krótszych niż 12 znaków w żadnym systemie, który kontrolujesz; preferuj 16–20 dla kont użytkowników, 32+ dla kont usługowych i kluczy API.
- Pula znaków: Używaj pełnego drukowalnego ASCII dla losowo generowanych haseł; używaj Diceware dla zapamiętanych haseł.
- Unikalność: Zerowa tolerancja dla ponownego użycia poświadczeń. Wdróż menedżer haseł, aby uczynić to operacyjnie wykonalnym.
- Algorytm hashowania: Argon2id jest aktualnym złotym standardem dla przechowywania haseł po stronie serwera. Migruj od bcrypt tylko jeśli Argon2id jest dostępny w Twoim stosie.
- Warstwa MFA: Minimum TOTP; FIDO2/WebAuthn dla kont uprzywilejowanych i administracyjnych.
- Wzmocnienie SSH: Wyłącz logowanie SSH oparte na haśle na wszystkich serwerach. Używaj
PasswordAuthentication now/etc/ssh/sshd_config. - Monitorowanie naruszeń: Subskrybuj powiadomienia HIBP dla wszystkich organizacyjnych domen e-mail.
- Częstotliwość audytów: Przeprowadzaj audyty haseł na własnej bazie danych hashów używając Hashcat kwartalnie, aby identyfikować słabe poświadczenia przed atakującymi.
- Egzekwowanie polityki: Używaj PAM
pwqualityna systemach Linux; egzekwuj równoważne kontrole na Windows przez Zasady Grupy (Szczegółowe Zasady Haseł).
Często zadawane pytania
Jaka jest minimalna długość hasła zalecana przez NIST w 2024 roku?
NIST SP 800-63B ustala absolutne minimum na 8 znaków dla haseł wybieranych przez użytkowników, ale wyraźnie zaleca, aby weryfikatory zezwalały na hasła o długości co najmniej 64 znaków. Praktycy bezpieczeństwa powinni egzekwować praktyczne minimum 12–16 znaków i zachęcać do haseł o długości 20+ znaków dla wrażliwych kont.
Czy 12-znakowe hasło z symbolami jest silniejsze niż 20-znakowe hasło złożone z małych liter?
Niekoniecznie. Losowo wygenerowane 20-znakowe hasło złożone z małych liter ma około 94 bitów entropii (20 × 4,70), podczas gdy 12-znakowe hasło mieszane ASCII ma około 78,8 bitów (12 × 6,57). Dłuższe hasło wygrywa pod względem entropii pomimo używania mniejszej puli znaków — długość kumuluje się szybciej niż różnorodność znaków.
Jaka jest różnica między atakiem słownikowym a atakiem brute-force?
Atak brute-force próbuje każdej możliwej kombinacji znaków w zdefiniowanej przestrzeni — jest wyczerpujący, ale ograniczony obliczeniowo. Atak słownikowy używa wyselekcjonowanej listy słów zawierającej prawdziwe hasła, popularne słowa i znane wzorce. Ataki słownikowe łamią zdecydowaną większość haseł wybieranych przez ludzi w ciągu sekund; brute-force jest zarezerwowany dla krótkich haseł, gdzie pełna przestrzeń wyszukiwania jest wykonalna.
Czy powinienem regularnie zmieniać hasła nawet jeśli nie doszło do naruszenia?
Aktualne wytyczne NIST (SP 800-63B) wyraźnie zalecają przeciwko obowiązkowej okresowej rotacji haseł bez dowodów kompromitacji, ponieważ wymuszona rotacja prowadzi użytkowników do dokonywania przewidywalnych, przyrostowych zmian (np. Password1 na Password2). Zmieniaj hasła natychmiast po potwierdzonym lub podejrzewanym naruszeniu i rotuj poświadczenia kont usługowych według zdefiniowanego harmonogramu (90–180 dni) jako praktykę zarządzania ryzykiem.
Jak sprawdzić, czy moje hasło zostało już ujawnione w naruszeniu danych bez wysyłania go na serwer zewnętrzny?
Użyj API Pwned Passwords Have I Been Pwned z jego implementacją k-anonimowości. Twój klient oblicza hash SHA-1 hasła, wysyła tylko pierwsze 5 znaków tego hasha do API i otrzymuje z powrotem wszystkie pasujące sufiksy hashów. Pełny hash — a zatem hasło — nigdy nie opuszcza Twojej maszyny. Można to oskryptować bezpośrednio:
PASSWORD="YourTestPassword"
HASH=$(echo -n "$PASSWORD" | sha1sum | awk '{print toupper($1)}')
PREFIX="${HASH:0:5}"
SUFFIX="${HASH:5}"
curl -s "https://api.pwnedpasswords.com/range/$PREFIX" | grep "$SUFFIX"Jeśli polecenie zwraca wynik, hasło zostało zauważone w naruszeniu i nie może być używane.
