Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Windows Communication Foundation (WCF) tiene dos modos principales para proporcionar seguridad (Transport
y Message
) y un tercer modo (TransportWithMessageCredential
) que combina los dos. En este tema se describe la seguridad del mensaje y las razones para usarla.
¿Qué es la seguridad de los mensajes?
La seguridad del mensaje usa la especificación de WS-Security para proteger los mensajes. La especificación WS-Security describe mejoras en la mensajería SOAP para garantizar la confidencialidad, integridad y autenticación en el nivel de mensaje SOAP (en lugar del nivel de transporte).
En resumen, la seguridad del mensaje difiere de la seguridad de transporte mediante la encapsulación de las credenciales y notificaciones de seguridad con cada mensaje junto con cualquier protección de mensajes (firma o cifrado). La aplicación de la seguridad directamente al mensaje modificando su contenido permite que el mensaje protegido se contenga automáticamente con respecto a los aspectos de seguridad. Esto permite algunos escenarios que no son posibles cuando se usa la seguridad de transporte.
Motivos para usar la seguridad de mensajes
En la seguridad de nivel de mensaje, toda la información de seguridad se encapsula en el mensaje. Proteger el mensaje con seguridad de nivel de mensaje en lugar de seguridad de nivel de transporte tiene las siguientes ventajas:
Seguridad de un extremo a otro. La seguridad de transporte, como capa de sockets seguros (SSL) solo protege los mensajes cuando la comunicación es punto a punto. Si el mensaje se enruta a uno o varios intermediarios SOAP (por ejemplo, un enrutador) antes de llegar al receptor final, el propio mensaje no se protege una vez que un intermediario lo lee de la conexión. Además, la información de autenticación del cliente solo está disponible para el primer intermediario y debe volver a transmitirse al receptor final de forma fuera de banda, si es necesario. Esto se aplica incluso si toda la ruta usa seguridad SSL entre saltos individuales. Dado que la seguridad del mensaje funciona directamente con el mensaje y protege el XML en él, la seguridad permanece con el mensaje independientemente del número de intermediarios implicados antes de llegar al receptor final. Esto permite un verdadero escenario de seguridad de un extremo a otro.
Mayor flexibilidad. Las partes del mensaje, en lugar de todo el mensaje, se pueden firmar o cifrar. Esto significa que los intermediarios pueden ver las partes del mensaje que están pensadas para ellos. Si el remitente necesita hacer que parte de la información del mensaje sea visible para los intermediarios, pero quiere asegurarse de que no está manipulada, puede firmarla pero dejarla sin cifrar. Dado que la firma forma parte del mensaje, el receptor final puede comprobar que la información del mensaje se recibió intacta. Un escenario podría tener un servicio intermediario SOAP que enruta el mensaje según el valor del encabezado action. De forma predeterminada, WCF no cifra el valor action, pero lo firma si se usa la seguridad del mensaje. Por lo tanto, esta información está disponible para todos los intermediarios, pero nadie puede cambiarla.
Compatibilidad con varios transportes. Puede enviar mensajes protegidos a través de muchos transportes diferentes, como canalizaciones con nombre y TCP, sin tener que confiar en el protocolo para la seguridad. Con la seguridad de nivel de transporte, toda la información de seguridad se limita a una única conexión de transporte determinada y no está disponible en el propio contenido del mensaje. La seguridad del mensaje hace que el mensaje sea seguro independientemente del transporte que use para transmitir el mensaje y el contexto de seguridad se inserte directamente dentro del mensaje.
Compatibilidad con un amplio conjunto de credenciales y notificaciones. La seguridad del mensaje se basa en la especificación WS-Security, que proporciona un marco extensible capaz de transmitir cualquier tipo de notificación dentro del mensaje SOAP. A diferencia de la seguridad de transporte, el conjunto de mecanismos de autenticación o notificaciones que puede usar no está limitado por las funcionalidades de transporte. La seguridad de mensajes WCF incluye varios tipos de autenticación y transmisión de notificaciones y se puede ampliar para admitir tipos adicionales según sea necesario. Por esas razones, por ejemplo, un escenario de credenciales federadas no es posible sin seguridad de mensajes. Para obtener más información sobre los escenarios de federación compatibles con WCF, vea Federación y tokens emitidos.
Comparación de seguridad de mensajes y transporte
Ventajas y desventajas de Transport-Level Security
La seguridad del transporte tiene las siguientes ventajas:
No requiere que las partes de comunicación comprendan los conceptos de seguridad de nivel XML. Esto puede mejorar la interoperabilidad, por ejemplo, cuando se usa HTTPS para proteger la comunicación.
Rendimiento mejorado generalmente.
Hay aceleradores de hardware disponibles.
El streaming es posible.
La seguridad del transporte tiene las siguientes desventajas:
Solo salto a salto.
Conjunto limitado e inextensible de credenciales.
Dependiente del transporte.
Desventajas de Message-Level Security
La seguridad del mensaje tiene las siguientes desventajas:
Rendimiento
No se puede usar el streaming de mensajes.
Requiere la implementación de mecanismos de seguridad de nivel XML y compatibilidad con WS-Security especificación. Esto puede afectar a la interoperabilidad.