Więcej niż 2FA przez SMS: klucze sprzętowe, TOTP i passkeys
2FA przez SMS można obejść atakiem SIM swap. Poznaj różnice w bezpieczeństwie między aplikacjami uwierzytelniającymi, kluczami sprzętowymi i passkeys — i dowiedz się, kiedy których używać.
Spis treści
Dlaczego 2FA przez SMS to najsłabsza opcja
Uwierzytelnianie dwuskładnikowe (2FA) dodaje drugi krok weryfikacji oprócz hasła. Najpopularniejsza forma — sześciocyfrowy kod wysyłany SMS-em — jest lepsza niż nic, ale ma dobrze udokumentowane słabości:
- SIM swapping: atakujący dzwoni do Twojego operatora, podszywa się pod Ciebie i przekonuje go do przeniesienia numeru na kartę SIM kontrolowaną przez atakującego. Mając Twój numer, otrzymuje wszystkie Twoje kody SMS.
- Podatności SS7: protokół telefonii, na którym opierają się SMS-y (Signaling System 7), ma znane luki pozwalające zaawansowanym atakującym przechwytywać wiadomości.
- Ataki phishingowe: strony phishingowe działające w czasie rzeczywistym mogą w kilka sekund przekazać Twój kod SMS do sesji atakującego. Wpisujesz kod na fałszywej stronie, a atakujący używa go na prawdziwej, zanim wygaśnie.
- Klonowanie SIM: fizycznie lub przez dostęp u operatora atakujący duplikuje Twoją kartę SIM.
Ataki SIM swap dotykały posiadaczy kryptowalut, konta w mediach społecznościowych i menedżerów. Cenne konta nigdy nie powinny polegać wyłącznie na 2FA przez SMS.
TOTP: jednorazowe hasła oparte na czasie
TOTP to standard stojący za aplikacjami uwierzytelniającymi, takimi jak Google Authenticator, Authy, Aegis czy Raivo. Gdy konfigurujesz 2FA na stronie:
- Strona generuje wspólny sekret (klucz w kodowaniu base32), zwykle w postaci kodu QR.
- Aplikacja uwierzytelniająca zapisuje ten sekret.
- Co 30 sekund zarówno aplikacja, jak i serwer niezależnie obliczają 6-cyfrowy kod tym samym algorytmem (HMAC-SHA1) zastosowanym do sekretu i bieżącego czasu.
- Ponieważ obie strony używają tego samego sekretu i zsynchronizowanego czasu, kody się zgadzają.
TOTP jest znacznie silniejsze niż SMS, ponieważ:
- Operator nie bierze w tym udziału — kody powstają w całości na Twoim urządzeniu
- Kodów nie da się przechwycić przez SS7
- SIM swap nie wpływa na kody TOTP
Pozostała słabość: TOTP wciąż jest podatne na phishing w czasie rzeczywistym — atakujący może przekazać Twój kod w ciągu 30-sekundowego okna. Dlatego najbardziej świadomi bezpieczeństwa użytkownicy idą dalej.
Najlepsze aplikacje TOTP
- Aegis (Android, open source): szyfrowana kopia zapasowa, import/eksport, najlepsza w swojej klasie na Androidzie
- Raivo OTP (iOS, open source): przejrzysty interfejs, opcja kopii w iCloud
- Ente Auth (wieloplatformowa, open source): kopia w chmurze z E2EE, działa na iOS, Androidzie i komputerach
- Unikaj Authy przy nowych konfiguracjach: choć popularna, jej synchronizacja między urządzeniami bywała nadużywana w atakach SIM swap; ogranicza też możliwości eksportu
Sprzętowe klucze bezpieczeństwa
Klucze sprzętowe (fizyczne urządzenia, takie jak YubiKey, Google Titan Key czy Nitrokey) to złoty standard 2FA. Wykorzystują protokoły FIDO2/WebAuthn i FIDO U2F.
Jak działa klucz sprzętowy:
- Gdy rejestrujesz klucz na stronie, generuje on unikalną parę kluczy dla tej strony. Klucz publiczny trafia do strony; klucz prywatny nigdy nie opuszcza urządzenia.
- Przy logowaniu strona wysyła wyzwanie kryptograficzne.
- Użytkownik dotyka klucza (wymagana jest fizyczna obecność).
- Klucz podpisuje wyzwanie kluczem prywatnym — dowodząc posiadania.
- Podpis obejmuje adres pochodzenia (origin) strony, więc strona phishingowa dostaje podpis dla własnej domeny, który prawdziwy serwer odrzuca.
To powiązanie z domeną jest kluczową różnicą: klucze sprzętowe są odporne na phishing. Atak phishingowy w czasie rzeczywistym nie przekaże prawidłowej odpowiedzi, bo podpis jest powiązany z domeną strony.
Rekomendacje YubiKey
- YubiKey 5 NFC: najbardziej uniwersalny — USB-A, NFC dla telefonów, obsługuje FIDO2, TOTP, OpenPGP, PIV i więcej
- YubiKey 5C NFC: wersja USB-C dla nowoczesnych laptopów
- Security Key NFC: opcja budżetowa obsługująca tylko FIDO2/U2F (bez TOTP i funkcji zaawansowanych)
Zawsze kupuj dwa klucze i rejestruj oba — jeden jako główny, drugi jako zapasowy przechowywany w bezpiecznym miejscu. Utrata jedynego klucza bez zarejestrowanych kodów zapasowych może odciąć Cię od kont.
Passkeys: przyszłość uwierzytelniania
Passkeys (klucze dostępu) to nowszy standard oparty na FIDO2/WebAuthn, który całkowicie eliminuje hasła. Wykorzystują tę samą kryptografię klucza publicznego co klucze sprzętowe, ale przechowują klucz prywatny w bezpiecznej enklawie urządzenia (Apple Secure Enclave, Android StrongBox lub klucz sprzętowy), a nie w osobnym fizycznym tokenie.
Jak działają passkeys:
- Przy rejestracji urządzenie generuje parę kluczy. Klucz prywatny zostaje w bezpiecznej enklawie. Klucz publiczny jest rejestrowany na stronie.
- Przy uwierzytelnianiu strona wysyła wyzwanie. Urządzenie odblokowuje passkey biometrią (Face ID, odcisk palca) lub PIN-em urządzenia i podpisuje wyzwanie.
- Żadne hasło nigdy nie jest wpisywane ani przesyłane.
Passkeys zapewniają:
- Odporność na phishing: powiązanie z domeną uniemożliwia ataki z przekazywaniem
- Brak hasła do ukradzenia lub ponownego użycia
- Wygodę biometrii: uwierzytelniasz się odciskiem palca zamiast wpisywać kod
- Synchronizację między urządzeniami: passkeys Apple synchronizują się przez pęk kluczy iCloud, a implementacja Google — przez Menedżera haseł Google
Passkeys obsługują już Apple, Google, Microsoft i duże serwisy, w tym GitHub, Shopify i PayPal. Na stronach, które je obsługują, passkeys są zalecanym wyborem.
Wybór właściwej metody 2FA
| Metoda | Odporna na phishing | Brak ryzyka po stronie operatora | Zalecenie |
|---|---|---|---|
| SMS | Nie | Nie | Unikaj przy ważnych kontach |
| Aplikacja TOTP | Nie | Tak | Dobra podstawa dla większości kont |
| Klucz sprzętowy | Tak | Tak | Najlepszy do poczty, finansów i tożsamości |
| Passkey | Tak | Tak | Najlepszy, gdy dostępny |
Dla większości ludzi: TOTP do codziennych kont, klucze sprzętowe do poczty, kont finansowych i służbowych, a passkeys wszędzie tam, gdzie są dostępne.