Wow, that's really cool.
> In January 2020, Visa first showcased the power of “Tap to Phone,” an industry-first solution that transforms current generation Android smartphones and tablets into contactless point of sale terminals. Tap to Phone was Visa’s first offering that let sellers accept payments on the devices they already own, just by downloading an app. As of December 2021, there were more than 300,000 devices across 54 countries using Tap to Phone.
I'm curious how the overall transaction/security flow works, broadly speaking.
It sounds to me like you managed to figure out a solution that satisfies the security posture of the ordinary app sandbox (ie without requiring any entitlements on iOS, or priv-app partnerships on Android). That's kind of incredible IMO. Are you using the Secure Enclave on iOS, and if you are, what are you actually storing in there? I'm curious if Android gets to play too given that it doesn't have the same sort of security guarantees, and if so, how.
I also get the impression the actual validation/verification (including steps that I would assume would typically happen on a payment terminal) has been moved to the cloud somehow. I'm very curious how that works too.
Presumably you would've also needed to design something capable of withstanding absolute worst-case scenarios like memory inspection on a rooted phone, or NFC sniffing/proxying/emulation.
Maybe you're just sending all the card data straight back to the cloud? That would pretty much solve everything :)
Also... while engineers are always going to gravitate towards balanced analyses of benefits and tradeoffs, the questions above are not coming from that perspective :) I'm very happy to hear whatever you can share about the security of the platform. (I'm just a random consumer who occasionally boggles at JavaCard when I pay for stuff lol)