Uwierzytelnianie SMS-em już niczego nie chroni: czego używać zamiast niego

NIST uznał 2FA przez SMS za uwierzytelniacz ograniczony. SIM swapping, luka SS7, phishing w czasie rzeczywistym i czym konkretnie to zastąpić.

|

Czas czytania: 12 minut(y)

Uwierzytelnianie SMS-em już niczego nie chroni: czego używać zamiast niego

9 stycznia 2024 roku oficjalne konto X amerykańskiej Komisji Papierów Wartościowych i Giełd (SEC), nadzorcy rynków finansowych, ogłosiło zatwierdzenie funduszy ETF na bitcoina, decyzję, na którą rynek czekał od miesięcy. W ciągu kilku minut bitcoin zyskał ponad 1000 dolarów na jednostce. Potem SEC zdementowała: konto zostało zhakowane. Kurs spadł o ponad 2000 dolarów.

Pouczające w tej sprawie nie jest to, jak duży był ruch na rynku, lecz jak banalny był użyty środek. Według komunikatu amerykańskiego Departamentu Sprawiedliwości 26-letni Eric Council Jr. wydrukował fałszywy dokument tożsamości na przenośnej drukarce do kart, wszedł do salonu AT&T i przekonał pracownika, by przeniósł numer telefonu powiązany z kontem na kartę SIM, którą kontrolował. Otrzymał SMS-em kody resetujące hasło i przekazał je wspólnikom. 16 maja 2025 roku został skazany na 14 miesięcy więzienia.

Konieczne jest jedno uściślenie, które zmienia odczytanie sprawy, nie osłabiając jej wymowy. Zgodnie z oficjalnym oświadczeniem SEC uwierzytelnianie wieloskładnikowe zostało na tym koncie wyłączone w lipcu 2023 roku, na prośbę samego zespołu. SMS nie pełnił więc wtedy funkcji drugiego składnika, lecz kanału odzyskiwania dostępu. I właśnie to czyni ten przykład użytecznym: drugi składnik czy tylne wyjście, numer telefonu pozostaje miejscem, w którym łańcuch pęka.

Co drugi składnik ma gwarantować

Zasada mieści się w jednym zdaniu. Samo hasło to coś, co wiesz; dokłada się do tego coś, co masz (telefon, fizyczny klucz) albo coś, czym jesteś (odcisk palca). Kto ukradnie twoje hasło z wycieku danych, nie dysponuje przez to twoim fizycznym przedmiotem.

Rozumowanie opiera się na rzadko wypowiadanym założeniu: że drugi składnik jest naprawdę związany z przedmiotem w twoim posiadaniu i że jego okazanie dowodzi czegoś o tym, gdzie się logujesz. SMS zawodzi w obu punktach.

SMS nie jest składnikiem posiadania

Otrzymanie kodu SMS-em nie dowodzi, że posiadasz urządzenie, lecz że numer telefonu, przydzielony przez operatora i przez tego samego operatora zmienialny, wskazuje na jakiś aparat. To nie to samo. Trzy wektory wykorzystują tę różnicę i nie usuwa się ich w ten sam sposób.

SIM swapping

To atak ze sprawy SEC i nie opiera się na żadnej luce technicznej. Napastnik zbiera dane osobowe o celu, często już dostępne w publicznych wyciekach, po czym kontaktuje się z operatorem, podając się za tę osobę: zgubiony telefon, prośba o przeniesienie numeru na nową kartę SIM. Jeśli jest przekonujący albo jeśli pracownik działa w zmowie, numer zmienia właściciela i wszystkie SMS-y trafiają do niego. Raport roczny IC3 za 2024 rok, centrum zgłoszeń FBI, odnotowuje tylko w tym roku 982 zgłoszenia SIM swappingu i blisko 26 milionów dolarów zadeklarowanych strat, licząc wyłącznie ofiary, które złożyły zawiadomienie. Żadna aktualizacja oprogramowania nie naprawia tego wektora: nie celuje on w oprogramowanie, lecz w ludzki proces obsługi klienta.

Przechwytywanie przez SS7

Signaling System 7 to protokół, dzięki któremu sieci telefoniczne całego świata rozmawiają ze sobą: kierują połączenie, obsługują roaming, dostarczają SMS od jednego operatora do drugiego. Zaprojektowano go w 1975 roku, gdy klub operatorów był zamknięty, nieliczny, a każdy z założenia uważał pozostałych za godnych zaufania. Nie zawiera więc żadnego natywnego uwierzytelniania między sieciami: żądanie, które wygląda na uprawnione, jest traktowane jako uprawnione.

