WS-Security

Seguridad de servicios web (WS-Security) describe mejoras para la mensajería SOAP para proporcionar calidad de protección a través de la integridad de mensajes, confidencialidad de mensajes y una sola autenticación de mensajes. Los mecanismos de WS-Security se pueden utilizar para acomodar dar cabida a una amplia variedad de tecnologías de cifrado y modelos de seguridad.

WS-Security es un estándar a nivel de mensajes que tiene su base en la protección de mensajes SOAP a través de la firma digital XML, la confidencialidad a través del cifrado XML y la propagación de credenciales a través de señales de seguridad. La especificación de servicios web define los recursos para proteger la integridad y la confidencialidad de un mensaje y proporciona mecanismos para asociar con el mensaje las reclamaciones relacionadas con la seguridad.

WS-Security proporciona un mecanismo de uso general para asociar señales de seguridad con mensajes. WS-Security no requiere ningún tipo específico de señal de seguridad. Está diseñado para poder ampliarse, por ejemplo, para dar soporte a varios formatos de señales de seguridad.

WS-Security también describe cómo codificar señales de seguridad binaria y adjuntarlas a mensajes SOAP. De forma específica, las especificaciones de perfiles de WS-Security describen cómo codificar las señales siguientes:
  • Señales de nombre de usuario
  • Certificados X.509
  • Aserciones SAML
  • Tiquets Kerberos
  • Señales binarias LTPA

Con WS-Security, el dominio de estos mecanismos se puede ampliar transportando información de autenticación en solicitudes de servicios web. WS-Security también incluye mecanismos que se pueden utilizar para describir más detalladamente las credenciales que se incluyen con un mensaje. WS-Security es un componente básico que se puede utilizar conjuntamente con otros protocolos de servicios web para tratar una amplia variedad de requisitos de seguridad de aplicación.

El uso de WS-Security proporciona varias ventajas.
  • Se pueden proteger distintas partes de un mensaje de varias maneras. Por ejemplo, puede utilizar la integridad de la señal de seguridad (ID de usuario y contraseña) y confidencialidad en el cuerpo del mensaje SOAP.
  • Se pueden utilizar intermediarios y se puede proporcionar seguridad a nivel de mensajes a través de cualquier número de intermediarios.
  • WS-Security funciona a través de varias plataformas y es independiente del protocolo de transporte subyacente.
  • Es posible realizar la autenticación tanto de usuarios individuales como de varias identidades.

Los mecanismos de seguridad web tradicionales, como HTTPS, puede ser insuficiente para gestionar los requisitos de seguridad de todos los escenarios de servicios web. Por ejemplo, cuando una aplicación envía un mensaje SOAP utilizando HTTPS, el mensaje sólo está protegido para la conexión HTTPS, es decir, durante el transporte del mensaje entre el peticionario de servicios (el cliente) y el servicio. Sin embargo, la aplicación puede requerir que los datos del mensaje se protejan más allá de la conexión HTTPS o incluso más allá de la capa de transporte. Al proteger los servicios web a nivel de mensajes, la seguridad a nivel de mensajes puede cumplir con estos requisitos ampliados.

La seguridad a nivel de mensajes o la protección de servicios web a nivel de mensajes se ocupa de los mismos requisitos de seguridad que para la seguridad web tradicional. Estos requisitos de seguridad incluyen: identidad, autenticación, autorización, integridad, confidencialidad, no repudio e intercambio de mensajes básico. Tanto la seguridad a nivel de mensajes como la seguridad web tradicional comparten muchos de los mecanismos para manejar la seguridad, incluidos los certificados digitales, el cifrado y las firmas digitales.

Con la seguridad a nivel de mensajes, el propio mensaje SOAP contiene la información necesaria para proteger el mensaje o contiene información sobre donde obtener la información para manejar las necesidades de seguridad. El mensaje SOAP también contiene información relevante a los protocolos y procedimientos para procesar la seguridad a nivel de mensajes especificada. No obstante, la seguridad a nivel de mensajes no está vinculada con ningún mecanismo de transporte concreto. Como la información de seguridad forma parte del mensaje, es independiente de un protocolo de transporte, como HTTPS.

El cliente añade la información de seguridad de la cabecera de mensajes SOAP que se usa en ese mensaje concreto. Cuando se recibe el mensaje, el punto final del servicio web, utilizando la información de seguridad de la cabecera, comprueba el mensaje protegido y lo valida con la política. Por ejemplo, el punto final de servicio puede verificar la firma de mensaje y comprobar que el mensaje no se haya alterado. Es posible añadir información de firma y cifrado a las cabeceras de mensajes SOAP, así como otra información como señales de seguridad para identidad (por ejemplo, un certificado X.509) que están vinculadas con el contenido del mensaje SOAP.

Sin seguridad a nivel de mensajes, el mensaje SOAP se envía en texto sin cifrar y la información personal, como un ID de usuario o un número de cuenta, no está protegida. Sin aplicar la seguridad a nivel de mensajes, sólo hay un cuerpo SOAP bajo el sobre SOAP en el mensaje SOAP. Al aplicar las características de la especificación WS-Security, la cabecera de seguridad SOAP se inserta bajo el sobre SOAP en el mensaje SOAP cuando se firma y cifra la cuerpo SOAP.

Para mantener la integridad o la confidencialidad del mensaje, normalmente se aplican las firmas digitales y el cifrado.
  • La confidencialidad especifica las restricciones de confidencialidad que se aplican a los mensajes generados. Esto incluye especificar qué partes del mensaje generado se deben cifrar y a qué partes del mensaje se deben adjuntar elementos cifrados de indicación de fecha y hora y de identificador temporal.
  • La integridad se proporciona aplicando una firma digital a un mensaje SOAP. La confidencialidad la aplica el cifrado de mensajes SOAP.

Puede añadir un mecanismo de autenticación insertando varios tipos de señales de seguridad, como la señal de nombre de usuario (elemento). Cuando el servidor de servicios web recibe la señal Username, se extraen y verifican el nombre de usuario y la contraseña. Sólo cuando la combinación de nombre de usuario y contraseña es válida se aceptará y procesará el mensaje en el servidor. El uso de la señal de nombre de usuario es sólo una de las formas de implementar la autenticación. Este mecanismo también se conoce como autenticación básica.

La especificación de seguridad de servicios web de OASIS proporciona un conjunto de mecanismos para ayudar a los desarrolladores de servicios web a proteger los intercambios de mensajes SOAP. Para obtener detalles de la especificación OASIS Web Services Security, consulte Estándar OASIS para la especificación de WS-Security.