Przeskocz do treści

Czemu, jak wpisuję błędne hasło przy logowaniu do banku, system nie wyświetla błędu?


Na przeczytanie potrzebujesz
3 minut(y).

Błąd przy logowaniu do bankuNasza czytelniczka Magda (imię zmienione) korzysta z bankowości internetowej jednego z polskich banków. Zgodnie z naszymi radami używa skomplikowanego, unikalnego hasła i dwuskładnikowego uwierzytelnienia(PUSH w aplikacji mobilnej). Zdarza się, że przy logowaniu, po wprowadzeniu nazwy użytkownika i hasła, system “zawiesza się” na ekranie z informacją o wysłaniu powiadomienia PUSH do aplikacji. Powiadomienie nie przychodzi na telefon, więc po dłuższej chwili Magda rozpoczyna logowanie jeszcze raz. Każda taka sytuacja budzi zrozumiałą frustrację i niezadowolenie z działania systemu banku.

Magda jest pewna, że wpisuje poprawne hasło. Zaproponowaliśmy jej eksperyment - niech celowo wprowadzi błędne hasło i zobaczy co się stanie. I tu niespodzianka - mimo niepoprawnych danych do logowania system przenosi ją do ekranu z informacją o 2FA. Magda zadała nam pytanie: "Czemu, jak wpisuję błędne hasło przy logowaniu do banku, system nie wyświetla błędu? Przecież on wie, że wprowadziłam niepoprawne hasło”. Spójrzmy na sprawę z perspektywy nie użytkownika, a atakującego.

Identyfikacja i enumeracja użytkowników

Te dwa pojęcia są istotne z perspektywy bezpieczeństwa użytkowników każdego systemu, szczególnie tak wrażliwego, jak bankowość internetowa. Identyfikacja oznacza stwierdzenie, że użytkownik posługujący się danym loginem ma konto w systemie. W zależności od systemu używane są różne typy loginów. Czasem jest to ciąg cyfr (np. numer klienta lub PESEL), czasem jest to ciąg alfanumeryczny (np. imię.nazwisko, czy adres e-mail). Ekran logowania systemu powinien zachowywać się w taki sam sposób niezależnie, czy wprowadzony zostało poprawny, czy błędny login. To znaczy, że jeśli wprowadzimy błędny login, system i tak powinien przenieść nas do ekranu podawania hasła, a nie wyświetlić komunikat w rodzaju „Użytkownik nie istnieje”. Jeśli system zachowywałby się inaczej, atakujący mógłby sprawdzić, czy z systemu korzysta osoba posługująca się konkretnym loginem - jeśli dany użytkownik istnieje, system przepuszcza Cię dalej, jeśli nie istnieje, dostajesz komunikat błędu. Idąc dalej atakujący mógłby w zautomatyzowany sposób poznać nazwy wszystkich użytkowników w systemie (enumeracja użytkowników).

A co z hasłem?

W podobny sposób system powinien się zachowywać w przypadku ekranu wprowadzania hasła. Załóżmy, że atakujący poznał już naszą nazwę użytkownika w systemie np. korzystając z wycieku danych z innego serwisu. Wprowadza nazwę użytkownika na ekranie logowania i zostaje przeniesiony do ekranu wprowadzania hasła.

Jeśli system nie ma zaimplementowanego uwierzytelnienia dwuskładnikowego, to po wprowadzeniu nieprawidłowego hasła oczywiście wyświetli się komunikat o błędzie, bo to ostatni krok procesu. System nie powinien jednak poinformować, czy błędny był login, czy hasło. To zdradzało by atakującemu informacje, gdzie popełnił błąd. Oczywiście system nie powinien też pozwalać na zgadywanie haseł bez końca - większość systemów blokuje konto użytkownika po n-tej błędnej próbie.