To nie jest teoretyczna słabość. W grudniu 2014 roku niemieccy badacze Tobias Engel i Karsten Nohl publicznie ją zademonstrowali na Chaos Communication Congress: lokalizacja abonenta i przechwycenie jego SMS-ów na podstawie samego numeru telefonu. W 2017 roku potwierdzono realne wykorzystanie: niemiecki operator O2-Telefónica przyznał, że klientom opróżniono konta bankowe, po tym jak napastnicy uzyskali dostęp do sieci zagranicznego operatora i uruchomili przekierowanie SMS-ów, by przechwytywać bankowe kody potwierdzające.

Phishing w czasie rzeczywistym

Trzeci wektor jest najważniejszy, bo nie zależy od żadnej luki telekomunikacyjnej i przetrwa wszystko, co dałoby się naprawić w dwóch poprzednich.

Fałszywa strona doskonale odwzorowuje stronę logowania danej usługi. Wpisujesz tam login i hasło, które fałszywa strona natychmiast przekazuje prawdziwej, a ta wysyła SMS na twój telefon. SMS rzeczywiście do ciebie dociera i jest autentyczny. Wpisujesz kod na fałszywej stronie, która z kolei przekazuje go dalej w kilka sekund. Sesja się otwiera, a trzyma ją napastnik.

Nazywa się to atakiem adversary-in-the-middle. Jest zindustrializowany: narzędzia takie jak Evilginx, odwrotne proxy, które pojawiło się w 2017 roku, albo zestawy sprzedawane w abonamencie miesięcznym, udostępniają go bez żadnych szczególnych umiejętności. Kradziony jest zresztą nie tylko kod, lecz ciasteczko sesji, które pozwala potem pozostać zalogowanym bez przechodzenia przez jakiekolwiek uwierzytelnianie.

Rzecz jest architektoniczna. Kod wysłany SMS-em nie zawiera żadnej informacji o stronie, która go zażądała. Nie potrafi więc odróżnić prawdziwej od fałszywej: jest ważny wszędzie tam, gdzie się go wpisze.

To już nie opinia, to oficjalne stanowisko

Najmocniejszy argument przeciwko SMS-om pochodzi nie od dostawców rozwiązań, lecz od instytucji, które piszą standardy.

W lipcu 2025 roku amerykański NIST opublikował ostateczną wersję SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management. Tekst tworzy wyraźną kategorię uwierzytelniaczy ograniczonych, zarezerwowaną dla mechanizmów, których zdolność do stawiania oporu osłabła wraz z rozwojem zagrożeń. Sekcja 3.1.3.3 zalicza tam korzystanie z publicznej komutowanej sieci telefonicznej, czyli kody wysyłane SMS-em lub połączeniem głosowym: „Use of the PSTN for out-of-band verification is restricted as described in this section and SHALL satisfy the requirements of Sec. 3.2.9." W praktyce usługa, która nadal z tego korzysta, musi oferować alternatywę nieograniczoną, informować użytkowników o ryzyku i dysponować planem migracji.

W grudniu 2024 roku CISA, amerykańska agencja cyberbezpieczeństwa, opublikowała swoje Mobile Communications Best Practice Guidance, po kampanii szpiegowskiej Salt Typhoon, w której podmioty powiązane z państwem chińskim przeniknęły do kilku amerykańskich operatorów telekomunikacyjnych. Sformułowanie nie pozostawia pola do interpretacji: „Do not use SMS as a second factor for authentication. SMS messages are not encrypted", a dalej, bez ogródek: „Only FIDO authentication is phishing-resistant." Dokument wprost zaleca sprzętowe klucze FIDO, wymieniając Yubico i Google Titan, i zaznacza, że po włączeniu FIDO trzeba wyłączyć SMS, w przeciwnym razie pozostaje on możliwą do wykorzystania ścieżką awaryjną.

Aplikacje uwierzytelniające: realny postęp, rozwiązanie połowiczne

Aplikacje TOTP, od Time-based One-Time Password, generują sześciocyfrowy kod zmieniający się co trzydzieści sekund, obliczany lokalnie na podstawie sekretu udostępnionego przy aktywacji i bieżącej godziny. Nic nie przechodzi przez sieć telefoniczną.

Zysk jest natychmiastowy: SIM swapping traci skuteczność, bo numer przestaje mieć znaczenie, przechwytywanie przez SS7 również, bo żadna wiadomość nie jest przenoszona. Przejście na aplikację uwierzytelniającą warto wykonać na każdym koncie, które nie może pójść dalej.

