2FA: dlaczego SMS jest najgorszy z dobrych

Opublikowano autor David Carrero

Włączenie drugiego składnika uwierzytelniania przez SMS to jedna z najlepszych decyzji, jakie możesz dziś podjąć. To też pierwsza, którą będziesz musiał zrewidować.

Jedno i drugie jest prawdą jednocześnie i na tym polega cała trudność. Dyskusja zwykle rozłazi się na dwa równie błędne obozy: tych, którzy traktują SMS jak prawdziwe zabezpieczenie, i tych, którzy traktują go jak teatr. SMS jest nieporównanie lepszy niż nic, a zarazem najsłabszy z powszechnie używanych drugich składników. Nie ma tu sprzeczności. Jest drabina, a SMS to jej pierwszy szczebel — i to znacznie powyżej podłogi.

Co SMS robi dobrze

Bez drugiego składnika twoje konto wisi na jednym sekrecie, który może od lat krążyć w cudzym wycieku, a ty nic o tym nie wiesz. Ktoś bierze taką listę, przepuszcza ją przez jeden serwis po drugim i, jeśli używałeś tego samego hasła w kilku miejscach, wchodzi. Nikt cię nie wybrał: po prostu twój wiersz wypadł w arkuszu kalkulacyjnym.

SMS przecina to u korzenia. Gdy tylko pojawia się drugi składnik, atak na ciebie przestaje być automatyczną formalnością, a staje się robotą wymierzoną konkretnie w ciebie. Trzeba wiedzieć, kim jesteś, jakiego numeru używasz i kto ci go wydał. Wielu to się zwyczajnie nie opłaca: są łatwiejsze konta. Dlatego jeśli jakiś serwis oferuje wyłącznie SMS, odpowiedź brzmi tak, bez żadnych „ale”. Te „ale” przychodzą później.

Awaria nie jest w twoim telefonie

Człowiek wyobraża sobie, że złamanie SMS-a to przechwytywanie fal, klonowanie karty albo zainfekowanie telefonu. Nic z tych rzeczy nie jest potrzebne. Atak, który naprawdę zabiera ludziom konta i który wraca w kolejnych opisanych sprawach, to SIM swapping, a polega na czymś dużo nudniejszym: ktoś dzwoni do twojego operatora, mówi, że zgubił kartę SIM, odpowiada na kilka pytań weryfikacyjnych i prosi o duplikat. Od tej chwili twoje SMS-y trafiają do niego.

Zwróć uwagę, czego tu nie było. Nie złamano żadnego szyfrowania. Nie tknięto twojego telefonu. Ty nie zrobiłeś nic źle — i nawet się nie zorientowałeś, poza tym, że twoja linia nagle zamilkła, a to, jeśli akurat śpisz, może chwilę potrwać, zanim zwróci twoją uwagę. SIM swapping nie jest atakiem technicznym na ciebie: to socjotechnika wymierzona w twojego operatora. Ogniwem, które puszcza, jest pracownik obsługi klienta, któremu płacą za szybkie zamykanie zgłoszeń i któremu właśnie opowiedziano całkowicie wiarygodną historię, bo zgubienie karty SIM to coś, co ludziom zdarza się codziennie. Przypadki są szeroko udokumentowane, a schemat powtarza się z monotonią, która już nikogo nie dziwi.

Niewygodne jest to, że ty nie masz tu nic do powiedzenia: twoje bezpieczeństwo zależy od procedury weryfikacyjnej firmy, której nie wybierałeś pod tym kątem. I jest jeszcze druga wada, cichsza: twój numer telefonu nie jest sekretem. Podałeś go dentyście, dostawcy prądu i połowie kontaktów w kraju. Identyfikator, który rozdajesz na życzenie, pełni tu rolę poświadczenia.

Drugi szczebel: aplikacja

Kolejny stopień to TOTP — sześciocyfrowe kody rotujące co trzydzieści sekund w aplikacji takiej jak te od Google, Aegis, 1Password czy Bitwarden.

Mechanizm jest elegancki: serwis i twoja aplikacja dzielą sekret jeden jedyny raz, przy konfiguracji, a od tej pory obie strony wyliczają ten sam kod z tego sekretu i z godziny. Nic nie jest wysyłane. I na tym polega cała różnica: jeśli nic nie podróżuje, nie ma czego przekierować. Nie ma operatora, nie ma numeru, nie ma nikogo, do kogo można zadzwonić po duplikat. SIM swapping nie ma tędy wejścia.

