How to properly manage the private key

Has anyone received hands-on experience or a link to a scheme that implements a key management scheme that complies with the PCI DSS security standard ?

Obviously, there are many implementations related to the number of companies compatible with PCI DSS, but the search for their details is complicated. When it moves to the storage of private data, the discussion usually stops, using which the encryption algorithm is used. After this, there is usually a statement about the correct storage of the private key, but practical methods for its implementation or things like periodically changing the key or providing the key for applications, etc. are not discussed.

In particular, I am interested in your requirements from sections 3.5 and 3.6 of the PCI DSS standard.

3.5.2 Secure storage of cryptographic keys in the smallest possible places and forms.

3.6.a Check for key management procedures for keys used to encrypt cardholder data. Note. Numerous industry standards for key management are available from various resources, including NIST, which can be found at http://csrc.nist.gov .

3.6.4. Make sure that key management procedures are implemented for periodic key changes at least once a year.

I looked at NIST cryptography publications as the PCI DSS requirements document suggests, but apart from recent notes , the Cryptographic Key Management Workshop does not seem to have many ways to implement realizable schemes or standards.

What I'm not trying to do:

  • Store passwords + salts as authentication hashes,
  • Choose a strong symmetric data encryption algorithm,
  • Avoid having to store personal data first.
  • Avoid the need to manage keys with other mechanisms: physical security, database security, dragons and wizards, etc.

All of them are valid, but in this case are not the answer. The nuts and bolts of my requirements are in another SO .Net Design question for storing and retrieving sensitive user data , but it all comes down to key management, so this is a more clarified question.

+46
security cryptography pci-dss
Oct 17 '09 at 23:57
source share
2 answers

I am familiar with the pain you go through. We tried to upgrade the old EFT system to meet PCI requirements. Key management was, of course, (from my point of view of software) the most difficult part.

I think I also stumbled upon the NIST recommendations for key management that Martin published, and was incredibly disappointed with the lack of concrete examples.

ANSI X9.17 - Managing key financial institutions is probably most suitable for your needs, with PCI-DSS. Good luck reading it, though, the document is a massive TLA collection that I know, of course I tried my best to read.

When disappointment turned into despair, I stumbled upon The Electronic Money Mill , which is a fictional tale with a lot of relevant technical links. Chapter 17 discusses X9.17 and can help with understanding.

From all this reference material, I developed a key management system that our auditor satisfied. The design documentation is quite long, but it seems that the idea is that you have a data encryption key protected by a key encryption key, and the key encryption key is stored on a physically separate box, which itself is protected by a master key.

My implementation was for the Key Server application to run in a Windows window. This application required the input of two separate โ€œkey server key keysโ€ before it could be used. These keys will be known only to administrators of key servers. These keys are combined to generate a master key, which is stored only in protected memory while the application is running. The application can then automatically generate cryptographically strong Key Encrypting Keys, which are stored in encrypted form using the master key.

Applications that require encryption will request the encryption key from the key server. KEK is used by the application to encrypt / decrypt the data encryption key, which can be safely stored with the application data.

Good luck. I hope you will also find the task interesting!

+33
Oct 18 '09 at 10:54
source share
โ€” -

Have you seen the NIST SP 800-57 , Key Management Recommendation?

+6
Oct 18 '09 at 0:26
source share



All Articles