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
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
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, DOI: 10.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.
- 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:
- 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.
- 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.
- 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.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.