Well over the past year, there has been an increasing number of attacks against POS systems? And this has lead me to think up what I feel is a more secure system. The idea I have come up with, is to remove the direct storage or usage of the credit card number by the POS terminal or the vendor, while maintaining a method of credit card authentication.
Differences between current system and what I have proposed?
Right now all transactions go through the POS terminal, because of this, information about the card could then be read and used by the POS Terminal. The design changes would have a more complex card that may even have to be a little thicker, but this would be for a display and a keypad, for data input by the cardholder.
Smart Cards will require a more powerful general processor, encryption engine, random number generator and operating system.
Changes to the POS terminals, they will not require displays or keypads, but will require a dedicated network connection.
Change in documentation procedures by vendors.
Smart Card will be required to store a list of credit card validators, and certificate signatures.
How it will work?
The change of this, is that the transaction validation moves from the POS terminal to the users card, but there's cross validation of the transaction against the POS terminal, the credit card validator and the smart card. This means the credit card number is not seen by the the POS Terminal, but only an encrypted stream.
Upon the Cards insert and being ready for use, the user would first have to enter a PIN number on the card itself to unlock the CC Private Key. These are the steps once the card is ready for use.
- CC sends to the POS Terminal the CC encryption certificate, CC Unique Transaction ID (CC-UTID)
- POS Terminal sends the transaction price, list of supported CC validators, POS-DID (POS Device ID), and a transaction signature (SHA256 of Price, CC-UTID, POS-DID) to the CC
- CC compares the list of CC Validators to the built in list, and choose the best one.
- CC creates an Encrypted session with the CC Validator, and validate the certificate provided by the validator.
- CC sends CC-UTID, POS-DID, Transaction Price, CC Number, CC expiry. transaction signature to the CC validator. Validator will respond with a CCV-UTID
- POS Terminal sends POS-DID, CC-UTID, Transaction Price, Vendor Number, transaction signature to the CC validator. Validator will respond with a CCV-UTID
- Once both sides submitted the information, the CC validator will confirm both the transactions, and the account to confirm the validity of the transactions.
- If Valid, the transaction is processed, and the CC validator will send to both the CC and POS terminal, the CCV-UTID, Response Code, and a response signature (SHA256 of CCV-UTID, CC-UTID, POS-DID, Response Code, Price)
- For the POS Terminal if the Response is positive then accept the transaction was completed successfully, and update the records. If negative, then respond that is had failed.
- For the CC Display, provide a response on CC validation.
Definitions
- CC-UTID - a Unique Transaction Identifier for the Smart Card.
- CCV-UTID - a Unique Transaction Identifier for the Credit Card validator.
- POS-DID - The Device Specific Identifier for the POS Terminal which is hard coded in the CPU, this will provide a method to determine the POS device that is being used in the transaction. This allows the CC company to validate that the POS is actually the device for the Vendor, and not being used for other transactions.