 |
IBM PCI Cryptographic Coprocessor
|
 |
 |
 |
In the final manufacturing step, IBM 4758 Coprocessors generate their own public-private RSA device-key key-pair. The private key is retained within the IBM 4758. Manufacturing uses a class key to certify the device key. The certificate is returned to the Coprocessor. The Coprocessor's batteries and system power enable the Coprocessor to actively monitor for tampering events from the time of factory certification until the end of the Coprocessor's useful life. Detection of tampering activity results in the zeroization of the Coprocessor and destruction of the device key and its certificate.
The Verifying Type and Configuration of an IBM 4758 Device white paper (in PDF format) describes how you can identify the various IBM 4758 Coprocessors, the software that they contain, and how you can assure yourself that the device remains untampered.
IBM ships class-key certificates for each class of Coprocessor and a copy of the Coprocessor Load Utility (CLU) with the CCA and PKCS #11 Support Programs. The IBM 4758 root key used to validate class-key certificates is hard coded in the Coprocessor Load Utility (CLU). CLU validates a class-key certificate and then validates the device key certificate it retrieves from a Coprocessor. CLU then uses the validated device key to validate status responses that the Coprocessor signs with its device key.
You can determine that a Coprocessor is a legitimate, untampered IBM 4758 using the CLU VAlidate command and confirming these items in the status response:
- The Coprocessor's segment 1 is in the INITIALIZED state
...and if you are using the CCA Support Program or the PKCS #11 Support Program...
- The Coprocessor's segment 2 is RUNNABLE and the owner identifier is 2
- The Coprocessor's segment 3 is RUNNABLE and the owner identifier is 2 indicating the CCA product, or
- The Coprocessor's segment 3 is RUNNABLE and the owner identifier is 14 indicating the PKCS#11 product.
|
You can download "as is" CSUxCAV programs to validate an installed Coprocessor and the standard IBM software. The programs run the Coprocessor Load Utility (CLU) to query the Coprocessor and verify the above status items by inspection of the Machine-Readable Log (MRL) file produced by CLU. The CSUxCAV program returns these values that can be checked in, for example, a batch file: |
| 0. |
All checks are positive |
| 1. |
The Coprocessor failed one of the above conditions |
| 2. |
The Machine-Readable Log was not found (not produced by CLU which is invoked by the process, or the log file was otherwise removed during process) |
| 3. |
The IBM 4758 model-dependent class-key certificate file was not supplied |
| 4. |
CLU returned an abnormal response |
| 5. |
Some other exception occurred within CSUxCAV |
|
You invoke the CUSxCAV program with a single parameter which is the file name (and path) of the IBM 4758 class-key certificate file:
| In AIX: |
csufcav file_name |
| In Windows NT: |
csuncav file_name |
|
|
You can download the CSUxCAV "as-is" utility program and place it in the same subdirectory as contains the CLU utility program. You should run the utility from that subdirectory. The first eight bytes of the SHA-1 hash of the utility EXE module, expressed in hexadecimal, are also listed.
| For AIX: |
csufcav |
1D12 22AC 8BF6 764D |
| For Windows NT: |
csuncav |
BC8E 191E 368E 3B4F |
|
You will need one or more of the model-dependent class-key certificate files for the standard IBM 4758 models:
- IBM 4758 Model 002: 04k9127v.clu, 40h9952v.clu, 40h9951v.clu
- IBM 4758 Model 023: 04k9132v.clu, 12R8073V.clu, 40h9950v.clu, 40h9858v.clu, 41U0062V.clu, 44P1607V.clu
NOTE: The filenames for the Model 002 and Model 023 validation of class-key certificate files will change if the Coprocessor part numbers change.
The IBM 4758 root key, which is hard-coded into the CLU utility, expressed in hexadecimal with the most significant bit first, is
Public exponent: 00010001
Modulus: 80000000 00000000 00000000 00000010
0CACBAED FCEB4A2D 1FCE8B0F 42AA10DE
B9405685 C800156C 000D4635 811F34D4
375F17F0 3445EC7B C2516182 20F75391
D0F91FE6 AA52CA9A 463FE87B F78FF842
A770EEC4 B8B07FD5 55BC54DF 194F3F6C
CE1B4936 EE0BAA1E 4E7E6D57 494E8334
26185CD3 6440ED2B 03963DBC 432DF717
|
|