Using InterSystems IRIS Data Platform for Securely Storing Credit Card Data
An ever-increasing number of purchases and payments are being made by credit card. Although merchants and service providers that accept credit cards have an obligation to protect customers’ sensitive information, the software solutions they use may not support best practices for securing credit card information. To help combat this issue, a security standard for credit card information has been developed and is being widely adopted.
The Payment Card Industry (PCI) Data Security Standard (DSS) is set of guidelines for securely handling credit card information. Among its provisions are recommendations for storing customer information in a database. This document outlines how software vendors can take advantage of InterSystems IRIS Data Platform™ to comply with data storage guidelines within the PCI DSS.
Use Cases for Securing Credit Card Information
The best way to ensure the security of information within a database is not to persist (store) it at all. Enterprises that deal with credit card data must save some information, however, such as the cardholders’ names, Personal Account Numbers (PANs), expiration dates, and service codes. The PCI DSS recommends only persisting the minimum necessary amount of cardholder data. When cardholder data must be stored, the PCI DSS requires that (at a minimum) PANs be rendered unreadable in the database and in all journal logs.
Exactly how PANs are secured may differ according to the use case. In general, use cases fall into one of two categories: when a credit card is being used purely for verification, and when it is being used to pay for goods or services.
Using a Credit Card for Verification
When an application is designed to accept a credit card as a form of identification (for example, when someone uses their card to retrieve a record of their airline reservation) it is not necessary for a useable clear-text PAN to be stored at all. According to the PCI DSS, either hashing or truncation may be used to store a version of the PAN that is sufficient for verification purposes.
Information is transformed according to a complex algorithm and only the transformed, or hashed, version is stored. The hashing algorithm only works one way — it is impossible to uniquely determine the original information from the hashed version. For verification purposes, a hashed version of the PAN provided by the cardholder can be compared to the stored hash value.
Only a portion of the information is stored. For verification purposes, the PAN provided by the cardholder is truncated in the same way and compared to the stored value. In general, truncation provides weaker security than hashing.
Using a Credit Card for Payments
Applications that accept credit card payments must have access to a usable PAN in order to process a transaction. According to the PCI DSS, there are three acceptable ways of handling PAN information.
- The PAN is not persisted (stored on disk) at all
This scenario might occur, for instance, when someone makes a credit card purchase from an online vendor and checks out as a “guest”. The card holder must provide the complete PAN each time they make a purchase. The application will use the PAN in memory, but not persist it. (The PCI DSS includes guidelines for securing PANs and other sensitive information in transit, but that is beyond the scope of this paper.)
Only a portion of the PAN is stored. The cardholder must provide the missing information that will allow the application to reassemble the PAN in memory. A useable PAN exists only in memory, not on disk.
The PAN is transformed into ciphertext or cleartext according to a complex algorithm, using an encryption key, but only ciphertext is stored. Unlike hashing, encryption allows for two-way transformation. Using the encryption key, the application can decipher the PAN and use it (in memory) to process a credit card transaction.
The PCI DSS calls for using “strong” encryption and re-encrypting information periodically. Also, encryption keys must not be stored in, or tied to, user accounts.
How InterSystems IRIS Enables Secure Data Storage
InterSystems IRIS Data Platform offers a strong, consistent, and high-performance security structure for applications.
Here is how InterSystems products enable applications to securely store data such as PANs:
InterSystems IRIS provides built-in access to several Secure Hash Algorithms (e.g. SHA-3) to hash data.
Fully supported and implemented as part of the application running inside InterSystems IRIS.
- Data-at-Rest encryption
InterSystems IRIS implements the Advanced Encryption Standard (AES) algorithm.
With data-at-rest encryption, the entire database and pre- and post-image journals are encrypted using one encryption key. Access to the key is managed by the system, so a user account (i.e., a process) does not hold the database encryption key.
All information, including indexes, stored in an encrypted database is protected.
- Data element encryption
InterSystems IRIS allows for individual pieces of information to be encrypted by offering developers access to the encryption suite. Data element encryption is often preferred to store sensitive information, like PANs, because it allows (with the correct provisioning) the re-encryption of data elements, without interruptions to database access.
InterSystems IRIS comes with a robust and tamper-resistant auditing system, which audits all changes to the security model. Application developers can use the same audit database by incorporating calls to the audit system in the application code.
Key Management Within InterSystems IRIS Security Model
Because the PCI DSS is widely used, InterSystems IRIS includes several capabilities specifically designed to make it easier to build applications that comply with the standard. They are mainly concerned with the key management used by data element encryption.
Encryption key material used for data element encryption is securely held by the system, by storing it in the same protected memory location as the database encryption key. Applications will refer to individual encryption keys using a unique KeyID, therefore eliminating direct access to the key material itself.
To make things easier for developers, when this new method of data element encryption is used, the KeyID is embedded in the resulting ciphertext. This enables the decryption process to automatically identify the key that was used to encrypt the data. The new managed key system supports several such keys in addition to the database encryption key. This will make it easy for application developers to satisfy re-encryption requirements in real time and with virtually no impact to the performance of the deployed application.
The PCI DSS is being adopted by merchants and service providers around the world who need to securely handle credit card information. Application providers need to make sure their solutions are compliant with this standard.
InterSystems IRIS gives developers the ability to build applications that comply with the PCI DSS, and will make that task even easier.
InterSystems is the engine behind the world’s most important applications. In healthcare, finance, government, and other sectors where lives and livelihoods are at stake, InterSystems is the power behind what matters. Founded in 1978, InterSystems is a privately held company headquartered in Cambridge, Massachusetts (USA), with offices worldwide, and its software products are used daily by millions of people in more than 80 countries.
For more information, please contact Andreas Dieckow, Principal Product Manager, InterSystems.com/IRIS.