Przeskocz do treści

YubiKey jako jedyna metoda dwuskładnikowego uwierzytelniania – czy się (nie)da?


Na przeczytanie potrzebujesz
3 minut(y).

hasło na komputerzeJeden z naszych czytelników zwrócił nam uwagę na bardzo interesującą rzecz. Mianowicie, chcąc podnieść swój poziom bezpieczeństwa w popularnych serwisach społecznościowych takich jak Twitter czy Facebook, zdecydował się na wykorzystanie sprzętowego tokena YubiKey, jako dodatkowej metody uwierzytelniania (alternatywy do SMS-ów). Praktyka pokazuje, że, z uwagi np. na możliwość przejęcia naszego numeru telefonu u operatora (tzw. SIM swapping), wykorzystywanie kodów SMS jako drugiego składnika uwierzytelniającego jest mniej bezpieczne niż fizycznego urządzenia takiego jak token. Ku zdziwieniu naszego czytelnika (i naszemu), okazało się, że… nie da się zastosować wyłącznie uwierzytelniania za pomocą tokena sprzętowego, bez konieczności posiadania mechanizmu fallback (mechanizmu alternatywnego) w postaci kodów SMS lub aplikacji mobilnej. Ale po kolei...

Co to jest YubiKey?

Jeśli jeszcze nie wiesz, czym jest YubiKey lub nie korzystasz z tego rozwiązania,  zapoznaj się z naszymi wcześniejszymi wpisami, gdzie tłumaczymy, czym jest dwuskładnikowe uwierzytelnianie oraz czym jest fizyczny token na przykładzie właśnie YubiKey.

Uwierzytelnianie dwuskładnikowe w Facebooku

Na pierwszy ogień poszedł  Facebook. Do sprawdzenia, jak wygląda sytuacja w tym serwisie,  wykorzystaliśmy jedno z naszych prywatnych kont, na którym było już włączone dwuskładnikowe uwierzytelnianie (2FA).

W ramach konta skonfigurowane były dwie metody: aplikacja mobilna oraz YubiKey. Postanowiliśmy spróbować wyłączyć uwierzytelnianie za pomocą aplikacji.

Okazało się, że próba odłączenia tej metody powoduje całkowite wyłączenie mechanizmu 2FA w ramach naszego konta. Co ciekawe, po wyłączeniu dwuskładnikowego uwierzytelniania i próbie ponownego jego włączenia, nie mieliśmy możliwości dodania uwierzytelniania za pomocą tokena sprzętowego YubiKey.

Postanowiliśmy spróbować inaczej. Zarejestrowaliśmy aplikację mobilną i wtedy uzyskaliśmy możliwość dodania kolejnej metody, jaką był token.

Czyli faktycznie, YubiKey nie może być jedyną opcją, jeśli chcemy korzystać z 2FA na Facebooku.

Uwierzytelnianie dwuskładnikowe na koncie Twitter

Na drugi ogień poszedł Twitter. Tutaj podobnie, jak w przypadku Facebooka wykorzystaliśmy jedno z naszych prywatnych kont. W ramach konta było już włączone dwuskładnikowe uwierzytelnianie. Różnica polegała na tym, że w tym przypadku mieliśmy skonfigurowane kody SMS i token sprzętowy YubiKey. W ramach testu, postanowiliśmy wyłączyć możliwość dodatkowego uwierzytelniania za pomocą kodów SMS, tak aby pozostała jedynie możliwość wykorzystania tokena.

Podobnie, jak w przypadku Facebooka, tu też naszym oczom ukazał się komunikat informujący, że wyłączenie metody SMS wyłączy całkowicie uwierzytelnienie dwuskładnikowe (mimo, że zostawał przecież YubiKey). Postanowiliśmy jednak dać jeszcze jedną szansę mechanizmom Twittera - zdecydowaliśmy się na wyłączenie funkcji 2FA i konfigurację od początku.

Niestety, próba włączenia uwierzytelniania dwuskładnikowego z wykorzystaniem tokena YubiKey skończyła się wyświetleniem komunikatu o konieczności wcześniejszej aktywacji innej metody.

