Uwierzytelnianie dwuskładnikowe 2FA#

Autor: Maciej Grześkowiak

2FA uwierzytelnianie dwuskładnikowe (czynnikowe), to metoda zabezpieczania kont online, która wymaga dwóch różnych metod weryfikacji tożsamości przed logowaniem do serwisu.

Zazwyczaj pierwszym czynnikem jest hasło, a drugim może być kod sms, kliknięcie na telefonie, jednorazowy kod OTP lub dane biometryczne. Od 2023 roku możliwe jest wykorzystanie techniki logowania do serwisu zwaną logowaniem bezhasłowym. Logowanie bezhasłowe może być pierwszym, drugim czynnikiem logowania albo kolejnym składnikiem logowanie. Mówimy wtedy, że wykorzystujemy uwierzytelnianie wieloskładnikowe MFA. W dzisiejszym kursie poznany nastepujące techniki logowania:

  1. uwierzytelnianie 2FA na podstawie hasła i kliklięcia na telefonie

  2. uwierzytelnianie 2FA na podstawie hasła i kodów jednorazowych

  3. uwierzytelnianie bezhasłowe

Uwierzytelnianie 2FA na podstawie hasła i kliklięcia na telefonie#

Zazwyczaj pierwszym czynnikiem uwierzytelniania podczas logowania do serwisu jest podanie hasła. Często drugi czynnik uwierzytelnienia do usługi może być związany z telefonem lub laptopem. Może być to przysłany sms zawierający kod, który nalezy podać podczas logowania lub prośba o wykonanie jakiejs czynności na telefonie lub laptopie np. kliknięcie opcji „Potwierdź, że to Ty”.

Załóżmy, że Alice ma konto na Google. Ponadto załóżmy, że Alice chce użyć drugiego czynnika podczas logowania do serwisu Google, którym jest klikniecie na telefonie opcji w stylu „Potwierdź, że to Ty”. Aby zrealizować taką funkcjonalność muszą zostać wykonane dwa główne kroki:

  1. w ustawieniach konta Google Alice musi byc włączona opcja uwierzytelnienia dwuskładnikowego 2FA,

  2. logowanie do serwisu Googla musi się odbywać za pomocą telefonu Alice.

W ćwiczeniu poniżej bedziemy integrować konto na Google z telefonen by uzyskać 2FA. Jeśli nie posiadasz konta na Google musisz się tam zarejestrować.

Konfiguracja w Google funkcjonalności 2FA#

  1. Zaloguj się do Twojego konta na Google i wybierz Zarządzaj kontem Google

OT

  1. Wybierz Bezpieczeństwo

OT

3 W sekcji Sposób logowania sie w Google wybierz Weryfikacja dwuetapowa

OT

  1. w sekcji Weryfikacja dwuetapowa Włącz Weryfikację dwuetapowę

OT

  1. Zobaczysz informację, że jesteś chroniony przy użyciu weryfikacji dwuetapowej. Kliknij Gotowe.

OT

Zadanie: Wyloguj się z Googla. Zaloguj się do Googla najlepiej w innej przegladarce niż w tej co wykorzystywałes przed chwilą.

Logowanie do serwisu Googla z 2FA#

Wyloguj się z Googla. Zaloguj się do Googla najlepiej w innej przegladarce niż w tej co wykorzystywałes przed chwilą. Wty celu wykonaj kroki:

  1. Wejdź na stronę serwisu Google

OT

  1. Kliknij Zaloguj

OT

  1. Podal swój adres mejlowy lub podaj numer telefonu

OT

  1. Podaj pierwszy czynnik czyli hasło

OT

  1. Sprawdź powiadomienie na swoim telefonie i kliknij Tak

OT

Uwierzytelnianie za pomocą kodów jednorazowych OTP#

