Configuration de fichiers JSSE (Java Secure Socket Extension) conformes à la norme FIPS

Cette rubrique vous permet de configurer les fichiers JSSE (Java™ Secure Socket Extension) conformes à la norme FIPS (Federal Information Processing Standard).

Pourquoi et quand exécuter cette tâche

Dans WebSphere Application Server, le fournisseur JSSE (Java Secure Socket Extension) utilisé est le fournisseur IBMJSSE2. Ce fournisseur délègue les fonctions de chiffrement et de signature au fournisseur JCE (Java Cryptography Extension). IBMJSSE2 n'effectuant pas d'opérations de chiffrement, il n'est pas nécessaire qu'il soit agréé par FIPS (Federal Information Processing Standard). Toutefois, le fournisseur JCE requiert l'agrément de FIPS.
WebSphere Application Server est doté d'un fournisseur IBMJCEFIPS agréé par FIPS qu'IBMJSSE2 peut utiliser. Le fournisseur IBMJCEFIPS fourni dans WebSphere Application Server Version 9.0 prend en charge les codes de chiffrement SSL suivants :
  • SSL_RSA_WITH_AES_128_CBC_SHA
  • SSL_RSA_WITH_3DES_EDE_CBC_SHA
  • SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
  • SSL_DHE_RSA_WITH_AES_128_CBC_SHA
  • SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
  • SSL_DHE_DSS_WITH_AES_128_CBC_SHA
  • SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA

Lorsque vous activez l'option d'utilisation des algorithmes FIPS (Federal Information Processing Standard) dans le panneau de gestion des certificats SSL et des clés du serveur, la phase d'exécution utilise toujours IBMJSSE2, quel que soit le fournisseur contextProvider que vous spécifiez pour SSL (IBMJSSE ou IBMJSSE2S). Comme FIPS requiert que le protocole SSL soit TLS, la phase d'exécution utilise toujours TLS lorsque FIPS est activé, quels que soient les paramètres définis pour le protocole SSL dans le répertoire SSL. Cette disposition permet de simplifier la configuration FIPS dans Version 9.0 car l'administrateur n'a qu'à activer l'option d'utilisation des algorithmes FIPS (Federal Information Processing Standard) dans le panneau Communications sécurisées du serveur pour activer tous les transports à l'aide de SSL.