Czy da się korzystać z uwierzytelniania dwuskładnikowego z wykorzystaniem wyłącznie tokena sprzętowego YubiKey?

Niestety nasz mały eksperyment pokazuje, że serwisy Facebook oraz Twitter zdecydowały, że nie pozwolą swoim użytkownikom na używanie dwuskładnikowego uwierzytelniania wyłącznie za pomocą tokena sprzętowego. Nasz czytelnik miał rację! Być może wynika to z obawy o fizyczną utratę tokena i finalne zablokowanie dostępu do konta. Zakładamy, że działy bezpieczeństwa tych firm uznały, że prawdopodobieństwo całkowitej utraty telefonu (i braku możliwości wyrobienia duplikatu karty SIM) jest znacznie mniejsze niż w przypadku tokena i dlatego w przypadku korzystania z telefonu może być to jedyna aktywna opcja, a w przypadku tokena wymagane jest posiadanie drugiej metody.

Takie podejście do sprawy, z jednej strony zabezpiecza interesy Facebooka i Twittera przez ograniczenie ryzyka utraty dostępu do konta przez użytkowników, niestety z drugiej strony istotnie obniża bezpieczeństwo samej metody logowania tokenem. Znane są (chociażby w świecie bankowym) scenariusze, w których przestępcy za pomocą socjotechniki w salonach firm telekomunikacyjnych uzyskiwali duplikaty kart SIM swoich ofiar, otrzymując tym samym dostęp do jednorazowych kodów SMS, które na numer tej karty przychodziły. 

Tak więc w przypadku tokena sprzętowego można by uznać, że służy on tylko wygodzie użytkownika (jeśli ktoś woli korzystać z YubiKey, zamiast przepisywać kody, czy korzystać z aplikacji) i realnie nie wpływa na zabezpieczenie konta, skoro dostęp do tokena nie jest de facto niezbędny do zalogowania.

Google Advanced Protection Program

W zupełnie inny sposób do tematu konfiguracji dwuskładnikowego uwierzytelniania podchodzi firma Google, która dla najbardziej wymagających użytkowników wprowadziła Program ochrony zaawansowanej (Google Advanced Protection Program). Jak sami piszą, jest to program dla „osób zajmujących eksponowane stanowiska i mających dostęp do poufnych informacji, które są szczególnie narażone na ataki ukierunkowane”.

Osoby, które przystępują do programu muszą w ramach swoich kont Google włączyć dwuskładnikowe uwierzytelnianie za pomocą tokena sprzętowego lub tokena w formie dedykowanej aplikacji na telefonie (nie jest wymagane włączenie mechanizmu 2FA z wykorzystaniem kodów SMS). Czyli tu nie jest wymagany dostęp do do SMSów (które można by przechwycić) ani karty SIM, którą potencjalnie można by zduplikować. Oczywiście Google dostrzega problem potencjalnej, fizycznej utraty tokena i dlatego zaleca zarejestrowanie - na wszelki wypadek - 2 urządzeń w ramach konta (nie jest to jednak wymagane). 

Podsumowanie

W dzisiejszym świecie haker, który chce uzyskać konkretną informację ma do wyboru: włamanie się np. do infrastruktury Google lub uzyskanie dostępu do Twojego konta, wykorzystując fakt, że masz zbyt słabe hasło oraz nie korzystasz z dwuskładnikowego uwierzytelniania. Druga ścieżka jest dla hakera znacznie łatwiejsza i prawdopodobnie to ją wybierze. Dlatego też pamiętaj, aby dbać o wszystkie konta, których używasz w sieci, bez względu czy to poczta e-mail, konto na Facebooku, czy bankowość internetowa. Jak już pisaliśmy w poprzednich artykułach, włamanie do jednego z kont może finalnie doprowadzić do ogromnych strat finansowych lub wizerunkowych, których często nie będzie można już odrobić. 

