A serious flaw recently discovered in Google's two-step login process for accessing its many services reflects the risks such a mechanism poses when broadly deployed.
Duo Security reported the vulnerability this week after notifying Google and giving it time to release a fix. Google's two-factor authentication process links a device to people's Google Accounts, so they don't have to login with a password each time they access the company's online services.
Because the double sign-in process, which includes password and device, was so widely deployed, Google had to make a few compromises in order to ensure user comfort.
These trade-offs are to be expected, given how Google is gradually taking its environment from a collection of individual apps, each with their own authentication process, to a single sign-on system that works across all its services, said Jon Oberheide, co-founder and chief technology officer for Duo Security.
"Coming up with a single, infrastructure-wide single sign-on platform is not a trivial task," Oberheide said.
A compromise Google made was in the creation of "application-specific passwords," or ASPs, Duo Security said. Google was forced to introduce ASPs because not all applications that have access to information in a person's Google Account support its two-factor authentication scheme.
Examples of such applications include email clients such as Microsoft Outlook, Apple Mail and Mozilla Thunderbird, chat clients and calendar applications.
To get these applications in the fold, Google created a page in Google Account that users could go to have Google generate an ASP that would authenticate the application and let it continue accessing user data. People had to copy and paste the Google-generated password into their apps.
Unfortunately for users, the ASP could also be used to log into almost any of Google's Web properties, including account settings, where a few modifications would give a hacker full control, Adam Goodman, principal security engineer for Duo Security, said in the company's blog.
On Feb. 21, Google pushed a fix to only allow people who use the normal two-step verification process to access security-sensitive settings.
The problem left Google users open to phishing attacks in which a spam email sends recipients to a site that tricks them into giving up their passwords.
In addition, people who use the same passwords on multiple sites would be vulnerable, since hackers who crack a password database on one site often use the recovered passwords to break into accounts on other sites.
Because Google generated a difficult-to-remember ASP, it was highly unlikely that people would use it on other sites, Duo Security said. Nevertheless, an attacker could create malware capable of finding and extracting an ASP on a user's system.
"In addition, thick-client applications, the primary consumer of ASPs, are rather notorious for poor SSL certificate verification, potentially allowing ASPs to be captured on the wire via MITM [man-in-the-middle] attacks," Goodman said.
While Google's fix tightened its two-factor security process, Duo Security recommended it go further and restrict as much as possible the privileges of individual ASPs.
However, given Google's complex environment, ASPs will likely always have access to more than one service. "With two-factor authentication, it's difficult to get it right," Oberheide said. "Even Google, with all its wisdom and skill, can make mistakes."