Confidencialidad e Integridad

LIBP-0308 (Libro de pautas)

Aplicar técnicas de cifrado para garantizar la confidencialidad e integridad de los mensajes

Como SOAP no es capaz de cifrar la información, es necesario garantizar que los mensajes no se han modificado en el transcurso de las comunicaciones entre servicios web. Un servicio debe recibir un mensaje con la garantía de no presentar ninguna alteración, ya que, por mínima que sea su respuesta, estaría alterada.

La confidencialidad de la información que se maneja es vital, por lo que debemos aplicar técnicas de cifrado que puedan protegerla frente a posibles ataques externos. Del mismo modo, la forma más adecuada de garantizar la integridad consiste en cifrar con la clave privada el resultado de aplicar una función resumen sobre el contenido.

Pautas

TítuloCarácter
Comunicación por distintos endpointRecomendada
Firma del tokenRecomendada
Protocolo SSLRecomendada

Comunicación por distintos endpoint

Utilizar las especificaciones XML-Signature y XML-Encrypt conforme a la especificación WS-Security y nunca de forma directa.

Especificaciones como el XMLSignature y el XMLEncrypt están diseñados para garantizar la confidencialidad (encriptación) e integridad (firma) de los mensajes dentro de una comunicación por Web Services. Estos dos estándares están recogidos a su vez, dentro de la especificación WS-Security.

Estos mecanismos de seguridad son independientes del transporte, por lo que son ideales en entornos por lo que la comunicación viaja por distintos tipos de transporte (https, jms, etc). Además, son mecanismos que garantizan una seguridad de extremo a extremo, es decir, abarcan comunicaciones de Servicios Webs por los que el mensaje circula por más de un endpoint.

Por último, permiten garantizar la integridad de los mensajes almacenados, por ejemplo cuando son encolados en colas JMS o guardados en ficheros, logs, BD, etc.

Firma del token

Incluir en la firma del token la cabecera de WS-Addressing

Cuando se emplean tokens, es necesario que estos sean transmitidos de forma segura para evitar ataques de replay. Esto se consigue mediante la firma del token dentro del mensaje SOAP, junto a un TimeStamp o IDMessage, por lo que se recomienda incluir en la firma la cabecera de WS-Addressing.

Protocolo SSL

Emplear SSL X.509 Certificate en entornos cerrados, siempre y cuando exista conexión directa entre todos los participantes

En entornos cerrados también se puede emplear SSL para transmitir los mensajes con Tokens de forma segura, aunque esta aproximación es menos segura que la anterior. La principal ventaja de este mecanismo es su facilidad de implantación. Sus debilidades se manifiestan en entornos en los que el mensaje pasa por varios endpoint, ya que en estos casos, el protocolo SSL, aún cuando se emplee en todos los tramos de la comunicación, no garantiza la seguridad de extremo a extremo.

Contenidos relacionados

Recursos
Área: Desarrollo » Seguridad » Servicios Web
Código Título Tipo Carácter
RECU-0211 Conceptos de seguridad en los servicios WEB Especificación Recomendado
RECU-0598 WS-Addressing Especificación Recomendado
RECU-0597 WS-Policy Especificación Recomendado
Área: Desarrollo » Seguridad » Cifrado
Código Título Tipo Carácter
RECU-0554 Introducción al cifrado Referencia Recomendado