Méthodes de déchiffrement
Les algorithmes de déchiffrement définissent les algorithmes de chiffrement de données et de clés qui permettent de déchiffrer le message SOAP. L'API WSS destinée au déchiffrement (WSSDecryption) indique l'URI (Uniform Resource Identifier) de l'algorithme des méthodes de chiffrement de données et de clés. L'interface WSSDecryption se trouve dans le package com.ibm.websphere.wssecurity.wssapi.decryption.
Algorithmes de chiffrement de données
Les algorithmes de chiffrement de données sont les algorithmes utilisés pour le chiffrement et le déchiffrement des données. Ce type d'algorithme est utilisé pour le chiffrement de données permettant de chiffrer et déchiffrer diverses parties du message, y compris le corps du message et la signature.
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. WebSphere Application Server prend en charge les algorithmes de déchiffrement préconfigurés suivants :
API WSS | URI |
---|---|
WSSDecryption.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 |
WSSDecryption.AES192 | URI de l'algorithme de chiffrement de données, AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc |
WSSDecryption.AES256 | URI de l'algorithme de chiffrement de données, AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc |
WSSDecryption.TRIPLE_DES | URI de l'algorithme de chiffrement de données, TRIPLE DES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc |
Par défaut, l'extension JCE (Java™ Cryptography Extension) est fournie 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.
L'algorithme de chiffrement de données doit correspondre à l'algorithme de déchiffrement des données configuré pour le destinataire.
Algorithmes de chiffrement de clés
Les algorithmes de chiffrement de clés sont les algorithmes utilisés pour le chiffrement et le déchiffrement des clés.
Ces informations de clés permettent d'indiquer la configuration requise pour générer la clé de la signature numérique et du chiffrement. Les configurations des informations de signature et de chiffrement peuvent partager les informations de clé. Les informations de clés côté destinataire permettent d'indiquer les informations de clé utilisées pour valider la signature numérique dans le message reçu ou pour déchiffrer les parties chiffrées du message. Le générateur de la requête est configuré pour le client.
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. WebSphere Application Server prend en charge les algorithmes de chiffrement de clés préconfigurés suivants :
API WSS | URI |
---|---|
WSSDecryption.KW_AES128 | URI de l'algorithme de chiffrement de clés, clé AES 128: http://www.w3.org/2001/04/xmlenc#kw-aes128 |
WSSDecryption.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).
|
WSSDecryption.KW_AES256 | URI de l'algorithme de chiffrement de clés, clé AES 256: http://www.w3.org/2001/04/xmlenc#kw-aes256 |
WSSDecryption.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 |
WSSDecryption.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 |
WSSDecryption.KW_TRIPLE_DES | URI de l'algorithme de chiffrement de clés, clé TRIPLE DES: http://www.w3.org/2001/04/xmlenc#kw-tripledes |
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 de clé. Le nom de la propriété est : com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod. La valeur de la propriété correspond à l'un des URI suivants de la méthode de synthèse : 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 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.
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 suivant : http://www.ibm.com/developerworks/java/jdk/security/index.html.
L'algorithme de chiffrement de clé du générateur doit correspondre à l'algorithme de chiffrement de clé du destinataire.
L'exemple de code d'API WSS suivant est destiné aux algorithmes par défaut utilisés pour le déchiffrement WebSphereApplication Server :
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Requis pour rattacher le jeton username au message.
X509ConsumeCallbackHandler callbackHandler =
new X509ConsumeCallbackHandler("",
"enc-sender.jceks",
"JCEKS",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Définition du composant de déchiffrement.
// Partie chiffrée par défaut : Body-Content
// Algorithme de chiffrement de données par défaut : AES128
// Algorithme de chiffrement de clés par défaut : KW-RSA-OAEP
WSSDecryption dec = factory.newWSSDecryption(X509Token.Type,
callbackHandler);
concont.add(dec);
// Validation de l'en-tête WS-Security.
concont.process(msgctx);