Bezpieczne metody uwierzytelniania użytkowników

Chciałbym się w tym poście skupić na różnych metodach uwierzytelniania użytkowników w serwisach internetowych. W zdecydowanej większości przypadków (rzekłbym nawet, że prawie w każdym przypadku) jedynym zabezpieczeniem naszych danych jest hasło wymyślane przez samego użytkownika. Wiadomo – takie wyjście jest dla szarego usera najwygodniejsze, a jego poziom bezpieczeństwa zależy od świadomości samego użytkownika.

Zdarzają się jednak sytuacje, gdy nawet najbezpieczniejsze hasło wygenerowane z losowych znaków może zostać przechwycone w bardzo prosty sposób. Ot – wystarczy chociaż raz wpisać je na komputerze, do którego dostęp ma większa liczba osób (komputery w pracy, w szkole, w kawiarenkach internetowych, …). Jest to prawda stara jak świat, że o swój prywatny sprzęt każdy stara się dbać, ale jak już coś jest wspólne, to sprawa wygląda zupełnie inaczej. Dlatego też na takich komputerach roi się przeważnie od różnego rodzaju keyloggerów zapisujących skrupulatnie każdy znak wprowadzany z klawiatury. Wystarczy jeden, jedyny raz gdzieś się zalogować korzystając z takiego zainfekowanego komputera, żeby nasze poufne dane przestały być poufnymi ;)

Problem keyloggerów dotyczy oczywiście nie tylko haseł używanych do logowania w serwisach internetowych. Tak samo zagrożone są hasła chroniące dane (zdjęcia, dokumenty) na naszych osobistych komputerach. Tutaj jednak dużo zależy od samego właściciela. Jeżeli dba o to, żeby jego system był zawsze aktualny, ma w miarę dobry pakiet bezpieczeństwa (antywirus, antyspyware, firewall) i nie instaluje żadnego oprogramowania z nieznanych źródeł, to ryzyko przechwycenia jego danych spada praktycznie do zera. Oczywiście są jeszcze keyloggery sprzętowe, które wetknięte w gniazdo USB tak samo skutecznie przechwytują wszystko to, co wpisujemy na klawiaturze. Tutaj jednak ryzyko jest dużo mniejsze, ponieważ osoba chcąca dobrać się do naszych danych musiałaby mieć fizyczny dostęp do naszego sprzętu.

Tak – teoria jest jak zawsze piękna i banalnie prosta. W praktyce jednak wszystko wygląda duzo gorzej. Użytkownicy nie aktualizują swoich systemów, bo boją się, że Microsoft dowie się, że są one zainstalowane z pirackich kopii. O instalowaniu oprogramowania z pewnych źródeł też nie ma mowy, bo jak niby można nazwać bezpiecznym źródłem sieć P2P, Torrent, czy chociażby RapidShare? ;) Część takich osób czuje się bezpiecznie, bo mają na swoich kompach całe kombajny zabezpieczające system z każdej możliwej strony. Nikt jednak nie pomyśli o tym, że ktoś, kto przygotował i udostępnił piracką wersję takiego pakietu, najprawdopodobniej zostawił sobie w nim jakiś backdoor ;) Oczywiście nie mówię, że każdy kradnie, ale nie oszukujmy się – robi to większość.

Jak by nie patrzeć, sytuacja różowa nie jest. Tym bardziej, że userzy (szczególnie Ci mniej świadomi) używają jednego hasła do wszystkich możliwych kont i usług. Niewątpliwie trzeba by pomyśleć nad jakimiś innymi, bezpieczniejszymi metodami uwierzytelniania.

Wielki krok do przodu zrobił w tej kwestii LUKAS Bank, który rozdaje swoim klientom specjalne tokeny, z których trzeba przepisać 6-cyfrowy numer przy każdym logowaniu.

Token wydawany przez LukasBank

Podczas logowania do panelu swojego konta w LUKAS Bank użytkownik musi podać swój identyfikator (login), oraz klucz, który składa się z hasła wymyślonego przez usera oraz sześciu cyfr przepisywanych z tokena.

Czyli zakładając, że identyfikatorem usera jest „abcde4f”, jego hasłem „111111″, a na tokenie wyświetla się akurat „222222″ (zawartość tokena zmienia się co minutę), to użytkownik loguje się podając takie dane:

Login: abcde4f
Klucz: 111111222222

Dodając do tego fakt, że każdy użytkownik ma swój indywidualny i niepowtarzalny token, otrzymujemy całkiem przyjemny i bezpieczny system uwierzytelniania. Nawet, jak nieostrożny user zaloguje się do panelu swojego konta w komputerze z keyloggerem, to i tak po zmienieniu się zawartości tokena te zapisane dane stają się bezużyteczne. Podobnie sprawa wygląda w sytuacji, gdy ktoś ukradnie userowi token, bo bez znajomości hasła wymyślonego przez usera będzie mógł użyć tego tokena co najwyżej jako ozdoby na choince ;) Dopiero przechwycenie hasła i kradzież tokena zaczynają stwarzać zagrożenie dla naszych danych i dóbr materialnych ;)

Niestety taki system wiąże się ze sporymi wydatkami. Oczywiście bank jak najbardziej może sobie na to pozwolić, ale raczej nierealnym jest, żeby taki system stosować na forach dyskusyjnych, blogach, portalach, itp.

Nieco inaczej do problemu bezpiecznego logowania użytkowników podszedł Alior Bank. Ich system nie wymaga praktycznie żadnych dodatkowych wydatków (poza wynagrodzeniem za kilka godzin pracy informatyków), a w porównaniu do standardowego logowania jest dużo bezpieczniejszy.

Logowanie do systemu bankowości internetowej AliorBank

Logując się do systemu bankowości internetowej (podoba mi się to określenie;) Alior Banku użytkownik nigdy nie podaje swojego pełnego hasła, a jedynie kilka losowo wybranych z niego znaków. Dodatkowo Alior Bank wprowadził do swojego systemu jeszcze jedno zmyślne rozwiązanie – za każdym razem system wyświetla losową długość hasła. Mając hasło składające się z 12 znaków, system może wyświetlić np. 8 pól, 10 pól, 7 pól, 12 pól…

Jest to naprawdę prosty i skuteczny sposób walki z keyloggerami. Oczywiście po zebraniu większej ilości danych z powiedzmy 500 kolejnych logować, można by wyciągnąć pełne hasło. Ale przy normalnym użytkowaniu (czyli dajmy na to maksymalnie 2 logowania na dobę) trwało by to bardzo długo. Powiedziałbym nawet, że na tyle długo, że każdy mniej świadomy użytkownik zdąży w tym czasie przynajmniej trzy razy postawić na nowo system ;p

Osobiście jestem zwolennikiem systemu zastosowanego w Alior Banku. Dzięki temu, że nie wymaga kompletnie żadnego nakładu finansowego, można go zastosować dosłownie wszędzie – od blogów począwszy, na portalach internetowych skończywszy. Aż serce mi się kraja, że nie zastosowanego takiego rozwiązania w TrueCrypt. Taki sposób wpisywania hasła w TrueCrypt byłby naprawdę świetnym uzupełnieniem tego słabego ogniwa, jakim jest hasło chroniące nasze najpoufniejsze dane. Nigdy co prawda nie wnikałem w jaki sposób dane są szyfrowane/deszyfrowane, więc nie wiem, czy w ogóle dałoby się tutaj zastosować ten system. Ale jak by taka możliwość była, to autorzy zdecydowanie powinni wdrożyć ją do kolejnej wersji.

Na dzisiaj to już koniec. Zapraszam do śledzenia kolejnych postów z serii „Bezpieczne metody uwierzytelniania użytkowników” :)

Komentarze (9) do “Bezpieczne metody uwierzytelniania użytkowników”

  1. Tokeny – fajna rzecz, ale droga. „Mój” BGŻ liczy sobie 50 zł za wydanie (nie pamiętam czy z VAT). A muszę przyznać, że zastanawiałem się nad tym.

    Zostając przy temacie BGŻ, to przy dzwonieniu na infolinię stosują podobny schemat jak ten w Alior Banku – nie podaje się całego kodu, tylko wybrane jego cyfry. Za to logowanie do bankowości internetowej niestety rozwiązali klasycznie – login i hasło, tyle że oba na oddzielnych stronach i co miesiąc wymuszają jego zmianę.

  2. Michał Kuźmicki pisze:

    Jakoś mi tu brakuje wzmianki o klawiaturze ekranowej, którą zastosował wspomniany tu Alior a jest ona odporna na keyloggery.
    Generalnie jak ktoś chce mieć klawiaturę ekranową to można sobie sprawić tablet a ich oprogramowanie daje taką możliwość.

    • Naprowadziłeś mnie Kolego na ciekawy trop z tą klawiaturą ekranową. Alrio, Aliorem, ale przecież we wszystkich Windowsach (nie wiem jak z Mackami i Linuksami) jest coś takiego, jak „Klawiatura ekranowa” pozwalająca wprowadzać znaki właśnie za pomocą myszy, czy tabletu :) W sumie jest to nawet całkiem ciekawy pomysł. Niedogodność malutka, a poziom bezpieczeństwa leci ostro w górę.

  3. SpeX pisze:

    Takie losowe części hasła, wykorzystuje również ING tylko tam zawsze jest coś koło 20 pół. Nawet jeśli hasło ma mniej. A oprócz tego przelewy są autoryzowane sms-em.

    Gdzie o takim środku uwierzytelniania zapomniałeś w wpisie.

  4. Macieju pisze:

    oj bracie zeby sie do ciebie nikt nie przyczepil, ze ten kod z tokena opublikowales

  5. KrzaQ pisze:

    Krew się we mnie zagotowała jak przeczytałem ten wpis. Czy wie Pan o czym świadczy pytanie o losowe litery z hasła? O tym, że hasło trzymane jest w *postaci niezaszyfrowanej* co urąga wszelkim zasadom bezpieczeństwa, szczególnie w banku! To samo tyczy się TrueCrypta, reszta klucza albo musiałaby być gdzieś trzymana… albo nie być potrzebna w ogóle. Oba te rozwiązania nie mają nic wspólnego z bezpieczeństwem. O ile jeszcze w przypadku banku można odeprzeć ten argument twierdząc, że jego serwis internetowy będzie poprawnie zabezpieczony, to TrueCrypt trzyma wszystkie swoje informacje (a raczej, zaszyfrowaną partycję) lokalnie. Logicznie rzecz biorąc, jeśli do odszyfrowania wolumenu wystarczą 3 lub 4 znaki zamiast 30 lub 40 to koszt złamania szyfru będzie kilkanaście rzędów wielkości mniejszy.

  6. Jareq pisze:

    Tokeny w Lukas Bank super sprawa ;) Gratulację

Zostaw komentarz

  • RSS
  • Blip
  • Wykop
  • Facebook
  • Buzz
  • Vimeo
  • YouTube
  • Picasa