Bezpieczniejszym drugim czynnikiem od sms, czy klinięcia na telefonie, jest uwierzytelnienie za pomocą kodów jednorazowych. Technika ta wykorzystuje aplikację, która nazywa się Authenticator i może ona być zainstalowana na komputerze lub telefonie. Authenticator generuje jednorazowy 6-ścio cyfrowe kod, który należy podać podczas logowania do serwisu. Taki kod jest generowany na podstawie sekretu, który muszą współdzielić dwie strony protokołu - Alice i serwis, do którego chce się ona logować. Alice sekret może zapisać na komputerze, telefonie lub na kluczu YubiKey.

Załóżmy, że Alice jest właścicielem YubiKey i ma konto na Linkedln. Ponadto załóżmy, że Alice chce użyć drugiego czynnika podczas logowania do serwisu Linkedln, którym są jednorazowe kody OTP. A by to zrealizować musza zostać wykonane dwa główne kroki:

  1. ustalony musi być wspólny sekret między YubiKey, a serwisem linkedln. Alice będzie miała zapisany ten sekret na kluczu YubiKey.

  2. logowanie do serwisu Linkedln musi się odbywać za pomocą klucza YubiKey z wykorzystaniem Authenticatora Yubikey.

W ćwiczeniu poniżej bedziemy integrować konto na linkedn z aplikacją Yubikey Authenticator. Jeśli nie posiadasz konta na linkedl musisz sie tam zarejestrować.

Scenariusz: Likendln wygeneruje losowy sekret i przekaże go bezpiecznie za pomocą aplikacji Yubikey Authenticator urzędzeniu YubiKey (klucz sprzetowy USB). Nastepnie, za pomocą wspólnego uzgodnionego sekretu, własciciel klucza będzie uwierzytelniać się konta Likedln. Aplikacja Yubikey Authenticator podstawie sekretu i aktualnego czasu wygeneruje jednorazowy, ważny tylko 30 sekund, kod TOTP, który należy podać podczas logowania do Linkedln.

Uzgodnienie wspólnego sekretu między Linkedln i YubiKey#

  1. Zaloguj się do linkedln. Wybierz swoje konto oraz ustawienia i prywatność

OT

  1. Wybierz Logowanie i Bezpieczeństwo

OT

  1. Wybierz: Dwustopniowa weryfikacja > Włącz

OT

  1. Wybierz Ustawienia

OT

  1. Wybierz Metodę weryfikacji: Apikacja uwierzytelniająca. Kliknij Kontynuuj.

OT

  1. Podaj hasło do Linkedln

OT

  1. Otrzymasz nastepujący ekran w aplikacji Linkedln. za chwilę do niego wrócimy.

OT

  1. Teraz uruchom Yubico Authenticator. Jesli go nie posiadasz, to zainstaluj Yubico Authenticator

https://www.yubico.com/products/yubico-authenticator/#h-download-yubico-authenticator

OT

  1. Podłącz do portu USB klucz YubiKey. Po prawidłowym włączeniu klucza YubiKey zobaczysz na ekranie Stronę Główną aplikacji postaci:

OT

  1. Wybierz konta i dodaj nowe konto.

OT

  1. Wróć do aplikacji linkedln i jednocześnie pozostać w aplikacji Yubikey Authenticator. Kliknij dodaj konto w Yubikey Authenticator.

OT

  1. Kliknij Zeskanuj kod QR

OT

  1. Wpisz nazwę konta oraz zaznacz Wymagaj dotknięcia.

OT

  1. Kilkając oczko możesz sprawdzic czy obie strony protokołu mają ten sam sekret. Kliknij Zapisz w Yubikey Authenticator.

OT

  1. Kliknij Kontynuuj w Linkedln.

OT

  1. Dotknij Klucza YubiKey

OT

  1. Skopiuj kod OTP do schowka

OT

  1. Wklej kod OTP do Linkedln. Wybierz zweryfikuj.

OT

  1. Jeśli weryfikacja sie powiodła, to zobaczysz taki ekran.

OT

Wyloguj się z Linkedln i zaloguj sie ponownie. Możesz to zrobic w innej przegladarce.

Uwierzytelnienie do Linkedln za pomocą YubiKey Authenticator.#

  1. Zaloguj się i podaj hasło do linkedln

