Zasady haseł i uwierzytelnianie wieloskładnikowe
Zrozumieją Państwo wymagania dotyczące silnych haseł, składniki MFA (coś, co Państwo znają, mają lub czym są) oraz to, dlaczego łączenie składników znacznie zmniejsza ryzyko przejęcia konta.
Zasady haseł i uwierzytelnianie wieloskładnikowe to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Hasła: najsłabsze ogniwo
Hasła pozostają najczęściej stosowanym mechanizmem uwierzytelniania, mimo że są najczęściej przejmowane. Atakujący kradną hasła za pomocą phishingu, ataków credential stuffing (ponownego używania ujawnionych danych uwierzytelniających), ataków brute force oraz keyloggerów. Nawet „silne” hasło zapewnia ograniczoną ochronę, jeśli atakujący może je potajemnie przechwycić. Zasady dotyczące haseł określają minimalne wymagania dotyczące złożoności i zmiany haseł, aby zmniejszyć ryzyko, jednak największą poprawę bezpieczeństwa zapewnia dodanie drugiego składnika — ponieważ sama znajomość hasła nie wystarcza już do uzyskania dostępu.
Wymagania dotyczące złożoności haseł
Skuteczne zasady dotyczące złożoności haseł określają minimalne standardy, dzięki którym hasła są trudniejsze do złamania. Tradycyjne wymagania obejmują: minimalną długość (co najmniej 12–16 znaków; długość ma większe znaczenie niż złożoność), wymagane typy znaków (wielkie i małe litery, cyfry, symbole), zakaz używania popularnych haseł (słowników haseł) oraz zakaz umieszczania w haśle nazwy użytkownika lub organizacji. Wytyczne NIST SP 800-63B, zaktualizowane w 2017 roku, zalecają nadanie długości większego priorytetu niż arbitralnym regułom złożoności oraz sprawdzanie haseł w bazach ujawnionych danych uwierzytelniających zamiast wymagania ich częstej zmiany.
# Check if a password appears in known breach databases
# NIST recommends this approach vs forced periodic rotation
# Example: Using Have I Been Pwned (HIBP) API
# Hash the password first (k-anonymity model - sends only first 5 chars of SHA-1)
echo -n 'mysecretpassword' | sha1sum
# Returns: e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 -
# Send first 5 chars to HIBP API:
# GET https://api.pwnedpasswords.com/range/E5E9F
# Response includes suffix of any matching hashes
# If found: this password is compromised - reject itNowoczesne wytyczne dotyczące haseł NIST SP 800-63B
NIST SP 800-63B (Wytyczne dotyczące tożsamości cyfrowej) znacząco zmienił dobre praktyki dotyczące haseł. Najważniejsze aktualizacje: nie należy wymagać okresowej zmiany haseł, chyba że istnieją dowody ich przejęcia — wymuszona zmiana prowadzi użytkowników do przewidywalnych modyfikacji (Password1! → Password2!); należy sprawdzać hasła w bazach danych o wyciekach podczas ich tworzenia oraz umożliwić użytkownikom wyświetlanie hasła podczas wpisywania; należy zezwalać na długie frazy haseł o długości do 64 znaków; należy wyeliminować arbitralne reguły złożoności, które prowadzą do przewidywalnych wzorców; oraz wdrożyć blokadę konta lub ograniczanie liczby prób, aby zapobiegać atakom brute force, zamiast polegać wyłącznie na złożoności haseł.
Trzy składniki uwierzytelniania
Uwierzytelnianie opiera się na jednym lub kilku z trzech typów składników. Coś, co Państwo znają (składnik wiedzy): hasła, kody PIN, pytania zabezpieczające, frazy haseł. Coś, co Państwo posiadają (składnik posiadania): token fizyczny, smartfon z aplikacją uwierzytelniającą, karta inteligentna, klucz sprzętowy (YubiKey). Coś, czym Państwo są (składnik cech fizycznych): odcisk palca, skan siatkówki, rozpoznawanie twarzy, wzorzec głosu, biometria behawioralna. Czasami dodaje się czwartą kategorię — miejsce, w którym Państwo są (lokalizacja). Użycie składników z co najmniej dwóch kategorii to uwierzytelnianie wieloskładnikowe (MFA). Dwa składniki z tej samej kategorii (na przykład dwa hasła) nie stanowią MFA.
Dlaczego MFA jest tak skuteczne
Uwierzytelnianie wieloskładnikowe (MFA) jest jednym z najskuteczniejszych dostępnych mechanizmów zabezpieczeń. Z badań firmy Microsoft wynika, że MFA blokuje 99,9% ataków prowadzących do przejęcia kont. Powód jest prosty: phishing lub kradzież danych uwierzytelniających daje atakującemu „coś, co Państwo znają” (hasło), ale zazwyczaj nie może on zdobyć również drugiego składnika (jednorazowego kodu ze smartfona lub klucza sprzętowego). Nawet jeśli hasło użytkownika zostanie opublikowane w bazie danych z wycieku, konto pozostaje chronione, gdy włączono MFA. Organizacje, które wdrożyły MFA, rzadko pojawiają się w raportach o wyciekach dotyczących przejęcia kont za pomocą danych uwierzytelniających.
SMS OTP i jego słabości
Jednorazowe hasła SMS (OTP) są najczęściej wdrażaną metodą MFA — to 6-cyfrowy kod wysyłany w wiadomości tekstowej. Są lepsze niż brak MFA, ale mają udokumentowane słabości. Ataki SIM swapping: atakujący podszywają się pod ofiarę przed operatorem komórkowym i przenoszą numer telefonu na swoją kartę SIM, przechwytując przyszłe kody OTP. Luki w protokole SS7: protokół sygnalizacyjny sieci telefonicznej ma znane luki umożliwiające przechwytywanie wiadomości SMS. Phishing w czasie rzeczywistym: zaawansowane proxy phishingowe przekazują kody OTP w czasie rzeczywistym, omijając to zabezpieczenie. NIST SP 800-63B ograniczył status SMS OTP do „ograniczonego uwierzytelniacza”. Zalecane są aplikacje uwierzytelniające lub tokeny sprzętowe.
TOTP: jednorazowe hasła oparte na czasie
TOTP (Time-Based One-Time Passwords) — ustandaryzowany w RFC 6238 — generuje 6-cyfrowe kody na podstawie wspólnego sekretu i bieżącego czasu. Aplikacje takie jak Google Authenticator, Authy i Microsoft Authenticator implementują TOTP. Kod zmienia się co 30 sekund i jest ważny tylko dla jednej próby uwierzytelnienia. W przeciwieństwie do SMS OTP, TOTP nie korzysta z sieci telefonicznej, dlatego jest odporny na ataki SIM swapping i ataki na SS7. Wspólny sekret jest wymieniany tylko raz (za pomocą kodu QR podczas konfiguracji) i przechowywany w aplikacji uwierzytelniającej — wygenerowanie kodu wymaga fizycznego dostępu do zarejestrowanego urządzenia.
# TOTP algorithm (RFC 6238) conceptual implementation
import hmac, hashlib, time, struct, base64
def totp(secret_b32, digits=6, interval=30):
# Decode the base32 secret
secret = base64.b32decode(secret_b32, True)
# Time counter: number of 30-second intervals since epoch
counter = int(time.time()) // interval
# HMAC-SHA1 of counter with secret
msg = struct.pack('>Q', counter)
digest = hmac.new(secret, msg, hashlib.sha1).digest()
# Dynamic truncation to get 6 digits
offset = digest[-1] & 0xf
code = struct.unpack('>I', digest[offset:offset+4])[0] & 0x7fffffff
return str(code % (10**digits)).zfill(digits)FIDO2 i WebAuthn: odporne na phishing MFA
FIDO2 (Fast Identity Online 2) i jego implementacja webowa WebAuthn reprezentują najbardziej odporny na phishing dostępny standard uwierzytelniania. FIDO2 wykorzystuje kryptografię klucza publicznego na poziomie urządzenia — uwierzytelniacz (klucz sprzętowy, taki jak YubiKey, lub biometria urządzenia, na przykład Windows Hello) przechowuje klucz prywatny, który nigdy nie opuszcza urządzenia. Uwierzytelnianie jest kryptograficznie powiązane z konkretnym źródłem (witryną internetową), dzięki czemu jest odporne na phishing: nawet jeśli użytkownik zostanie nakłoniony do odwiedzenia fałszywej witryny, wyzwanie uwierzytelniające zakończy się niepowodzeniem, ponieważ źródło się nie zgadza. FIDO2 to złoty standard uwierzytelniania o wysokim poziomie bezpieczeństwa.
Tokeny sprzętowe: HOTP i karty inteligentne
Fizyczne tokeny sprzętowe zapewniają „coś, co Państwo posiadają”, niezależnie od smartfonów. HOTP (HMAC-based OTP) — ustandaryzowany w RFC 4226 — generuje kod na podstawie licznika i wspólnego sekretu; licznik zwiększa się przy każdym naciśnięciu przycisku. W przeciwieństwie do TOTP kody HOTP nie wygasają po określonym czasie, ale należy używać ich w odpowiedniej kolejności. Karty inteligentne (takie jak karty PIV używane przez pracowników administracji rządowej USA) przechowują klucze prywatne w sprzęcie odpornym na manipulacje i wymagają kodu PIN do odblokowania, łącząc „coś, co Państwo posiadają” (kartę) z „czymś, co Państwo znają” (kodem PIN). Uwierzytelnianie za pomocą kart inteligentnych jest standardem dostępu uprzywilejowanego w środowiskach o wysokim poziomie bezpieczeństwa.
Menedżery haseł: rozwiązanie problemu po stronie człowieka
Menedżery haseł rozwiązują problem ludzkiej skłonności do ponownego używania haseł, generując i przechowując unikatowe, losowe hasła dla każdej witryny. Hasło główne odblokowuje zaszyfrowany sejf zawierający wszystkie dane uwierzytelniające. Menedżery haseł dla przedsiębiorstw (1Password Teams, Bitwarden Business, CyberArk) dodają takie funkcje jak centralne egzekwowanie zasad, dzienniki audytowe, bezpieczne udostępnianie i dostęp awaryjny. Zespoły ds. bezpieczeństwa powinny aktywnie zachęcać do korzystania z menedżerów haseł lub wymagać ich używania — to rzadki mechanizm zabezpieczeń, który poprawia zarówno bezpieczeństwo (unikatowe hasła wszędzie), jak i wygodę użytkowania (nie trzeba pamiętać dziesiątek haseł). W połączeniu z MFA menedżery haseł znacząco ograniczają przejęcia kont za pomocą danych uwierzytelniających.
Blokada konta i ograniczanie liczby prób
Blokada konta wyłącza konto po określonej liczbie nieudanych prób logowania, zapobiegając atakom brute force. Typowe zasady blokują konto po 3–10 nieudanych próbach, a czas blokady może wynosić od ustalonego okresu (30 minut) do momentu odblokowania przez administratora. Ograniczanie liczby prób jest łagodniejszą alternatywą: zamiast blokować konta stopniowo zwiększa opóźnienie między próbami logowania, sprawiając, że ataki brute force trwają lata zamiast minut, bez negatywnego wpływu blokad na wygodę użytkownika. Aplikacje webowe powinny wdrażać oba mechanizmy — ograniczanie liczby żądań na poziomie API oraz ograniczanie liczby prób na poziomie konta — aby zapobiegać zautomatyzowanym atakom na dane uwierzytelniające.
# Configure account lockout policy via Windows Group Policy
# Computer Configuration > Windows Settings > Security Settings
# > Account Policies > Account Lockout Policy
#
# Account lockout threshold: 5 invalid logon attempts
# Account lockout duration: 30 minutes
# Reset account lockout after: 30 minutes
# Linux PAM-based lockout (/etc/pam.d/common-auth)
# auth required pam_tally2.so deny=5 unlock_time=1800
# auth required pam_faillock.so preauth deny=5 unlock_time=1800Szybkie sprawdzenie
Sprawdź swoją znajomość zagadnień z CompTIA Security+ (SY0-701) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo następujące zagadnienia: NIST SP 800-63B zaleca długie frazy haseł i sprawdzanie haseł pod kątem wycieków zamiast złożonych zasad ich okresowej zmiany; trzy składniki MFA to wiedza, posiadanie i cechy fizyczne; aplikacje TOTP są bezpieczniejsze niż SMS OTP; FIDO2/WebAuthn jest odporne na phishing; a blokada konta zapobiega atakom brute force. W następnej części omówimy biometrię i uwierzytelnianie oparte na tokenach.
Często zadawane pytania
Czy lekcja „Zasady haseł i uwierzytelnianie wieloskładnikowe” jest bezpłatna?
Tak — pełny tekst „Zasady haseł i uwierzytelnianie wieloskładnikowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Zasady haseł i uwierzytelnianie wieloskładnikowe”?
Zrozumieją Państwo wymagania dotyczące silnych haseł, składniki MFA (coś, co Państwo znają, mają lub czym są) oraz to, dlaczego łączenie składników znacznie zmniejsza ryzyko przejęcia konta. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Zasady haseł i uwierzytelnianie wieloskładnikowe”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zasady haseł i uwierzytelnianie wieloskładnikowe
- Biometria i uwierzytelnianie oparte na tokenach
- Modele autoryzacji: RBAC, MAC i DAC
- Federacyjna tożsamość: SAML, OAuth i OpenID Connect