Procédure

  1. Cliquez sur Sécurité > Certificat SSL et gestion des clés > Gestion FIPS.
  2. Sélectionnez l'option Activer FIPS 140-2, puis cliquez sur Appliquer. Cette option fait de IBMJSSE2 et IBMJCEFIPS les fournisseurs actifs.
  3. Gérez les clients Java qui doivent accéder aux beans enterprise.

    Changez la valeur de la propriété com.ibm.security.useFIPS de false en true dans le fichier racine_profil/properties/ssl.client.props.

  4. Vérifiez que la propriété com.ibm.ssl.protocol dans le fichier racine_profil/properties/ssl.client.props a pour valeur TLS.
  5. Vérifiez que le fichier java.security contient le fournisseur. [AIX Solaris HP-UX Linux Windows][IBM i]

    Editez le fichier java.security afin d'y insérer le fournisseur IBMJCEFIPS (com.ibm.crypto.fips.provider.IBMJCEFIPS) avant le fournisseur IBMJCE et renumérotez le reste de la liste des fournisseurs. Le fournisseur IBMJCEFIPS doit se trouver dans la liste des fournisseurs du fichier java.security.

    [IBM i]Le fichier java.security se trouve dans le répertoire racine_profil/properties.

    [AIX Solaris HP-UX Linux Windows][z/OS]Le fichier java.security se trouve dans le répertoire WASHOME/java/jre/lib/security.

    Le fichier IBM® SDK java.security ressemble à l'exemple suivant après la réalisation de cette étape :[AIX Solaris HP-UX Linux Windows][z/OS]
    security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS 
    security.provider.2=com.ibm.crypto.provider.IBMJCE  
    security.provider.3=com.ibm.jsse.IBMJSSEProvider   
    security.provider.4=com.ibm.jsse2.IBMJSSEProvider2   
    security.provider.5=com.ibm.security.jgss.IBMJGSSProvider 
     security.provider.6=com.ibm.security.cert.IBMCertPath  
    security.provider.7=com.ibm.crypto.pkcs11impl.provider.IBMPKCS11Impl
    security.provider.8=com.ibm.security.cmskeystore.CMSProvider
    security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    security.provider.10=com.ibm.security.sasl.IBMSASL 
    security.provider.11=com.ibm.xml.crypto.IBMXMLCryptoProvider 
    security.provider.12=com.ibm.xml.enc.IBMXMLEncProvider  
    security.provider.13=org.apache.harmony.security.provider.PolicyProvider
    [IBM i]
    security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.2=com.ibm.crypto.provider.IBMJCE
    security.provider.3=com.ibm.jsse.IBMJSSEProvider
    security.provider.4=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.5=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.6=com.ibm.security.cert.IBMCertPath
    security.provider.7=com.ibm.i5os.jsse.JSSEProvider
    security.provider.8=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    security.provider.10=com.ibm.security.cmskeystore.CMSProvider
    security.provider.11=com.ibm.security.sasl.IBMSASL
    security.provider.12=com.ibm.xml.crypto.IBMXMLCryptoProvider
    security.provider.13=com.ibm.xml.enc.IBMXMLEncProvider
    security.provider.14=org.apache.harmony.security.provider.PolicyProvider
    [AIX Solaris HP-UX Linux Windows][IBM i]Une fois cette étape terminée, le fichier java.security ressemble à l'exemple suivant si vous utilisez le kit Oracle Java SE Development Kit :
    security.provider.1=sun.security.provider.Sun  
    security.provider.2=com.ibm.crypto.fips.provider.IBMJCEFIPS  
    security.provider.3=com.ibm.crypto.provider.IBMJCE
    security.provider.4=com.ibm.jsse.IBMJSSEProvider 
    security.provider.5=com.ibm.jsse2.IBMJSSEProvider2 
    security.provider.6=com.ibm.security.jgss.IBMJGSSProvider 
    security.provider.7=com.ibm.security.cert.IBMCertPath   
    #security.provider.12=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    security.provider.9=com.ibm.security.cmskeystore.CMSProvider 
    security.provider.10=com.ibm.security.sasl.IBMSASL 
    security.provider.11=com.ibm.xml.crypto.IBMXMLCryptoProvider 
    security.provider.12=com.ibm.xml.enc.IBMXMLEncProvider   
    [z/OS]

    Editez le fichier java.security pour annuler la mise en commentaire de la ligne relative au fournisseur IBMJCEFIPS et renumérotez le reste de la liste des fournisseurs. Le fournisseur IBMJCEFIPS doit se trouver dans la liste des fournisseurs du fichier java.security. Le fichier java.security se trouve dans le répertoire WASHOME/java/jre/lib/security. Pour modifier le fichier, effectuez les étapes suivantes :

    [z/OS]
    1. Copiez le fichier java.security dans un répertoire accessible en écriture.
    2. Editer le fichier java.security pour ajouter un commentaire à la ligne relative au fournisseur IBMJCE, supprimez le commentaire de la ligne relative au fournisseur IBMJCEFIPS et sauvegardez le fichier.

      Le fichier java.security du kit de développement de logiciels IBM SDK ressemble à l'exemple précédent avant la réalisation de cette étape :

      #security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
      security.provider.1=com.ibm.crypto.provider.IBMJCE
      security.provider.2=com.ibm.jsse.IBMJSSEProvider
      security.provider.3=com.ibm.jsse2.IBMJSSEProvider2
      security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
      security.provider.5=com.ibm.security.cert.IBMCertPath
      security.provider.6=com.ibm.crypto.pkcs11.provider.IBMPKCS11
      security.provider.7=com.ibm.security.cmskeystore.CMSProvider
      security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    3. Configurez les propriétés système security.overridePropertiesFile etjava.security.properties pour chaque machine JVM (Java Virtual Machine) de la cellule. Ajoutez la propriété et les paires de valeurs suivantes :
      Tableau 1. Propriétés personnalisées pour la spécification d'un nouvel emplacement du fichier java.security.

      Ce tableau répertorie les propriétés personnalisées permettant de définir un nouvel emplacement pour le fichier java.security file.

      Nom de la propriété valeur
      security.overridePropertiesFile true
      java.security.properties Indiquez le nouvel emplacement du fichier java.security.
      Vous devez spécifier les propriétés système précédentes pour le gestionnaire de déploiement, l'agent de noeud et les autres serveurs d'applications. Pour le gestionnaire de déploiement, spécifiez cet ensemble de propriétés système à la fois pour le contrôle et le servant. Pour l'agent de noeud, spécifiez cet ensemble de propriétés système pour le contrôle. Pour tous les serveurs d'applications, indiquez cet ensemble de propriétés système pour l'auxiliaire, le contrôle et le servant. Par exemple, effectuez les étapes suivantes pour spécifier ces propriétés système pour le contrôle d'un serveur d'applications :
      1. Dans la console d'administration, cliquez sur Serveurs > Serveurs d'applications > nom_serveur.
      2. Sous infrastructure du serveur, cliquez sur Gestion des processus et Java > Définition de processus > Contrôle.
      3. Sous Propriétés supplémentaires, cliquez sur Machine virtuelle Java > Propriétés personnalisées.
      4. Entrez les propriétés en deux ensembles de paires nom et valeur.
      5. Cliquez sur Sauvegarder.

Que faire ensuite

Une fois ces opérations effectuées, un fournisseur JJSE ou JCE agréé FIPS bénéficie de capacités de chiffrement accrues. Toutefois, lorsque vous faites appel à des fournisseurs agréés FIPS, vous devez prendre en compte les points suivants :
  • Par défaut, TLS n'est pas activé dans Microsoft Internet Explorer. Pour activer TLS, ouvrez le navigateur Internet Explorer et cliquez sur Outils > Options Internet. Dans l'onglet Avancé, cochez l'option TLS 1.0.
    Remarque : Netscape version 4.7.x et antérieures risquent de ne pas gérer le protocole TLS.
  • Lorsque vous sélectionnez l'option Utiliser la norme FIPS ((Federal Information Processing Standard) dans le panneau Sécurité globale, le format de jeton LTPA n'offre pas de compatibilité en amont avec les versions antérieures de WebSphere Application Server. Vous pouvez toutefois importer les clés LTPA à partir d'une version précédente du serveur d'applications.
  • Remarque : En raison de la limitation WebSphere actuelle, la longueur des clés secrètes n'est pas évaluée par rapport à la conformité FIPS sp800-131a. Si des clés secrètes figurent dans le fichier de clés, vérifiez leur longueur en exécutant la commande iKeyman dans le répertoire {WebSphere_install_dir}\java\jre\bin ou en utilisant d'autres outils de fichiers de clés.
[AIX Solaris HP-UX Linux Windows]Avertissement : L'erreur suivante risque de se produire lorsque vous tentez d'arrêter WebSphere Application Server après l'activation de l'option FIPS :
ADMU3007E: Exception com.ibm.websphere.management.exception.ConnectorException
Supprimez la mise en commentaire de l'entrée suivante du fichier java.security, si elle a été supprimée ou commentée, puis redémarrez le serveur :
security.provider.2=com.ibm.crypto.provider.IBMJCE
Remarque : Lorsque vous activez FIPS, vous ne pouvez pas configurer les unités de jetons de chiffrement dans les répertoires SSL. Lorsque vous faites appel aux services cryptographiques de FIPS, IBMJSSE2 doit utiliser IBMJCEFIPS.
Fournisseurs cryptographiques FIPS 140-2 approuvés suivant qui sont les seuls périphériques pris en charge avec l'option FIPS :
  • IBMJCEFIPS (certificat 376)
  • IBM Cryptography pour langage C (ICC) (certificat 384)
