Métodos de descifrado
Los algoritmos de descifrado especifican los algoritmos de cifrado de datos y claves que se utilizan para descifrar el mensaje SOAP. La API de WSS para descifrado (WSSDecryption)
especifica el URI (Uniform Resource Identifier) del algoritmo de los métodos de cifrado de datos y de claves. La interfaz WSSDecryption forma parte
del paquete com.ibm.websphere.wssecurity.wssapi.decryption.
Algoritmos de cifrado de datos
Los algoritmos de cifrado de datos son los algoritmos que se utilizan para cifrar y descifrar datos. Este tipo de algoritmo se utiliza para cifrar los datos y cifrar y descifrar las diferentes partes del mensaje, incluido el contenido del cuerpo del mensaje y la firma.
Los algoritmos de descifrado de datos especifican el URI (Uniform Resource Identifier) del algoritmo del método de cifrado de datos. WebSphere® Application Server admite los siguientes algoritmos de descifrado de datos preconfigurados:
| API de WSS | Titularidades |
|---|---|
| WSSDecryption.AES128 (el valor predeterminado) | Un URI del algoritmo de cifrado de datos, AES 128: https://www.w3.org/2001/04/xmlenc#aes128-cbc |
| WSSDecryption.AES192 | Un URI del algoritmo de cifrado de datos, AES 192: https://www.w3.org/2001/04/xmlenc#aes192-cbc |
| WSSDecryption.AES256 | Un URI del algoritmo de cifrado de datos, AES 256: https://www.w3.org/2001/04/xmlenc#aes256-cbc |
| WSSDecryption.TRIPLE_DES | Un URI del algoritmo de cifrado de datos, TRIPLE DES: https://www.w3.org/2001/04/xmlenc#tripledes-cbc |
De forma predeterminada, Java™ Cryptography Extension (JCE) se distribuye con cifrados restringidos o de potencia limitada. Para utilizar algoritmos de cifrado AES (Advanced Encryption Standard) de 192 bits y 256 bits, debe aplicar archivos de política de jurisdicción ilimitada.
Para los algoritmos AES256-cbc y AES192-cbc, debe descargar los archivos de políticas sin restricciones de Java™ Cryptography Extension (JCE) desde el siguiente sitio web: https://www.ibm.com/developerworks/java/jdk/security/index.html.
El algoritmo de cifrado de datos debe coincidir con el algoritmo de descifrado de datos que se configura para el consumidor.
Algoritmos de cifrado de claves
Los algoritmos de cifrado de claves son algoritmos que se utilizan para cifrar y descifrar claves.
Esta información de claves se utiliza para especificar la configuración necesaria para generar la clave para firma digital y cifrado. Las configuraciones de la información de firmas y de la información de cifrado pueden compartir la información de claves. La información de claves del extremo del consumidor se utiliza para especificar la información relacionada con la clave que se utiliza para validar la firma digital en el mensaje recibido o para descifrar las partes cifradas del mensaje. El generador de solicitudes se configura para el cliente.
Los algoritmos de cifrado de claves especifican el URI (Uniform Resource Identifier) del algoritmo del método de cifrado de claves. WebSphere Application Server admite los siguientes algoritmos de cifrado de claves preconfigurados:
| API de WSS | Titularidades |
|---|---|
| WSSDecryption.KW_AES128 | Un URI del algoritmo de cifrado de claves, con la envoltura de clave AES 128: https://www.w3.org/2001/04/xmlenc#kw-aes128 |
| WSSDecryption.KW_AES192 | Un URI del algoritmo de cifrado de claves, con la envoltura de clave AES 192:
https://www.w3.org/2001/04/xmlenc#kw-aes192 Restricción: No utilice el algoritmo de cifrado de clave de 192 bits si desea que la aplicación configurada cumpla con el Perfil de seguridad básico (BSP).
|
| WSSDecryption.KW_AES256 | Un URI de algoritmo de cifrado de claves, con la envoltura de claves AES 256: https://www.w3.org/2001/04/xmlenc#kw-aes256 |
| WSSDecryption.KW_RSA_OAEP (el valor predeterminado) | Un URI del algoritmo de cifrado de claves, con la envoltura de claves RSA OAEP: https://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
| WSSDecryption.KW_RSA15 | Un URI del algoritmo de cifrado de claves, con la envoltura de claves RSA 1.5: https://www.w3.org/2001/04/xmlenc#rsa-1_5 |
| WSSDecryption.KW_TRIPLE_DES | Un URI del algoritmo de cifrado de datos, con la envoltura de claves TRIPLE DES: https://www.w3.org/2001/04/xmlenc#kw-tripledes |
De forma predeterminada, el algoritmo RSA-OAEP utiliza el algoritmo de resumen de mensajes SHA1 para calcular unresumen de mensaje como parte de la operación de cifrado. De manera opcional, puede utilizar el algoritmo de resumen de mensajes SHA256 o SHA512
especificando una propiedad de algoritmo de cifrado de claves. El nombre de la propiedad es: com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod. El valor de la propiedad es uno de los siguientes URI del método de conversión: https://www.w3.org/2001/04/xmlenc#sha256
https://www.w3.org/2001/04/xmlenc#sha512
De forma predeterminada, el algoritmo RSA-OAEP utiliza una serie nula para la serie
opcional de octetos de codificación para OAEPParams. Puede proporcionar una serie de
octetos de codificación explícita especificando una propiedad de algoritmo del cifrado de
claves. Para el nombre de la propiedad, puede especificar com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams. El valor de la propiedad es el valor codificado en base 64 de la serie de octeto.
Para los algoritmos de cifrado de claves « kw-aes256 » y « kw-aes192 », debe descargar los archivos de políticas JCE sin restricciones del siguiente sitio web: https://www.ibm.com/developerworks/java/jdk/security/index.html.
Este algoritmo de cifrado de claves para el generador debe coincidir con el del consumidor.
El siguiente ejemplo proporciona una muestra del código API de WSS para los algoritmos predeterminados que se utilizan para el descifrado de WebSphere Application Server :
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Required to attach username token into the message.
X509ConsumeCallbackHandler callbackHandler =
new X509ConsumeCallbackHandler("",
"enc-sender.jceks",
"JCEKS",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Set the decrypt component.
// Default encrypted part: Body-Content
// Default data encryption algorithm: AES128
// Default key encryption algorithm: KW-RSA-OAEP
WSSDecryption dec = factory.newWSSDecryption(X509Token.Type,
callbackHandler);
concont.add(dec);
// validate the WS-Security header.
concont.process(msgctx);