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.

Para especificar los métodos de algoritmo que se van a utilizar cuando el cliente cifre los mensajes SOAP, complete las tareas siguientes:
  • 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.
Tabla 1. Tipos de uso de cifrado. Los tipos de uso de cifrado describen métodos de cifrado.
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:

Tabla 2. Algoritmos de cifrado de datos. WebSphere Application Server admite estos algoritmos de cifrado de preconfiguración.
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.

Tabla 3. Algoritmos de cifrado de claves. WebSphere Application Server admite estos algoritmos de cifrado preconfigurados.
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.

Nota: Los conjuntos de políticas no soportan el cifrado de claves simétricas. Si utiliza la API de WSS para el cifrado de claves simétricas, no podrá interactuar con los puntos finales de servicios web que utilizan conjuntos de políticas.

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

  1. Al utilizar la API WSSEncryption, se añade el algoritmo de cifrado de datos necesarios. El algoritmo de cifrado de datos se utiliza para cifrar o descifrar partes de un mensaje SOAP. Los algoritmos de cifrado de datos especifican el URI (identificador de recursos uniforme) del algoritmo del método de cifrado de datos.

    La configuración del generador de clientes debe coincidir con la configuración del consumidor de proveedores.

    El algoritmo de cifrado de datos predeterminado es AES 128. El nombre del cifrado de datos es AES128, y el URI del algoritmo del cifrado de datos es http://www.w3.org/2001/04/xmlenc#aes128-cbc. WebSphere Application Server da soporte a los algoritmos de cifrado de datos preconfigurados siguientes:

    • AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc

      El algoritmo AES 128 es el método de algoritmo de datos predeterminado.

    • AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc

      No utilice el algoritmo de cifrado de datos de 192 bits si desea que la aplicación configurada cumpla con BSP (Basic Security Profile).

      Para utilizar este algoritmo AES 192-cbc, debe descargar el archivo de políticas JCE (Java Cryptography Extension) sin limitaciones del sitio web: http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc

      Para utilizar este algoritmo AES 256-cbc, debe descargar el archivo de políticas JCE (Java Cryptography Extension) sin limitaciones del sitio web: http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • TRIPLEDES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc
  2. Cuando sea necesario, se modifica el método de la API WSSEncryption para especificar otro algoritmo de cifrado de datos. Por ejemplo, puede añadir el código siguiente para cambiar el algoritmo AES 128 predeterminado al algoritmo Triple DES:
    // Algoritmo de cifrado de datos predeterminado: AES128
    WSSEncryption enc = factory.newWSSEncryption(x509t); 
       enc.setEncryptionMethod(EncryptionMethod.TRIPLEDES_CBC);
    gencont.add(enc); 
  3. Al utilizar la API WSSEncryption, se añade el algoritmo de cifrado de claves necesarias. El algoritmo de cifrado de claves se utiliza para el cifrado de la clave que se utiliza para cifrar las partes del mensaje contenidas en el mensaje SOAP. Si la clave de cifrado, que es la clave que se utiliza para cifrar las partes del mensaje, no se cifra, la API de descifrado selecciona false para coincidir con la clave de cifrado.

    La configuración del generador de clientes debe coincidir con la configuración del consumidor de proveedores.

    El valor predeterminado del algoritmo de cifrado de claves es envoltura de claves RSA OAP. El nombre de cifrado de claves es KW_RSA_OAEP, y el URI del algoritmo de cifrado de claves de http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p. WebSphere Application Server da soporte a los siguientes algoritmos preconfigurados de cifrado de claves.

    • KW AES128: http://www.w3.org/2001/04/xmlenc#kw-aes128
    • KW AES192: http://www.w3.org/2001/04/xmlenc#kw-aes192

      Para utilizar este algoritmo de envoltura de claves AES 192, debe descargar el archivo de políticas JCE (Java Cryptography Extension) sin limitaciones desde el sitio web siguiente: http://www.ibm.com/developerworks/java/jdk/security/index.html.

      No utilice el algoritmo de cifrado de datos de 192 bits si desea que la aplicación configurada cumpla con BSP (Basic Security Profile).

      KW AES 256: http://www.w3.org/2001/04/xmlenc#kw-aes256

      Para utilizar este algoritmo de envoltura de claves AES 256-cbc, debe descargar el archivo de políticas JCE (Java Cryptography Extension) sin limitaciones desde el sitio web siguiente: http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • KW RSA OAEP: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p.

      El algoritmo KW RSA OAEP es el método de algoritmo de clave predeterminado.

      Cuando se ejecuta con Software Development Kit (SDK) Versión 1.4, la lista de los algoritmos de transporte de claves soportadas no incluye este algoritmo. Este algoritmo aparece en la lista de algoritmos de transporte clave soportados cuando se ejecuta SDK versión 1.5. Consulte más información en http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p

    • KW RSA15: http://www.w3.org/2001/04/xmlenc#rsa-1_5
    • KW TRIPLE DES: http://www.w3.org/2001/04/xmlenc#kw-tripledes
    Nota: Para Web Services Secure Conversation, la API WSSEncryption puede especificar información adicional relacionada con las claves como, por ejemplo:
    • algorithmName
    • keyLength

Resultados

Si se produce una condición de error, se proporciona una excepción WSSException. Si es correcto, la API llama a WSSGenerationContext.process(), se genera la cabecera de WS-Security y se protege el mensaje SOAP utilizando Web Services Security.

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.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwssencryptalgorithms
File name: twbs_confwssencryptalgorithms.html