Jeśli system korzysta z 2FA, powinien zachować się podobnie - przejść do kolejnego kroku procesu bez zdradzania, który element był błędny. W przypadku Magdy system przechodzi do oczekiwania na potwierdzenie powiadomienia w aplikacji mobilnej. W ten sposób atakujący nie wie, czy wprowadził poprawne hasło i wystarczy już tylko ukraść ofierze drugi składnik logowania, czy może należy dalej zgadywać hasło.

Coś za coś

Jak widzimy takie działanie systemu ma za zadanie zmylenie atakującego, uniemożliwienie mu identyfikacji i enumeracji użytkowników. Zabezpieczenia jednak czasem budzą frustrację i zdezorientowanie użytkowników. Nie dostają oni jasnej informacji, co poszło nie tak w procesie logowania i jednocześnie nie rozumieją mechanizmu, z którym mają do czynienia. Można powiedzieć, że takie rozwiązania wprowadzają w błąd i po prostu utrudniają korzystanie z systemu. W zależności od banku, proces logowania do bankowości internetowej może być różny. Jednak bankom zależy, aby dane i środki ich klientów były bezpieczne. Ponownie spójrzmy jednak na sytuację z perspektywy atakującego - on również jest zdezorientowany. Nie może zidentyfikować użytkowników. Niezależnie, czy wprowadzi poprawny, czy błędny login, system odpowiada tak samo. Opisany tu mechanizm ma chronić użytkowników i to właśnie robi. A użytkownicy za wyższe bezpieczeństwo płacą zmniejszeniem prostoty obsługi. Osobiście uważam, że nie jest to wygórowana cena. Mam nadzieję, że, po poznaniu działania tego mechanizmu, Magda nie będzie już się denerwować podczas logowania do bankowości internetowej.

Jak temu zapobiec?

Najprostszą metodą, aby nie mylić się przy wprowadzaniu danych do logowania jest korzystanie z managera haseł. Program tego typu ma wiele zalet np.:

  • przechowuje dane do logowania w bezpieczny sposób, a my nie musimy ich pamiętać,
  • tworzy za nas bezpieczne hasła, więc nie musimy ich wymyślać,
  • podpowie, czy adres strony, na której jesteśmy odpowiada adresowi serwisu, do którego dane mamy zapisane, co może pomóc w rozpoznaniu fałszywych stron o łudząco podobnych adresach (tzw. typosquatting),
  • potrafi sam wypełnić formularz do logowania na stronie (np. po dodaniu wtyczki do przeglądarki), więc nie pomylimy się przy przepisywaniu danych, ani nie zostawimy naszego hasła w systemowym schowku.

Istnieje wiele różnych rozwiązań np. 1Password, LastPass, Keepass (o którym Wiktor pisze jak w magazynie Programista Junior 2/2021 (10)), czy BitWarden. Każdy znajdzie coś dla siebie.

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ć.

Marcin

Bezpiecznik w pracy, geek w domu, macuser tu i tu. Uwielbia słuchać podcastów, automatyzować swoje zadania i pić dobrą kawę.

6 myśli na “Czemu, jak wpisuję błędne hasło przy logowaniu do banku, system nie wyświetla błędu?

  1. nazwa

    Czyli trzymanie haseł do banku w menadżerze jest OK? może jakiś szerszy artykuł na ten temat?

    Odpowiedz
  2. Jan C

    Czasem faktycznie może to być irytujące, ale skoro zapewnia nam bezpieczny dostęp do konta to nie ma na co narzekać. Ciekawy artykuł.

    Odpowiedz
  3. KacperM

    Według mnie takie zabezpieczenia są na wagę złota. Jeśli chroni to nas - użytkowników to jest to jak najbardziej potrzebne. Rozumiem frustrację innych osób, które mają problem z zidentyfikowaniem swojego błędu. Może to być uciążliwe szczególnie dla starszego pokolenia, jednakże myślę, że jest to warte świeczki.

    Odpowiedz
    1. Marcin

      No właśnie! Lepiej się chwilę pomęczyć, pomylić trzy razy czasami, niż narazić się na utratę pieniędzy 😉

      Odpowiedz

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *