Mejoras de seguridad de servicios web
WebSphere Application Server incluye varias mejoras para proteger los servicios web. Por ejemplo, se da soporte a los conjuntos de políticas del paquete de características para servicios web de WebSphere Application Server Versión 6.1 y posterior, para simplificar la configuración de seguridad de los servicios web.
Creación de aplicaciones
El tiempo de ejecución de la seguridad de servicios web que utiliza WebSphere Application Server Versión 8 se basa en el modelo de programación JAX-WS (Java™ API for XML Web Services). El tiempo de ejecución JAX-WS se basa en Apache Open Source Axis2 y el modelo de datos es AXIOM. En lugar del descriptor de despliegue y los enlaces, se utiliza un conjunto de políticas para la configuración. Puede utilizar la consola administrativa de WebSphere Application Server para editar los archivos de enlaces de aplicaciones asociados a los conjuntos de políticas. Se da soporte al tiempo de ejecución de JAX-WS del paquete de características para servicios web de WebSphere Application Server V6.1 y posterior.
Todavía se da soporte al modelo de programación JAX-RPC, que utiliza descriptores de despliegue y enlaces. Consulte el tema Protección de servicios web JAX-RPC utilizado la seguridad a nivel de mensajes para obtener más información.
Utilización de conjuntos de políticas
Utilice conjuntos de políticas para simplificar la configuración QOS (Quality of Service) de los servicios web.
Los conjuntos de políticas combinan los valores de configuración, incluidos los de la configuración de nivel de transporte y mensajes, como Web Services Addressing (WS-Addressing), Web Services Reliable Messaging (WS-ReliableMessaging), y Web Services Security (WS-Security), que incluye Secure Conversation (WS-SecureConversation).
Gestión de políticas de confianza
Web Services Security Trust (WS-Trust) ofrece la posibilidad de que un punto final emita una señal de contexto de seguridad para Web Services Secure Conversation (WS-SecureConversation). La señal que emite el soporte está limitado a la señal de contexto de seguridad. La gestión de políticas de confianza define una política para cada una de las operaciones del servicio de confianza como, por ejemplo, emitir, cancelar, validar y renovar una señal. Las políticas de rutina de carga de un cliente deben corresponderse con las políticas del servicio de confianza de WebSphere Application Server.
Protección de mensajes basados en sesiones
Web Services Secure Conversation proporciona una sesión segura para intercambiar mensajes de larga ejecución y aprovechar el algoritmo criptográfico simétrico. WS-SecureConversation proporciona la seguridad básica para proteger los patrones de intercambio de mensajes basados en sesiones como, por ejemplo, Web Services Security Reliable Messaging (WS-ReliableMessaging).
Actualización de la seguridad a nivel de mensajes
- Confirmación de firma
- Cabeceras cifradas
La confirmación de firma amplía la protección de la seguridad de firma digital XML. El elemento <SignatureConfirmation> indica que el encargado de la respuesta ha procesado la firma en la petición y la confirmación de firma comprueba que la firma se ha procesado en el destinatario indicado. Para procesar la confirmación de firma correctamente, el iniciador debe conservar las firmas durante el proceso de generación de solicitudes y posteriormente debe recuperar las firmas para las comprobaciones de confirmación, incluso con la naturaleza sin estado del servicio web y los distintos patrones de intercambio de mensajes. La confirmación de firma se habilita configurando la política.
El elemento de cabecera cifrada proporciona una forma estándar de cifrar cabeceras SOAP que aumenta la interoperatividad. Como se define en la especificación de seguridad de mensajes SOAP, el elemento <EncryptedHeader> indica que debe protegerse una cabecera SOAP concreta (o un conjunto de cabeceras). El cifrado de partes y cabeceras SOAP permite proporcionar una mayor seguridad a nivel de mensajes. El elemento EncryptedHeader garantiza la conformidad con las directrices de proceso mustUnderstand de SOAP e impide la divulgación de información contenida en los atributos de un bloque de cabecera SOAP.
Utilización de la aserción de identidad
- Una señal Username sin una contraseña
- Una señal X.509 para un certificado X.509
Para obtener más información sobre la aserción de identidades, lea el tema Evaluador de ID de confianza.
Firma o cifrado de datos con una señal personalizada
Para el modelo de programación de JAX-RPC, el localizador de claves, o la interfaz com.ibm.wsspi.wssecurity.keyinfo.KeyLocator Java se ha ampliado para dar soporte a la flexibilidad de la especificación. El localizador de claves es el responsable de localizar la clave. El sujeto JAAS local se pasa en el método KeyLocator.getKey() del contexto. La implementación del localizador de claves se puede derivar de la clave de la señal, que ha creado el generador de señales o el consumidor de señales, para firmar un mensaje, para verificar la firma de un mensaje, para cifrar un mensaje o para descifrar un mensaje. La interfaz com.ibm.wsspi.wssecurity.keyinfo.KeyLocator Java es distinta a la versión de WebSphere Application Server Versión 5.x. La interfaz com.ibm.wsspi.wssecurity.config.KeyLocator de la versión 5.x se ha dejado de utilizar. No se efectúa una migración automática del localizador de claves de la versión 5.x a las versiones 6 y posterior. Debe migrar el código fuente para la implementación del localizador de claves de la versión 5.x a la implementación del modelo de programación del localizador de claves de la versión 6 y posteriores.
- El manejador de retorno de llamada JAAS y el módulo de inicio de sesión de JAAS crean señales de seguridad en el generador y validan, o autentican, las señales de seguridad del consumidor.
- La interfaz de señales de seguridad, com.ibm.websphere.wssecurity.wssapi.token.SecurityToken, representa la señal de seguridad que dispone de métodos para obtener la identidad, el formato XML y las claves criptográficas.
- Generador de señales (com.ibm.wsspi.wssecurity.token.TokenGeneratorComponent)
- Consumidor de señales (com.ibm.wsspi.wssecurity.token.TokenConsumerComponent)
- Localizador de claves (com.ibm.wsspi.wssecurity.keyinfo.KeyLocator)
Firmado o cifrado de cualquier elemento XML
Se utiliza una expresión XPath para seleccionar el elemento XML que se va a firmar o cifrar. No obstante, se utiliza una firma de sobre cuando se firma el sobre SOAP, la cabecera SOAP o la cabecera de la seguridad de servicios web. En los servicios web de JAX-RPC, se especifica la expresión XPath en el descriptor de despliegue de la aplicación. En los servicios web de JAX-WS, se especifica la expresión XPath en la política WS-Security del conjunto de políticas.
El modelo de programación de JAX-WS utiliza conjuntos de políticas para indicar las partes del mensaje donde se debe aplicar la seguridad. Por ejemplo, se utiliza la aserción <Body> para indicar que el cuerpo del mensaje SOAP está firmado o cifrado. Otro ejemplo es la aserción <Header>, donde se especifica el QName de la cabecera SOAP que se debe firmar o cifrar.
Firmado o cifrado de cabeceras SOAP
El soporte de OASIS Web Services Security (WS-Security) Versión 1.1 ofrece una forma estándar de cifrar y firmar cabeceras SOAP. Para firmar o cifrar mensajes SOAP, especifique el QName para seleccionar elementos de cabecera en la cabecera SOAP del mensaje SOAP.
Puede configurar conjuntos de políticas para la firma o el cifrado utilizando la consola administrativa o las API de Web Services Security (API de WSS). Para obtener más detalles, consulte el apartado Protección de partes de mensaje utilizando la consola administrativa.
- Name
- Este atributo opcional indica el nombre local de la cabecera SOAP de la que se va a proteger la integridad. Si no se especifica este atributo, se protegerán todas las cabeceras SOAP cuyo espacio de nombres coincida con el atributo Espacio de nombres.
- Espacio de nombres
- Este atributo necesario indica el espacio de nombres de las cabeceras SOAP de las que se va a proteger la integridad.
- Name
- Este atributo opcional indica el nombre local de la cabecera SOAP de la que se va a proteger la confidencialidad. Si no se especifica este atributo, se protegerán todas las cabeceras SOAP cuyo espacio de nombres coincida con el atributo Espacio de nombres.
- Espacio de nombres
- Este atributo necesario indica el espacio de nombres de las cabeceras SOAP de las que se va a proteger la confidencialidad.
Para el comportamiento de Web Services Security Versión 1.0, especifique la propiedad com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.0 con un valor true en la EncryptionInfo de los enlaces. La especificación de esta propiedad da como resultado un elemento <EncryptedData>.
Para un comportamiento de Web Services Security Versión 1.1 equivalente a las versiones de WebSphere Application Server anteriores a la versión 7.0, especifique la propiedad com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.1.pre.V7 con el valor true en el elemento <encryptionInfo> del enlace. Cuando se especifica esta propiedad, el elemento <EncryptedHeader> incluye un parámetro wsu:Id y el elemento <EncryptedData> omite el parámetro ID. Esta propiedad sólo se debe utilizar si no es necesaria la conformidad con Basic Security Profile 1.1 y si es necesario enviar elementos <EncryptedHeader> a un cliente o un servidor que utilice el paquete de características para servicios Web de WebSphere Application Server Versión 5.1.
Soporte de LTPA
En la seguridad de servicios web se da soporte a LTPA (Lightweight Third Party Authentication) como una señal de seguridad binaria. Web Services Security da soporte a las señales LTPA (versión 1) y LTPA versión 2. A la señal LTPA versión 2, que es más segura que la versión 1, se le da soporte en WebSphere Application Server versión 7.0 y posterior.
Ampliación del soporte de las indicaciones de la hora
Puede insertar una indicación de la hora en otros elementos durante el proceso de firma además de la cabecera de la seguridad de servicios web. Esta indicación de la hora proporciona un mecanismo para añadir un límite de tiempo a un elemento. Este soporte es una ampliación de WebSphere Application Server. Es posible que las implementaciones de otros proveedores no puedan consumir un mensaje generado con una indicación de la hora adicional insertada en el mensaje.
Ampliación del soporte para nonce
Puede insertar un nonce, que es un valor generador aleatoriamente, en otros elementos además de la señal Username. Nonce se utiliza para reducir la posibilidad de un ataque de reproducción. Este soporte es una ampliación de WebSphere Application Server. Es posible que las implementaciones de otros proveedores no puedan consumir mensajes con un nonce insertado en otros elementos que no sea una señal Username.
Soporte para distribuir memoria caché de nonce
La característica para distribuir memoria caché de nonce es una de las nuevas características de WebSphere Application Server Versión 6 y posteriores para servicios web que le permite duplicar los datos de nonce entre los servidores de un clúster. Por ejemplo, puede tener un servidor de aplicaciones A y un servidor de aplicaciones B en el clúster C. Si el servidor de aplicaciones A acepta un nonce con un valor de X, entonces el servidor de aplicaciones B genera una excepción SoapSecurityException si recibe el nonce con el mismo valor en un período de tiempo especificado.
Colocación en memoria caché del certificado X.509
De forma predeterminada, WebSphere Application Server colocan en memoria caché los certificados X.509 que recibe, para evitar la validación de vías de acceso de certificados y mejorar su rendimiento. No obstante, este cambio puede significar un riesgo de seguridad. Puede inhabilitar la colocación en memoria caché de certificados utilizando los pasos siguientes:
- Pulse Seguridad > Servicios Web.
- En Propiedades adicionales, pulse Propiedades > Nueva.
- En el campo de nombre de propiedad, escriba com.ibm.ws.wssecurity.config.token.certificate.useCache.
- En el campo Valor de propiedad, escriba false.
- Pulse Servidores > Servidores de aplicaciones > nombre_servidor.
- En Seguridad, pulse Servicios Web: enlaces por omisión para Web Services Security.
- En Propiedades adicionales, pulse Propiedades > Nueva.
- En el campo de nombre de propiedad, escriba com.ibm.ws.wssecurity.config.token.certificate.useCache.
- En el campo Valor de propiedad, escriba false.