0

Is it possible to generate RSA key and get its private exponent in clear and to be compliant with the following PCI requirement?:

Keys must be generated so that it is not feasible to determine that certain keys are more probable than other keys from the set of all possible keys. Cryptographic keys or key components must be generated by one of the following:

  • An approved key-generation function of a PCI–approved HSM
  • An approved key-generation function of a FIPS 140-2 Level 3 (or higher) HSM
  • An approved random number generator that has been certified by an independent laboratory to comply with NIST SP800-22

For example by importing AES key onto FIPS 140-2 Level 3 compliant token, generating RSA key pair on it and wrap its private part to PKCS#8 with imported AES key? Then decrypt private key with AES key on trusted desktop computer.

3
  • Can you provide a reference for that? Is that the PIN Security Requirements, which is a little different than most other key generations within the DSS?
    – gowenfawr
    Commented Mar 16, 2015 at 17:07
  • The question is using text from the P2PE standard rather than PCI DSS. PCI doesn't go into this level of detail.
    – AndyMac
    Commented Mar 16, 2015 at 17:43
  • It is a PCI P2PE requirement 6B-1.1 on key generation. I need to comply with that and also to get the private exponent of the generated RSA key in clear. Commented Mar 16, 2015 at 17:58

1 Answer 1

0

Your question asks that the RSA key pair be created on a token. If that token contains an approved RNG, you should be OK. Otherwise, not so good.

Your private key encrypted with an AES key will be imported onto a trusted desktop computer? Your private key should only be used for signing or for decryption. If your private key is for application signing it will likely be on a token. If used for decryption as part of a PKI within a P2PE solution, it should be on a SCD (HSM, KLD, POI).

You're not supposed to be able to get the keys in the clear within P2PE. The following is from 6F-1.1 of the P2PE draft version 2.0. Keys can only exist in one of the following forms:

• At least two separate key shares or full-length components

• Encrypted with a key of equal or greater strength as delineated in Annex C

• Contained within a secure cryptographic device

Note for hybrid decryption solutions: Clear-text Data Decryption Keys (DDKs) may temporarily be retained by the Host System in volatile memory for the purpose of decrypting account data.

2
  • I need to have a backup of RSA private key, but also be compliant with all requirements. AES key could be in components maintained by key custodians. RSA private key would be only in the encrypted form by this AES key or in token secured memory. If I would like to use my backup I can do it only if all of key custodians inputs their key components. I think this could work. Commented Mar 16, 2015 at 18:57
  • And yes, the RSA key is used for signing or decryption. And such encrypted backup can be imported on secure desktop into token or smart card, if needed. Commented Mar 16, 2015 at 18:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .