Google Authenticator

Aplikacja Google Authenticator na telefonie

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

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:

Opis techniczny

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

 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

Google Authenticator używa algorytmu dla haseł jednorazowych bazujących na czasie zgodnie z RFC 6238.

Zobacz też

Przypisy

Linki zewnętrzne

  • Google Authenticator strona pomocy Google
  • D. M'Raihi, S. Machani, M. Pei, J. Rydell, TOTP: Time-Based One-Time Password Algorithm, RFC 6238, IETF, maj 2011, DOI10.17487/RFC6238, ISSN 2070-1721, OCLC 943595667 (ang.).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.