> VeriFone's point (albeit a stupid one) is that the path from the card reader itself to the iOS device is not secure, so it's a hardware "problem."
That point isn't stupid at all, and is actually a legitimate gripe. It is my understanding that the Square device is only meant to be used with the Square payment software. Is that wrong? If that's the case, it shouldn't be as easy as VeriFone claims it is to skim a number from the device. I don't follow card skimming, but I would think that the point VeriFone is trying to make here is that Square is making it easier for low-tech criminals to implement a skimmer. While it is possible today, I've never heard it described as easy.
Another of the commenters mentioned that professional card skimmers have their own devices. That's fine; that isn't the problem here. Professionals will always do things better than the entry-level criminals. However, from my reading, it sounds like there is the capability here to write a shrink-wrapped iOS app that talks to the free Square reader, and you have skimming for a total investment of an iPod touch (or lack of investment -- you are a criminal, after all). Which is the problem that VeriFone is bringing up, and I halfway agree with given the limited evidence presented to me. We're way too lax with credit cards.
Does the Square app really need to know the card number at all, aside from transmitting it upstream? What is the vector here? It seems like the Square device should be a black box that yields only some kind of payment token, and the app only gets the cardholder name (from their screenshots).
Square's own security page[1] makes this ambiguous, too:
> Card numbers, magnetic stripe data, or security codes are not stored on Square client devices.
I've never used Square, so I might be full of hot air. However, I think instantly painting this as not an issue simply because it came from a competitor is doing a disservice to the potential (real) vulnerability here. Read the information, not the source...