Google Authenticator — Google Authenticator
Deweloper(zy) | |
---|---|
Pierwsze wydanie | 20 września 2010 |
Magazyn | github |
Napisane w | |
System operacyjny | Android , iOS , BlackBerry OS |
Platforma | mobilny |
Licencja | Zastrzeżone oprogramowanie freeware (wcześniejsze wersje były objęte licencją Apache License 2.0) |
Strona internetowa |
graj w |
Google Authenticator to programowy program uwierzytelniający firmy Google, który implementuje usługi weryfikacji dwuetapowej przy użyciu algorytmu hasła jednorazowego opartego na czasie (TOTP; określony w dokumencie RFC 6238) i algorytmu hasła jednorazowego opartego na HMAC (HOTP; określonego w dokumencie RFC) 4226), do uwierzytelniania użytkowników aplikacji.
Logując się do witryny obsługującej Authenticator (w tym usług Google) lub korzystając z aplikacji innych firm obsługujących Authenticator, takich jak menedżery haseł lub usługi hostingu plików , Authenticator generuje hasło jednorazowe składające się z sześciu do ośmiu cyfr, które użytkownicy muszą wprowadzić oprócz ich zwykłe dane logowania.
Poprzednie wersje oprogramowania były open-source, ale od 2013 wydania są zastrzeżone .
Typowy przypadek użycia
Aby korzystać z Authenticator, aplikacja jest najpierw instalowana na smartfonie. Musi być skonfigurowany dla każdej witryny, z którą ma być używany: witryna udostępnia użytkownikowi wspólny tajny klucz za pośrednictwem bezpiecznego kanału, który ma być przechowywany w aplikacji Authenticator. Ten tajny klucz będzie używany do wszystkich przyszłych logowań do witryny.
Aby zalogować się do witryny lub usługi, która wykorzystuje uwierzytelnianie dwuskładnikowe i obsługuje Authenticator, użytkownik podaje nazwę użytkownika i hasło do witryny, które oblicza (ale nie wyświetla) wymagane sześciocyfrowe hasło jednorazowe i prosi użytkownika o wprowadź go. Użytkownik uruchamia aplikację Authenticator, która niezależnie oblicza i wyświetla to samo hasło, które wpisuje użytkownik, uwierzytelniając swoją tożsamość.
W przypadku tego rodzaju uwierzytelniania dwuskładnikowego sama znajomość nazwy użytkownika i hasła nie wystarczy do włamania się na konto użytkownika; osoba atakująca potrzebuje również znajomości wspólnego tajnego klucza lub fizycznego dostępu do urządzenia z uruchomioną aplikacją Authenticator. Alternatywną drogą ataku jest atak typu „ man-in-the-middle” : jeśli komputer używany do procesu logowania zostanie skompromitowany przez trojana , wówczas nazwa użytkownika, hasło i hasło jednorazowe mogą zostać przechwycone przez trojana, który następnie zainicjować własną sesję logowania do serwisu lub monitorować i modyfikować komunikację między użytkownikiem a serwisem.
Opis techniczny
Podczas konfiguracji usługodawca generuje 80-bitowy tajny klucz dla każdego użytkownika (podczas gdy RFC 4226 §4 wymaga 128 bitów i zaleca 160 bitów). Jest on przesyłany do aplikacji Authenticator jako 16, 26 lub 32 znakowy ciąg base32 lub jako kod QR .
Następnie, gdy użytkownik otwiera aplikację Authenticator, oblicza wartość skrótu HMAC - SHA1 przy użyciu tego tajnego klucza. Komunikat, który jest HMAC-ed może być:
- liczba 30-sekundowych okresów od epoki Uniksa ( TOTP ); lub
- licznik, który jest zwiększany z każdym nowym kodem ( HOTP ).
Część HMAC jest wyodrębniana i wyświetlana użytkownikowi jako sześciocyfrowy kod.
Licencja na kod źródłowy
Aplikacja Google Authenticator na Androida była pierwotnie open source, ale później stała się zastrzeżona. Google udostępnił wcześniejsze źródło swojej aplikacji Authenticator w swoim repozytorium GitHub ; powiązana strona rozwoju stwierdza:
„Ten projekt open source umożliwia pobranie kodu obsługującego wersję 2.21 aplikacji. Kolejne wersje zawierają przepływy pracy specyficzne dla Google, które nie są częścią projektu”.
Po tym, jak Google Authenticator przestał być open source, stworzono klon bezpłatnego oprogramowania o nazwie FreeOTP , w większości przepisany na nowo, ale zawierający trochę kodu z oryginału.
Google udostępnia wersje aplikacji Authenticator na Androida , BlackBerry i iOS .
Zobacz też
Bibliografia
Zewnętrzne linki
- Google Authenticator w Pomocy Google
- Google Authenticator (Android) i Google Authenticator (inne) starsze kody źródłowe na GitHub
- Kod źródłowy modułu PAM Google Authenticator na GitHub
- Implementacja Google Authenticator w Pythonie na Stack Overflow
- Authenticator na F-Droid
- Implementacja Django-MFA przy użyciu Google Authenticator - Django-mfa to prosty pakiet, który dodaje dodatkową warstwę bezpieczeństwa do Twojej aplikacji internetowej django. Daje aplikacji internetowej losowo zmieniające się hasło jako dodatkową ochronę.
- Kod źródłowy wersji 1.02 na GitHub