Token Gesture: PCI Security Standards Council Introduces Encryption

This month the PCI Security Standards Council released a paper describing the use of tokens in place of the PAN (Primary Account Number).  While this is far from being a magic bullet that solves all security issues inherent in credit card processing, and does not remove the need for PCI certification for card processors, in certain situations it could help considerably.

The fact is, the less frequently PANs traverse networks, the less chance they’ll be snooped.  The basic idea here is practiced all over the Internet already.  Instead of sending the PAN, encrypt it, and send a “token” instead.

The first analogy that comes to my mind is the use of salted hash functions to protect the contents of /etc/passwd on UNIX systems.  Many years ago /etc/passwd, a text file involved in local authentication for UNIX, actually contained the passwords of all the users.  After some time people took to encrypting the passwords with hash and salt, and later moving the encrypted contents out of /etc/passwd entirely into /etc/shadow.

This is similar to the process described here.  Instead of authenticating a purchase by passing the actual PAN data, the PAN is encrypted or tokenized, and then decrpyted/detokenized at the other end.  The analogy isn’t perfect, some tokens are multi-use, etc… but the basic concept is the same – encrypt the PAN so it’s not as often transmitted and stored “in the clear.”

While the idea of encrypting cardholder data is far from revolutionary, it’s at least encouraging to see the effort.  Furthermore, the fact this isn’t a new concept means it should be easy for the engineers implementing it to grasp.

This entry was posted in Security Blog and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>