Co jakiś czas powraca temat haseł maskowanych i ich rzekomo większego bezpieczeństwa, niż haseł "tradycyjnych". Nie specjalnie monitoruję te dyskusje, bo swoje zdanie na temat tego typu haseł mam, wiele razy je przedstawiłem i nie spodziewam się zmiany swojej opinii na ich temat. Echa tych dyskusji docierają do mnie przez to, że część dyskutantów odwołuje się do moich wpisów na ten temat.
Jednym z banków, które nie korzystają z haseł maskowanych jest mBank. Część klientów uważa to za wadę, w związku z czym pojawiają się różne dyskusje, na przykład takie:
Wątki te przeglądam głównie po to, by poznać argumenty zwolenników haseł maskowanych i móc się do nich odnieść. Zajmę się tylko najnowszym wątkiem.
"Bo wszyscy inni mają"
Przykład argumentacji:
bo najwyższy czas na wprowadzenie hasła maskującego.
Z banków w których mam konto, to jedyny bank, w którym nie mam maski.
I uważam to za spory błąd.
Cóż, "wszyscy inni mają" właśnie dlatego, że "wszyscy inni mają". Efekt ten jest tym bardziej widoczny, że znaczna część systemów bankowości internetowej pochodzi od jednego dostawcy. Dostawca ten hasła maskowane wykorzystał, co stworzyło masę krytyczną - nawet jeśli jakiś system był tworzony przez innego dostawcę, hasło maskowane było wykorzystywane, bo przecież nowy system nie może być gorszy, mniej bezpieczny, od konkurencji. Prawda? (patrz: Zasada podczepienia)
Tylko, że czuć się bezpiecznym i rzeczywiście być bezpiecznym to dwie różne rzeczy, polecam: Bruce Schneier: The security mirage.
Jeszcze jedno wyjaśnienie - kiedyś hasła maskowane rzeczywiście miały pewną wartość dodaną. Obecnie ich złamanie nie jest dla malware żadnym problemem. Przy znikomej wartości dodanej i sporym negatywnym wpływie na wygodę użytkowania, hasła maskowane należy odesłać tam, gdzie ich miejsce - do lamusa na półkę obok klawiaturek wirtualnych.
"Maskowane są bezpieczniejsze, bo bezpieczniejsze są maskowane"
Trudno dyskutować z takim argumentem:
(...) Jak ktoś hasła nie pamięta to niezależnie czy ma maskowane czy pełne kartkę wyjmie i nie świadczy to o mniejszym bezpieczeństwie maskowanych. Z technicznego punktu widzenia to maskowane są bardziej bezpieczne.
Przede wszystkim głównym problemem (tym najbardziej masowym) jest malware, a nie ktoś, kto rzuci okiem przez ramię na karteczkę zawierającą hasło. Malware karteczki nie odczyta (choć teoretycznie mógłby, te wszystkie kamerki internetowe). Kompletnie nie rozumiem natomiast dlaczego niby hasło maskowane mają być "z technicznego punktu widzenia" bezpieczniejsze. Bo wpisywanych jest tylko część liter? Nie jest to przeszkoda, wystarczy przecież poprosić użytkownika, by wpisał hasło ponownie. Choćby tak:
- wyświetlić komunikat o błędnym haśle i wyświetlić ponownie formatkę logowania (podstępnie pytając o inne znaki),
- zasymulować awarię aplikacji i wylogowanie użytkownika, wyświetlić ponownie formatkę logowania,
- zasymulować konieczność zmiany hasła po logowaniu (przy tej operacji hasło podawane jest w całości),
A może ktoś ma jakiś inny pomysł dlaczego to hasła maskowane mają być "z technicznego punktu widzenia bezpieczniejsze"?
Tu dobrze wpasowuje się inna wypowiedź:
Przeczytałem wzmiankowaną stronę i dalej będę się upierał przy swoim.
Wysiadając z auta chowam panel radia do skrytki, i zamykam samochód. Wiem, że jestem w kraju katolickim i religia zabrania kradzieży.
Ale jestem dziwnie przekonany, że złodziej bedzie wolał otwarty samochód z radiem na wierzchu....
I dlatego chciałbym mieć maskowanie.
Pierwsza kwestia (znów dygresja) - to nie religia zabrania kradzieży, tylko normy społeczne, może nawet coś innego, bardziej pierwotnego. Jeśli ktoś ma wątpliwości, to proponuję spróbować zabrać psu jedzenie (w trakcie jedzenia)... W każdym społeczeństwie znajdą się jednak jednostki, które norm społecznych nie uznają, obchodzą/naginają je dla własnej korzyści. Tak, czekam na kolejną książkę Schneiera: Status Report: The Dishonest Minority (i aktualniejsze: A Status Report: "Liars and Outliers"). Nie to, żebym był członkiem jego kultu, ale w wielu przypadkach mam podobne zdanie a jego argumentacja do mnie zwykle przemawia.
Wracając do wypowiedzi - zaprezentowana analogia jest, moim zdaniem, nieodpowiednia. Otwarte drzwi to brak zabezpieczeń. Wówczas jedynym czynnikiem chroniącym przed kradzieżą jest wspomniana norma społeczna. Przypadek z hasłem "zwykłym", hasłem maskowanym i (dodaję) uwierzytelnieniem dwuskładnikowym należy porównać raczej do trzech różnych zamków w tych samych drzwiach (typie drzwi, a nie trzech różnych zamkach w jednych drzwiach jednocześnie). Wszystkie te (hipotetyczne) zamki można otworzyć, różni się natomiast koszt (czas, narzędzia, umiejętności) osiągnięcia sukcesu.
Czy posiadacz najlepszego zamka jest wyraźnie bezpieczniejszy od pozostałych? To zależy od... drzwi. Najlepszy zamek na niewiele się zda, jeśli drzwi można otworzyć kopniakiem. A najlepsze drzwi nie powstrzymają włamywacza, który ma w zwyczaju wchodzić oknem.
Zależność między bezpieczeństwem i kosztem zabezpieczeń nie jest liniowa. Wygląda ona raczej tak, jak na poniższym schemacie.
Oś X (w poziomie) obrazuje koszt wprowadzonych mechanizmów bezpieczeństwa. Oś Y (w pionie) pokazuje "poziom bezpieczeństwa". Początkowe stosunkowo niewielkie inwestycje (np. zamknięcie drzwi) zwiększają wyraźnie poziom bezpieczeństwa. W pewnej chwili osiąga się już taki poziom bezpieczeństwa (właściwsze określenie - ograniczyło się ryzyko do takiego stopnia), że dalsze inwestycje przynoszą niewielkie zmiany.
Gdzie na tym schemacie umieścić hasła "zwykłe" i hasła maskowane? Moim zdaniem odległość miedzy tymi punktami na osi Y będzie niewielka. Mniejsza, niż odległość na osi X. W tym wypadku koszt (np. wygoda użytkownika) przewyższa korzyści.
Do tego trzeba pamiętać jeszcze, że:
- uwierzytelnienie nie jest jedynym mechanizmem bezpieczeństwa w systemie bankowości elektronicznej,
- uwierzytelnienie nie jest efektywnym mechanizmem obrony przed malware,
I jeszcze fragment cytowanej wcześniej wypowiedzi:
(...)
Mam swoją metodę tworzenia haseł, i na początku są problemy, ale bez kłopotu można wygenerować takie hasło, na które nikt poza wami nie wpadnie.
Malware nie będzie "wpadał" na sposób generowania hasła. On grzecznie zaczeka, aż użytkownik sam wspaniałe hasło wygenerowane jego tajną metodą wpisze...
"...więcej niż 4-5 prób"
Ten argument jest ciekawy:
(...)
Hasła maskowane są lepsze. Nie twierdzę, że są cudowne bo są to wciąż hasła. Napisaliście, że potrzeba 4-5 prób aby odgadnąć wszystkie pola. Z doświadczenia z Aliorem wiem, że jest to znacznie więcej.
Tak się składa, że posiadam konto w tym banku, ustawiłem najdłuższe możliwe hasło - 15 znaków. Zobaczmy to "znacznie więcej"...
No to jak jest z tym doświadczeniem?
UWAGA: To nie są zdarzenia niezależne (dygresja)
W tym przypadku nie jest to argument zwolenników haseł maskowanych, ale myślę, że warto zwrócić uwagę na pewien niebezpieczny błąd w tym rozumowaniu.
Przy potwierdzaniu operacji SMS-em, aby narobic powaznych szkod, trzeba by przejac kontrole nad 2 kanalami: Internet i siec komorkowa(lub sam telefon).
Moim zdaniem maskowanie jest zbedne, szczegolnie, kiedy na komputerze masz wrogie oprogramowanie. (...)
Chodzi mi o pierwsze zdanie. Nie trzeba przejmować dwóch kanałów: internetu i sieci GSM, wystarczy przejąć dwa urządzenia - komputer i telefon. I tu uwaga - zdarzenie malware na komputerze i drugie zdarzenie malware na telefonie nie są zdarzeniami rozłącznymi. Celem atakującego jest nadal stacja użytkownika, bo jest łatwiejsza do zainfekowania. Po udanej infekcji malware może spróbować wykorzystać socjotechnikę do tego, by użytkownik sam zainstalował go na telefonie. Nie dlatego, że jest to jedyna możliwa droga. Po prostu tak jest (jeszcze) najłatwiej, choć niewykluczone, że w przyszłości to się zmieni.
Pewna wartość dodana jednak jest
Spotkałem się z jednym argumentem, w którego przypadku można uznać, że pokazuje pewną wartość dodaną haseł maskowanych. Nie dotyczy on jednak zabezpieczenia, ale detekcji. W przypadku wielu ataków z wykorzystaniem malware atakujący szedł na łatwiznę. Zamiast zastosować jakąś bardziej "cichą" metodę wyłudzenia pełnego hasła (wspominałem wcześniej o kilku możliwościach), prosił o podanie całego hasła. Budziło to zaniepokojenie części użytkowników, którzy informowali bank o tej sytuacji. Tylko jeśli kolejna wersja malware będzie nieco bardziej cierpliwa, również i ta "zaleta" zniknie.
Więcej do poczytania
Jeśli ktoś wcześniej nie czytał mojego bloga, a interesuje się tematem bezpieczeństwa systemów bankowości internetowej, odsyłam do starszych wpisów, które z kolei będą odsyłać do starszych wpisów, które (...):
Nie możemy tutaj w prosty sposób wykorzystać funkcji jednokierunkowych (tj. salt/hash), ponieważ nie mając wszystkich znaków nie możemy wyliczyć poprawnie skrótu.
Najprościej byłoby przechować hasło czystym tekstem, ale dobrze wiemy, że ten pomysł nie wchodzi w grę.
Zastanawiałem się kiedyś, jak bezpiecznie przechować takie hasła. I doszedłem do wniosku, że tak naprawdę per jedno konto/hasło należy wygenerować 2^X hashy (gdzie X to maksymalna długość hasła), bo tyle mamy możliwych kombinacji (znak zamaskowany lub nie).
Wśród 2^X hashy i tak będzie hash zawierający pojedynczą literę, więc zahashowanie 3 i 7 litery razem nie poprawi bezpieczeństwa. Złodziej zamiast łamać hash 3 i 7 złamie osobno 3 osobno 7.
Propozycja hasha, którą podałeś, jest trywialna do złamania, jedynym unikalnym elementem jest znak, a tych jest mocno ograniczona ilość. Hash banku i identyfikator użytkownika musi być dostępny dla aplikacji by zweryfikować hasło, więc ktoś, kto uzyskał dostęp do systemu, najprawdopodobniej ma i do nich dostęp.
Nawet jeśli maska jest inna dla każdego hasha to i tak musi być dostępna dla aplikacji, więc atakujący również ma do każdej nich dostęp.
Podając przykładową metodę hashowania chodziło mi raczej o to, że wśród 2^X hashy jest hash z maską axv- dla którego jedynym unikalnym elementem jest znak z hasła użytkownika.
Oczywiście możemy ustalić minimalną ilość wymaganych znaków (w Aliorze = 4) i generować tylko hashe dla więcej niż 4 znaków, ale to też jakoś specjalnie dużo możliwości nie ma.
Maska musi być dostępna, bo przecież aplikacja musi wiedzieć, o które znaki powinna pytać użytkownika. Więc tak, jeśli dana maska wymaga podania, przykładowo, czterech znaków, to atakujący efektywnie stara się znaleźć hasło o długości czterech znaków.
Poza tym ilość dopuszczalnych masek to nie jest 2^X, choćby dlatego, że wówczas jedną z masek będzie taka, która nie pyta użytkownika o żadne znaki. Właściwszym podejściem będzie liczenie ilości kombinacji bez powtórzeń.
Sama ilość unikalnych masek ma jednak drugorzędne znaczenie, bo maksymalna ilość prób potrzebnych do poznania pełnego hasła jest bardzo ograniczona i wynosi 1 + (n - k), gdzie n jest długością hasła a k najmniejszą ilością znaków, o jakie system pyta użytkownika. Minimalną ilością prób wymaganych do poznania pełnego hasła będzie natomiast ceil(n/k).
Posiłkując się przykładem ze screenu maksymalnie będzie to 1 + (15 - 6) = 10. Jeśli chodzi natomiast o ilość różnych masek (zakładam, że system pyta tylko o 6 znaków) to 15!/(6!*(15-6)!) = 15!/(6!*9!) = 5005.
Jeśli chodzi Ci o to, jak efektywnie ktoś, kto wszedł w posiadanie bazy haseł (maska, hash) jest w stanie łamać hasła, to chyba dobrym punktem wyjścia będzie znalezienie najkrótszej maski (najmniejsza ilość wpisywanych znaków). Ogólnie im więcej znaków od użytkownika, tym trudniej złamać hash.
Sposób pierwszy powtórzony parę razy może wzbudzić podejrzenia. Sposób drugi i trzeci, nawet wykonane raz - tym bardziej. Cierpliwe poczekanie na kilka logowań to z kolei ryzyko, że pojawią się zaktualizowane bazy malware'u dla antywirusów. Więc trochę sens niby jest.
Z drugiej strony maskowanie w praktyce skraca hasło dla pojedynczego logowania. I niby pozwala bezpieczniej logować się z niezaufanych hostów, tylko po co? Żeby stan konta sprawdzić? Bo o ryzyku oszustwa przy kodach SMS itp. pisałeś i jest w linkach - różowo nie jest, więc transakcji z takich hostów lepiej nie robić wcale...
Jeśli chodzi o aktualizację antywirusów, to malware nie ma się czego obawiać. Jak już wlazł do systemu i antywirus go nie wykrył, to skutecznie może wyłączyć antywirusa, lub pozbawić go możliwości aktualizacji.
Może go wyłączyć, może pozbawić możliwości aktualizacji - to prawda. Jednak nadal spora część malware'u tego nie robi, a utrzymywanie blokowania wszystkich antywirusów też trywialne nie jest. No i w przypadku blokady aktualizacji użytkownik też może się zorientować. Plus możliwość przeskanowania dysku na innym systemie (zwł. wymiennego).
Dlatego argumentu "to nic nie daje" nie kupuję. Może dawać niewiele, na tyle mało, że nie warto się w to bawić, ale nie jest tak, że nie daje zupełnie nic.
OTOH logowanie do dbNET to 6 cyfr. Bez maskowania. I jakos afery nie ma.
Jeśli chodzi o malware, to dość typową techniką jest zmiana w pliku hosts i ustawienie adresów 127.0.0.1 dla serwerów aktualizacji. Nie jest to trudne i bardzo powszechne.
Cały czas sceptycznie podchodzę do argumentu, że użytkownik "zorientuje się". Popatrz jak wielu użytkowników uwierzyło, że powinno zainstalować "certyfikat bezpieczeństwa na swoim telefonie", a moim zdaniem jest to bardziej podejrzana sytuacja, niż sytuacja, która się zdarza (np. błędnie wpisane hasło).
Inny scenariusz - w pierwszym kroku malware monitoruje "pasywnie" logowanie użytkownika do systemu. Pozwala mu podziałać chwilę w aplikacji i powoduje błąd (np. zamknięcie przeglądarki czy restart/bluescreen systemu). Przy drugiej próbie logowania tego samego użytkownika malware działa aktywnie wyświetlając inną maskę, niż ta, która została otrzymana. Taką, po której będzie znał pełne hasło. W tle loguje się do systemu i użytkownik może działać dalej, a malware ma już pełne hasło.
Takich scenariuszy można wymyślić wiele, pewnie sporo się z nich sprawdzi. Poparz na wyniki moich eksperymentów z SMS i C/R. Mimo tego, że uczestnicy powinni się spodziewać, że będą działy się jakieś ciemne sztuczki i tak spora część z nich dała się "okraść".
Wydaje mi się, że robisz nieuprawnione założenie typu "malware zna długość hasła".
"Jeśli chodzi o malware, to dość typową techniką jest zmiana w pliku hosts i ustawienie adresów 127.0.0.1 dla serwerów aktualizacji. Nie jest to trudne i bardzo powszechne."
I stawia lokalnie serwer ze starymi bazami sygnatur serwowanymi jako nowe? Czy antywiry pokazują "próbę odwołania" jako "ostatnia aktualizacja"?
Certyfikat bezpieczeństwa user instaluje raz. I ma "święty spokój"
"Przy drugiej próbie logowania tego samego użytkownika malware działa aktywnie wyświetlając inną maskę, niż ta, która została otrzymana. Taką, po której będzie znał pełne hasło."
To samo, co w punkcie pierwszym.
I ja wiem, że hasła maskowane nie są lekiem na wszystko. Ale IMO bezpieczeństwo zwiększają. Pytanie, czy w stopniu istotnym, czy nie.
Malware zna również maksymalną możliwość długość hasła, bo jest to cecha systemu.
Mogłaby się rzeczywiście zdarzyć taka sytuacja, że malware pozyska za krótkie hasło. Może ono jednak wystarczyć do uwierzytelnienia się w systemie, jeśli w kolejnej próbie system nie zapyta o żaden nieznany znak.
W teoretycznym przypadku malware może szacować długość hasła na podstawie dwóch próbek:
- pierwszej maski, o którą system prosi przy pierwszej próbie logowania,
- drugiej maski, o którą system prosi przy drugiej próbie (ta maska nie jest pokazywana użytkownikowi),
Zwróć uwagę na sekwencję masek, które umieściłem na screenie. To jest autentyczna sekwencja, bez zmiany kolejności. W tym przypadku w dwóch próbach można ustalić prawidłową długość hasła. Nie mam oczywiście gwarancji, że tak się stanie w każdej sekwencji masek i w każdym systemie dostępu do bankowości internetowej.
2. Nie wystawia, malware chodzi o zablokowanie aktualizacji. A może to być wystarczające z dwóch powodów:
- bardzo wielu użytkowników nie sprawdza daty aktualizacji sygnatur wirusowych,
- nie można zakładać, że antywirus będzie nadal działał "poprawnie", w tym przypadku, że użytkownik będzie widział autentyczną datę ostatniej aktualizacji,
Tu podkreślam, że zwracam uwagę na potencjalne możliwości, część z tych "funkcji ukrywania" chyba jeszcze nie pojawiło się w malware, ale nie dlatego, że jest to jakiś szczególny problem techniczny, ale raczej dlatego, że obecny sposób samoobrony przed antywirusem jest wystarczający (lub nawet w przypadku braku takich mechanizmów malware odnosi wystarczający sukces).
3. Wyobraź sobie attack tree, które obrazuje cel intruza "wyprowadzić środki z konta ofiary". Na wielu ścieżkach pozyskanie hasła nie jest wymagane. Dlatego uważam, że patrząc z takiej perspektywy i uwzględniając taki cel intruza (jeśli by się skupić wyłącznie na celu "pozyskanie hasła", to przyznam Ci rację), wpływ haseł maskowanych jest niewielki.
Borys pisał o dziesięciolatku z keyloggerem. Jeśli się jednak popatrzy na to, że przychód z cyberprzestępczości jest już porównywalny/większy, niż z handlu narkotykami - dziesięciolatek z keyloggerem nie jest już typem przeciwnika, na którym trzeba się skupiać.
Szacowanie na podstawie wylosowanych pozycji dla pojedynczej próbki to czyste kamikadze. Chyba, że bank pyta o długości maski zależne od długości hasła albo pyta schematami. Tylko to już trzeba aktualizować w malware, bo mank może coś zmienić, czyli koszty...
"Malware zna również maksymalną możliwość długość hasła, bo jest to cecha systemu."
Owszem, zna. I zapyta użytkownika mającego 16 znakowe hasło o dopełnienie do 64 znaków, nie wzbudzając podejrzeń?
"Mogłaby się rzeczywiście zdarzyć taka sytuacja, że malware pozyska za krótkie hasło. Może ono jednak wystarczyć do uwierzytelnienia się w systemie, jeśli w kolejnej próbie system nie zapyta o żaden nieznany znak."
Przy sensownej długości hasła i maski prawdopodobieństwo zdarzenia nie jest duże. W przypadku hasła niemaskowanego wszystkie powyższe nie mają zastosowania - malware dostaje całe hasło i jest po temacie.
Wszystkie te czynniki mogą prowadzić do tego, że użytkownik zapyta kogoś, czy też ma problem z logowaniem do banku i w przypadku odpowiedzi przeczącej wzbudzić czujność.
'2. Nie wystawia, malware chodzi o zablokowanie aktualizacji. A może to być wystarczające z dwóch powodów:
- bardzo wielu użytkowników nie sprawdza daty aktualizacji sygnatur wirusowych,
- nie można zakładać, że antywirus będzie nadal działał "poprawnie", w tym przypadku, że użytkownik będzie widział autentyczną datę ostatniej aktualizacji,"
Część userów jednak sprawdza daty. A niepoprawne działanie trzeba robić dla każdej wersji każdego antywirusa, co jest - ponownie - kosztem dla twórców malware.
"3. Wyobraź sobie attack tree, które obrazuje cel intruza "wyprowadzić środki z konta ofiary". Na wielu ścieżkach pozyskanie hasła nie jest wymagane. Dlatego uważam, że patrząc z takiej perspektywy i uwzględniając taki cel intruza (jeśli by się skupić wyłącznie na celu "pozyskanie hasła", to przyznam Ci rację), wpływ haseł maskowanych jest niewielki."
Zgadza się, można ukraść pieniądze skuteczniej. Jednak parę spraw hasła maskowane załatwiają. Jeśli nie mają jakichś specjalnych wad (no właśnie, to można rozwinąć), to nie widzę powodu, by ich nie stosować.
Znajomość maksymalnej długości hasła daje tyle, że jeśli w masce ostatni znak wystąpi na pozycji n i n jest maksymalną długością hasła w systemie, to długość hasła użytkownika wynosi n.
2. Kosz, o którym piszesz, ponosi tylko autor kolejnej wersji malware. I może zarobić na swoich klientach.
3. Główną wadą hasła maskowanego jest jego uciążliwość. Dodatkowo jeśli uciążliwości jest za wiele (w różnych miejscach), to użytkownicy znoszą to źle. Moim zdaniem lepiej jest zrezygnować z hasła maskowanego i zamiast tego wprowadzić inny mechanizm, który przecina więcej ścieżek w attack tree.
Piszę - więcej ścieżek, a nie wszystkie ścieżki, bo technicznego zabezpieczenia przed atakiem typu "konto zostało zablokowane, bo otrzymałeś błędny przelew i zostanie odblokowane jak oddasz pieniądze" (nie mam czasu teraz szukać linka do opisu tego malware) jakoś nie jestem sobie w stanie wyobrazić...
Chyba drugi raz pojawia się ta "uciążliwość", a tymczasem nie widzę jej zupełnie (przynajmniej od strony użytkownika). Jaki problem wpisać co którąś literę zamiast całego hasła?
Jakiś czas temu szukałem informacji odnośnie tego, czy były prowadzone badania odnośnie usability różnych metod uwierzytelnienia, w szczególności chodziło mi o hasła, hasła maskowane i uwierzytelnienie dwuskładnikowe. Niestety, nic nie znalazłem. Nosiłem się nawet z zamiarem przygotowania eksperymentu, ale jak na razie - brak czasu. Podobnie jak na kolejny odcinek tematu z "przyspieszaniem" blind SQLi :/
Zadajesz pytanie - czy są bezpieczniejsze? Według mnie tak.
1. Pozwalają na bezpieczniejsze jednorazowe logowanie się nie ze swojego komputera. Zdarzyła mi się niegdyś taka pilna potrzeba i sądzę, że cywilizowanym ludziom czyli znacznej większości - także. (czytaj: nie nam, paranoikom od security ;]). W przypadku hasła w zwyczajnej formie - byłbym od razu spalony.
2. Każda dodatkowa akcja jak wpisanie ponownie, powtórzenie, przekrzywiony komunikat - to szansa, na powstrzymanie podsłuchującego odpowiednio wcześniej.
3. Podobnie jeśli na przykład malware wyłącznie podsłuchuje kolejny próby logowań /bez aktywnych zmian "na żywo/ to daje to znów - czas na obronę - tak cenny często choćby z perspektywy byle aktualizacji systemów antywirusowych.
4. O wiele łatwiej jest ze względu choćby na zasoby i umiejętności piszącego malware - wyłącznie podsłuchiwać klawiaturę - takich aplikacji jest gazyliard, a o wiele trudniej jest robić zrzuty ekranu, zapisywać miejsca ekranu, wstrzykiwać się w biblioteki przeglądarki, wykonywać ataki MITM. 10 letni nastolatek nie będzie w stanie z pomocą pierwszej z brzegu aplikacji do podsłuchiwania klawiatury - przejąć konta bankowego.
Weźmy 2 miliony użytkowników. Jeden milion korzysta z haseł maskowanych, drugi ze zwykłych. Pomińmy kwestie tego jak często się logują itd.
Według mnie - trudniej czyli kosztowniej / zasobowo w umiejętności, czas, finanse / będzie móc przejąć konta tych z hasłami maskowanymi.
Jeśli zakładać, że trudniejsze do stworzenia złośliwe oprogramowanie zapisze 20 prób logowania, że implementacja bankowa będzie średnia, że malware przejmie komunikację i wyświetli użytkownikowi kilka razy fałszywe informacje, że użytkownik się nabierze - itd. - to można stwierdzić, że rozwiązania te są porównywalnie bezpieczne ale obserwując od lat jak rozwijają się złośliwe aplikacje, jak zachowują się zwyczajni ludzie i jak działa ten wycinek rzeczywistości - nadal twierdzę, że obecnie hasła maskowane są bezpieczniejsze ;]
Chociaż tutaj należałoby zapytać cyberprzestępców - czy uważają, że hasła maskowane przeszkadzają im w pracy - czy niczego nie zmieniły od wprowadzenia w kontekście bezpieczeństwa kont bankowych :]
Pozdrawiam
1. Przy odrobinie socjotechniki nawet jednorazowe logowanie z niezaufanego komputera wystarczy, by atakujący pozyskał całe hasło ofiary.
2. Atak przy pomocy malware to zwykle atak masowy. Ważne jest, by ilość ofiar była na tyle duża, by zysk przewyższał koszty.
3. Chyba, że malware aktualizację zablokuje.
4. Ta argumentacja ma sens do czasu powstania pierwszego narzędzia, które daną funkcję posiada.
Z uwagi na mechanizm autoryzacji transakcji przejęcie konta bankowego z możliwością wykonywania z niego operacji przy pomocy samego podsłuchiwania klawiatury jest raczej mało prawdopodobne.
Moim zdaniem rola uwierzytelnienia do bankowości internetowej jest przeceniana. Większym problemem dla atakującego i skuteczniejszym zabezpieczeniem dla (potencjalnej) ofiary jest mechanizm autoryzacji transakcji.
Metoda uwierzytelnienia do systemu nie ma żadnego wpływu na bezpieczeństwo użytkownika w sytuacji, gdy malware aktywnie modyfikuje przelewy wykonywane przez użytkownika. URLZone to historia sprzed dwóch lat.
Bezpieczeństwo składa się z kilku mechanizmów, w szczególności:
- uwierzytelnienie,
- autoryzacja transakcji,
- monitorowanie,
W przypadku uwierzytelnienia mogłoby zostać wykorzystane uwierzytelnienie dwuskładnikowe, ale nawet samo hasło jest wystarczające.
Wymagania co do autoryzacji transakcji też są dość proste - autoryzacja każdej operacji przy pomocy jednorazowego kodu służącego do potwierdzenia konkretnej operacji o konkretnych parametrach, które to parametry użytkownik może zweryfikować przed autoryzacją transakcji.
Trzeciej linii trochę brakuje. Chodzi mi tu zarówno o monitorowanie "behawioralne" (wychwytywanie zachowań nietypowych dla klienta, np. nietypowe miejsca logowań, godziny, szybkość działań, itp.), jak i monitorowanie "szersze" - jeśli na jakieś konto nagle zaczynają wpływać środki różnych kont i są one natychmiast czyszczone (np. przez bankomat w drugim końcu świata), to może oznaczać to fraud.
Twoje ostatnie pytanie jest mocno tendencyjne Każda zmiana trochę przeszkodziła w pracy cyberprzestępców. Ale to było dawno i już sobie z "problemem" poradzili. Stara zasada - ewoluuj albo zginiesz.
http://imgs.xkcd.com/comics/convincing.png
Zerknij Paweł, na bzwbk. Po ~5 refreshah strony, na której wpisywaliśmy hasło układ pól zaczyna się powtarzać. Więc na cholere komuś całe hasło?
Aggressor raz przechwyci kawałek hasła, a później będzie refreshował dopóki znowu nie trafi na ten sam układ.
Security by obscurity czy szpan?
Na dobrą sprawę w scenariuszu, który sugerujesz taka implementacja hasła maskowanego w praktyce sprowadza jego skuteczność do zwykłego "pełnego" hasła.
Można by się jeszcze dalej pozastanawiać nad szansą odgadnięcia hasła, albo sytuacją, w której atakujący może przypuszczać jak wygląda hasło, ale nie jest pewny kilku znaków. Może wówczas odświeżać stronę aż będzie proszony o wpisanie tylko tych znaków, które zna.
Więc idea hasła maskowanego jest super, ale w wielu przypadkach wykonanie - żałosne.
Obecnie dużo bardziej adekwatnym rozwiązaniem byłoby uwierzytelnienie dwuskładnikowe.
Jednak oprócz security musimy zwracać uwagę na usability Google obsługuje 2składnikowe uwierzytelnianie, a ile % użytkowników go używa?
Pomijając fakt,że e-maila mają często ludzie zaznajomieni z komputerem, a co z tymi którzy kompa używają tylko do opłacania rachunków, itp. przez internetowe konto bankowe?
Sami nie ogarną załączenia innej formy zabezpieczenia, ale przez właśnie hasło maskowane możemy na nich wymusić jakieś bezpieczeństwo.
Tak, też chciałbym żeby wszystko było fajne, ale niestety nie tak łatwo jest wprowadzić ideę w życie.
Zostaje więc - "Z dwojga złego ..."
Oczywiście ktoś może argumentować, że nie zawsze ma ze sobą telefon komórkowy. Cóż, jak już parę razy powtarzałem, ja bez komputera, na którym mam KeePass, i tak się nie zaloguję