Forum Moderators: buckworks
I'm wondering - what are the best practices for storing this type of information? Should a separate database be used for the credit cards, are they usually encrypted in some particular way, etc..
I know CC information is very sensitive so there must be some guidelines for keeping it safe, and maybe even some laws. Can anyone fill me in on this?
Storing Card details is a touchy subject with all the Schemes.
Best practice minimums are:
- Store card details (i.e CC number, expiry) in encrypted form that then can only be read intoto by those with a "need to know" - in reality no-one. By intoto I mean any stored data should be masked for display i.e. 4494 ******** 21008. This maintains the integrity of the data but doesn't allow it to be compromised through copying from display screens.
- Store cardholder details (name, address, contact details) in a SEPERATE encrypted database with a unique reference identifyer linking the two.
Needless to say both DBs need to be behind a robust firewall with outbound traffic barred.
Also, and this is critical, NO sensitive data should be stored (ie CVV2, CVV or CID values) - that is an instant "removal of service" compliance issue.
If you need more background drop me a line.
You may capture the CVV/CVV2 *solely* for the purposes of forwarding that value to the acquirer as part of the auth request message. At the point the auth request is made the CVV/CVV2 value *must* be completely and irrevocably purged from the merchant system.
If you or the merchant you are working with store the CVV/CVV2 value you risk losing your acceptance facility but more importantly you are directly contributing to a weaknening of the defence these digits offer Merchants and Issuers alike.
CVV/CVV2 is critical in defending against CreditMaster type attacks so please ensure you ensure the continued efficacy of the program.
If in doubt partner with your merchant's acquirer to understand their requirements - alternatively, a Corey has pointed out, use CISP (in the US) find it at: [usa.visa.com...]
or AIS if you are outside the US. Either are useful as a benchmark for best practice - although they can seem quite onerous.
To recap - you don't need to store the CVV or CVV2 value as in most cases the issuer will either straight deny a bad value or feedback via the auth response message that the value was incorrect. You need to ensure that whichever way a bad value is reported to your client they cannot continue with the sale.
Hope this helps.
Consider Amazon - from what I understand, they have a computer (or computers) they call the cc motel -- the numbers check in, they don't check out :).
It's connected solely via a serial cable to the rest of their system, which makes it extremely feasible to do a careful security audit of the interface.
When they get a number, they send it over to the ccmotel, along with a unique identifier. They then store the unique ID, and send that ID over to the CCmotel whenever the card needs to be authorized/charged.
Daniel
Later2, if you get a payment from an unverified PayPal user, how do you go about verifying the payment - with WorldPay you have AVS and CVV, with PayPal you have - nothing?
-Corey
Also, and this is critical, NO sensitive data should be stored (ie CVV2, CVV or CID values) - that is an instant "removal of service" compliance issue.
well, amazon should be barred then. They store all values in their "wallet", and when making repeat purchases, you need not enter in any values again.