Many apps are simply sloppy about the security of sensitive data. Last week (July 27), Citigroup admitted its iPhone mobile banking app stored account numbers and passcodes on the phone. We're just beginning to understand how little we know about mobile phones and how much more data they retain than we expect.
PCI guidelines and a whole slew of privacy laws are based on the assumption that a retailer might do something bad to expose payment-card data to a thief. A retailer's logical response in a case like this: "I didn't do it. The phone's operating system did." But that defense might not hold up if the retailer was aware of the problem and did nothing to avoid it.
Further complicating the situation is the fact that there are ways to keep sensitive information out of the keyboard cache. Apple, however, is likely to bounce any app from its iTunes Store that uses such a workaround.
And in the world of insecure apps, Citi isn't alone. Mobile security vendor Lookout said last week it has examined 300,000 apps and found many that store personal information. For example, 14 percent of free iPhone apps and 8 percent of free Android apps look into user contact records, and about one-third of free apps on both phones track a user's location.
That cavalier approach to data retention might not be such a concern, except for the increasing ability of thieves to break into smartphones. One demonstration at last week's Black Hat conference showed how, if an iPhone user did nothing more than visit an infected Web site, a malware payload could be inserted into the phone. (The demonstration's Web site, jailbreakme.com, just used iPhone security flaws to perform a "jailbreak" to allow the phone to use apps not authorized by Apple. But any malware might be inserted in the same way.)
There are things retailers can do: Encrypt sensitive data that comes into the app; overwrite everything an app temporarily stores; and even create their own secure ways of keying in payment-card data.
Such options are crucial, because too much sensitive data combined with malware that can easily climb into the iPhone and rummage around in user data means almost anything on an iPhone could be stolen by thieves. And for retailers that ask customers for payment-card data, that's a very troublesome combination.
It gets worse. Chains are tripping over themselves to make sure their mobile applications do not annoy the privacy police. Best Buy's experiment with Shopkick, for example, trumpeted the fact that its mobile app only receives data from a broadcast signal, rather than sending it, all to play up privacy protections. What if the phone itself trumps all of those efforts and retains lots of private data--or even all of it--on its own?When that private data is accessed and discovered, consumers will be looking around for someone to blame. Do you really want to have an app with your logo on it hanging around in that room at that time?
Even if a retailer's app is carefully designed to encrypt and then overwrite all sensitive information, the information can still be stored by the iPhone's operating system. And while the retailer's app developers are cleaning up the data it collects, there's no doubt that any app using the iPhone's onscreen keyboard will still leave data in the phone.
Result: Thieves can design malware that knows exactly where to look for what's typed into the onscreen keyboard, sift through that data for likely candidates for payment-card information and then transmit the sensitive data across the Internet--all remotely.
Does that put retailers at risk for PCI violations or even liability lawsuits? That's impossible to say. As a payment-card input device, the iPhone clearly retains sensitive data. That might make it a PCI problem. Plus, because retailers that develop apps should know about the retained data and because those companies are asking customers to expose their payment-card numbers to potential theft, it might be lawsuit bait. Until the first lawsuit arrives, no one knows.
Fortunately, there are ways for retailer app developers to make an extra effort to secure sensitive data that's typed into apps. Unfortunately, they all have drawbacks.
One workaround for the iPhone's keyboard-cache exposure is for a retailer to advise customers to use the iPhone's "Reset Keyboard Dictionary" function ( Home -> Settings -> General -> Reset -> Reset Keyboard Dictionary ). But that approach has the disadvantage of making a very useful auto-completion feature go away. (How useful? Try keying in "StorefrontBacktalk" a few times, and you'll appreciate it very quickly.)
A better workaround is to create a secure custom keypad within an app, specifically for keying in payment-card numbers, expiration dates, PINs, Zip codes and other sensitive data. If an app programmer draws his own numbered buttons, collects the input and then is careful to encrypt the data and overwrite the original information, the plain-text card data never goes into the keyboard cache. In fact, it's completely gone from the iPhone.
Unfortunately, Apple is likely to see that workaround as a violation of the iPhone's user-interface standards, which would get a retailer's app bounced from the iTunes store. That's not a problem for developers who create apps for other smartphones. For them, carefully handling their own payment-card input may be the best way to secure it--and cover the PCI and legal risks.
An even better fix for the iPhone problem would be for Apple itself to create a secure numeric keypad as part of the iPhone's operating system, a keypad that doesn't use the keyboard cache and wipes sensitive data once it has been entered. Then retailer app developers would get their payment-card security without breaking Apple's rules. (Apple didn't respond to repeated requests to comment for this story.)
For retailers' iPhone apps, that may be the only sure way to protect sensitive card data and to protect both customers and themselves.