Selección de métodos de cifrado para enlaces de generador
Para configurar el cliente para el cifrado de solicitudes para el enlace del generador, debe especificar los métodos de cifrado que se van a utilizar cuando el cliente cifra los mensajes SOAP.
Antes de empezar
Antes de completar estos pasos, lea la información de cifrado de XML para familiarizarse con el cifrado y el descifrado de mensajes SOAP.
- Utilice la API WSSEncryption para configurar los métodos del algoritmo de cifrado de datos y del algoritmo de cifrado de claves.
- Utilice la API WSSEncryptPart para configurar un método de algoritmo de transformación, si fuera necesario. El valor predeterminado no es el algoritmo de transformación.
Acerca de esta tarea
Algunas de las definiciones relacionadas con el cifrado se basan en la especificación XML-Encryption. La información siguiente define algunos términos relacionados con el cifrado de datos:
- Algoritmo de método de cifrado de datos
- Los algoritmos de cifrado de datos especifican el URI (identificador de recursos uniforme) del algoritmo del método de cifrado de datos. Este algoritmo cifra y descifra los datos en bloques de tamaño fijo de varios octetos.
De forma predeterminada, JCE (Java™ Cryptography Extension) se facilita con cifrados de nivel limitado o restringido. 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 JCE (Java™ Cryptography Extension) sin restricciones desde el siguiente sitio web: http://www.ibm.com/developerworks/java/jdk/security/index.html.
- Algoritmo de método de cifrado de claves
- Los algoritmos de cifrado de claves especifican el URI (identificador de recursos uniforme) del algoritmo del método para cifrar la clave que se utiliza para cifrar datos. El algoritmo representa los algoritmos de cifrado de claves públicas
que se especifican para cifrar y descifrar claves.
De forma predeterminada, el algoritmo RSA-OAEP utiliza el algoritmo de resumen de mensajes SHA1 para calcular un resumen 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 propiedad es uno de los URI siguientes del método de conversión:- http://www.w3.org/2001/04/xmlenc#sha256
- http://www.w3.org/2001/04/xmlenc#sha512
Por omisión, el algoritmo RSA-OAEP utiliza una serie null para la serie de octeto de codificación opcional de los OAEPParams. Puede proporcionar una serie de octetos de codificación explícita especificando una propiedad de algoritmo del cifrado de claves. Como 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.
Importante: Puede establecer este método de numeración y las propiedades OAEPParams sólo en el generador. En el consumidor, estas propiedades se leen desde el mensaje SOAP entrante.Para los algoritmos de cifrado de claves KW-AES256 y KW-AES192, debe descargar los archivos de políticas JCE sin restricciones desde el sitio web siguiente: http://www.ibm.com/developerworks/java/jdk/security/index.html.
Importante: Es posible que su país de origen tenga restricciones sobre la importación, posesión, utilización o reexportación a otro país de software de cifrado. Antes de descargar o bien utilizar los archivos de políticas sin restricciones, debe consultar las leyes de su país, sus regulaciones y las políticas relativas a la importación, posesión, uso y reexportación de software cifrado, para determinar si está permitido.
Tipos de uso | Descripción |
---|---|
Cifrado de datos | Especifica el URI del algoritmo que se utiliza para el cifrado y el descifrado de datos. Cifra y descifra los datos en data en bloques de tamaño fijo de varios octetos. |
Cifrado de claves | Especifica el URI del algoritmo que se utiliza para el cifrado y el descifrado de la clave de cifrado. |
Cifrado de datos
WebSphere Application Server da soporte a los algoritmos de cifrado de datos preconfigurados siguientes:
Nombre de cifrado de datos | URI del algoritmo |
---|---|
WSSEncryption.AES128 (el valor predeterminado) | Un URI del algoritmo de cifrado de datos, AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc |
WSSEncryption.AES192 | Un URI del algoritmo de cifrado de datos, AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc |
WSSEncryption.AES256 | Un URI del algoritmo de cifrado de datos, AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc |
WSSEncryption.TRIPLE_DES | Un URI del algoritmo de cifrado de datos, 3DES: http://www.w3.org.2001/04/xmlenc#tripledes-cbc |
Cifrado de claves
WebSphere Application Server da soporte a los siguientes algoritmos preconfigurados de cifrado de claves.
Nombre de cifrado de claves | URI del algoritmo |
---|---|
WSSEncryption.KW_AES128 | Un URI del algoritmo de cifrado de claves, envoltura de claves AES 128: http://www.w3.org/2001/04/xmlenc#kw-aes128 |
WSSEncryption.KW_AES192 | Un URI del algoritmo de cifrado de claves, envoltura de claves AES 192: http://www.w3.org/2001/04/xmlenc#kw-aes192 Restricción: No utilice el algoritmo de cifrado de datos de 192 bits si desea que la aplicación configurada cumpla con BSP (Basic Security Profile).
|
WSSEncryption.KW_AES256 | Un URI del algoritmo de cifrado de claves, envoltura de claves AES 256: http://www.w3.org/2001/04/xmlenc#kw-aes256 |
WSSEncryption.KW_RSA_OAEP (el valor predeterminado) | Un URI del algoritmo de cifrado de claves, envoltura de claves RSA OAEP: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
WSSEncryption.KW_RSA15 | Un URI del algoritmo de cifrado de claves, envoltura de claves RSA 1.5: http://www.w3.org/2001/04/xmlenc#rsa-1_5 |
WSSEncryption.KW_TRIPLE_DES | http://www.w3.org/2001/04/xmlenc#kw-tripledes |
Para configurar el cifrado y los métodos del algoritmo de la parte cifrada, utilice la API WSSEncryption, o configure conjuntos de políticas utilizando la consola administrativa.
El proceso de la API de WSS completa los siguientes pasos de alto nivel para especificar los métodos de cifrado que se van a utilizar cuando se configure el cliente para el cifrado de solicitudes:
Procedimiento
Resultados
Ejemplo
En el ejemplo siguiente se proporciona código de ejemplo de la API de WSS que utiliza WSSEncryption.setEncryptionMethod() y WSSEncryption.setKeyEncryptionMethod().
// Obtener contexto de mensaje
Object msgcontext = getMessageContext();
// Generar la instancia WSSFactory
WSSFactory factory = WSSFactory.getInstance();
// Generar la instancia WSSGenerationContext
WSSGenerationContext gencont = factory.newWSSGenerationContext();
// Generar el manejador de retorno de llamada
X509GenerateCallbackHandler callbackHandler = new
X509GenerateCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"bob",
null,
"CN=Bob, O=IBM, C=US",
null);
// Generar la señal de seguridad utilizada para el cifrado
SecurityToken token = factory.newSecurityToken(X509Token.class , callbackHandler);
// Generar la instancia WSSEncryption
WSSEncryption enc = factory.newWSSEncryption(token);
// Establecer el método de cifrado de datos
// DEFAULT: WSSEncryption.AES128
enc.setEncryptionMethod(WSSEncryption.TRIPLE_DES);
// Establecer el método de cifrado de claves
// DEFAULT: WSSEncryption.KW_RSA_OAEP
enc.setEncryptionMethod(WSSEncryption.KW_RSA15);
// Añadir WSSEncryption a WSSGenerationContext
gencont.add(enc);
// Generar la cabecera de WS-Security
gencont.process(msgcontext);
Qué hacer a continuación
A continuación, si desea añadir un algoritmo de transformación, revise la tarea del proceso de la API WSSEncryptPart.