uwierzytelnianie dwuskładnikowe
| Po angielsku | two-factor authentication (2FA) |
|---|---|
| Którą formą pisać | obie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski. |
| Inne formy | logowanie dwuskładnikowe · uwierzytelnianie dwuczynnikowe · weryfikacja dwuetapowa (nie to samo — dwa etapy ≠ dwa składniki) |
| Kategoria | Kryptografia, tożsamość i uwierzytelnianie |
Uwierzytelnianie dwuskładnikowe (two-factor authentication, 2FA) to najczęstszy wariant uwierzytelniania wieloskładnikowego, w którym do hasła dokłada się dokładnie jeden drugi składnik z innej kategorii: kod jednorazowy, klucz sprzętowy lub potwierdzenie w aplikacji. CERT Polska opisuje je jako logowanie, do którego potrzebne są dwie różne rzeczy [1]. Według CERT Polska nawet ktoś, kto zdobędzie hasło, nie wejdzie na konto bez drugiego składnika [1].
Jak działa
Składniki dzielą się na trzy kategorie: coś, co znasz, coś, co masz, i coś, czym jesteś [2]. NIST w wytycznych SP 800-63B-4 z 26 sierpnia 2025 roku wymaga na poziomie AAL2 dowodu posiadania i kontroli nad dwoma różnymi składnikami [2]. OWASP zaznacza, że dwa składniki tego samego rodzaju, na przykład dwa hasła, nie tworzą prawdziwego uwierzytelniania wieloskładnikowego [3]. Dlatego weryfikacja dwuetapowa, w której drugim etapem jest pytanie pomocnicze, nie jest uwierzytelnianiem dwuskładnikowym. OWASP wymienia poza trzema klasycznymi kategoriami także lokalizację, na przykład adres IP, oraz zachowanie, na przykład sposób pisania na klawiaturze [3]. Uwierzytelnianie dwuskładnikowe w typowym wdrożeniu łączy jednak wiedzę, czyli hasło, z posiadaniem, czyli telefonem albo kluczem.
Powszechnym drugim składnikiem jest kod z aplikacji. Algorytm TOTP opisany w RFC 6238 z maja 2011 roku wylicza kod ze wspólnego sekretu i bieżącego czasu [4]. Dokument zaleca domyślny krok 30 sekund jako kompromis między bezpieczeństwem a wygodą [4]. Aby uwzględnić opóźnienia sieci, serwer może przyjąć kod z poprzedniego kroku; RFC zaleca, by tolerancja nie przekraczała jednego kroku [4]. Telefon i serwer nie muszą się komunikować, bo oba liczą kod z tego samego sekretu i z bieżącego czasu [4]. Dlatego zegary obu stron muszą być zgodne. Przebieg logowania z takim kodem pokazuje schemat poniżej.
Rodzaje drugiego składnika
Metody różnią się odpornością na phishing i przechwycenie. Tabela zestawia najczęstsze.
| Metoda | Kategoria | Uwagi |
|---|---|---|
| kod SMS | coś, co masz [3] | podatny na podmianę karty SIM [3] |
| kod TOTP z aplikacji | coś, co masz [3] | można go wpisać na fałszywej stronie [2] |
| kod e-mail | coś, co masz [3] | zależy od bezpieczeństwa skrzynki |
| klucz sprzętowy FIDO | coś, co masz [1] | odporny na phishing [1] |
| passkey | coś, co masz [1] | przypisany do witryny [1] |
NIST zalicza uwierzytelnianie przez SMS i sieć telefoniczną do metod o ograniczonym zastosowaniu (restricted) [2]. OWASP wiąże to z ryzykiem podmiany karty SIM i przechwytywania przez SS7 [3]. Odporność na phishing dają tylko metody kryptograficzne z wiązaniem nazwy weryfikatora, takie jak FIDO2 / WebAuthn; ręcznie przepisywane kody OTP i SMS tego warunku nie spełniają [2]. CERT Polska wskazuje, że passkey jest przypisany do konkretnej witryny, więc fałszywa strona nie ma jak go wyłudzić [1].
W WordPressie
Rdzeń WordPressa nie ma wbudowanego drugiego składnika. Podręcznik utwardzania zaleca włączenie uwierzytelniania dwuetapowego jako dodatkowego zabezpieczenia [7]. Funkcję dodają wtyczki. Wtyczka Two Factor, rozwijana przez społeczność WordPressa, obsługuje aplikacje TOTP, kody e-mail i kody zapasowe [5]. Obsługę FIDO U2F usunięto z niej z powodu utraty wsparcia w przeglądarkach [5]. Wtyczka ma ponad 100 tysięcy aktywnych instalacji [5]. Użytkownik włącza metody w swoim profilu, w sekcji opcji dwuskładnikowych [5].
WordPress.org od 1 października 2024 roku wymaga uwierzytelniania dwuskładnikowego od autorów wtyczek i motywów [6]. Uzasadnienie brzmi: konta z prawem zapisu do repozytorium mogą wysyłać zmiany do wtyczek i motywów używanych przez miliony stron [6]. Ponieważ drugiego składnika nie da się zastosować do samego repozytorium kodu, WordPress.org wprowadził też osobne hasła SVN [6]. Podobną rolę na zwykłej stronie pełnią hasła aplikacji: integracja dostaje osobne hasło, bez podawania hasła głównego konta.
Drugi składnik warto połączyć z limitem prób logowania i silnym hasłem. Chroni on przede wszystkim konta z rolą administratora i redaktora, bo ich przejęcie daje wpływ na kod strony.
Zagrożenia i ograniczenia
OWASP przytacza badanie Microsoftu, według którego uwierzytelnianie wieloskładnikowe zatrzymałoby 99,9% przejęć kont [3]. Chroni głównie przed credential stuffing i atakami siłowymi, bo samo hasło przestaje wystarczać. Nie chroni przed wszystkim.
- phishing AiTM (adversary-in-the-middle) przekazuje kod ofiary na prawdziwą stronę w czasie rzeczywistym, bo kod OTP nie jest związany z nazwą witryny [2].
- MFA fatigue polega na zasypywaniu ofiary prośbami o potwierdzenie w aplikacji.
- Kradzież tokenu sesyjnego po zalogowaniu omija oba składniki.
- Słabe procedury odzyskiwania konta pozwalają wyłączyć drugi składnik.
Dobre praktyki
- Wybierać metody odporne na phishing; NIST zaleca, by na poziomie AAL2 oferować co najmniej jedną taką opcję [2].
- Unikać SMS, gdy dostępna jest aplikacja albo klucz sprzętowy [3].
- Przy włączaniu drugiego składnika wydać jednorazowe kody zapasowe [3].
- Przed zmianą albo wyłączeniem składnika wymagać ponownego uwierzytelnienia istniejącym składnikiem i powiadamiać użytkownika innym kanałem [3].
- Sekret TOTP przechowywać bezpiecznie; RFC 6238 zaleca sprzęt odporny na manipulację [4].
Historia i przykłady
Kody SMS przez lata były szeroko stosowane, ale serwisy zaczęły je ograniczać. W lutym 2023 roku Sekurak opisał decyzję Twittera o pozostawieniu uwierzytelniania dwuskładnikowego przez SMS tylko dla subskrybentów płatnej usługi [8]. Serwis uzasadnił ją tym, że metoda była obchodzona i nadużywana przez przestępców [8]. Pozostałe metody to aplikacje z kodami jednorazowymi i klucze sprzętowe [8].
Przypisy
8- [1] Jak tworzyć bezpieczne hasła i chronić swoje konta · CERT Polska
- [2] SP 800-63B-4: Digital Identity Guidelines — Authentication and Authenticator Management · NIST
- [3] Multifactor Authentication Cheat Sheet · OWASP
- [4] RFC 6238: TOTP: Time-Based One-Time Password Algorithm · IETF
- [5] Two Factor — wtyczka w katalogu WordPress.org · WordPress.org
- [6] Upcoming Security Changes for Plugin and Theme Authors on WordPress.org · WordPress.org
- [7] Hardening WordPress — Advanced Administration Handbook · WordPress.org
- [8] Twitter wyłącza 2FA (dwuczynnikowe uwierzytelnienie) oparte na SMSach · Sekurak
Hasła w tym artykule
13Linkują tutaj
68- uwierzytelnianie
- zabezpieczenie
- ransomware
- RODO
- botnet
- nonce
- wtyczka bezpieczeństwa
- passkey
- XML-RPC
- haker
- kod jednorazowy
- ochrona przed atakami brute force
- uwierzytelnianie wieloskładnikowe
- atak siłowy (brute-force)
- enumeracja użytkowników
- limit prób logowania
- podmiana treści strony (defacement)
- RAT (remote access trojan)
- atak na łańcuch dostaw
- credential stuffing
- edytor plików motywów i wtyczek
- organ nadzorczy
- hasła aplikacji
- role i uprawnienia użytkowników
- zmiana adresu logowania
- złośliwe boty
- fałszywa wtyczka
- obejście uwierzytelniania
- menedżer haseł
- man-in-the-middle (MITM)
- web skimming
- wyłudzenie duplikatu karty SIM
- juice jacking
- quishing
- sextortion
- drainer (wallet drainer)
- zero-click
- powierzchnia ataku
- malware-as-a-service (MaaS)
- oprogramowanie szpiegowskie
- pharma hack
- złośliwe oprogramowanie bezplikowe
- złośliwe przekierowanie
- fałszywa bramka płatności
- geoblokowanie
- oszustwo z kodem QR
- evil twin (podstawiona sieć Wi-Fi)
- mObywatel / Profil Zaufany (mDowód)
- oszustwo na BLIK-a
- zarządzanie ryzykiem dostawców (TPRM)
- fail2ban
- polityka bezpieczeństwa
- bezpieczne hasła
- dezinformacja
- blokada ekranu
- cyberhigiena
- kradzież tożsamości
- ryzyko szczątkowe
- zagrożenia publicznych sieci Wi-Fi
- MDM (zarządzanie urządzeniami mobilnymi)
- atak na potok CI/CD
- black hat
- cyberprzestępca
- post-incident review
- domyślne hasło
- aktualizacja firmware
- bezpieczeństwo IoT (internetu rzeczy)
- rootowanie / jailbreak telefonu