Choix des méthodes de chiffrement pour les liaisons de générateur

Pour configurer le client pour le chiffrement des demandes pour la liaison de générateur, vous devez indiquer les méthodes de chiffrement à utiliser lorsque le client chiffre les messages SOAP.

Avant de commencer

Avant de suivre cette procédure, voir les informations de chiffrement XML pour vous familiariser avec le chiffrement et le déchiffrement de messages SOAP.

Pour indiquer les méthodes d'algorithme à utiliser lorsque le client chiffre les messages SOAP, procédez comme suit :
  • Utilisez l'API WSSEncryption pour configurer les méthodes d'algorithme de chiffrement de données et d'algorithme de chiffrement de clé.
  • Utilisez l'API WSSEncryptPart pour configurer une méthode d'algorithme de transformation, si besoin est. Par défaut, il n'existe pas d'algorithme de transformation.

Pourquoi et quand exécuter cette tâche

Certaines définitions liées au chiffrement se basent sur la spécification XML-Encryption. Les informations suivantes déterminent des termes liés au chiffrement de données :

Algorithme de méthode de chiffrement des données :
Les algorithmes de chiffrement de données indiquent l'URI de l'algorithme pour la méthode de chiffrement des données. Cet algorithme chiffre et déchiffre des données dans des blocs muti-octets de taille fixe.

Par défaut, l'extension JCE (Java™ Cryptography Extension) est livrée avec des codes de chiffrement de puissance limitée. Pour utiliser les algorithmes de chiffrement AES (Advanced Encryption Standard) 192 bits et 256 bits, vous devez appliquer des fichiers de règles de juridiction sans restriction.

Pour les algorithmes AES256-cbc et AES192-cbc, vous devez télécharger les fichiers de règles JCE (Java Cryptography Extension) sans restriction, à partir du site Web suivant : http://www.ibm.com/developerworks/java/jdk/security/index.html.

Algorithme de méthode de chiffrement de clé :
Les algorithmes de déchiffrement de clés indiquent l'URI (Uniform Resource Identifier) de la méthode servant à chiffrer la clé. L'algorithme désigne les algorithmes de chiffrement de clé publique pour chiffrer et déchiffrer des clés.

Par défaut, l'algorithme RSA-OAEP utilise l'algorithme de synthèse de message SHA1 pour calculer une synthèse de message pendant le chiffrement. Vous pouvez éventuellement utiliser l'algorithme de synthèse de message SHA256 ou SHA512 en indiquant une propriété d'algorithme de chiffrement des clés.

Le nom de la propriété est : com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod. La valeur de la propriété correspond à l'une des URI suivantes de la méthode simplifiée :
  • http://www.w3.org/2001/04/xmlenc#sha256
  • http://www.w3.org/2001/04/xmlenc#sha512

Par défaut, l'algorithme RSA-OAEP utilise une chaîne nulle pour la chaîne d'octets de codage facultative de OAEPParams. Vous pouvez fournir une chaîne d'octets de codage en définissant une propriété d'algorithme de chiffrement des clés. Pour le nom de la propriété, vous pouvez utiliser com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams. La valeur de la propriété correspond à la valeur codée en base 64 de la chaîne d'octets.

Important : Vous pouvez configurer cette méthode simplifiée et les propriétés OAEPParams côté générateur uniquement. Côté client, ces propriétés sont lues à partir du message SOAP entrant.

Pour les algorithmes de chiffrement de clés KW-AES256 et KW-AES192, vous devez télécharger les fichiers de règles JCE, version non limitée (unrestricted), à partir du site Web : http://www.ibm.com/developerworks/java/jdk/security/index.html.

Important : Votre pays d'origine peut imposer des restrictions pour l'importation, l'utilisation ou la réexportation d'un logiciel de chiffrement vers un autre pays. Avant de télécharger ou d'utiliser des fichiers de règles non restreintes, vous devez vérifier les lois en vigueur dans votre pays, sa réglementation et ses règles concernant l'importation, la possession, l'utilisation et la réexportation du logiciel de chiffrement afin de déterminer si cela est autorisé.
Tableau 1. Types de syntaxe de chiffrement. Le type de syntaxe décrit les méthodes de chiffrement.
Types de syntaxe Description
Chiffrement des données Indique l'URI d'algorithme utilisé pour le chiffrement et le déchiffrement des données. Chiffre et déchiffre des données sous la forme de blocs de plusieurs octets à taille fixe.
Chiffrement des clés Indique l'URI d'algorithme utilisé pour le chiffrement et le déchiffrement des clés de chiffrement.

Chiffrement des données

WebSphere Application Server prend en charge les algorithmes de déchiffrement préconfigurés suivants :

Tableau 2. Algorithmes de chiffrement de données. Ces algorithmes de chiffrement préconfigurés sont pris en charge par WebSphere Application Server.
Nom de chiffrement de données URI d'algorithme
WSSEncryption.AES128 (valeur par défaut) URI de l'algorithme de chiffrement de données, AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc
WSSEncryption.AES192 URI de l'algorithme de chiffrement de données, AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc
WSSEncryption.AES256 URI de l'algorithme de chiffrement de données, AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc
WSSEncryption.TRIPLE_DES URI de l'algorithme de chiffrement de données 3DES : http://www.w3.org.2001/04/xmlenc#tripledes-cbc

Chiffrement des clés

WebSphere Application Server prend en charge les algorithmes de chiffrement de clés préconfigurés suivants :

Tableau 3. Algorithmes de chiffrement de clés. Ces algorithmes de chiffrement préconfigurés sont pris en charge par WebSphere Application Server.
Nom de chiffrement de clé URI d'algorithme
WSSEncryption.KW_AES128 URI de l'algorithme de chiffrement de clés, clé AES 128: http://www.w3.org/2001/04/xmlenc#kw-aes128
WSSEncryption.KW_AES192 URI de l'algorithme de chiffrement de clés, clé AES 192: http://www.w3.org/2001/04/xmlenc#kw-aes192
Restriction : N'utilisez pas l'algorithme de chiffrement de données 192 bits si vous voulez que l'application configurée soit compatible avec le profil BSP (Basic Security Profile).
WSSEncryption.KW_AES256 URI de l'algorithme de chiffrement de clés, clé AES 256: http://www.w3.org/2001/04/xmlenc#kw-aes256
WSSEncryption.KW_RSA_OAEP (valeur par défaut) URI de l'algorithme de chiffrement de clés, clé RSA OAEP: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
WSSEncryption.KW_RSA15 URI de l'algorithme de chiffrement de clés, clé RSA 1.5 : http://www.w3.org/2001/04/xmlenc#rsa-1_5
WSSEncryption.KW_TRIPLE_DES http://www.w3.org/2001/04/xmlenc#kw-tripledes

Pour configurer les méthodes d'algorithme de chiffrement et de parties chiffrées, utilisez l'API WSSEncryption ou configurez des ensembles de règles à l'aide de la console d'administration.

Remarque : Les ensembles de règles ne prennent pas en charge le chiffrement de clé symétrique. Si vous utilisez l'API WSS pour le chiffrement de clé symétrique, vous ne pourrez pas interopérer avec les noeuds finaux des services web utilisant des ensembles de règles.

L'API WSS suit la procédure de haut niveau pour indiquer les méthodes de chiffrement à utiliser lors de la configuration du client pour le chiffrement de la demande :

