Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Nowa nadzieja na skuteczną ochronę kont? Google idzie w Universal 2nd factor
Wszyscy przyzwyczajeni jesteśmy do autoryzacji finansowych transakcji SMS-ami. Bad news – od pewnego czasu NIST chce odejść od tej metody:
Out-of-band authentication using the PSTN (SMS or voice) is deprecated, and is being considered for removal in future editions of this guideline.
Generator kodów na telefonie? Bad news – co z malware i dostępem do systemu transakcyjnego z telefonu?
Twój bank używa Javy do podpisywania transakcji? Bad news – lada moment w ogóle nie będą działały applety Javowe (choć nie oznacza to, że absolutnie nie będzie można używać w tym celu Javy).
Google idzie w inną stronę i promuje rozwiązanie bazujące na Universal 2nd Factor. Natywne wsparcie do Chrome jest już od dawna, ostatnio też Google pochwalił się raportem z użycia tego typu rozwiązania w swoich systemach. Znajdziecie tu m.in. porównanie do innych metod dwuczynnikowego uwierzytelnienia – łącznie z ich wygodą dla użytkowników.
W skrócie – takie urządzenie działa w podobny sposób jak smart card (zawiera m.in. klucze kryptograficzne), ale posiada standardowy port USB (nie trzeba więc w komputerze dedykowanego czytnika dla kart inteligentnych):
Dla chcących uwierzytelnić operacje na telefonie (czy ogólnie na urządzeniach bez standardowego portu USB) przewidziano też modele z NFC.
Autoryzacja transakcji może być z tym urządzeniem prosta jak naciśnięcie przycisku (w połączeniu z natywnym wsparciem w Chrome wydaje się to być wygodne dla użytkownika), choć zapewne spokojnie można skonfigurować wymóg jedynie obecności urządzenia w porcie.
Urządzenia są też wodo/wstrząsoodporne, ale wadą jest fakt konieczności noszenia dodatkowego urządzenia (z drugiej strony jeśli chcemy mieć realny second factor – może być ciężko uciec od tego wymagania).
Całość bazuje na standardzie U2F – więc konkretnych modeli mamy sporo. W hurcie na pewno można zejść do paru USD za urządzenie.
–Michał Sajdak
Warto poczytać negatywne opinie na Amazon do którego linkujecie, także w ofercie kluczy Fido (które już tak tanie nie są).
Jak najbardziej – nie ma rozwiązań idealnych.
Meh. Telefon każdy ma tak czy siak, a takie cudo jest dodatkowo płatne. Dopóki nie zaczną rozdawać tego za darmo, to nie sądzę żeby to się spopularyzowało – będzie tak jak z kwalifikowanym podpisem elektronicznym, niby coś takiego istnieje, jest bezpieczne, ale nikt kogo znam, wliczając mnie, tego nie ma.
No to na pewno jest minut. Ale pytanie do Ciebie – jak w takim razie zrobić 2FA na czymś z telefonu? (np. łączysz się do Banku z telefonu) bo kody SMSowe czy nawet appka na telefon to będzie efektywnie raczej 1FA :)
SMSy wg NISTu też mają coraz słabszą 'jakość zabezpieczającą’ i w pewnym momencie zostanie pewnie przekroczona granica i co wtedy? :/
Zlikwidować appki telefoniczne. Ten kto to wprowadził to idiota. Rzeczy typu bank, itd. powinny tylko być obsługiwane na zaufanym sprzęcie stacjonarnym.
Zlikwidować aplikacje webowe. Ten kto to wprowadził to idiota. Rzeczy typu bank, itd. powinny tylko być obsługiwane tylko osobiście w placówkach stacjonarnych.
Zlikwidować komputery. Zanim się nie pojawiły liczba hakerskich ataków była znacznie niższa ;-) ;-) ;-)
Albo inaczej, wiele telefonów ma czytniki palców. Wprowadzić konieczność potwierdzania palcem na telefonach a na stacjonarce tak jak było – sms-y. Można też dodać wsparcie dla biometrii twarzy, tutaj nie trzeba jakiegoś specjalnego sprzętu w telefonie, wystarczy kamera selfie i odpowiedni soft.
Wielokrotnie wykazywano już, że czytniki palców na telefonach/tabletach to kaszana
Ale za to bank moze mieć org odczyt palca, a twoj telefon go moze tylko przekazywac na serwer w celu porownania. Jakby dobrze zaszyfrowali komunikacje to w sumie dobra rzecz. Ale najbezpieczniejsze dalej chyba zostana kody jednorazowe w kopertach. Tylko jak uciazliwe one sa :/
a mnie na przykład przeraża myśl, że bank miałby mieć mój odcisk palca.
Dwa hasła. U2F. IVR. Ustawienie limitu godzinnego/dobowego/miesięcznego dla wybranych. Ustawienie limitu godzinnego/dobowego/miesięcznego dla pozostałych. Zmiana ustawień jedynie w placówce po okazaniu dowodu osobistego i skanie siatkówki.
Ja mam takie ustrojstwo i to za darmo (no prawie, za adres email, na który jak na razie nie dostaje żadnego spamu). Dostałem na bezpłatnej konferencji w Polsce od jednego z wystawców. No wiem, promocja. Tak czy inaczej nie używam, na razie leży w szufladzie. Jak do tej pory byłem sceptyczny, ale może jednak wykopię i zbadam temat – z tego co pamiętam to było ze dwa lata temu i już wtedy ten klucz był wspierany przez 2FA w gmailu (choć chyba eksperymentalnie).
Czyli Google chce przejac kolejny „rynek” bo jak nie SMS, Java i Bio.. to co?
Oni raczej używają czegoś co jest zrobione i nie mają na to monopolu :)
„choć zapewne spokojnie można skonfigurować wymóg jedynie obecności urządzenia w porcie”
Nie nie można. Pozostawiony w porcie moduł U2F:
1. Jeśli ma przycisk fizyczny, będzie aktywny przez kilkanaście sekund po jego naciśnięciu.
2. Jeśli nie ma przycisku fizycznego, będzie aktywny kilkanaście sekund po włożeniu do portu USB. Aby użyć go ponownie należy fizycznie wyjąć i włożyć go do portu USB (musi zaniknąć napięcie zasilania).
Zasada ta jest konieczna, aby moduł był używany świadomie przez użytkownika, a nie podpisywał wszystkiego, co mu malware podeśle. Nie ma fizycznej aktywności użytkownika, nie ma drugiego składnika.
Full-disklożer: używam na githubie, Dropboksie i na koncie Google. Dostałem za darmo na konferencji. Mam nadzieję, że nie był to strojanizowany U2F. Głupio by było. ;-)
Ale czy taki *wymóg* jest w standardzie? Bo z tego co czytałem jest np. możliwość konfiguracji (z wykorzystaniem API) – np. raz na jakiś czas sprawdzenia czy po drugiej stronie jest człowiek :)
Tak, „physical user presence” jest wymagany specyfikacją. Urządzenie działające tak, że zawsze podpisuje zapytania bez sprawdzania, czy user wcisnął przycisk, aktywował NFC, machnął ręką (czujnik zbliżenia), albo wyjął i wetknął w port USB, łamie specyfikację FIDO Alliance U2FA.
A nie ma takiego myku że podpisujesz (naciskasz przycisk) i system może to używać np. przez kolejne X dni?
To trochę by działało jak 2FA / 1FA w usługach Google – możesz zapamiętać kompa na x dni – i przez ten czas nie prosi Cię u uwierzytelnienie z tego konkretnego kompa / do tej usługi.
Mylisz dwie rzeczy. Wykonanie sygnatury dla Google przez moduł to jedna operacja. Google wie teraz, że posiadasz klucz U2FA. Druga operacja to zapisanie przez Goolge ciastka u Ciebie, że sygnatura była OK i przed 30 dni należy uważać przeglądarkę z tym ciastkiem za zaufaną. Czynność druga zawiesza żądanie od usera wykonania czynności pierwszej na 30 dni, ale nadal są to luźno związane ze sobą operacje. Tylko pierwsza jest związana z modułem U2FA. Druga może nastąpić także po przepisaniu OTP z SMS-a.
No właśnie nie wiem czy tak jest… Podrzucisz jakieś fragmenty ze specyfikacji U2FA które o tym mówią?
Ejże, to nikt nie będzie umiał przejąć tego kliknięcia własnym softem i przechować sobie jako ciastka? ;o) Rozwiązanie Google wygląda jak karteczka z PIN przylepiona do karty bankomatowej…
No idealnie właśnie przydałaby się analiza tego linkowanego raportu połączona z analizą konkretnego wdrożenia u Google. Bo zakładam że zrobili to raczej dobrze, a jak nie to uwaga… mają otwarte (i hojne) bug bounty :)
Sekuraku, nie zmyślam, tak napisali. Sprawdzanie, czy user nadal jest z nami: https://fidoalliance.org/specs/fido-u2f-v1.1-id-20160915/fido-u2f-overview-v1.1-id-20160915.html#alerting-the-user-u2f-device-activation-browser-infobars
Oraz limit czasu tokena ustawiony na 10 sekund w trybie 'user presence’ (od wykrycia aktywności użytkownika, do uznania, że zanikła ona): https://fidoalliance.org/specs/fido-u2f-v1.1-id-20160915/fido-u2f-implementation-considerations-v1.1-id-20160915.html#timing-considerations
Więcej tutaj: https://fidoalliance.org/specifications/download/
Jako, ze standard jest nowy, a implementacje to świeżynki, więc nadzieje na $ z BB mają podstawy. No to mamy plan na wieczór. Do dzieła! ;-)
Jeśli U2F będzie widoczny w systemie nawet przez kilka sekund, to nic nie stoi na przeszkodzie, żeby malware na komputerze robił enumerację urządzeń i czekał na podpięcie. Po podpięciu wykorzystywał je.
Nawet jeśli urządzenie będzie pozwalało tylko na jednorazowe użycie i nie zadziała użytkownikowi token, pomyśli, że system nie wykrył urządzenia i jeszcze raz je podłączy.
… eee… jak w tym starym dowcipie. Obierałem nożem cebulę, żona weszła do kuchni, nadziała się na ten nóż i… tak 47 razy, wysoki sądzie. Obawiam się, że to nie ma chronić przed naiwnością i ignorancją.
Niczym sie to nie rozni od tradycyjnego 2FA pod wzgledem bezpieczenstwa. brakuje bezpiecznego kanalu wymiany danych na poziomie sprzetowym. Nie ma informacji o tym ile razy klucz zostal uzyty. Z mojego banku zawsze dostaje taka informacje. Co z race condition? Gdy 2 przegladarki (albo karty) beda wolaly o u2fa? ps.: wkladanie i wyjmowanie powoduje zuzycie stykow.
A czym jest „tradycyjne” 2FA? Certyfikaty klienckie? Appka z tokenami na smartfona? Smart Card? SMS?
Widziałem takie coś w banku.
Pracownik prosi kierownika o autoryzację on podchodzi do monitora i podpina takie coś pod USB przy czym wszystko dzieje się automatycznie nie trzeba nic klikać, podpina i wypina.
Bzdurne te pomysły – nie mogę się doczekać, żeby użyć czegoś takiego przy każdym logowaniu na usługi Google w przeglądarce na telefonie. A potem drugiej. A potem trzeciej. NFC to tylko paskudne obejście problemu.
Jeśli chodzi o 2FA, to mnie przekonuje wyłącznie Google Authenticator, i to tylko dlatego, że mam go na urządzeniu innym niż telefon (można zgadywać), na którym praktycznie nie instaluję żadnego innego softu.
Ech, żeby jeszcze banki chciały z tego korzystać…
Zegarek i kartka papieru wystarczą do generowania OTP. Na bezpieczeństwie systemów operacyjnych robiłem to na ćwiczeniach. Działało, ale trzeba szybko liczyć, bo po minucie zaczyna się od nowa. Zgadłem? ;-)
do bankowości jest to słabe, bo nie wiadomo co się potwierdza. pod tym względem jest gorsze niż sms. nic nie stoi na przeszkodzie, żeby autoryzacja transakcji bankowych zainicjowanych z aplikacji mobilnej (bądź połączenia ze stroną banku z urządzenia mobilnego) była możliwa tylko innym niż sms narzędziem. Opcji jest mnóstwo – problem polega głównie na tym, że tokeny wyposażone np. w ekran, lub działające na zasadzie challenge-response są drogie.
Jesli Wam zalezy na prawde na bezpieczenstwie kupcie
zamek info na hackday.io
robi to Polak, namawialem go na crowdfunding, ale na razie mi sie nie udalo. Chyba nie wierzy , ze jest zainteresowanie. Duzo lepsze rozwiazanie i cena porownywalna, a masz wyswietlacz, wprowadzanie danych.
Jest to o tyle wazne, ze przy podpisywaniu dokumentow mozesz zweryfikowac czy system operacyjny nie podmienil dokumentu, jak i bronisz sie przed podsluchem klawiatury (blad w gpg, ktory uzywali czesi)
Patrząc po komentujących tutaj to raczej na bezpieczeństwie przeciętnemu użytkownikowi nie zależy… zawsze znajdzie powód do narzekania, jak wyżej np.: „dopóki to nie bedzie za darmo to się nie przyjmie”… A pytając znajomych czy używają 2FA które dostępne jest np.: w usługach googla (za darmo) od kilku lat spotykam sie zazywczaj z dziwnym grymasem na twarzy „że co?”. Więc o sprzętowym kluczu nawet nie ma co wspominać. Sam używam takiego klucza od początku jak Chrome zaczął je wspierać. Po prostu jest to jeszcze jedna (wygodniejsza) metoda na autoryzacje. Niestety niewiele serwisów internetowych na razie wykorzystuje (google, github…)