Przejdź do treści

Uwierzytelnianie wieloskładnikowe (MFA)

Długie i nieprzewidywalne hasło trudno odgadnąć. Można je jednak wyłudzić na fałszywej stronie logowania lub przechwycić za pomocą złośliwego oprogramowania. Jeśli do zalogowania wystarcza samo hasło, jego zdobycie pozwala przejąć konto.

Uwierzytelnianie wieloskładnikowe (MFA) ogranicza to ryzyko, ponieważ do zalogowania potrzebne są co najmniej dwa składniki z różnych kategorii. Przykładem jest połączenie klucza sprzętowego i PIN-u. Bez podania tego kodu nie można użyć skradzionego klucza, a sama znajomość PIN-u nie wystarczy do zalogowania.

Składniki uwierzytelniania

Składniki dzieli się na trzy kategorie:

  • wiedza – sekret, który użytkownik zna: hasło, PIN lub odpowiedź na pytanie bezpieczeństwa,
  • posiadanie – urządzenie lub przedmiot, do którego użytkownik ma dostęp: karta z kodami, klucz sprzętowy albo telefon z aplikacją generującą kody,
  • cechy biometryczne – na przykład odcisk palca lub geometria twarzy.

MFA a 2FA

Uwierzytelnianie dwuskładnikowe (2FA) to odmiana uwierzytelniania wieloskładnikowego (MFA), w której stosuje się dokładnie dwa składniki z różnych kategorii. W praktyce obu nazw często używa się zamiennie.

Wiedza

Uwierzytelnianie za pomocą hasła to najpopularniejsza metoda logowania. Obsługują ją niemal wszystkie serwisy i urządzenia, a użytkownicy są do niej przyzwyczajeni.

Zasada działania jest prosta. Użytkownik wymyśla sekret i ustawia go na swoim koncie. Przy każdym logowaniu system sprawdza, czy użytkownik podał ustawione wcześniej hasło. Metoda ta nie wymaga dodatkowego urządzenia ani aplikacji.

Prostota ta jest jednak złudna. Nie wystarczy zapisywać haseł w bazie danych i porównywać ich z tym, co poda użytkownik przy logowaniu. Zamiast tego należy przechowywać je w postaci uniemożliwiającej ich poznanie, co opisano w artykule Przechowywanie haseł.

Sekret wymyślony przez użytkownika może być krótki i przewidywalny. Odpowiednia polityka haseł nie dopuści jednak do ustawienia zbyt prostego hasła. W połączeniu z limitami prób logowania uniemożliwi w praktyce odgadnięcie hasła metodą brute force.

Zapamiętanie kilkudziesięciu różnych haseł jest trudne. Dlatego użytkownicy często ustawiają to samo hasło w wielu serwisach. Wyciek hasła z jednego z nich może pozwolić atakującemu przejąć inne konta użytkownika, na których użyto tego samego hasła i nie włączono dodatkowych zabezpieczeń.

Hasło można też po prostu wyłudzić od użytkownika. Fałszywa strona logowania może wyglądać tak samo jak prawdziwa, więc użytkownik wpisuje na niej swoje dane. Długość i złożoność hasła nie mają wtedy znaczenia.

Wyłudzenie nie wymaga zresztą fałszywej strony. O hasło może poprosić przez telefon osoba podająca się za pracownika działu wsparcia technicznego. Wiele innych wariantów opisano w artykule Jak rozpoznać phishing.

PIN odblokowujący kartę SIM lub klucz sprzętowy działa inaczej niż hasło do serwisu. Jest sprawdzany przez samo urządzenie, które blokuje się po kilku nieudanych próbach. Dzięki temu nawet czterocyfrowy PIN może zapewniać skuteczną ochronę.

Do kategorii wiedzy należą również odpowiedzi na pytania bezpieczeństwa, na przykład o nazwisko panieńskie matki lub pierwszą szkołę. Nie należy ich stosować. Te same pytania powtarzają się w wielu serwisach, a odpowiedzi bywają publicznie dostępne, znane bliskim albo łatwe do odgadnięcia.

Połączenie hasła i odpowiedzi na pytanie bezpieczeństwa nie stanowi uwierzytelniania wieloskładnikowego, ponieważ oba składniki opierają się na wiedzy.

Posiadanie

To najbardziej zróżnicowana kategoria. Należą do niej wychodzące z użycia karty z kodami, urządzenia i aplikacje generujące kody jednorazowe, telefony odbierające SMS-y lub powiadomienia, a także klucze sprzętowe.

Łączy je to, że do zalogowania potrzebny jest dostęp do konkretnego urządzenia. Może ono jednak zostać zgubione lub skradzione. Kto je zdobędzie, może spróbować je wykorzystać.

Najpopularniejsze są kody jednorazowe. Zwykle składają się z sześciu cyfr, co daje milion możliwych kombinacji. Bez zabezpieczenia przed atakami brute force taki kod może zostać odgadnięty.

Kod z SMS-a lub aplikacji można wyłudzić tak samo jak hasło – na przykład poprzez fałszywą stronę logowania. Krótki czas ważności jest tylko niewielkim utrudnieniem. Atakujący musi od razu przekazać kod do prawdziwego serwisu, co zwykle odbywa się automatycznie.

Powiadomienia push są pod tym względem jeszcze mniej bezpieczne. Użytkownik, który chwilę wcześniej wpisał dane na fałszywej stronie, spodziewa się prośby o potwierdzenie, więc jej zatwierdzenie jest dla niego naturalne.

