Developer(s) | |
---|---|
Initial release | September 20, 2010 |
Repository | github |
Operating system | Android, iOS, BlackBerry OS |
Platform | Mobile |
License | Proprietary (earlier versions were under Apache License 2.0) |
Google Authenticator is an application that implements two-step verification services using the Time-based One-time Password Algorithm (TOTP) and HMAC-based One-time Password Algorithm (HOTP), for authenticating users of mobile applications by Google. The service implements algorithms specified in RFC 6238 and RFC 4226.
Authenticator provides a six- to eight-digit one-time password which users must provide in addition to their username and password to log into Google services or other sites. The Authenticator can also generate codes for third-party applications, such as password managers or file hosting services. Previous versions of the software were open-sourced but subsequent releases are proprietary.
Typically, a user installs the Authenticator app on a smartphone. To log into a site or service that uses two-factor authentication, the user provides user name and password to the site and runs the Authenticator app. The app displays an additional six-digit one-time password and transmits it to the site, which asks the user what that password is. The user enters it, thus authenticating the user's identity.
For this to work, a set-up operation has to be performed ahead of time: the site provides a shared secret key to the user over a secure channel, to be stored in the Authenticator app. This secret key will be used for all future logins to the site.
With this kind of two-factor authentication, mere knowledge of username and password is not sufficient to break into a user's account. The attacker also needs knowledge of the shared secret key or physical access to the device running the Authenticator app. An alternative route of attack is a man-in-the-middle attack: if the computer used for the login process is compromised by a trojan, then username, password and one-time password can be captured by the trojan, which can then initiate its own login session to the site or monitor and modify the communication between user and site.