Ogólny sposób działania weryfikacji 2FA opiera się na sprawdzeniu czy jesteś tym za kogo się podajesz. Aby uwierzytelnienie się powiodło sprawdzane elementy muszą wskazywać na Ciebie. Na elementy te mogą składać się: „coś co posiadasz” (karta kredytowa, telefon); „coś co wiesz” (PIN, hasło) oraz „to kim jesteś” (linie papilarne, siatkówka oka, głos, rozpoznawanie twarzy). Spójność i zgodność dwóch (lub więcej) sprawdzanych cech umożliwi uwierzytelnienie.
Yubikey jest kluczem USB a jego zadaniem jest ochrona naszych kont wspierających ten model uwierzytelnienia w myśl zasady „coś co posiadasz”. Urządzenie umożliwia wykorzystanie go w procesie dwuskładnikowego uwierzytelnienia (hasło plus token) w takich serwisach jak: Google, Facebook, GitHub czy Drobbox. Użycie urządzenia nie ogranicza się tylko do sfery online, klucz również może nam posłużyć do logowania się w systemach Windows, MacOs czy Linux.
Cały proces logowania sprowadza się do umieszczenia tokenu w porcie USB i naciśnięciu złotego dysku oczywiście po uprzednim sparowaniu klucza z danym kontem do którego dostęp chcemy chronić.
Całość procesu oparta jest na wykorzystaniu standardu Universal 2nd Factor (U2F). Podczas rejestracji tokenu w danym serwisie, generowany jest klucz prywatny, który następnie szyfrowany jest hasłem głównym urządzenia i tak przygotowany pakiet danych jest przekazywany do danego serwisu. Podczas próby logowania następuje proces odwrotny - rozszyfrowanie. Zapytanie wysłane od serwisu online jest porównywane z wygenerowanym podczas rejestracji kluczem prywatnym. Jeśli wszystko się zgadza uzyskujemy dostęp do usługi.
Obsługa standardu U2F jak na razie dostępna jest tylko przy wykorzystaniu przeglądarki Chrome, Opera oraz Firefox (od wersji 57). Wcześniejsze wersje „liska” tej metody weryfikacji nie wspierają.
Sam token dostępny jest w kilku wersjach, które różnią się pomiędzy sobą możliwościami bądź użytym standardem portu USB. Pełne porównanie dostępne jest tu: https://www.yubico.com/products/yubikey-hardware/compare-yubikeys/
Najciekawszym modelem jest YubiKey NEO, który wspiera komunikację NFC dając nam możliwość wykorzystania klucza w połączeniu z smartfonem.
Ponieważ Yubikey w systemie jest wykrywany jako klawiatura posiada on możliwość zapisania w swojej pamięci dwóch 32 znakowych haseł. Wklejenie hasła odbywa się poprzez przytrzymanie przez określony czas złotego dysku - 1 sekunda powoduje wklejenie hasła zapisanego w slocie pierwszym, po 3 sekundach wpisanie hasła ze slotu drugiego. Funkcja ta pozwala na wykorzystanie klucza w procesie logowania się do systemu operacyjnego bądź np. podania hasła celem odszyfrowania wolumenu (TrueCrypt czy VeraCrypt).
Możliwości urządzenia nie kończą się na przedstawionych do tej pory przykładach gdyż przy jego pomocy i dodatkowemu oprogramowaniu możemy utworzyć swoje własne centrum generowania 6-znakowych haseł, które posłużą nam do uzyskania dostępu do naszych kont - coś na wzór Google Authenticator.
W wpisie tym chciałbym pokazać jak przy współudziale tokenu możemy chronić dostęp do serwisu Facebook oraz usług Google.
Przejdźmy zatem do omówienia wykorzystania klucza w praktyce. W pierwszej kolejności na „tapetę” bierzemy Google.
Rozpoczynamy od zalogowania się do swojego konta Google. Następnie wybieramy odnośnik: Logowanie się w Google
W kroku drugim włączamy: Weryfikację dwuetapową
Informacja o pomyślnym włączeniu mechanizmu zostanie wysłana na nasz adres email.
Google proponuje Nam kilka metod weryfikacji dwuetapowej:
- Kody zapasowe - karta z kodami jednorazowymi, do wykorzystania gdy nie mamy przy sobie smartfona,
- Potwierdzenia od Google - kody wysyłane w postaci smsa,
- Aplikacja authenticator - program instalowany na platformie Android bądź iOS, który generuje kody wykorzystywane w procesie logowania,
- Klucz bezpieczeństwa - klucz przypominający pendriva, podłączany do portu USB w pamięci, którego zaszyte są informacje uwierzytelniające.
Ponieważ Yubico jest właśnie takim kluczem wybieramy opcję: Dodaj klucz bezpieczeństwa
Po wybraniu opcji czeka Nas „niespodzianka” w postaci komunikatu o niemożliwości wykonania operacji z powodu użycia nieodpowiedniej przeglądarki. Wszystkie opisywane operacje wykonywałem w przeglądarce Firefox, bez wsparcia dla standardu U2F. Aby móc wykorzystać klucz Yubico musimy przesiąść się na Chrome, Operę bądź wykonać aktualizację przeglądarki Firefox do najnowszej wersji.
Została pobrana i zainstalowana przeglądarka Chrome.
Po uruchomieniu przeglądarki, zalogowaniu się na konto Google ponownie wybieramy opcję: Dodaj klucz bezpieczeństwa Przygotowujemy klucz ale jeszcze go do portu USB nie podłączamy. W nowo otwartym oknie wybieramy Dalej
Podłączamy token i przyciskamy na kluczu złotą tarczę.
Klucz został zarejestrowany.
Informację o używanym kluczu znajdziemy w opcjach weryfikacji dwuetapowej.
Gdy do procesu logowania jest używana przeglądarka nie wspierająca standardu U2F należy wykorzystać jedną z pozostałych metod weryfikacji. W przykładzie poniżej został użyty telefon w połączeniu z kodem dostarczanym w formie SMS-a.
Od tej pory gdy do logowania użyjemy przeglądarkę wspierającą klucz bezpieczeństwa (czyli Chrome, Opera, Firefox od wersji 57 włącznie) zostaniemy poproszeni o użycie klucza, jeśli ta sama operacja zostanie wykonana z poziomu np. przeglądarki Edge na nasz numer zostanie wysłany SMS z kodem weryfikacyjnym.
Jeśli chcemy usunąć zarejestrowany klucz to odpowiednią opcję znajdziemy w ustawieniach: Weryfikacji dwuetapowej
Rejestracja klucza została wykonana czas sprawdzić czy wszystko działa. Wykonujemy ponowne logowanie. Podczas pierwszego etapu wpisujemy hasło.
Po wpisaniu poprawnego hasła zostaniemy poproszeni o włożenie klucza Yubico.
Po podłączeniu klucza i wciśnięciu złotego dysku nastąpi zalogowanie do usług Google.
W razie jakichkolwiek problemów będziemy mogli dokończyć logowanie z wykorzystaniem wiadomości SMS bądź innej zdefiniowanej metody.
Klucz Yubico został poprawnie powiązany z serwisem Google.
Jak już wspomniałem Google nie jest jedynym serwisem, który wspiera ten typ uwierzytelnienia. Klucz Yubico możemy również połączyć z naszym kontem na Facebook-u.
Aby móc skorzystać z klucza podobnie jak w przypadku Google musimy włączyć weryfikację dwuetapową. Stosowne opcje znajdziemy w Ustawieniach na karcie Bezpieczeństwo i logowanie
Odszukujemy opcję: Używaj uwierzytelnienia dwuskładnikowego
Po wyborze opcji mamy możliwość określenia metody uwierzytelnienia.
W pierwszej kolejności włączamy mechanizm uwierzytelnienia dwuskładnikowego. Wybieramy: Skonfiguruj
Jak widać na zrzucie powyżej użyta przeglądarka nie wpiera uwierzytelnienia w postaci klucza bezpieczeństwa.
Dostępne metody uwierzytelnienia to:
- wiadomość tekstowa SMS - niezbędny kod celem przeprowadzenia uwierzytelnienia zostanie wysłany w postaci wiadomości SMS,
- klucze zabezpieczeń - zewnętrzne urządzenia takie jak opisywany klucz Yubico,
- generator kodów - kody wykorzystywane w procesie uwierzytelnienia są generowane przy wykorzystaniu aplikacji Facebook zainstalowanej na smartfonie,
- kody resetowania - karta kodów wykorzystywana w przypadku braku dostępu do telefonu.
- włączenie procesu uwierzytelnienia dwuskładnikowego ma swoje konsekwencje w sytuacjach w których konta Facebook używamy celem uzyskania dostępu do innych serwisów (w szczególności dotyczy to usług Xbox, Spotify czy Skype). Po włączeniu opcji podwójnej weryfikacji dostęp do wymienionych usług za pomocą konta Facebook będzie niemożliwy. Aby rozwiązać ten problem należy użyć opcji: Hasło do aplikacji za pośrednictwem, której uzyskamy dostęp do wymienionych serwisów za pośrednictwem konta Facebook.
- opcja: autoryzowane logowania pozwala nam na przejrzenie urządzeń co do których nie jest wymagane przeprowadzenie wprowadzenia dodatkowego kodu celem dokończenia procesu logowania.
Przejdźmy zatem do konfiguracji uwierzytelnienia dwuetapowego. Wybieramy opcję: Skonfiguruj. W nowo otwartym oknie potwierdzamy wolę włączenia funkcji.
Aby uaktywnić funkcję jeszcze raz musimy podać hasło do serwisu.
Uwierzytelnienie dwuskładnikowe zostało włączone.
Dodatkowo, osobnym emailem zostaniemy poinformowani o włączeniu mechanizmu dwustopniowej weryfikacji dostępu do konta.
Od teraz aby uzyskać dostęp do naszego konta Facebook będziemy musieli wprowadzić dodatkowy kod, który zostanie nam dostarczony za pomocą SMS-a.
Aby uniknąć każdorazowego podawania kodu, po zakończeniu procesu logowania możemy zdecydować czy użyta przeglądarka ma zostać zapisana. Wybranie opcji: Zapisz przeglądarkę spowoduje, że podczas kolejnej próby uzyskania dostępu do konta wymagane będzie jedynie hasło.
Metoda uwierzytelnienia oparta o wiadomość SMS, działa. Sprawdźmy zatem jak spisze się klucz Yubico. Ponownie przechodzimy do opcji uwierzytelnienia dwuskładnikowego. Odszukujemy sekcję Klucze zabezpieczeń i wybieramy opcję Dodaj klucz.
W oknie Dodaj klucz zabezpieczeń klikamy Dodaj klucz.
Po podłączeniu klucza i przytrzymaniu złotego przycisku wybieramy Kontynuuj.
Dodanie nowego klucza wymaga ponownego wprowadzenia hasła.
Po uwierzytelnieniu, opcjonalnie możemy zdefiniować nazwę naszego klucza.
Klucz Yubico został poprawnie powiązany z serwisem Facebook. Od tej pory proces logowania będzie przebiegał z wykorzystaniem klucza.
W przypadku braku klucza dostęp do konta uzyskamy dzięki kodowi SMS.
Sparowaliśmy klucz Yubico z kontami Google oraz Facebook. Czy jest to dobra metoda chroniąca dostęp do naszych kont? Wszystko zależy od naszych preferencji. Na pewno w dzisiejszych czasach ochrona dostępu do ważnych kont tylko przy użyciu hasła jest niewystarczająca a każda z metod podnosząca ochronę jest na plus.
Nie wszystkie serwisy umożliwiają użycie klucza jakim jest Yubico. Na szczęście to się zmienia (powoli) i coraz więcej portali dostrzega potrzebę wprowadzenia tego typu rozwiązań. Potrzeba stosowania dodatkowych zabezpieczeń dostępu do usług jest konieczna a token USB i hasło dość skutecznie bronią dostęp do naszych danych.
Komentarze
w google wystarczy google authenticator lum kod sms
Cytuję Przemek:
Nawet nie wiecie jak fajnie czytać takie komentarze. Przerwa długa bo nowe obowiązki ale nowe wpisy już tworzę.