10:11
7/8/2013

Większość dzisiejszych serwisów, wprowadzając dwuskładnikowe uwierzytelnianie opiera się na telefonie użytkownika: albo trzeba przepisać kod z SMS-a, albo podać wartość generowaną przez odpowiednią aplikację-token. Twitter ma lepszy pomysł.

Powód wprowadzenie nowej metody uwierzytelniania

Nowe podejście Twittera do dwuskładnikowego uwierzytelniania ma uniemożliwić ataki, które ostatnio miały miejsce, a które polegały na przejęciu twitterowych kont poprzez phishing (tak, użytkowników oprócz hasła pytano o jednorazowe kody wyświetlane na telefonie, a ci je podawali… a czasem byli także w stanie przejąć sam numer telefonu komórkowego).

Twitter 2FA

Twitter i zmiany 2FA

Dodatkowo, nowa metoda chroni przed podsłuchaniem SMS-a z kodem. Przypomnijmy, że sniffing w sieciach telefonii komórkowej jest możliwy nie tylko na poziomie PRISMoperatora sieci GSM, ale także poprzez dowolną osobę dysponującą IMSI Catcherem. Nie wspominając już o złośliwym oprogramowaniu, które może zagnieździć się na telefonie klienta (por. ZeuS in the mobile).

Nowy sposób dwuskładnikowego uwierzytelnienia rozwiązuje więc sporo problemów i jest bardzo prosty w obsłudze — użytkownik Twittera po wpisaniu loginu i hasła na stronie internetowej musi dodatkowo kliknąć przycisk w aplikacji (żadnego przepisywania kodów) na ekranie podsumowującym szczegóły związane z konkretnym logowaniem:

  • czas logowania
  • lokalizację geograficzną klienta (GeoIP)
  • rodzaj przeglądarki

Na czym polega podejście Twittera do 2FA

Twitterowa aplikacja generuje 2048 bitową parę kluczy RSA. Prywatny zostawia u siebie, publiczny wysyła na serwery Twittera. Przy próbie logowania, Twitter generuje losową wartość i wysyła ją na telefon. Telefon podpisuje wartość kluczem prywatnym (jeśli użytkownik kliknie na przycisk wyrażający zgodę na logowanie), a następnie odsyła podpisaną wartość do serwera Twittera, gdzie serwer weryfikuje podpis kluczem publicznym użytkownika.

Mechanizm jak widać bazuje na stałym dostępie do telefonu i na dostępie do internetu w telefonie — ale pomyślano o użytkownikach, którzy mogą znajdować się poza zasięgiem sieci GSM albo w roamingu (pozdrawiamy klientów Plus na kartę :>) lub nieszczęśnikach, którzy zgubili telefon. Aplikacja Twittera potrafi bowiem wygenerować “kod zapasowy“, który użytkownik może zapisać i wykorzystać w jednej z powyższych sytuacji.

Generowanie kodu backupowego jest bardzo sprytne:

1. Aplikacja wykorzystuje algorytm S/KEY, który przetwarza losowe, 64-bitwe ziarno, hashując je 10 000 razy i konwertując do 12 znakowego stringa, który jest wysyłany na serwer Twittera.

2. Użytkownik po zużyciu tego hasha (czyli kodu zapasowego) jest proszony o zapamiętanie kolejnej wartości, która tym razem jest wynikiem hashowania 9 999 razy. Przy kolejnym uwierzytelnieniu “offline”, przesłanie tej wartości do Twittera powoduje jej zahashowanie przez serwer jeszcze raz i porównanie do przechowywanego na serwerze stringa będącego wynikiem 10 000 hashowania.

Serwer trzyma więc tylko jedną wartość, a taki sposób wykorzystania zapasowych kodów nie jest podatny na ataki powtórzeniowe i dodatkowo, nawet jeśli atakujący wykradnie z serwera wartość 10 000 hasha (na nawet kilku poprzednich), to nie będzie w stanie na jego podstawie obliczyć innych kodów backupowych.

Dodatkowo kody backupowe można generować na telefonie bez konieczności bycia podpiętym do internetu.

Nie ma 100% bezpieczeństwa

