Two different researchers have figured out ways to crack the PIN code used to secure Google Wallet, raising new questions about the safety of the payment system.
Tech blog TheSmartphoneChamp described Feb. 10 how someone can bypass the PIN code on Google Wallet by just clearing data associated with the payment app from the smartphone's application settings menu. This causes Google Wallet to reset itself and prompts the user for a new PIN the next time it is launched. Once the user has created a new code and tied in a Google PrePaid card to the app, all previously available funds are again available, TheSmartphoneChamp reported.
Google strongly encourages anyone who loses their device to call Google Wallet's support at 855-492-5538 to disable the prepaid card to prevent attackers from exploiting this issue.
"We are currently working on an automated fix as well that will be available soon," Google said.
This report came less than a day after researchers at Web security provider Zvelo found a way to brute-force the PIN code on rooted devices. Google Wallet stores a hash of the PIN that prevents thieves from accessing the payment application, but the fact that the code consists of only four numerals makes it susceptible to a brute-force attack, Joshua Rubin, a Zvelo engineer wrote Feb. 9. For the brute-force attack to work, the phone needs to be "rooted" first, either by the user or someone who has physical access to the device.
Google Wallet is a near-field communication (NFC) payment service that allows users to use their smartphones to make purchases. The Wallet app stores the credit card and other banking data. When it is time to pay for an item, the user is prompted to enter the PIN code to authorize the transaction. The brute-force attack targets this specific code, which is stored as a hash on the device.
"Knowing that the PIN can only be a four-digit numeric value, it dawned on us that a brute-force attack would only require calculating, at most, 10,000 SHA256 hashes," Rubin wrote on the Zvelo Website.
Secure Hash Algorithm is a cryptographic hash function and the version used in Google Wallet, SHA256, is considered fairly secure. The algorithm turns the PIN into a special code that can't be converted back to the original. The app takes what was entered, hashes it and compares it against the stored value. If the code matches, then it is correct.
Rubin realized that a PIN consisting of four numbers can only contain 10,000 possible combinations. It is computationally inexpensive to generate a hash of all 10,000 combinations, and his Google Wallet Cracker app proceeds to compare the possibilities against what is stored on the device.
Zvelo has already disclosed the issue to Google.
Zvelo's technique relied on rooting the Android device to disable the security mechanisms that protect Google Wallet, Google said in a statement. "To date, there is no known vulnerability that enables someone to take a consumer phone and gain root access while preserving any Wallet information such as the PIN," according to the statement.
The easiest way to prevent Cracker app to gain access to the hashed code would be to move the PIN off the device and store it on the Secure Device or the NFC chip, said Rubin. However, the move would make banks, as the payment processor, responsible for PIN security instead of Google. Banks have to choose to take on the financial and administrative overhead of moving the PIN instead of leaving it up to Google, and "potentially put the banks on the hook for the PIN security," said Rubin.
Google strongly encourages users with rooted devices not to install Google Wallet. For those with Google Wallet, the company suggests they lock the screen, use facial recognition and pattern matching, to add another layer of security on the device.
Google Wallet was considered fairly safe because users had to enter a code to authorize payment, and the code was stored in hash. Wallet also allows only five incorrect attempts before locking the user out of the phone. However, Rubin's Wallet Cracker app can figure out the PIN without a single invalid attempt.
This isn't the first time people poked around Google Wallet's security. In December, researchers from ViaForensics disclosed some sensitive information, such as cardholder names, credit limit and account balance, was not encrypted in Google Wallet. The unencrypted data exposed users to social engineering attacks to obtain more sensitive information, according to Mark Bower, vice president of Voltage Security.