Procédure

  1. A l'aide de l'API WSSEncryption, elle ajoute l'algorithme de chiffrement de données obligatoire. L'algorithme de chiffrement des données permet de chiffrer et de déchiffrer les parties d'un message SOAP. Les algorithmes de chiffrement de données indiquent l'URI de l'algorithme pour la méthode de chiffrement des données.

    La configuration du générateur client doit correspondre à celle du fournisseur destinataire.

    L'algorithme de chiffrement de données par défaut est AES 128. Le nom de chiffrement de données est AES128, et l'URI de l'algorithme de chiffrement de données est http://www.w3.org/2001/04/xmlenc#aes128-cbc. WebSphere Application Server prend en charge les algorithmes de déchiffrement préconfigurés suivants :

    • AES 128 : http://www.w3.org/2001/04/xmlenc#aes128-cbc

      L'algorithme AES 128 est la méthode d'algorithme de données par défaut.

    • AES 192 : http://www.w3.org/2001/04/xmlenc#aes192-cbc

      N'utilisez pas l'algorithme de chiffrement de données 192 bits si vous voulez que l'application configurée soit compatible avec le profil BSP (Basic Security Profile).

      Pour utiliser cet algorithme AES 192-cbc, vous devez télécharger le fichier de règles non limité JCE (Java Cryptography Extension) à partir du site Web : http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • AES 256 : http://www.w3.org/2001/04/xmlenc#aes256-cbc

      Pour utiliser cet algorithme AES 256-cbc, vous devez télécharger le fichier de règles non limité JCE (Java Cryptography Extension) à partir du site Web : http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • TRIPLEDES : http://www.w3.org/2001/04/xmlenc#tripledes-cbc
  2. Si besoin est, elle modifie la méthode de l'API WSSEncryption pour indiquer un autre algorithme de chiffrement de données. Par exemple, vous pouvez ajouter le code suivant pour modifier l'algorithme AES 128 par défaut à l'algorithme Triple DES :
    // Algorithme de chiffrement de données par défaut : AES128
    WSSEncryption enc = factory.newWSSEncryption(x509t); 
       enc.setEncryptionMethod(EncryptionMethod.TRIPLEDES_CBC);
    gencont.add(enc); 
  3. A l'aide de l'API WSSEncryption, elle ajoute l'algorithme de chiffrement de clé obligatoire. L'algorithme de chiffrement de clé est utilisé pour le chiffrement de portions d'un message SOAP. Si la clé de chiffrement, utilisée pour chiffrer les parties du message, n'est pas chiffrée, l'API de déchiffrement choisit false pour correspondre à cette clé.

    La configuration du générateur client doit correspondre à celle du fournisseur destinataire.

    La valeur de l'algorithme de chiffrement de clé par défaut est l'encapsulation de clé RSA OAP. Le nom de chiffrement de clé est KW_RSA_OAEP, et l'URI de l'algorithme de chiffrement de clé est http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p. WebSphere Application Server prend en charge les algorithmes de chiffrement de clés préconfigurés suivants :

    • KW AES128 : http://www.w3.org/2001/04/xmlenc#kw-aes128
    • KW AES192 : http://www.w3.org/2001/04/xmlenc#kw-aes192

      Pour utiliser cet algorithme AES 192 d'encapsulation de clé, vous devez télécharger le fichier de règles JCE (Java Cryptography Extension) sans restriction, à partir du site Web : http://www.ibm.com/developerworks/java/jdk/security/index.html.

      N'utilisez pas l'algorithme de chiffrement de données 192 bits si vous voulez que l'application configurée soit compatible avec le profil BSP (Basic Security Profile).

      KW AES 256 : http://www.w3.org/2001/04/xmlenc#kw-aes256

      Pour utiliser cet algorithme AES 256-obc d'encapsulation de clé, vous devez télécharger le fichier de règles JCE (Java Cryptography Extension) sans restriction, à partir du site Web : http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • KW RSA OAEP : http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p.

      L'algorithme KW RSA OAEP est la méthode d'algorithme de clé par défaut.

      Lors de l'exécution avec le kit de développement de logiciels (SDK) version 1.4, la liste des algorithmes de transport de clés pris en charge n'inclut pas cet algorithme. L'algorithme apparaît dans la liste des algorithmes de transport de clé pris en charge avec SDK Version 1.5. Pour plus d'informations, voir http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p

    • KW RSA15 : http://www.w3.org/2001/04/xmlenc#rsa-1_5
    • KW TRIPLE DES : http://www.w3.org/2001/04/xmlenc#kw-tripledes
    Remarque : Pour Web Services Secure Conversation, l'API WSSEncryption peut indiquer d'autres informations liées aux clés, telle que :
    • algorithmName
    • keyLength

Résultats

S'il existe une condition d'erreur, une WSSException est fournie. Si l'opération aboutit, l'API appelle la méthode WSSGenerationContext.process(), l'en-tête WS-Security est généré et le message SOAP est sécurisé avec la sécurité des services Web.

Exemple

L'exemple suivant fournit un exemple de code d'API WSS avec WSSEncryption.setEncryptionMethod() et WSSEncryption.setKeyEncryptionMethod().

// Get the message context
   Object msgcontext = getMessageContext();

// Générer l'instance WSSFactory
   WSSFactory factory = WSSFactory.getInstance();

// Générer l'instance WSSGenerationContext
   WSSGenerationContext gencont = factory.newWSSGenerationContext();

// Générer le gestionnaire d'appel
   X509GenerateCallbackHandler callbackHandler = new 
       X509GenerateCallbackHandler(
                                   "",
                                   "enc-sender.jceks",
                                   "jceks", 
                                   "storepass".toCharArray(), 
                                   "bob", 
                                   null, 
                                   "CN=Bob, O=IBM, C=US", 
                                   null);

// Générer le jeton de sécurité utilisé pour le chiffrement
   SecurityToken token = factory.newSecurityToken(X509Token.class , callbackHandler);

// Générer l'instance WSSEncryption 
   WSSEncryption enc = factory.newWSSEncryption(token);

// Définir la méthode de chiffrement de données 
// DEFAULT: WSSEncryption.AES128
      enc.setEncryptionMethod(WSSEncryption.TRIPLE_DES);

// Définir la méthode de chiffrement de clé
// DEFAULT: WSSEncryption.KW_RSA_OAEP
      enc.setEncryptionMethod(WSSEncryption.KW_RSA15);

// Ajouter WSSEncryption à WSSGenerationContext
   gencont.add(enc);

// Génère l'en-tête WS-Security
gencont.process(msgcontext);

Que faire ensuite

Pour ajouter ensuite un algorithme de transformation, voir le processus de l'API WSSEncryptPart.


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=twbs_confwssencryptalgorithms
Nom du fichier : twbs_confwssencryptalgorithms.html