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 :
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.
- 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
Résultats
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);