This section of the Reference document guides you through secure and efficient application development practices for the StrongAuth KeyAppliance (SAKA). You must have reviewed Chapter 1 of this document to understand the basic architecture of the SAKA before continuing with this section.
While programming languages vary, and platforms/frameworks differ in what they provide an applicationdeveloper to optimize code, this section will focus on generic guidelines rather than platform or framework-specific guidelines. Developers are free to choose strategies for improving on these recommendations.
While the SAKA can encrypt and store anything to a limit of 10,000 characters, the primary use at most customer sites is for the protection and storage of cardholder data (CHD) in e-commerce environments for compliance to Payment Card Industry Data Security Standard (PCI-DSS). As such, this section will refer to CHD in discussing these guidelines; however, the same principles apply to any sensitive data protected by the SAKA: social security numbers (SSN), bank account numbers (BAN), birth-dates, other personally identifiable information (PII), etc. It is worth mentioning, that when used in conjunction with the SAKA, the StrongKey CryptoEngine (SKCE) - a free and open-source tool to protect files of any-type- any-size (http://sourceforge.net/projects/skce) - escrows base64-encoded symmetric cryptographic keys as sensitive objects. Some customers have also chosen to protect Secure Socket Layer (SSL) keys/certificates on the SAKA.
NOTE: PCI-DSS defines Cardholder Data (CHD) as:
The PAN must be rendered unreadable, if stored, in accordance with Requirement 3.4 of the PCI-DSS. Other sensitive data - defined as Sensitive Authentication Data - which includes:
may never be stored, in accordance with Requirement 3.2 of the PCI-DSS. |
This document refers to the following diagram to discuss development guidelines. While not every site will be configured similarly, most will abstract to the pattern shown below.
In this sample SAKA configuration, the site has:
Since all transactions received in the web-tier will be encrypted using Transport Layer Security (TLS) (DUKPT transactions will have been encrypted twice: i) once when encrypted by the card-reader at the point-of-sale (POS) terminal, and ii) at the TLS layer of the network connection) there is no need for expensive VPNs; the general internet provides adequate connectivity while the cryptographic schemes provide the data-protection.