Blog 24/7

uwierzytelnianie dwuskładnikowe

TAB. 1Hasłoobie formy
Po angielskutwo-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 formylogowanie dwuskładnikowe · uwierzytelnianie dwuczynnikowe · weryfikacja dwuetapowa (nie to samo — dwa etapy ≠ dwa składniki)
KategoriaKryptografia, 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.

RYS. 1Logowanie z kodem TOTP

Rodzaje drugiego składnika

Metody różnią się odpornością na phishing i przechwycenie. Tabela zestawia najczęstsze.

MetodaKategoriaUwagi
kod SMScoś, co masz [3]podatny na podmianę karty SIM [3]
kod TOTP z aplikacjicoś, co masz [3]można go wpisać na fałszywej stronie [2]
kod e-mailcoś, co masz [3]zależy od bezpieczeństwa skrzynki
klucz sprzętowy FIDOcoś, co masz [1]odporny na phishing [1]
passkeycoś, 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].

TAB. 2

Przypisy

8
  1. [1] Jak tworzyć bezpieczne hasła i chronić swoje konta · CERT Polska
  2. [2] SP 800-63B-4: Digital Identity Guidelines — Authentication and Authenticator Management · NIST
  3. [3] Multifactor Authentication Cheat Sheet · OWASP
  4. [4] RFC 6238: TOTP: Time-Based One-Time Password Algorithm · IETF
  5. [5] Two Factor — wtyczka w katalogu WordPress.org · WordPress.org
  6. [6] Upcoming Security Changes for Plugin and Theme Authors on WordPress.org · WordPress.org
  7. [7] Hardening WordPress — Advanced Administration Handbook · WordPress.org
  8. [8] Twitter wyłącza 2FA (dwuczynnikowe uwierzytelnienie) oparte na SMSach · Sekurak
TAB. 3

Hasła w tym artykule

13
TAB. 4

Linkują tutaj

68

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com