OT

  1. Zostaniesz poproszony o podanie kodu jednorazowego OTP

OT

  1. Aby wygenerować kod jenorazowy OTP otwórz YubiKey Authenticator i w polu Konta kliknij generuj kod.

OT

  1. Kliknij Oblicz

OT

  1. Dotknij klucza YubiKey

OT

Uwiewrzytelnianie bezhasłowe#

Ostatnio pojawiła się możliwość uwierzytelniania do usług i serwisów bez potrzeby podawania hasła. W tym celu wykorzystuje się protokół FIDO2. Aby logować się w ten sposób do swojego konta, Alice może wykorzystać swój telefon lub klucz YubiKey. Załóżmy, że Alice jest włascicielem YubiKey i ma konto na GitHub. Ponadto, Alice chce się uwierzytelniać do serwisu GitHub protokołem FIDO2. A by to zrealizować muszą być wykonane dwa główne kroki:

  1. muszą być wygenerowane parametry protokołu FIDO2. Tymi parametrami są klucz publiczny i klucz tajny do protokołu podpisu cyfrowego. Klucz tajny będzie zapisany na YubiKey, a publiczy w serwisie GitHub.

  2. logowanie do serwisu GitHub musi się przy wykorzystaniu klucza YubiKey Alice. Dodatkowo klucz tajny będzie chroniony 6-cio cyfrowym kodem PIN.

Scenariusz:

(Generowanie parametrów FIDO2)

Yubikey wygeneruje parę kluczy do podpisu cyfrowego: klucz tajny do podpisu i klucz publiczny do weryfikacji podpisu. YubiKey bezpiecznie przekaże klucz publiczny do GitHub. To wykonyją kroki 1-13 poniżej.

(Uwierzytelnienie bezhasłowe, FIDO2)

Generowanie parametrów FIDO2#

Uwaga: Wykonanie poniższego zadania wymaga konta na GitHub. jeśli go nie posiadasz, to się zarejestruj na GitHub.

  1. Zaloguj się na GitHub i wybierz ustawienia konta

OT

  1. Wybierz Settings

OT

  1. Wybierz Password and Authentication

OT

  1. Wybierz Add pass-key

OT

  1. Wybierz Add pass-key

OT

  1. Wybierz Inne opcje

OT

  1. Zaznacz Klucz bezpieczeństwa

OT

  1. Włóż Yubikey do portu USB. Jeśli potrzeba, to dotknij klucza Yubikey.

OT

  1. Podaj PIN, który będzie chronił dostęp do klucza YubiKey. Zapamietaj go!!! Kliknij Dalej

OT

  1. Potwierdź PIN do klucza YubiKey. Jeśli potrzeba, to dotknij klucza Yubikey.

OT

  1. Jeśli to widzisz, to udało się Ci się dodać usługę password less. Wpisz nazwę klucza.

OT

  1. Jeśli nazwano klucz klucz_Alice, to w ustawieniach GitHub będzie on widoczny jak na obrazku

OT

  1. Wyloguj się z GitHub. Zapamiętaj ustawiłeś tylko jeden czynnik do uwierzytelniania. Jest to bezhasłowe uwierzytelnianie. Jesli chcesz możesz dodać drugi czynnik.

Uwierzytelnienie bezhasłowe za pomocą YubiKey#

  1. W celu bezhasłowego zalogowania sie do GitHub zaznacz Continue with passkey

OT

  1. Wybierz, że logujesz się za pomocą klucza bezpieczeństwa. Kliknij Dalej.

OT

  1. Włóż klucz YubiKey do portu USB. Jeśli potrzeba, to dotknij klucza Yubikey.

OT

  1. Podaj PIN do klucza YubiKey. Jeśli potrzeba, to dotknij klucza Yubikey.

OT

  1. Brawo zalogowałeś się bezhasłowo do GitHub. Zapamiętaj ustawiłeś tylko jeden czynnik do uwierzytelniania. Można dodać drugi czynnik.