Google Authenticator
Google Authenticator är ett program för tvåstegsautentisering med tidsbaserad engångslösenordsalgoritm ( TOTP ) och HMAC-baserad engångslösenordsalgoritm ( HOTP ) från Google LLC . Tjänsten implementerar de algoritmer som specificeras i RFC 6238 och RFC 4226 . [2]
Authenticator representerar ett 6- eller 8-siffrigt engångsnumeriskt lösenord som användaren måste ange utöver användarnamnet och lösenordet för att logga in på Google eller andra tjänster. Authenticator kan också generera koder för tredjepartsapplikationer som lösenordshanterare eller filvärdtjänster. Tidigare versioner av programmet var tillgängliga som öppen källkod på GitHub , men de senaste utgåvorna är proprietära för Google. [3]
Användningsexempel
Vanligtvis måste användare först installera applikationen på sin mobila enhet. För att komma in på webbplatsen eller använda tjänsterna för tjänsten måste du ange ett användarnamn och lösenord, starta Authenticator-applikationen och ange det genererade engångslösenordet i ett specialfält.
För att göra detta tillhandahåller webbplatsen den delade hemliga nyckeln till användaren, som måste lagras i Google Authenticator-appen. Denna hemliga nyckel kommer att användas för alla framtida inloggningar till webbplatsen.
Med 2-stegs autentisering räcker det inte att bara känna till användarnamnet/lösenordet för att knäcka ett konto . Angriparen måste också känna till den hemliga nyckeln eller ha fysisk åtkomst till enheten med Google Authenticator. En alternativ väg är en MITM- attack: om en användares dator är infekterad med en trojan kan användarnamnet, lösenordet och engångskoden fångas upp för att sedan initiera sin egen inloggningssession på webbplatsen, eller övervaka och ändra information mellan användaren och webbplatsen.
Implementeringar
Google Authenticator är tillgänglig på Android , [4] BlackBerry och iOS [5] . Flera tredjepartsimplementeringar är också tillgängliga:
- Windows Phone 7.5/8/8.1/10: Microsoft Authenticator [6] Virtual TokenFactor [7]
- Windows Mobile: Google Authenticator för Windows Mobile [8]
- Java CLI: Authenticator.jar [9]
- Java GUI: JAuth [10] FXAuth [11]
- J2ME: gauthj2me [12] lwuitgauthj2me [13] Mobile-OTP (endast kinesiska) [14] totp-me [15]
- Palm OS: gauthj2me [16]
- Python: onetimepass [17]
- PHP: GoogleAuthenticator.php [18]
- Ruby: rotp, [19] twofu [20]
- Rails: active_model_otp [21] (tredje parts implementering)
- webOS: GAuth [22]
- Windows: gauth4win [23] MOS Authenticator [24] WinAuth [25]
- .NET: TwoStepsAuthenticator [26]
- HTML5: html5-google-authenticator [27]
- MeeGo/Harmattan (Nokia N9): GAuth [28]
- Sailfish OS: SGAuth, [29] SailOTP [30]
- Apache: Google Authenticator Apache Module [31]
- PAM: Google Pluggable Authentication Module [32] oauth-pam [33]
- Backend: LinOTP (Management Backend implementerad i python)
- Chrome/Chrome OS: Authenticator [34]
- iOS: OTP Auth [35]
Teknisk beskrivning
Tjänsteleverantören genererar en 80-bitars hemlig nyckel för varje användare (även om RFC 4226 § 4 kräver minst 128 bitar och rekommenderar 160 bitar). [36] Nyckeln tillhandahålls som en 16-, 26-, 32-siffrig Base32 -kodad sträng eller som en QR-kod . Med hjälp av den hemliga nyckeln genererar klienten en HMAC - SHA1 från:
- antal 30-sekundersintervaller sedan början av " UNIX-eran " för TOTP- varianten
- en räknare som ökar med varje ny kod för HOTP- varianten .
HMAC-delen extraheras sedan och konverteras till en 6-siffrig kod.
Pseudokod för tidsbaserad OTP
funktion GoogleAuthenticatorCode ( stränghemlighet ) // baserat på RFC 4226- nyckel := base32decode ( hemlig ) // nyckel : array av uint8- meddelande := htobe64 ( aktuell Unix - tid / 30 ) // meddelande: uint64, gör det till big-endian hash : = HMAC - SHA1 ( nyckel , meddelande ) // hash: array av uint8 offset := sista biten av hash // offset := hash[hash.size() - 1] & 0x0F trunkeradHash := ( hash [ offset ] << 24 ) | ( hash [ offset + 1 ] << 16 ) // truncatedHash: uint32 big-endian | ( hash [ offset + 2 ] << 8 ) | hash [ offset + 3 ] truncatedHash = truncatedHash & 0 x7FFFFFFF // reset MSB code := truncatedHash mod 1000000 pad kod med 0 tills längden på koden är 6 returkod // kod : sträng
Pseudokod för händelse/räknare OTP
funktion GoogleAuthenticatorCode ( sträng hemlig )
nyckel := base32avkoda ( hemlig )
meddelande := räknare kodad på 8 bytes
hash := HMAC - SHA1 ( nyckel , meddelande )
offset := sista biten av hash
trunkeradHash := hash [ offset .. offset + 3 ] //4 byte som börjar vid offset
Ställ in den första biten av truncatedHash till noll //ta bort den mest signifikanta
bitkoden := truncatedHash mod 1000000
pad kod med 0 tills längden på koden är 6
returkod
Överföra konton
Användare kan välja vilka konton som ska exporteras och sedan, efter att ha verifierats med enhetens PIN-kod eller biometrisk autentisering, visa en QR-kod som kan skannas av en annan telefon med hjälp av Authenticator i importläge.
Anteckningar
- ↑ Google gör ditt konto mycket säkrare med tvåstegsautentisering - TechCrunch . TechCrunch (20 september 2010). Hämtad 12 mars 2016. Arkiverad från originalet 12 mars 2016. (obestämd)
- ↑ GitHub - google/google-authenticator: Open source-version av Google Authenticator (förutom Android-appen ) . GitHub . Google. — "Dessa implementeringar stöder den HMAC-baserade engångslösenordsalgoritmen (HOTP) specificerad i RFC 4226 och den tidsbaserade engångslösenordsalgoritmen (TOTP) specificerad i RFC 6238. " Hämtad 27 juli 2016. Arkiverad från originalet 26 januari 2021.
- ↑ Willis, Nathan (22 januari 2014). " FreeOTP multi-factor autentisering arkiverad 31 oktober 2020 på Wayback Machine ". LWN.net . Hämtad 10 augusti 2015.
- ↑ https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 Arkiverad 2 februari 2021 på Wayback Machine A
- ↑ Google Authenticator . App Store . Hämtad 27 juli 2016. Arkiverad från originalet 22 december 2015. (obestämd)
- ↑ Authenticator (4 april 2013). Hämtad 27 juli 2016. Arkiverad från originalet 17 oktober 2019. (obestämd)
- ↑ Virtual TokenFactor (inte tillgänglig länk) (26 februari 2012). Hämtad 27 juli 2016. Arkiverad från originalet 8 september 2013. (obestämd)
- ↑ [APP Google Authenticator för Windows Mobile] . XDA-utvecklare . Hämtad 27 juli 2016. Arkiverad från originalet 19 april 2019. (obestämd)
- ↑ http://blogg dot jamesdotcuff dot net (nedlänk) . Hämtad 27 juli 2016. Arkiverad från originalet 1 augusti 2014. (obestämd)
- ↑ mclamp/JAuth . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 4 augusti 2015. (obestämd)
- ↑ kamenitxan/FXAuth . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 5 september 2020. (obestämd)
- ↑ gauthj2me - Google-autentisering i Java Mobile, j2me - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 6 januari 2016. (obestämd)
- ↑ lwuitgauthj2me - Google Authenticator för J2ME-telefoner - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 16 mars 2016. (obestämd)
- ↑ chunlinyao / mobile-otp - Bitbucket (nedlänk) . Hämtad 27 juli 2016. Arkiverad från originalet 15 oktober 2017. (obestämd)
- ↑ totp-me - TOTP för Java ME - Google autentisering . Hämtad 27 juli 2016. Arkiverad från originalet 5 januari 2018. (obestämd)
- ↑ gauth.prc - gauthj2me - Google Authenticator för Palm OS (konverterad från java) - Google Autentisering i Java Mobile, j2me - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 6 januari 2016. (obestämd)
- ↑ tadeck/onetimepass . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 27 oktober 2020. (obestämd)
- ↑ chregu/GoogleAuthenticator.php . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 29 september 2020. (obestämd)
- ↑ rotp - RubyGems.org - din gemenskap pärla värd . Hämtad 27 juli 2016. Arkiverad från originalet 11 juli 2019. (obestämd)
- ↑ ukazap/twofu . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 12 september 2020. (obestämd)
- ↑ heapsource/active_model_otp . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 5 december 2020. (obestämd)
- ↑ GAuth . Hämtad 27 juli 2016. Arkiverad från originalet 20 oktober 2020. (obestämd)
- ↑ gauth4win - Google Authenticator för Windows - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 11 januari 2016. (obestämd)
- ↑ MOS Authenticator Home . Hämtad 27 juli 2016. Arkiverad från originalet 17 februari 2020. (obestämd)
- ↑ winauth - Windows Authenticator för Battle.net / World of Warcraft / Guild Wars 2 / Glyph / WildStar / Google / Bitcoin - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 17 maj 2015. (obestämd)
- ↑ glacasa/TwoSteps Authenticator . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 5 december 2020. (obestämd)
- ↑ gbraad/html5-google-authenticator . GitHub . Hämtad 27 juli 2016. Arkiverad från originalet 5 juli 2014. (obestämd)
- ↑ Techtransit. Nokia Store: Ladda ner GAuth och många andra spel, bakgrundsbilder, ringsignaler och mobilappar på din Nokia-telefon (länk ej tillgänglig) . Hämtad 27 juli 2016. Arkiverad från originalet 12 juli 2014. (obestämd)
- ↑ SGAuth . Hämtad 27 juli 2016. Arkiverad från originalet 11 juli 2019. (obestämd)
- ↑ SailOTP . Hämtad 27 juli 2016. Arkiverad från originalet 10 januari 2021. (obestämd)
- ↑ google-authenticator-apache-module - Apache-modul för tvåfaktorsautentisering via Google Authenticator - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 19 november 2015. (obestämd)
- ↑ google-autenticator - Tvåstegsverifiering - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 10 februari 2015. (obestämd)
- ↑ oauth-pam - PAM för användning med OAuth-webbplatser - Google Project Hosting . Hämtad 27 juli 2016. Arkiverad från originalet 8 augusti 2016. (obestämd)
- ↑ Autentisering . Hämtad 27 juli 2016. Arkiverad från originalet 17 oktober 2019. (obestämd)
- ↑ OTP Auth . App Store . Hämtad 27 juli 2016. Arkiverad från originalet 12 april 2019. (obestämd)
- ↑ RFC 4226 - HOTP: En HMAC-baserad engångslösenordsalgoritm . Hämtad 17 januari 2018. Arkiverad från originalet 6 april 2019. (obestämd)
Länkar