Mimo wskazanych w tym artykule organiczeń związanych z możliwością konfiguracji metod dwuskładnikowego uwierzytelniania, 2FA jest obecnie jednym z najlepszych sposobów na znaczące podniesienie Twojego bezpieczeństwa w sieci.

Jest nam niezwykle miło, że dotarłeś aż tutaj! Jeżeli uważasz, że powyższy tekst jest wartościowy, będziemy wdzięczni za udostępnienie go dalej, bo być może dzięki temu trafi do innej osoby, która również potrzebuje go przeczytać.

4 myśli na “YubiKey jako jedyna metoda dwuskładnikowego uwierzytelniania – czy się (nie)da?

  1. nowy

    Na stronie STOP SIM CRIME jako obronę przed sim swap poleca się Google Voice (najlepiej z włączonym Google Advanced Protection Program).
    Niestety usługa Google Voice jest dostępna tylko w USA.
    https://stopsimcrime.org/faq/?active-tab=besafe
    What can you do to be safe?
    Google Voice or other “virtual private number”

    Czy jest jakaś podobna usługa dostępna w Polsce? Chodzi o wirtualny numer, na który można odbierać smsy?

    Odpowiedz
  2. Aeryn

    Ja dla GitHub (obecnie jedyna usługa używana przeze mnie, która daje możliwość U2F, ale z pozostałymi też tak się da, miałam początkowo podobne problemy jak tu opisane) zdołałam przejść w pewnym stopniu "w całości" na YubiKey. Kody jednorazowe mogą ostatecznie zostać skonfigurowane w DOWOLNEJ aplikacji - a sam Yubikey także ma taki moduł. Używa się do tego aplikacji od Yubico, która jest dostępna na telefon albo komputer. Można ustawić hasło dla tego modułu Yubikey, żeby kody jednorazowe nie były tak ogólnodostępne. (Aplikacja to tylko interfejs do komunikacji, kody siedzą w samym fizycznym kluczu, co pozwala na dostęp z dowolnego urządzenia z zainstalowaną aplikacją). Nie jest to taki sam poziom zabezpieczeń jak U2F ale dość skutecznie eliminuje możliwość logowania bez fizycznego posiadania tokena.

    Odpowiedz
  3. Marcin

    Czesc Lukasz 🙂 Fajny art, ale uwazam, ze warto sprostowac, ze nie kazdy but sportowy musi byc Adidasem, a nie kazdy klucz U2F - Yubikeyem 🙂
    Mysle, ze warto zarysowac szerszy horyzont (poza prywatna firma, jaka jest Yubico) - a mianowicie ocean mozliwosci zwiazany z otwartymi standardami - Webauth/FIDO2/U2F.
    Jest wiele ciekawych alternatyw dla Yubikeya w kontekscie, o ktorym jest artykul - zaczynajac od Solokey, Nitrokey czy swiezego prezentu od Google'a - OpenSK.

    A polityka Facebooka i Twittera rzeczywiscie dziwna - kazda dziwna na swoj sposob 😉 Przez chwile myslalem, ze dodanie w FB 2 kluczy umozliwi wyrzucenie innych/slabszych opcji, ale dupa.
    Twitter z kolei nie daje mozliwosci dodania wiecej niz 1 autentykatora - czyli z kolei nie dodasz sobie wbudowanych w laptopa czy telefon lokalnych autentykatorow (ktore z powodzeniem moglyby pogadac w standardzie Webauthn). Google najrozsadniej podchodzi do tematu - dodasz 2 klucze, to znaczy, ze wiesz co robisz i nie bedziesz plakal, jak w helpdesku Ci odpowie /dev/null.
    Inna sprawa, uzywanie klucza glownego i zapasowego rodzi ogromny problem z utrzymaniem synca tozsamosci, ktore z tych kluczy derywujesz. Ale pewnie i na to przyjdzie czas.
    Duzo zdrowia!

    Odpowiedz
  4. Leszek

    Dochodzą aplikacje, które do sprawdzania 2fa nie używają chrome. Np. Visual Studio - tam sprzętowy 2fa się nie przyda.

    Odpowiedz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *