5.0 Configuration de JRE pour FIPS

Afin de configurer le JRE pour le mode approved-only (approuvé uniquement) BCFIPS :

  1. Ajoutez les fichiers BCFIPS.jar au classpath Java.

    Les fichiers BCFIPS requis sont les suivants :

    • bc-fips-1.0.2.4.jar

    • bcpkix-fips-1.0.7.jar

    • bctls-fips-1.0.18.jar

  2. Modifiez le fichier java.security dans le répertoire <racine-JRE>/lib/security et définissez une propriété système Java définie par BCFIPS.

    Dans un éditeur de texte, ouvrez le fichier ci-dessus pour le JRE qui héberge le conteneur Web à l'emplacement suivant : <racine-JRE>/conf/security/java.security. Recherchez la liste des fournisseurs de sécurité, mettez en commentaire tous les fournisseurs existants et remplacez les entrées par ce qui suit :

    • security.provider.1=BCFIPS

    • security.provider.2=BCJSSE

    • security.provider.3=SunJSSE

    • security.provider.4=SUN

    • security.provider.5=SunJCE

Le fournisseur SunJSSE (Java 11) est requis, car OSP nécessite des implémentations TrustManager spécifiques lors de l'initialisation de ses fichiers Truststore. Outre les modifications apportées aux fournisseurs de sécurité, l'implémentation KeyManager BCFIPS JSSE doit être utilisée. Cela s'explique principalement par le fait que des défaillances dans l'implémentation de Sun ne permettent pas d'effectuer certaines déterminations requises par la norme FIPS concernant les clés. Pour ce faire, dans java.security, remplacez la ligne :

ssl.KeyManagerFactory.algorithm=SunX509

par

ssl.KeyManagerFactory.algorithm=PKIX

Il est également préférable de désactiver les anciens algorithmes SSL et TLS. En effet, les algorithmes requis pour les versions SSL/TLS antérieures à TLS 2.0 ne sont pas disponibles en mode approved (approuvé) BCFIPS. Pour désactiver les anciens algorithmes, recherchez l'entrée jdk.tls.disabledAlgorithms. Par exemple :

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \ EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC

Ajoutez TLSv1 et TLSv1.1 à la liste :

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, MD5withRSA, DH keySize < 1024, \ EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC

La désactivation de TLSv1 et TLSv1.1 est facultative. Elle empêche toutefois l'apparition de messages d'erreur cryptiques lorsque OSP tente de se connecter de façon sécurisée avec des services (tels que LDAP) qui prennent uniquement en charge TLS v1.1 ou une version antérieure. Les messages d'erreur qui apparaissent lorsque les versions antérieures de TLS sont désactivées sont plus compréhensibles et indiquent directement le problème.

REMARQUE :eDirectory 8.8 (ou version antérieure) ne peut pas être utilisé avec LDAP sécurisé, car il ne prend en charge que TLS 1.0. Si vous souhaitez utiliser LDAP sécurisé, vous devez utiliser eDirectory 9 ou une version ultérieure. Une autre alternative consiste à modifier le type de keystore par défaut. Recherchez la ligne keystore.type=jks ou keystore.type=pkcs12 et remplacez-la par keystore.type=bcfks.