A simple way to prevent credit card fraud?
Ok, I'm not a cryptographer, so I might be missing something here big time.
But the whole PSN-disaster (I'm a customer) made me think: there is good reason to store credit card information, like the PSN did. Because, frankly, I'd be annoyed to enter a 16 digit number each time I buy some 10 buck game.
But why can't SONY (and anybody else who works with credit-cards) just encrypt them with a public key they agreed on with the CC-company, and only they can decrypt it? So if there was a security breach, we just revoke the key, and are done with it? Is that too simple?
8 comments
[ 4.3 ms ] story [ 20.5 ms ] threadWith it stored on your gateway's servers, they will usually provide an API that you can use to issue transactions against the stored user data (it shouldn't return the CC data, just run transactions against it).
I'm heavily against storing CC data on my own servers - I store the last 4 digits (for display purposes to users) but that is it.
Edit: I looked up the document, TL;DR - you don't need to encrypt the cardholder name, service code, or expiration date unless you are also storing an associated primary account number.
But somebody stores the CC-data, and I wonder why that can't be an encrypted storage only the CC-card-companies can decrypt. Of course this would need some protocol, but can it be so hard (especially when that much is at stake?)
Basically when you get somebodies CCard, you take the details and pass them to the provider (storing them nowhere). You then receive back a token.
You can then bill said token like a standard card, but on compromise you can just invalidate all the tokens and no sensitive data has leaked.