Are PIN Pads Insecure By Design?
Written by Frank HayesNow that Verifone has confirmed one of its popular U.K. PIN pads was hacked by a researcher for last week’s Black Hat security conference, is it time to rethink how POS devices can be maintained, managed and upgraded? It’s very convenient to do so over a network or, in the case of Chip-and-PIN devices, using special maintenance cards. But we may be at the point where that’s simply not secure.
To be clear, Verifone only acknowledged that one of three hacked PIN pads came from it. In addition, the secure electronic payment technologies vendor said it’s already testing a fix. Great—that means other PIN pad vendors have similar security issues. We just don’t know which ones.
In the demonstration on July 25, researchers from U.K.-based MWR InfoSecurity said they bought second-hand PIN pads on eBay to test and found that two of the Chip-and-PIN devices popular in the U.K. could be breached by means of specially programmed smartcards. A third device, used in the U.S., could be breached in multiple ways, including via Ethernet and mobile-network interfaces.
Technical details in the demonstration were sketchy, and the researchers taped over the identifying logos on the devices. But Verifone later owned up to one of the devices, saying it had a fix in the works, while pointing out that the attack was complex, new and only works on older devices using a specific optional software module. July was not a good month for Verifone’s PIN pad security image; three weeks ago, German security researchers demonstrated how they could hack a popular Verifone PIN pad to capture card data and PINs and play Pong.
That German attack exploited problems in the PIN pad’s network software. But in the Black Hat demonstration, the Chip-and-PIN devices could be breached just by inserting a specially programmed card that took control of the PIN pad.
That shouldn’t be possible. Only data associated with a transaction—well-defined messages between the card and the device—should be going back-and-forth. A bad message should result in a rejected transaction. It’s supposed to be a smarter, and thus more secure, version of a magstripe swipe. (And yes, there’s a real irony in the fact that a magstripe swipe would never be able to take over an unmodified PIN pad this way—it takes EMV to make that possible.)
But obviously, it did happen. The researchers blamed it on a problem with the payments application in the PIN pad, but they may just be being kind. This could well be a designed-in security hole.
August 3rd, 2012 at 1:01 am
Hardening PIN pads just kicks the can a few feet down the road, the way PCI kicked mag stripes down to Chip and PIN. But it’s still the same can and the same road, so why do we think the same problems won’t keep chasing us?
The next attacks are even visible from here. Instead of hacking and reprogramming PIN pads, the bad guys will simply put their own computers into hollowed out PIN pad cases. Customers and cashiers won’t even know the difference.
The unreasonable but secure answer is to stop doing the same thing. We need to stop trying to keep identities and account numbers secret, and stop asking merchants to carry secrets worthy of bank vault protection. Instead, we need 100 on-card security, including the UI, to protect transaction authorizations. This will remove the merchants from ever handling the customer’s secrets.
Smart cards are already capable of doing encryption. Add a 10-key pad to each customer’s card, and a small screen to display the amount to authorize, and each customer is now carrying their own full PIN pad for about $5-10 per card. This is equipment given them by their bank, which they can trust. It’s not on a network, not upgradable, sealed hardware, and cannot be hacked remotely. The banks then have true end-to-end encryption all the way from their own tiny PIN pads to their own mainframes, and not the hop-to-hop-to-hop that exists today (that is mislabeled E2E by every vendor selling the stuff.)
The customer doesn’t have to worry about trusting the merchant systems anymore. The customer can see that each transaction is for exactly the amount the merchant terminal sent to their card, and that it can’t be abused by a crooked retailer.
The merchants can stop hiding account numbers behind tokens, or sending keys to their PIN pads, or updating security in them. They just carry the encrypted authorizations from the cards to the banks and back, then ship them to their payment processors for the payouts.
The merchants aren’t completely off the hook for security, though. They need to make sure their own systems aren’t having payments diverted to someone else’s bank. But that’s the merchant’s problem that would result only in losses to the merchant, not one that impacts the customers, the banks, or the card networks.
Industry security experts are beginning to agree that zero-trust is the future of security, and that all network endpoints are inherently untrustworthy. Let’s stop pretending that shared PIN pads on a network are a good idea. If we’re going to do something unreasonable, let’s at least do something different.