Ale trzeci wektor pozostaje nietknięty. Kod TOTP wpisany na fałszywej stronie jest przekazywany prawdziwej dokładnie tak samo jak kod SMS. Aplikacja nie wie, gdzie się logujesz: wyświetla liczbę, a ta liczba jest ważna u każdego, kto przedstawi ją w jej trzydziestosekundowym oknie. CISA mówi to samo: kody z aplikacji są lepsze niż SMS, ale pozostają podatne na phishing.

TOTP to uczciwy etap pośredni, a nie cel.

Dlaczego klucz FIDO2 zmienia naturę problemu

Sprzętowy klucz FIDO2/WebAuthn nie tylko utrudnia atak, lecz odbiera mu mechaniczną możliwość.

Przy rejestracji w usłudze klucz generuje parę kluczy kryptograficznych przeznaczoną dla tej usługi. Część publiczna trafia do usługi, część prywatna nigdy nie opuszcza układu i nie da się jej ani wyeksportować, ani odczytać. Żadnego wspólnego sekretu, który dałoby się skopiować, żadnego sześciocyfrowego kodu do przechwycenia.

Potem następuje mechanizm rozstrzygający, powiązanie z origin. W chwili logowania przeglądarka przekazuje kluczowi prawdziwą nazwę domeny wyświetlanej strony. Ta informacja wchodzi w skład podpisywanych danych, a przeglądarka ją wymusza: JavaScript strony nie może jej ani zmienić, ani sfałszować.

Klucz FIDO2 nie sprawia, że phishing trudniej się udaje. Sprawia, że wynik phishingu jest bezużyteczny.

Wróćmy do ataku adversary-in-the-middle, tym razem z kluczem. Fałszywa strona jest doskonała, ofiara niczego nie wykrywa i dotyka klucza. Przeglądarka przekazuje prawdziwą domenę strony, czyli tę oszukańczą. Klucz stwierdza, że dla tej domeny nie istnieje żadna para, albo podpisuje dla niej, tworząc podpis, który prawdziwa usługa odrzuci. W obu przypadkach napastnik nie dostaje nic użytecznego.

Tu leży różnica natury. Przy SMS-ie lub TOTP bezpieczeństwo opiera się ostatecznie na czujności użytkownika, na jego zdolności wychwycenia sfałszowanej domeny w pasku adresu, w chwili gdy się spieszy, a strona wygląda normalnie. Przy FIDO2 tę weryfikację wykonuje maszyna, za każdym razem, niezależnie od czyjejkolwiek uwagi. To przeniesienie odpowiedzialności liczy się bardziej niż siła kryptografii.

Efekt daje się zmierzyć. Google wprowadził obowiązek kluczy dla pracowników na początku 2017 roku i w 2018 roku oświadczył, że nie odnotował żadnego przejęcia konta wśród ponad 85 000 osób.

Rzeczywiste ograniczenia kluczy sprzętowych

Przedstawianie ich jako doskonałych byłoby nieuczciwe i bezużyteczne przy podejmowaniu realnych decyzji.

Koszt istnieje. Licz od 25 do 60 euro zależnie od modelu, więcej za wersje biometryczne, i pomnóż przez dwa.

Utrata klucza to prawdziwe ryzyko. Jeden klucz na krytycznym koncie to błąd projektowy. Na każdym ważnym koncie trzeba zarejestrować dwa, jeden z nich przechowywany gdzie indziej, u bliskiej osoby lub w sejfie. Drugi nie jest wygodą, jest tym, co pozwala bez obaw korzystać z pierwszego.

Pokrycie jest niepełne. Wiele usług, zwłaszcza bankowych w Europie, nie obsługuje jeszcze FIDO2, stąd poniższa kolejność priorytetów.

Klucz można ukraść. Stąd konieczność ustawienia kodu PIN na kluczu albo wybrania modelu z czytnikiem linii papilarnych: bez tego sam przedmiot wystarczy temu, kto go podniesie.

Ścieżka awaryjna pozostaje najsłabszym ogniwem. Włączenie FIDO2 bez wyłączenia SMS-a nie chroni przed niczym: napastnik po prostu pójdzie drogą, która została otwarta. Migracja kończy się dopiero wtedy, gdy stary mechanizm zostanie usunięty z konta, łącznie z opcjami odzyskiwania.

Co do sprzętu: seria YubiKey pokrywa najszersze spektrum protokołów, klucze Google Titan są tańsze i ograniczają się do FIDO, Nitrokey i SoloKeys oferują alternatywy z otwartym, audytowalnym firmware’em, a Token2 produkuje modele z wbudowaną klawiaturą, w których PIN wprowadza się na samym kluczu, a nie na klawiaturze komputera. Wśród kluczy certyfikowanych FIDO2 nie ma złego wyboru: protokół jest ten sam, różnią się tylko zastosowania dodatkowe.