Les certificats pertinents sont répertoriés sur le site Web NIST : Cryptographic Module Validation Program FIPS 140-1 and FIPS 140-2 Pre-validation List .
Pour annuler la configuration du fournisseur FIPS, procédez aux modifications inverses de celles que vous venez d'effectuer dans les étapes précédentes. Une fois que vous avez procédé aux modifications inverses, vérifiez que vous avez apporté les modifications suivantes aux fichiers sas.client.props, soap.client.props e java.security :
  • Dans le fichier ssl.client.props, vous devez modifier la valeur com.ibm.security.useFIPS et la faire passer à false.
  • [AIX Solaris HP-UX Linux Windows][z/OS]Dans le fichier java.security, vous devez remplacer le fournisseur FIPS par un fournisseur non-FIPS.
    Si vous utilisez le fichier java.security d'IBM SDK, vous devez remplacer le premier fournisseur par un fournisseur non FIPS comme indiqué dans l'exemple suivant :
    #security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.1=com.ibm.crypto.provider.IBMJCE
    security.provider.2=com.ibm.jsse.IBMJSSEProvider
    security.provider.3=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.5=com.ibm.security.cert.IBMCertPath
    #security.provider.6=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    Si vous utilisez le fichier java.security de Sun SDK, vous devez remplacer le troisième fournisseur par un fournisseur non FIPS comme l'illustre l'exemple suivant :
    security.provider.1=sun.security.provider.Sun
    security.provider.2=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.3=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.4=com.ibm.crypto.provider.IBMJCE
    security.provider.5=com.ibm.jsse.IBMJSSEProvider
    security.provider.6=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.7=com.ibm.security.cert.IBMCertPath
    #security.provider.8=com.ibm.crypto.pkcs11.provider.IBMPKCS11
  • [IBM i]Editez le fichier java.security afin de supprimer le fournisseur FIPS de la liste des fournisseurs et renuméroter les fournisseurs comme dans l'exemple suivant :
    security.provider.1=sun.security.provider.Sun
    #security.provider.2=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.2=com.ibm.crypto.provider.IBMJCE
    security.provider.3=com.ibm.jsse.IBMJSSEProvider
    security.provider.4=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.5=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.6=com.ibm.security.cert.IBMCertPath
    security.provider.7=com.ibm.i5os.jsse.JSSEProvider
    #security.provider.8=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
[z/OS]Lorsque vous utilisez le fournisseur FIPS, le kit de développement de logiciels (SDK) IBM peut renvoyer un message d'erreur indiquant un certificat incorrect. Ce message d'erreur peut avoir des origines multiple, mais vous devez vérifier la configuration de votre sécurité et envisager l'une des actions suivantes :
  • Spécifiez le niveau Moyen pour l'algorithme de cryptographie, si son niveau est actuellement Fort.
    Eviter les incidents Eviter les incidents: Vous pouvez modifier le niveau de votre algorithme de cryptographie pour différents niveaux de votre environnement (par exemple, au niveau du noeud ou du serveur). Limitez la modification au niveau de votre environnement où la modification est nécessaire.gotcha

    Pour modifier le niveau de l'algorithme de cryptographie, reportez-vous aux informations sur les groupes d'algorithmes de cryptographie dans la documentation sur la qualité des paramètres de protection. Si vous spécifiez le niveau Moyen pour l'algorithme de cryptographie, sauvegardez et synchronisez les modifications. Si l'option Mettre à jour dynamiquement l'exécution lorsque des modifications de la configuration SSL surviennent est sélectionnée, vous n'avez pas besoin de redémarrer le serveur. Toutefois, si cette option n'est pas sélectionnée, vous devez redémarrer le serveur pour que les modifications soient prises en compte. L'option Mettre à jour dynamiquement l'exécution lorsque des modifications de la configuration SSL surviennent est disponible dans le panneau Gestion des certificats SSL et des clés de la console d'administration. Pour accéder à ce panneau, cliquez sur Sécurité > Certificat SSL et gestion des clés.

  • Installez le niveau de sécurité 3 FMID JCPT3A1 pour le système d'exploitation z/OS.

    Le niveau de sécurité 3 FMID JCPT3A1 correspond à l'implémentation du système d'exploitation z/OS des fournisseurs cryptographiques approuvés FIPS 140-2.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_fips
Nom du fichier : tsec_fips.html