2010-06-03 21 views
6

Tengo un servicio WCF accesible a través de Internet. Tiene el modo de seguridad de mensajes y enlace wsHttpBinding con credenciales de usuario para autenticar clientes. El msdn dice que deberíamos usar la seguridad de mensajes para los escenarios de Internet, ya que proporciona seguridad de extremo a extremo en lugar de seguridad punto a punto como la seguridad de transporte.¿La seguridad del transporte es una mala práctica para el servicio WCF a través de Internet?

¿Qué sucede si utilizo la seguridad de transporte para el servicio wcf a través de Internet? ¿Es una mala práctica? ¿Podrían mis datos ser vistos por usuarios maliciosos?

Respuesta

8

No, sería una buena práctica, el problema es que no se puede garantizar una cadena completa de conexiones seguras en un número arbitrario de saltos intermedios cuando se trata de una conexión a Internet.

Todo lo que puede garantizar con seguridad de transporte es el enlace de su cliente al primer salto, y el enlace desde el último salto a su servidor: cualquier cosa intermedia está fuera de su control. Básicamente, la seguridad del transporte a través de Internet no va a funcionar, a menos que tenga un entorno estrictamente controlado donde sepa que el cliente se conecta muy directamente a sus servidores.

Debido a esas limitaciones técnicas, la seguridad del transporte solo funciona realmente en entornos corporativos/LAN. Tan pronto como no tenga control sobre el enrutamiento y los saltos intermedios, debe usar seguridad de mensajes para una seguridad de extremo a extremo.

+0

¿Podría preguntarte una cosa más? ¿Qué sucede si es necesario transferir grandes cantidades de datos al WCF a través de Internet? ¡Usando wsHttpBinding y seguridad de mensajes es muy lento! –

+1

@Sergey: echa un vistazo a WCF Streaming; también puedes usar wsHttpBinding para eso, ¡esto debería acelerar un poco las cosas! –

+1

@Sergey: y podría crear un contrato de servicio por separado sin ningún tipo de seguridad de mensajes para la transferencia de archivos, más rápido, pero no más seguro, es una compensación (como siempre, en ciencias de la computación). –

5

Sí, es 100% seguro cuando los clientes (que la mayoría de los clientes) validan el certificado del servidor.

El escenario de múltiples saltos mencionado aquí es completamente falso. Esto solo es cierto cuando el mismo mensaje viaja a través de varias aplicaciones. Como por ejemplo varios corredores de aplicaciones. Si estos intermediarios no se comunican de forma segura, los rastreadores de red intermedios pueden leer el mensaje.

En otras palabras, la comunicación cliente/servidor a través de Internet es 100% segura incluso cuando hay un millón de enrutadores intermedios pero solo es segura cuando el cliente valida el certificado del servidor ya que el cliente puede conectarse el host central que podría suplantar al servidor con un certificado falso. Si el cliente no valida el certificado, el mensaje podría verse comprometido.

+0

¿Quiere decir que usa la seguridad del transporte en internet, los datos no pueden ser pirateados? –

+0

Eso es correcto, siempre que el transporte sea seguro. Eso es básicamente lo que dice. Puede elegir encriptar el mensaje y/o el transporte. ¡Pero solo si el transporte es seguro!Enviar un mensaje sobre un transporte inseguro hace que la comunicación sea vulnerable. –

Cuestiones relacionadas