To duży skok i kosztuje pięć minut. Ale to też nie koniec, bo TOTP zachowuje bardzo ludzki martwy punkt: kod wpisujesz ty, temu, kto o niego poprosi. Jeśli stukasz go na stronie, która wygląda jak twój bank, ale nim nie jest, atakujący go zbiera i przekazuje do prawdziwego serwisu w tych sekundach życia, które kodowi jeszcze zostały. Twoja aplikacja generuje liczbę; nie wie, gdzie ją wklejasz.

Szczebel, którego nie da się nabrać

Klucz sprzętowy — standard FIDO/U2F, klucz USB lub NFC, albo sam telefon w roli uwierzytelniacza — rozwiązuje dokładnie ten problem. Przy rejestracji tworzy parę kluczy przywiązaną do origin: do konkretnej domeny tego serwisu. Przy logowaniu przeglądarka mówi kluczowi, dla jakiej domeny żąda się podpisu, a klucz podpisuje wyzwanie, w którym ta domena siedzi w środku. Jeśli strona jest kopią postawioną gdzie indziej, domena się nie zgadza i nie powstaje podpis, który prawdziwy serwis by przyjął.

Inaczej mówiąc: klucz nie jest mądrzejszy od ciebie; on po prostu nie ufa twojemu osądowi. Nie patrzy na kłódkę, nie czyta adresu, nie ocenia, czy mail wyglądał wiarygodnie. Porównuje jeden ciąg znaków z drugim. To jedyne ogniwo, którego nie przekonuje się dobrą historią — a w tym miejscu zauważyłeś już pewnie, że dobre historie są tu właśnie całym problemem.

„Ograniczony” to nie „zakazany”

NIST w publikacji SP 800-63B klasyfikuje uwierzytelnianie poza pasmem przez sieć telefoniczną — czyli SMS — jako ograniczone. Warto zatrzymać się przy tym słowie, bo w tym niuansie mieści się cały ten tekst. Ograniczony to nie zakazany: to kategoria pośrednia i celowa. Można go dalej używać, ale kto go używa, przyjmuje na siebie obowiązki: ocenić ryzyko, uprzedzić użytkowników, że ten kanał ma znaną słabość, i mieć plan migracji na coś lepszego.

To stanowisko mądrzejsze niż zakaz i tłumaczy, dlaczego SMS wciąż stoi. Mierny mechanizm, którego ludzie używają, chroni bardziej niż doskonały, którego nikt nie włącza. Gdyby jutro zakazano go wszędzie, spora część tych kont nie awansowałaby o szczebel wyżej: zostałyby z samym hasłem, czyli na podłodze.

Co robić, po kolei

  • Jeśli serwis oferuje tylko SMS, włącz go. Dziś. Pierwszy szczebel daje najwięcej wysokości.
  • Jeśli oferuje TOTP, przejdź na TOTP i wyłącz SMS jako zapasowy, o ile pozwoli. Twoje bezpieczeństwo jest na poziomie najsłabszej metody, jaką akceptujesz, bo to atakujący wybiera, którędy wejdzie.
  • W tym, co naprawdę ważne — poczta, bank, menedżer haseł — postaw klucz sprzętowy. Na poczcie wisi „nie pamiętam hasła” z całego twojego życia.
  • Jeśli operator pozwala ustawić PIN albo blokadę przeniesienia numeru, ustaw to. Nie naprawia sedna, ale utrudnia duplikat temu, kto dzwoni.
  • I nie zapominaj o pierwszym składniku. 2FA to drugi zamek, nie amnestia dla pierwszego: hasło długie, unikalne i prosto z generatora, a jeśli masz wątpliwości co do któregoś z tych, których już używasz, przepuść je przez sprawdzanie.

Wniosek jest nudny i dlatego prawie nikt go nie wypowiada: SMS jest zły i powinieneś go używać, jeśli nie masz nic innego. Prawdziwe bezpieczeństwo prawie nigdy nie polega na wybraniu opcji doskonałej, tylko na tym, żeby wiedzieć, która jest najgorsza z dobrych, używać jej tak długo, jak trzeba, i nigdy nie pomylić tego z końcem roboty.


Źródła: NIST SP 800-63B, który klasyfikuje uwierzytelnianie poza pasmem przez publiczną sieć telefoniczną (SMS lub głos) jako metodę ograniczoną, wraz z obowiązkami oceny ryzyka, uprzedzenia użytkowników i planu migracji, jakie ta kategoria niesie · specyfikacje FIDO/U2F i WebAuthn oraz ich weryfikacja origin (domeny) w momencie podpisu · RFC 6238 (TOTP) · publiczne przypadki SIM swappingu szeroko udokumentowane w prasie i w postępowaniach sądowych.

← Wróć do bloga