Reference Guide
2 Best Practice for SSL-J FIPS 140-2 Compliance
RSA BSAFE SSL-J 6.2.6 Security Best Practices Guide
Best Practice for SSL-J FIPS 140-2 Compliance
SSL-J allows TLS protocols to be used in a FIPS 140-2 compliant manner. It is
designed to be integrated into client applications using the Java JSSE and JCE
cryptographic provider frameworks, or using the proprietary SSLJ API.
For SSL-J and its encompassing system to be FIPS 140-2 compliant, the following
requirements must be met:
• SSL-J must use a FIPS 140-2 validated cryptographic module, the RSA BSAFE
Crypto-J (Crypto-J) Java Crypto Module (JCM), for all cryptographic operations.
• Only FIPS 140-2 approved algorithms can be used by SSL-J and by the
encompassing application.
The exceptions to this include:
– MD5 which is allowable when used in TLS 1.0 and TLS 1.1 connections.
– JKS. Storing certificates in JKS is allowable as no cryptography is used.
Storing private keys in JKS is allowable if the JCM is used correctly. That is,
if:
• the JsafeJCE provider is registered as the default, so it is used by JKS
• the appropriate key sizes are used
• the Security Policy requirements are fulfilled
Note: If the application is going to be separately validated (NIAP
protection profile or UCAPL), the usage must be assessed on a case
by case basis. In this case, we recommend using PKCS #12 keystores,
as this removes any potential issue for the application validation.
• The above requirements hold true for all operations performed by the application
and services provided by the application.
Complete the following actions to ensure that SSL-J is used in a FIPS 140-2 compliant
manner:
• For all cryptographic operations, always explicitly ask for the Crypto-J or SSL-J
providers,
com.rsa.jsafe.provider.JsafeJCE or
com.rsa.jsse.JsseProvider, and use these to provide cryptographic and
TLS implementations. Do not ask for the default implementation.
• Remove all other cryptographic providers from the
java.security provider
list. The provider list should only contain entries for Crypto-J and SSL-J.
• Ensure only cipher suites allowed by FIPS 140-2 are enabled.
• Use TLS protocol version 1.0, 1.1 or 1.2.