Selección de los métodos de descifrado para el enlace del consumidor

Para configurar el cliente para el descifrado de respuestas para el enlace del consumidor, especifique qué datos y métodos de algoritmo de transformación se van a utilizar cuando el cliente descifra 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 completar la configuración de descifrado con objeto de proteger mensajes SOAP, debe completar las tareas siguientes:

  • Configurar el descifrado de las partes del mensaje SOAP
  • Especificar los métodos de descifrado.

Puede configurar los métodos de descifrado utilizando las API WSSDecryption y WSSDecryptPart. O bien también puede configurar conjuntos de políticas utilizando la consola administrativa para configurar los métodos de descifrado.

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 de cifrado de claves. El algoritmo representa los algoritmos de cifrado de claves públicas que se especifican para cifrar y descifrar claves.
De forma predeterminada, el algoritmo SHA1 utiliza el algoritmo de resumen de mensajes SHA1 para calcular la numeración de mensajes 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

De forma predeterminada, el algoritmo RSA_OAEP utiliza una serie null para la serie del 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ítica JCE sin limitaciones 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.

Para completar la configuración de descifrado, debe especificar el URI (identificador de recursos uniforme) del algoritmo y su tipo de uso. Si se utiliza el URI para varios tipos de uso, debe definir el URI para cada tipo de uso. WebSphere Application Server da soporte a los siguientes tipos de uso de descifrado:

Tabla 1. Tipos de uso de descifrado. WebSphere Application Server admite estos tipos de descifrado.
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.

Para configurar el descifrado y los algoritmos de la parte descifrada, utilice las API WSSDecryption y WSSDecryptPart, 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.
Si utiliza las API de WSS, las API WSSDecryption y WSSDecryptPart especifican qué métodos de algoritmo se utilizan, cuando el cliente descifra los mensajes SOAP.
  • Utilice la API WSSDecryption para configurar los métodos del algoritmo de cifrado de datos y del algoritmo de cifrado de claves.
  • Utilice la API WSSDecryptPart para configurar un método de algoritmo de transformación.

El proceso de la API de WSS completa los siguientes pasos de alto nivel para especificar qué descifrado y métodos del algoritmo de la parte descifrada se van a utilizar, cuando se configura el cliente para el descifrado de la respuesta:

Procedimiento

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

    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 siguientes algoritmos preconfiguradosde descifrado de datos.

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

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

    • AES256: 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.

    • AES192: 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.

    • TRIPLE_DES: 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:
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.TRIPLE_DES); 
  3. Al utilizar la API WSSDecryption, 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 no se necesita ninguna clave para cifrar los datos, debe especificar WSSDecryption.encryptKey(false).

    El algoritmo de cifrado de claves que seleccione para el consumidor debe coincidir con el método de cifrado de claves que seleccione para el generador.

    El valor del algoritmo de cifrado de claves predeterminado es la envoltura de claves RSA_OAEP. 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.

      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).
    • KW_AES256: 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 claves 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_RSA_15: 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
  4. Según sea necesario, utilice el método de la API WSSDecryption para cambiar a otros algoritmos de cifrado de claves. Por ejemplo, puede añadir el código siguiente para cambiar el algoritmo de cifrado de claves predeterminado KW_RSA_OAEP al algoritmo TRIPLE_DES:
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);
  5. Al utilizar la API WSSDecryptPart, se añade un algoritmo de transformación, según sea necesario. No existe ningún algoritmo de transformación predeterminado. Sin embargo, WebSphere Application Server proporciona una parte descifrada preconfigurada, WSSDecryptPart.TRANSFORM_ATTACHMENT_CIPHERTEXT, que se puede añadir.

Resultados

Si se produce una condición de error, se proporciona una excepción WSSException. Si es correcto, la API llama al método WSSConsumerContext.process(), se valida la cabecera de WS-Security y el mensaje SOAP ahora se protege utilizando Web Services Security.

Ejemplo

En el ejemplo siguiente se proporciona código de ejemplo de la API de WSS para descifrar el contenido del cuerpo, así como también, cambiar los valores predeterminados de los algoritmos de cifrado de datos y de claves:

// Obtener el contexto de mensaje 
   Object msgcontext = getMessageContext();

// Generar la instancia WSSFactory 
   WSSFactory factory = WSSFactory.getInstance();

// Generar la instancia WSSConsumingContext 
   WSSConsumingContext gencont = factory.newWSSConsumingContext();

// Generar el manejador de retorno de llamada
   X509ConsumeCallbackHandler callbackHandler = new 
      X509ConsumeCallbackHandler(
                                 "",
                                 "enc-sender.jceks",
                                 "jceks", 
                                 "storepass".toCharArray(), 
                                 "alice", 
                                 "keypass".toCharArray(), 
                                 "CN=Alice, O=IBM, C=US");

// Generar la instancia WSSDecryption 
   WSSDecryption dec = factory.newWSSDecryption(X509Token.class, 
                                                callbackHandler);

// Establecer los candidatos para el método de cifrado de datos
// DEFAULT : WSSDecryption.AES128
   dec.addAllowedEncryptionMethod(WSSDecryption.AES128);
   dec.addAllowedEncryptionMethod(WSSDecryption.AES192);

// Establecer los candidatos para el método de cifrado de claves
// DEFAULT : WSSDecryption.KW_RSA_OAEP
   dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);

// Añadir WSSDecryption a WSSConsumingContext 
   concont.add(dec);

// Validar la cabecera de WS-Security
concont.process(msgcontext);

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_confwssdecryptalgorithms
File name: twbs_confwssdecryptalgorithms.html