Często logując się do aplikacji internetowej (np.: Gmail, Dropbox, fb, Find my iPhone), zadajemy sobie w myślach pytanie, czy nasze hasło jest bezpieczne? Czy nasze dane, które znajdują się w świecie wirtualnym nie zostaną przejęte przez nieuprawnione osoby?
Mam przeczucie graniczące z pewnością, że te i wiele innych pytań kłębiło się w głowie mojego kolegi (nazwijmy go Filip), który tydzień temu zadzwonił do mnie około 6:00. Lekko zdziwiony, odebrałem telefon i w słuchawce usłyszałem zdenerwowany głos – Ratuj! Pogłębiające się zdziwienie pozwoliło mi wykrztusić – ale o co chodzi?
– Włamali mi się na konto, mam zablokowaną skrzynkę, dostałem email od admina, logowałem się z komputera, moja skrzynka rozsyła malware po sieci.
Nie wiem, jaki algorytm kierował moim kolegą w momencie kiedy wymieniał te i resztę strasznych rzeczy, która mu się tego dnia przytrafiła, ale jedno jest pewne – poukładanie w całość tej historii przypominało rozwiązanie działania ciała skończonego.
Jak się okazało Filip przebywał na urlopie. Zameldowany był w hotelu, należącym do dużej sieci hotelarskiej. Hotel udostępniał swoim gościom sieć bezprzewodową, do której wydawane były jednorazowe hasła dostępu. Przez cały wieczór korzystał z poczty i wykonał jedną operację systemie transakcyjnym swojego banku. Następnie, zalogował się do swojej poczty rano i zobaczył email od administratora skrzynki pocztowej, z informacją, iż jego konto zostało zablokowane, gdyż zaczęło rozsyłać spam zawierający złośliwy kod, a do samej skrzynki odnotowano bardzo dużą liczb logowań z różnych lokalizacji na świecie.
Resztę historii już znamy. Wykonał telefon do przyjaciela…
Nie chciałbym teraz rozwijać wątku działań naprawczych i rekomendacji, jakie Flip ode mnie usłyszał, a chciałbym się skupić na drobnym aspekcie, który mógł uchronić kolegę od tych nieprzyjemności. Mianowicie autentykacja dwuskładnikowa (z ang. two factor auth – 2FA) – czyli najmniej skomplikowana forma autentykacji wieloczynnikowej (MFA – multi factor auth). Polega na potwierdzeniu swojej tożsamości dwiema różnymi metodami, często przy wykorzystaniu dwóch różnych urządzeń. Wiele osób zapewne teraz pomyśli – ja to mam. Owszem, zgadzam się. Często wykorzystujemy potwierdzenie logowania wysyłane na alternatywne konto email (bardzo nie poręczna metoda), potwierdzenie wysyłane SMS (gdzie grozi nam przejęcie kontroli nad aplikacją), próbka głosu (skuteczna jak nie mamy chrypki), czy np. uwierzytelnienie na podstawie naszego wizerunku. Tę ostatnią metodę rekomenduję tylko w przypadku, gdy obliczany jest model matematyczny twarzy w 3D (np. True Key). Testowałem klasyczny sposób uwierzytelnienia (2D) do telefonu z systemem Android. Aplikacja prosi nas o umieszczenie twarzy przed kamerą, celem wykonania znacznika, na podstawie którego przeprowadzi kilka działań matematycznych na sztywno ustalonych punktach. W tym momencie problemem może się okazać ustawienie telefonu pod kątem, tzn. ustawiając go w podobny sposób jak czytamy książkę. Otóż hash obliczonej krzywizny może okazać się na tyle „uniwersalny”, iż do naszego telefonu będą mogły zalogować się również przypadkowe osoby.
Zatem jak żyć?
W chwili obecnej, najbezpieczniejszym wydaje się użycie 2FA w postaci sprzętowej. Token, bo o nim mowa, jest łatwym w obsłudze urządzeniem, nie różniącym się z zewnątrz od pendrive’a. Jego użytkowanie polega na włożeniu do portu usb, po podaniu loginu i hasła. Ciekawe jest to, że przy chęci włączenia 2FA w danym serwisie, token generuje parę kluczy, które nie są przetrzymywane na nim samym, lecz w serwisie, w którym się rejestruje. Pozwala to na wykorzystanie tokena w dowolnej ilości serwisów online.
Wspomniana rejestracja polega na wygenerowaniu klucza prywatnego, który jest szyfrowany głównym hasłem urządzenia, a następnie wysyłany do serwisu online. Przy próbie logowania, token rozszyfrowuje zapytanie, w którym jest zawarty wcześniej wygenerowany klucz.
Tokeny sprzętowe często są wyposażone w tzw. kontener w którym przechowują wszystkie główne hasła, wykorzystywane przez nas na co dzień w aplikacjach www. Toteż, po włożeniu go do komputera lub przyłożeniu do NFC, aktywowane zostają hasła do naszych serwisów*. Świetna metoda dla wszystkich, którzy mają dość zapamiętywania złożonych haseł oraz są świadomi i nie przechowują haseł do serwisów w swoich przeglądarkach. Oczywiście wspomniany kontener jest również zabezpieczony odrębnym hasłem.
Jako ciekawostkę podam, iż pod koniec stycznia br. Facebook wprowadził takie rozwiązanie, jako podstawową formę zabezpieczenia konta.
I tak jak w tytule 2FA – mieć czy nie mieć, zasadnym byłoby chyba zadać sobie pytanie – 2FA, którą metodę wybrać?
Zainteresowanych odsyłam do zapoznania się metodami wykorzystania 2FA w życiu codziennym https://twofactorauth.org/ , a dociekliwych zapraszam do zadawania pytań w kontekście 2FA, jak również omawianego wyżej przypadku Filipa.
* Ta metoda polega na dotknięciu tokena i przytrzymaniu palca w określonej sekwencji czasu, co powoduje wybór i aktywowanie zdefiniowanego wcześniej hasła.