Przegląd
Uwierzytelnianie dwuskładnikowe (znane również jako 2FA) to mechanizm łączący dwie różne metody uwierzytelniania w celu uwierzytelniania użytkowników. W marcu 2011 roku Google ogłosiło wykorzystanie uwierzytelniania dwuskładnikowego online, a następnie MSN i Yahoo.
Oprócz weryfikacji nazwy użytkownika i hasła, uwierzytelnianie dwuskładnikowe wymaga także połączenia innego fizycznego urządzenia, takiego jak token RSA lub telefon komórkowy. Produkty certyfikowane dwuskładnikowo można ogólnie podzielić na dwie kategorie:
Urządzenia sprzętowe, które mogą generować tokeny Aplikacja na smartfona
OTP
Hasłem używanym w weryfikacji dwuetapowej jest hasło jednorazowe (OTP), znane również jako hasło dynamiczne. Jest to silna technologia uwierzytelniania, która wykorzystuje technologię kryptografii do dzielenia kluczy między klientami a serwerami, stanowi bardzo wygodny techniczny sposób na ulepszenie obecnej statycznej uwierzytelniania haseł i stanowi ważną technologię uwierzytelniania dwuetapowego.
OTP to skrót od One-Time Password, co oznacza jednorazowe hasło. Dzieli się na następujące dwa typy:
HOTP (algorytm jednorazowego hasła opartego na HMAC)
HOTP to jednorazowe hasło generowane na podstawie algorytmu HMAC, znanego również jako dynamiczne hasło do synchronizacji zdarzeń, które jest specyfikacją algorytmu opublikowaną przez ITEF, a pseudokod wygląda następująco:
Klient i serwer negocjują wcześniej klucz K do wygenerowania jednorazowego hasła. Klient i serwer mają licznik zdarzeń C i synchronizują wartości liczenia wcześniej do tego zdarzenia. Truncate to algorytm, który przekształca 20-bajtowy ciąg wygenerowany przez HMAC-SHA-1 na kilka cyfr po przecinku.
TOTP (Algorytm jednorazowego hasła opartego na czasie)
TOTP to ulepszona wersja HOTP, która wykorzystuje czas do zastąpienia licznika zdarzeń C w HOTP, znanego również jako dynamiczny szyfr do synchronizacji czasu. Pseudokod:
T0 to początkowy czas testowy, który domyślnie wynosi 0 X to krok czasowy, który domyślnie wynosi 30 sekund Oficjalna dokumentacja daje kasztanat, zakładając aktualny czas unix = 59, T0 = 0, X = 30, a następnie T=1 Zakładając aktualny czas unix=60, T0=0, X=30, wtedy T=2 Oznacza to, że wartość T jest zaokrąglana w dół, a liczba dziesiętna odrzucana
Z powyższego rysunku wynika, że algorytm wejściowy składa się z dwóch głównych elementów: jeden to wspólny klucz (znany również jako ziarno), a drugi to liczenie (lub czynnik czasu), który jest obliczany przez konkretny algorytm. Jeśli oba elementy są spójne, serwer i klient obliczą ten sam wynik, umożliwiając funkcjonalność uwierzytelniania.
|