Wysyłanie SMS-ów oznacza dla serwisu dodatkowe koszty, które rosną wraz z liczbą logowań.

Osobnym zastosowaniem jest potwierdzanie operacji. Wiadomość lub powiadomienie zawiera wtedy jej szczegóły, na przykład kwotę przelewu i numer rachunku odbiorcy. Użytkownik potwierdza więc konkretne działanie, a nie samo logowanie. Rozwiązanie to sprawdza się w bankowości, gdzie operacje są nieliczne i mają jasno określone parametry. W innych systemach jest niepraktyczne, ponieważ nikt nie będzie potwierdzał każdego otwarcia pliku czy wysłania wiadomości.

Cechy biometryczne

Biometria kojarzy się przede wszystkim ze skanem odcisku palca lub twarzy. Użytkownik nie musi niczego pamiętać, a potwierdzenie tożsamości jest zwykle szybkie i wygodne. Cechy biometryczne nietrudno jednak poznać. Zdjęcie twarzy można zrobić bez wiedzy użytkownika lub znaleźć w internecie. Odciski palców pozostają z kolei na dotykanych przedmiotach. Gdy ktoś pozna te cechy, nie można ich zmienić tak jak hasła.

Bezpieczeństwo zależy więc od tego, jak trudno obejść mechanizm rozpoznawania. Powinien on odrzucać imitacje odcisku palca oraz zdjęcia i nagrania twarzy.

Istotna jest ochrona zapisanego wzorca biometrycznego oraz wyniku weryfikacji. W przeciwnym razie atakujący mógłby je podmienić. Stosuje się zwykle dwa podejścia. Czujnik można sparować z urządzeniem. Rozpoznaje ono wtedy czujnik oraz wykrywa i blokuje próby jego podmiany lub symulacji.

Wzorzec można też przechowywać w czujniku, który sam przeprowadza porównanie i po rozpoznaniu użytkownika udostępnia zapisany w nim sekret.

Biometria najlepiej sprawdza się na urządzeniu użytkownika. Czujnik, wzorzec i wynik porównania tworzą wtedy jeden zamknięty układ.

Zdalne rozpoznawanie jest znacznie trudniejsze. Serwis otrzymuje wyłącznie zdjęcie lub nagranie. Nie jest w stanie ustalić, czy powstało ono w trakcie logowania, czy wcześniej, czy też zostało wygenerowane przez sztuczną inteligencję.

Passkeys

Passkeys, po polsku często nazywane kluczami dostępu, to obecnie jedyna powszechnie dostępna metoda logowania odporna na phishing. Taki klucz jest powiązany z adresem strony, więc fałszywa witryna nie otrzyma niczego, co da się wykorzystać.

Zapisuje się go na urządzeniu użytkownika: na telefonie, w menedżerze haseł albo na kluczu sprzętowym.

Passkey może zapewniać logowanie dwuskładnikowe, jeśli serwis zażąda weryfikacji użytkownika. Urządzenie poprosi wtedy o PIN lub odcisk palca. Do zalogowania potrzebne będą więc zarówno urządzenie, jak i PIN lub odcisk palca.

Samo żądanie weryfikacji nie wystarcza. Serwis musi sprawdzić, czy rzeczywiście została przeprowadzona.

Weryfikacja użytkownika w WebAuthn

Serwis prosi o weryfikację, ustawiając userVerification: "required". Przy domyślnej wartości preferred urządzenie może ją pominąć. Samo żądanie jest jednak przekazywane przez przeglądarkę użytkownika i można je zmienić.

Wynik weryfikacji zwraca dopiero urządzenie. W podpisanej odpowiedzi ustawia wtedy flagę UV na wartość 1. Serwis powinien sprawdzać jej wartość po swojej stronie. Jeśli oczekiwał weryfikacji, powinien odrzucać odpowiedzi, które jej nie potwierdzają.

Podsumowanie

Każda metoda uwierzytelniania ma swoje słabości. Dotyczy to nawet passkeys, choć są uznawane za jedno z najbezpieczniejszych dostępnych rozwiązań i przyszłość logowania. Klucz sprzętowy, na którym je zapisano, może zostać skradziony, a passkeys przechowywane w menedżerze haseł mogą zostać wykradzione przez złośliwe oprogramowanie.

Siła MFA wynika z połączenia zabezpieczeń, które wzajemnie się uzupełniają. Gdy jedno zawiedzie, drugie powinno nadal chronić konto. Dlatego składniki muszą mieć różne słabości: dopiero wtedy atakujący musi pokonać kilka niezależnych przeszkód. Jeśli jeden atak pozwala obejść oba składniki, dodatkowy etap logowania nie zapewnia przed nim ochrony.

Rekomendacje

Przy wdrażaniu MFA należy:

  • dobierać składniki tak, aby jeden atak nie wystarczył do obejścia obu,
  • sprawdzać wynik weryfikacji użytkownika, jeśli sam passkey ma zapewniać logowanie dwuskładnikowe,
  • wymagać MFA we wszystkich metodach logowania, a nie tylko w głównym formularzu, ponieważ atakujący wybierze drogę pozwalającą pominąć drugi składnik,
  • zaplanować odzyskiwanie dostępu równie starannie jak samo logowanie i umożliwić dodanie zapasowego klucza.