Google Authenticator
Google Authenticator – programowy token uwierzytelniania dwuskładnikowego, stworzony przez Google. Aplikacja generuje sześć cyfr, które należy podać podczas logowania razem z loginem i hasłem do usług Google.
Można stworzyć również listę „papierowych” haseł jednorazowych (tym razem jest to kilka zestawów ośmiocyfrowych), które można użyć awaryjnie w przypadku braku dostępu do telefonu (aplikacji). Hasła te należy zapisać lub wydrukować i przechowywać w bezpiecznym, ale dostępnym miejscu, np. portfelu. W każdej chwili listę tych haseł można odwołać i wygenerować nowy zestaw.
Google Authenticator można wykorzystać do logowania do systemu w połączeniu z modułem PAM i OpenSSH.
Implementacje
[edytuj | edytuj kod]Google stworzyło wersje dla iOS[1], BlackBerry, Android[2] i moduł PAM[3]. Istnieją implementacje stworzone przez inne osoby na następujące platformy:
- Windows Phone 7
- Windows Mobile
- Java CLI
- Java GUI
- J2ME
- PalmOS
- webOS
- Windows
Opis techniczny
[edytuj | edytuj kod]Serwer tworzy 80-bitowy tajny klucz dla każdego użytkownika w postaci ciągu 16 znaków Base32 oraz jako Kod QR. Klient tworzy skrót HMAC-SHA1 używając do tego celu tajnego klucza oraz wiadomości, która jest liczbą 30-sekundowych okresów, które upłynęły od czasu uniksowego. Część HMAC jest wyodrębniana i konwertowana na sześciocyfrowy kod.
Pseudokod
[edytuj | edytuj kod]function GoogleAuthenticatorCode(string secret) key := base32decode(secret) message := current Unix time ÷ 30 hash := HMAC-SHA1(key, message) offset := last nybble of hash truncatedHash := hash[offset..offset+3] //4 bajty zaczynające się od ofsetu Set the first bit of truncatedHash to zero //usuń najbardziej znaczący bit code := truncatedHash mod 1000000 pad code with 0 until length of code is 6 return code
Technologia
[edytuj | edytuj kod]Google Authenticator używa algorytmu dla haseł jednorazowych bazujących na czasie zgodnie z RFC 6238.
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]Linki zewnętrzne
[edytuj | edytuj kod]- Google Authenticator strona pomocy Google
- D. M'Raihi i inni, TOTP: Time-Based One-Time Password Algorithm, RFC 6238, IETF, maj 2011, DOI: 10.17487/RFC6238, ISSN 2070-1721, OCLC 943595667 (ang.).