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

edytuj

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

edytuj

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
 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

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

Zobacz też

edytuj

Przypisy

edytuj

Linki zewnętrzne

edytuj
  • 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.).

📚 Artikel Terkait di Wikipedia

Kod źródłowy

źródłowy i do czego służy? [online], Enter The Code, 8 czerwca 2022 [dostęp 2026-02-25] . Source Code Complete Guide | Examples, Types, & Tools | Sonar

ASCII

ASCII (czyt. /ˈæski/, skrót od ang. American Standard Code for Information Interchange) – siedmiobitowy system kodowania znaków, używany we współczesnych

Wojownicy (cykl powieściowy)

harpercollins.com (ang.) Warriors: The Broken Code #1: Lost Stars, www.harpercollins.com (ang.) Warriors: The Broken Code #2: The Silent Thaw, www.harpercollins

Erin Hunter

Vision of Shadows) – 6 książek w latach 2016-2018. Warriors: The Broken Code – 6 książek w latach 2019-2021. Warriors: A Starless Clan – 6 książek w latach

Konkurs Piosenki Eurowizji 2024

Szwecji. Finał konkursu wygrał Nemo, reprezentant Szwajcarii z piosenką „The Code”, za którą otrzymał łącznie 591 punktów w głosowaniu jurorów i telewidzów

Python

silnia(int x) { if (x == 0) return 1; else return x * silnia(x-1); } silnia w Pythonie: def silnia(x): if x == 0: return 1 else: return x * silnia(x - 1) Dla

Wolfenstein: Enemy Territory

Wolfenstein: Enemy Territory (wydana także jako Return to Castle Wolfenstein: Enemy Territory) – darmowa gra komputerowa z gatunku first-person shooter

GNU Compiler Collection

*labels [nr]; label0: printf("Code 0\n"); return; label1: printf("Code 1\n"); return; } int main() { foo(0); foo(1); return 0; } GCC umożliwia użycie asemblera