Set a hardware cryptographic keystore
We can create a hardware cryptographic keystore that WAS can use to provide cryptographic token support in the server configuration.
Complete the following steps in the admin console:
- Click Security > SSL certificate and key management > Key stores and certificates.
- Click New.
- Type a name to identify the keystore. This name is used to enable hardware cryptography in the WS-Security configuration.
- Optionally, we can type a description for the keystore in the Description field.
- We can specify a Management scope for the key store. This is not required. The management scope specifies the scope where this SSL configuration is visible. For example, if we choose a specific node, then the configuration is only visible on that node and any servers that are part of that node.
- Type the path for the hardware device-specific configuration file.
The configuration file is a text file that contains entries in the following format: attribute = value. The valid values for attribute and value are described in detail in the Software Developer Kit, Java Technology Edition documentation. The two mandatory attributes are name and library, as shown in the following sample code:name = FooAccelerator library = /opt/foo/lib/libpkcs11.so slotListIndex = 0The configuration file should also include device-specific configuration data. Navigate to the PKCS11ImplConfigSamples.jar file, which contains sample configuration files, under the heading "PKCS 11 Implementation Provider" on the Java technology site http://www.ibm.com/developerworks/java/jdk/security/50/.
To use the IBMPKCS11Impl provider, initialize the provider individually and explicitly express the provider in the JCE getInstance method. JSEE2 is unable to use the IBMPKCS11Impl provider for acceleration.
- Use this link http://www.ibm.com/developerworks/java/jdk/security/50/secguides/pkcs11implDocs/IBMJava PKCS11ImplementationProvider.html to initialize the IBMPKCS11 provider in a thread safe way
- Specify a unique .cfg file that contains information about the supported hardware device. A list of supported hardware devices are available at http://www.ibm.com/developerworks/java/jdk/security/50/secguides/pkcs11implDocs/IBMPKCS11SupportList.html
- You specify the Signature.getInstance method with the properly initialized IBMPKCS11Impl provider instance as shown.Signature.getInstance("SHA1withRSA", ibmpkcs11implinstance);
- Type a password if the token login is required. Operations that use keys on the token require a secure login. This field is optional if the keystore is used as a cryptographic accelerator. In this case, you need to select Enable cryptographic operations on hardware device.
- Select the PKCS11 type.
- Select Read only.
- Click OK and Save.
ResultsWAS can now provide cryptographic token support in the server configuration.
Next stepsWe can refer to this keystore in any server SSL configuration to achieve the following results:
- Cryptographic acceleration because the cryptographic hardware device has no persistent key storage
- Secure cryptographic hardware because a cryptographic token generates and securely stores the private key that WAS uses for SSL key exchange.
We can also refer to this keystore in the WS-Security default bindings configuration to achieve similar results.
Key management for cryptographic uses