Choix des méthodes de déchiffrement pour la liaison de destinataire

Pour configurer le client pour le déchiffrement des réponses pour la liaison de destinataire, indiquez les données et les méthodes d'algorithme de transformation à utiliser lorsque le client dé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 configurer le déchiffrement en vue de sécuriser des messages SOAP, vous devez procéder comme suit :

  • Configurez le déchiffrement des portions du message SOAP.
  • Indiquez les méthodes de déchiffrement.

Vous pouvez configurer ces méthodes à l'aide des API WSSDecryption et WSSDecryptPart. Vous pouvez aussi configurer des ensembles de règles à l'aide de la console d'administration pour configurer les méthodes de déchiffrement.

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 l'algorithme de la méthode de déchiffrement de clés. 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 (digest) SHA1 pour calculer une synthèse de message dans le cadre du 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 null pour la chaîne d'octets de codage facultative pour 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, à partir du site Web suivant : 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é.

Pour effectuer la configuration de déchiffrement, vous devez indiquer l'URI de l'algorithme et son type de syntaxe. Si l'URI est le même pour plusieurs types de syntaxe, vous devez le définir pour chaque type de syntaxe. WebSphere Application Server prend en charge les types d'utilisation suivants du déchiffrement :

Tableau 1. Types de syntaxe de déchiffrement. Ces types de déchiffrement sont pris en charge par WebSphere Application Server.
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.

Pour configurer les algorithmes de déchiffrement et de portions déchiffrées, utilisez les API WSSDecryption et WSSDecryptPart 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.
Si vous utilisez les API WSS, les API WSSDecryption et WSSDecryptPart indiquent les méthodes d'algorithme utilisées lorsque le client déchiffre les messages SOAP.
  • Utilisez l'API WSSDecryption pour configurer les algorithmes de chiffrement de données et les méthodes d'algorithme de chiffrement de clé.
  • Utilisez l'API WSSDecryptPart pour configurer une méthode d'algorithme de transformation.

L'API WSS suit la procédure de haut niveau pour indiquer les méthodes d'algorithme de déchiffrement et de portions déchiffrées à utiliser lors de la configuration du client pour le déchiffrement de la réponse :

Procédure

  1. A l'aide de l'API WSSDecryption, 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 déchiffrement de données indiquent l'URI (Uniform Resource Identifier) de l'algorithme de la méthode de déchiffrement de données.

    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 :

    • AES128 : 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.

    • AES256 : 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.

    • AES192 : 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.

    • TRIPLE_DES : 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 :
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.TRIPLE_DES); 
  3. A l'aide de l'API WSSDecryption, 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 aucune clé n'est requise pour le chiffrement des données, vous devez indiquer WSSDecryption.encryptKey(false).

    L'algorithme de chiffrement de clé sélectionné côté destinataire doit correspondre à la méthode de chiffrement des clés sélectionnée côté générateur.

    La valeur de l'algorithme de chiffrement de clé par défaut est RSA_OAEP. 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.

      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).
    • KW_AES256 : 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_RSA_15 : 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
  4. Si besoin est, elle utilise la méthode d'API WSSDecryption pour modifier d'autres algorithmes de chiffrement de clé. Par exemple, vous pouvez ajouter le code suivant pour remplacer l'algorithme de chiffrement de clé par défaut KW_RSA_OAEP par l'algorithme TRIPLE_DES :
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);
  5. A l'aide de l'API WSSDecryptPart, elle ajoute un algorithme de transformation si besoin est. Il n'existe pas d'algorithme de transformation par défaut. WebSphere Application Server fournit toutefois une portion déchiffrée préconfigurée, WSSDecryptPart.TRANSFORM_ATTACHMENT_CIPHERTEXT, que vous pouvez ajouter.

Résultats

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

Exemple

L'exemple suivant fournit un code d'API WSS pour déchiffrer le contenu du corps et remplacer les valeurs par défaut des algorithmes de chiffrement de données et de clé :

// Obtenir le contexte de message
   Object msgcontext = getMessageContext();

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

// Générer l'instance WSSConsumingContext 
   WSSConsumingContext gencont = factory.newWSSConsumingContext();

// Générer le gestionnaire d'appel
   X509ConsumeCallbackHandler callbackHandler = new 
      X509ConsumeCallbackHandler(
                                 "",
                                 "enc-sender.jceks",
                                 "jceks", 
                                 "storepass".toCharArray(), 
                                 "alice", 
                                 "keypass".toCharArray(), 
                                 "CN=Alice, O=IBM, C=US");

// Générer l'instance WSSDecryption 
   WSSDecryption dec = factory.newWSSDecryption(X509Token.class, 
                                                callbackHandler);

// Définir les candidats pour la méthode de chiffrement de données
// PAR DEFAUT : WSSDecryption.AES128
   dec.addAllowedEncryptionMethod(WSSDecryption.AES128);
   dec.addAllowedEncryptionMethod(WSSDecryption.AES192);

// Définir les candidats pour la méthode de chiffrement de clé
// PAR DEFAUT : WSSDecryption.KW_RSA_OAEP
   dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);

// Ajouter WSSDecryption à WSSConsumingContext 
   concont.add(dec);

// Valider l'en-tête WS-Security
concont.process(msgcontext);

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_confwssdecryptalgorithms
Nom du fichier : twbs_confwssdecryptalgorithms.html