Od czego zacząć, gdy nie można zmienić wszystkiego

Kolejność migracji nie jest kwestią upodobania, wynika z zależności między twoimi kontami.

  1. Najpierw główna skrzynka pocztowa. To ona odbiera linki resetujące do prawie wszystkiego pozostałego. Napastnik, który ją kontroluje, przejmuje pozostałe konta jedno po drugim, nie atakując żadnego bezpośrednio. Nic nie zasługuje na zabezpieczenie przed nią.
  2. Menedżer haseł. Skupia pierwszy składnik wszystkich twoich dostępów, więc jego ochrona musi dorównywać ochronie najlepiej zabezpieczonego konta, które przechowuje. To moment, by sprawdzić jakość hasła głównego, temat omówiony szczegółowo w naszym artykule o entropii i nauce stojącej za twoim bezpieczeństwem.
  3. Konta finansowe i platformy kryptowalutowe. Cele o natychmiastowej wartości, gdzie przejęcie zamienia się w nieodwracalną stratę w ciągu kilku minut.
  4. Konta społecznościowe z zasięgiem. Sprawa SEC pokazuje, ile warte jest słowo obserwowanego konta, a szkoda nie zawsze dotyka jego właściciela.
  5. Reszta może poczekać, z aplikacją TOTP w miejsce SMS-a. Forum czy serwis streamingowy nie uzasadnia tego samego wysiłku.

Dla kont, które jeszcze nie obsługują FIDO2: przejść na TOTP wszędzie, gdzie to możliwe, i poprosić operatora o blokadę przeniesienia numeru, u większości opcję bezpłatną.

Co to mówi o podejściu Arpokrat

Ten materiał opisuje problem, który istnieje wyłącznie dlatego, że w centrum systemu umieszczono identyfikator. Numer telefonu nigdy nie był pomyślany jako dowód tożsamości: stał się kręgosłupem uwierzytelniania w sieci z przyzwyczajenia, a wszystkie trzy opisane wyżej ataki wykorzystują właśnie to nadużycie przeznaczenia.

Takie rozumowanie legło u podstaw projektu protokołu Arpokrat Messenger: ani numeru telefonu, ani adresu e-mail, ani konta. Użytkownik istnieje jako zestaw kluczy kryptograficznych przechowywanych na własnym urządzeniu, a nawiązanie kontaktu odbywa się przez jednorazowe linki zapraszające. Logika jest ta sama co w FIDO2, o szczebel wyżej: czego strona trzecia nie posiada, tego nie da się z niej wydobyć, ani socjotechniką wobec operatora, ani nakazem. Tę spójność z architekturą Zero-Knowledge rozwijamy w artykule o zbieraniu teraz, odszyfrowaniu później.

Klucz sprzętowy, który podpisuje, nie ujawniając nigdy swojego sekretu, to zresztą także zasada działania portfela kryptowalutowego offline, opisana w naszym kompletnym przewodniku po cold wallet: trzymać część tajną w dedykowanym przedmiocie i wypuszczać na zewnątrz wyłącznie podpis.

Podsumowanie

Uwierzytelnianie SMS-em nie zostało źle zaprojektowane. Gdy upowszechniało się na początku lat dziesiątych, było znaczącym postępem wobec samego hasła i miało po swojej stronie jedyną cechę, która liczy się w skali masowej: każdy miał już telefon.

Problemem nie jest jego wynalezienie, lecz przetrwanie. Demonstracje SS7 pochodzą z 2014 roku, realne wykorzystanie w bankowości z 2017, industrializacja phishingu w czasie rzeczywistym z końca tej dekady. CISA napisała, by go już nie używać, w 2024 roku, NIST sformalizował ograniczenie w 2025. Około dekady dzieli moment, w którym luki stały się możliwe do wykorzystania na dużą skalę, od momentu, w którym instytucje ujęły to na piśmie. A SMS pozostaje domyślnym drugim składnikiem w większości usług dla masowego odbiorcy.

Ta luka czasowa to prawdziwa informacja płynąca z tego materiału. Mechanizmy bezpieczeństwa nie znikają wtedy, gdy przestają działać, lecz wtedy, gdy zastępuje je coś równie prostego, a to trwa znacznie dłużej. Pytanie nie brzmi więc, czy powinieneś porzucić SMS, bo to rozstrzygnięto lata temu. Brzmi ono: które inne zabezpieczenia, uznawane przez ciebie za oczywiste, znajdują się już, choć nikt tego jeszcze nie zapisał, w tej samej sytuacji.

Źródła