O ile nowe podejście Twittera do 2FA rozwiązuje znane problemy związane z tą metodą uwierzytelnienia, to nie uodparnia na wszystkie ataki. Włamywacz może przecież podmienić wartość 10 000 hasha na serwerze Twittera dla danego użytkownika i uwierzytelnić się w ten sposób (o ile nie ma jeszcze bezpośredniego dostępu do bazy i danych ofiary).

Atakujący w ogóle nie musi się przejmować 2FA jeśli znajdzie się w tak komfortowej sytuacji, że fizycznie przejmie telefon ofiary (i uda mu się złamać hasło dostępowe), a ofiara jest zalogowana w aplikacji Twittera do swojego konta. No ale nie do ochrony przed takimi zagrożeniami wymyślono 2FA…

Przeczytaj także:

15 komentarzy

Dodaj komentarz
  1. Ale póki co ten ich super system nie działa. Wczoraj stosowną opcje dało się włączyć w aplikacji mobilnej i nawet przychodziły powiadomienia, że jest logowanie do zatwierdzenia, ale po otwarciu aplikacji widniała informacja o braku logowań do autoryzacji. Dzisiaj już nawet nie da się włączyć tej opcji (wyskakuje błąd o braku dostępności usługi).

    Ja już wolę aplikację generatora. I tak zwykle już jest wgrana do innych usług i przynajmniej nie ma z nią tyle problemów. No i nie trzeba instalować aplikacji mobilnych Twittera, których sporo osób nie lubi.

  2. Czy to taka innowacja? To jest po prostu aplikacja typu token. Banki stosują takie już od dawna.

  3. Przepraszam za ‘offtopa’, ale dlaczego na niebezpieczniku nie ma żadnej wzmianki o tajemniczej śmierci Jacka Barnaby?

    • Była, już dawno temu. Mamy linkbloga – temat nie nadaje się na “duży” artykuł, bo nie ma żadnych potwierdzonych informacji, poza tym, że Jack nie żyje i tematem jego prelekcji. Reszta to insynuacje na chwilę obecną.

  4. Czegoś tutaj nie rozumiem. Skoro ktoś dał się nabrać na phishing i podawał kod z tel to tak samo łatwo (może nawet łatwiej) bedzie go przekonać, żeby kliknął w przycisk potwierdzający. Pomysł fajny i zaawansowany ale wątpie żeby cos usprawnił/poprawił. Głupoty niektórych userów nie da sie w żaden sposób zabezpieczyć.

  5. @p.man
    Świadomy użytkownik będzie za to w dużo lepszej sytuacji niż z token’em do przepisywania. Jak zobaczy informację, że połączenie jest z Chin to na pewno go nie zaakceptuje (nie mówiąc o tym, że osoby pamiętające swój adres IP uzyskują prawie, że pewność, że nikt nie przeprowadza na nich ataku man in the middle).

  6. artykuł sponsorowany

  7. Laczenie wlasnego numeru telefonu (czyli de facto fizycznej sluchawki) z serwisem spolecznosciowym przypomina mi samodzielne zakladanie sobie obrozy.

    • A tu jest potrzebny numer?

    • Wprost nie, co sie dzieje w tle nie wiem i Ty tez nie
      wiesz, ale gdy slysze “zainstaluj te aplikacje dla swojego dobra” z
      punktu dziekuje.

  8. Zależy do jakich uprawnień żąda aplikacja przy instalacji.
    Wiec może, ale i nie musi. Nawet jak teraz nie będzie żądać to przy
    kolejnym update`cie może już mieć uprawnienia do oczytania takich
    informacji jak nr telefonu.

  9. O co chodzi z pozdrowieniami dla prepaidów z Plusie?

    • Też jestem ciekaw :)

  10. Hmmm… To nie do końca takie darmowe. Aplikacja mówisz? No cóż, ja mam telefon z symbianem. Więc za tą weryfikacje dwuetapową musiałbym zapłacić – aplikacja tylko na ios-a i andruta.

  11. […] Dziennikarz zreflektował się jednak i przestawił sposób dostarczania “drugiego składnika” poprzez SMS na jego lokalne generowanie na telefonie w obrębie aplikacji Twittera (które nota bene jest bardzo ciekawie realizowane — pisaliśmy o tym w tym artykule). […]

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.