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.
A propos de 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, Java™ Cryptography Extension (JCE) est livré avec des chiffrements à force restreinte ou 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 le AES256-cbc et le AES192-cbc algorithmes, vous devez télécharger les fichiers de stratégie Java™ Cryptography Extension (JCE) sans restriction à partir du site Web suivant : https://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 :- https://www.w3.org/2001/04/xmlenc#sha256
- https://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 définir ces méthodes de digestion et ces propriétés OAEPParams uniquement côté générateur. Côté client, ces propriétés sont lues à partir du message SOAP entrant.Pour le KW_AES256 et le KW_AES192 algorithmes de chiffrement à clé, vous devez télécharger les fichiers de stratégie JCE sans restriction à partir du site Web suivant : https://www.ibm.com/developerworks/java/jdk/security/index.html.
Important: Votre pays d'origine peut avoir des restrictions sur l'importation, la possession, l'utilisation ou la réexportation vers un autre pays de logiciels de cryptage. 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 de décryptage suivants :
| Types de syntaxe | Descriptif |
|---|---|
| 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
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é :
// Get the message context
Object msgcontext = getMessageContext();
// Generate the WSSFactory instance
WSSFactory factory = WSSFactory.getInstance();
// Generate the WSSConsumingContext instance
WSSConsumingContext gencont = factory.newWSSConsumingContext();
// Generate the callback handler
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Generate WSSDecryption instance
WSSDecryption dec = factory.newWSSDecryption(X509Token.class,
callbackHandler);
// Set the candidates for the data encryption method
// DEFAULT : WSSDecryption.AES128
dec.addAllowedEncryptionMethod(WSSDecryption.AES128);
dec.addAllowedEncryptionMethod(WSSDecryption.AES192);
// Set the candidates for the key encryption method
// DEFAULT : WSSDecryption.KW_RSA_OAEP
dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);
// Add the WSSDecryption to WSSConsumingContext
concont.add(dec);
// Validate the WS-Security header
concont.process(msgcontext);