Google Authenticator
Google Authenticator je aplikace pro dvoufázové ověření pomocí algoritmu TOTP ( Time-based One-time Password Algorithm ) a HMAC ( HOTP ) od společnosti Google LLC . Služba implementuje algoritmy specifikované v RFC 6238 a RFC 4226 . [2]
Authenticator představuje 6- nebo 8místné jednorázové číselné heslo, které musí uživatel zadat vedle uživatelského jména a hesla, aby se mohl přihlásit ke Google nebo jiným službám. Authenticator může také generovat kódy pro aplikace třetích stran, jako jsou správci hesel nebo služby hostování souborů. Předchozí verze programu byly k dispozici jako open source na GitHubu , ale nejnovější verze jsou majetkem společnosti Google. [3]
Příklad použití
Uživatelé si obvykle musí nejprve nainstalovat aplikaci do svého mobilního zařízení. Abyste mohli vstoupit na stránky nebo využívat služeb služby, musíte zadat uživatelské jméno a heslo, spustit aplikaci Authenticator a do speciálního pole zadat vygenerované jednorázové heslo.
Za tímto účelem web poskytne uživateli sdílený tajný klíč, který musí být uložen v aplikaci Google Authenticator. Tento tajný klíč bude použit pro všechna budoucí přihlášení k webu.
U dvoufázového ověření nestačí k prolomení účtu pouhá znalost uživatelského jména/hesla . Útočník musí také znát tajný klíč nebo mít fyzický přístup k zařízení pomocí aplikace Google Authenticator. Alternativní cestou je útok MITM : pokud je počítač uživatele infikován trojským koněm , lze zachytit uživatelské jméno, heslo a jednorázový kód, aby bylo možné zahájit vlastní přihlašovací relaci na webu nebo sledovat a upravovat informace mezi uživatele a web.
Implementace
Google Authenticator je k dispozici pro Android , [4] BlackBerry a iOS [5] . K dispozici je také několik implementací třetích stran:
- Windows Phone 7.5/8/8.1/10: Microsoft Authenticator [6] Virtual TokenFactor [7]
- Windows Mobile: Google Authenticator pro Windows Mobile [8]
- Java CLI: Authenticator.jar [9]
- Java GUI: JAuth [10] FXAuth [11]
- J2ME: gauthj2me [12] lwuitgauthj2me [13] Mobile-OTP (pouze čínština) [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] (implementace třetí strany)
- 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 Modul [31]
- PAM: Google Pluggable Authentication Module [32] oauth-pam [33]
- Backend: LinOTP (Management Backend implementovaný v pythonu)
- Chrome/Chrome OS: Authenticator [34]
- iOS: OTP Auth [35]
Technický popis
Poskytovatel služeb generuje 80bitový tajný klíč pro každého uživatele (ačkoli RFC 4226 § 4 vyžaduje minimálně 128 bitů a doporučuje 160 bitů). [36] Klíč je poskytován jako 16-, 26-, 32místný řetězec kódovaný Base32 nebo jako QR kód . Pomocí tajného klíče klient vygeneruje HMAC - SHA1 z:
- počet 30sekundových intervalů od začátku " UNIX éry " pro variantu TOTP
- čítač, který se zvyšuje s každým novým kódem pro variantu HOTP .
Část HMAC je poté extrahována a převedena na 6místný kód.
Pseudokód pro OTP založené na čase
function GoogleAuthenticatorCode ( string secret ) // založené na klíči RFC 4226
:= base32decode ( secret ) // key: array of uint8 message := htobe64 ( aktuální Unix time / 30 ) // message: uint64, make it big-endian hash : = HMAC - SHA1 ( klíč , zpráva ) // hash: pole ofsetu uint8 := poslední kousíček hashe // offset := hash[hash.size() - 1] & 0x0F truncatedHash : = ( hash [ offset ] << 24 ) | ( hash [ offset + 1 ] << 16 ) // truncatedHash: uint32 big-endian | ( hash [ offset + 2 ] << 8 ) | hash [ offset + 3 ] truncatedHash = truncatedHash & 0 x7FFFFFFFF // reset MSB kódu := truncatedHash mod 1000000 kód bloku s 0 , dokud délka kódu není 6 návratový kód // kód : řetězec
Pseudokód pro OTP události/počítadla
function GoogleAuthenticatorCode ( tajný řetězec ) klíč := base32decode ( tajná ) zpráva := čítač zakódovaný na 8 bajtech hash := HMAC - SHA1 ( klíč , zpráva ) offset := poslední nibble of hash truncatedHash := hash [ offset .. offset + 3 ] //4 bajty počínaje offsetem Nastavit první bit truncatedHash na nulu // odstranit nejvýznamnější bitový kód : = truncatedHash mod 1000000 kód pad s 0 , dokud nebude délka kódu 6 návratový kód
Převod účtů
Uživatelé si mohou vybrat, které účty exportovat, a poté po ověření pomocí PIN zařízení nebo biometrického ověření zobrazit QR kód, který lze naskenovat jiným telefonem pomocí Authenticatoru v režimu importu.
Poznámky
- ↑ Google výrazně zvyšuje bezpečnost vašeho účtu díky dvoufázovému ověřování – TechCrunch . TechCrunch (20. září 2010). Získáno 12. března 2016. Archivováno z originálu 12. března 2016. (neurčitý)
- ↑ GitHub – google/google-authenticator: Open source verze Google Authenticator (kromě aplikace pro Android ) . GitHub . Google. — "Tyto implementace podporují algoritmus jednorázového hesla na základě HMAC (HOTP) specifikovaný v RFC 4226 a algoritmus jednorázového hesla na základě času (TOTP) specifikovaný v RFC 6238. " Získáno 27. července 2016. Archivováno z originálu dne 26. ledna 2021.
- ↑ Willis, Nathan (22. ledna 2014). " FreeOTP vícefaktorová autentizace archivována 31. října 2020 na Wayback Machine ". LWN.net . Staženo 10. srpna 2015.
- ↑ https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 Archivováno 2. února 2021 na Wayback Machine A
- ↑ Google Authenticator . App Store . Získáno 27. července 2016. Archivováno z originálu 22. prosince 2015. (neurčitý)
- ↑ Authenticator (4. dubna 2013). Získáno 27. července 2016. Archivováno z originálu 17. října 2019. (neurčitý)
- ↑ Virtual TokenFactor (nedostupný odkaz) (26. února 2012). Získáno 27. července 2016. Archivováno z originálu 8. září 2013. (neurčitý)
- ↑ [APP Google Authenticator pro Windows Mobile] . Vývojáři XDA . Získáno 27. července 2016. Archivováno z originálu 19. dubna 2019. (neurčitý)
- ↑ http://blog tečka jamesdotcuff tečka net (downlink) . Získáno 27. července 2016. Archivováno z originálu 1. srpna 2014. (neurčitý)
- ↑ mclamp/JAuth . GitHub . Získáno 27. července 2016. Archivováno z originálu 4. srpna 2015. (neurčitý)
- ↑ kamenitxan/FXAuth . GitHub . Získáno 27. července 2016. Archivováno z originálu 5. září 2020. (neurčitý)
- ↑ gauthj2me – Google Authentification v Java Mobile, j2me – Google Project Hosting . Získáno 27. července 2016. Archivováno z originálu 6. ledna 2016. (neurčitý)
- ↑ lwuitgauthj2me – Google Authenticator pro J2ME telefony – Google Project Hosting . Získáno 27. července 2016. Archivováno z originálu 16. března 2016. (neurčitý)
- ↑ chunlinyao / mobile-otp - Bitbucket (downlink) . Získáno 27. července 2016. Archivováno z originálu 15. října 2017. (neurčitý)
- ↑ totp-me - TOTP pro Java ME - Google authenticator . Získáno 27. července 2016. Archivováno z originálu 5. ledna 2018. (neurčitý)
- ↑ gauth.prc - gauthj2me - Google Authenticator pro Palm OS (převedeno z java) - Google Authentification v Java Mobile, j2me - Google Project Hosting . Získáno 27. července 2016. Archivováno z originálu 6. ledna 2016. (neurčitý)
- ↑ tadeck/onetimepass . GitHub . Získáno 27. července 2016. Archivováno z originálu dne 27. října 2020. (neurčitý)
- ↑ chregu/GoogleAuthenticator.php . GitHub . Získáno 27. července 2016. Archivováno z originálu dne 29. září 2020. (neurčitý)
- ↑ rotp - RubyGems.org - váš komunitní hostitel . Získáno 27. července 2016. Archivováno z originálu 11. července 2019. (neurčitý)
- ↑ ukazap/twofu . GitHub . Získáno 27. července 2016. Archivováno z originálu 12. září 2020. (neurčitý)
- ↑ heapsource/active_model_otp . GitHub . Získáno 27. července 2016. Archivováno z originálu 5. prosince 2020. (neurčitý)
- ↑ GAuth . Získáno 27. července 2016. Archivováno z originálu dne 20. října 2020. (neurčitý)
- ↑ gauth4win – Google Authenticator pro Windows – Google Project Hosting . Získáno 27. července 2016. Archivováno z originálu 11. ledna 2016. (neurčitý)
- ↑ Domovská stránka aplikace MOS Authenticator . Získáno 27. července 2016. Archivováno z originálu 17. února 2020. (neurčitý)
- ↑ winauth - Windows Authenticator pro Battle.net / World of Warcraft / Guild Wars 2 / Glyph / WildStar / Google / Bitcoin - Hosting projektu Google . Získáno 27. července 2016. Archivováno z originálu 17. května 2015. (neurčitý)
- ↑ glacasa/TwoStepsAuthenticator . GitHub . Získáno 27. července 2016. Archivováno z originálu 5. prosince 2020. (neurčitý)
- ↑ gbraad/html5-google-authenticator . GitHub . Získáno 27. července 2016. Archivováno z originálu 5. července 2014. (neurčitý)
- ↑ Techtransit. Nokia Store: Stáhněte si GAuth a mnoho dalších her, tapet, vyzváněcích tónů a mobilních aplikací do svého telefonu Nokia (odkaz není k dispozici) . Získáno 27. července 2016. Archivováno z originálu 12. července 2014. (neurčitý)
- ↑ SGAuth . Získáno 27. července 2016. Archivováno z originálu 11. července 2019. (neurčitý)
- ↑ SailOTP . Získáno 27. července 2016. Archivováno z originálu 10. ledna 2021. (neurčitý)
- ↑ google-authenticator-apache-module – Modul Apache pro dvoufaktorovou autentizaci přes Google Authenticator – Google Project Hosting . Získáno 27. července 2016. Archivováno z originálu 19. listopadu 2015. (neurčitý)
- ↑ google-authenticator – Dvoufázové ověření – Google Project Hosting . Získáno 27. července 2016. Archivováno z originálu 10. února 2015. (neurčitý)
- ↑ oauth-pam - PAM pro použití s webovými stránkami OAuth - Google Project Hosting . Získáno 27. července 2016. Archivováno z originálu 8. srpna 2016. (neurčitý)
- ↑ Authenticator . Získáno 27. července 2016. Archivováno z originálu 17. října 2019. (neurčitý)
- ↑ OTP Auth . App Store . Získáno 27. července 2016. Archivováno z originálu 12. dubna 2019. (neurčitý)
- ↑ RFC 4226 – HOTP: Algoritmus jednorázového hesla založený na HMAC . Získáno 17. ledna 2018. Archivováno z originálu 6. dubna 2019. (neurčitý)
Odkazy