He leído la documentación provista en MSDN y algunas otras publicaciones en este sitio. Sin embargo, todavía no está claro si WCF (específicamente, NetTcpBinding) realmente encriptará el mensaje contenidos al usar seguridad de mensaje con certificados. ¿Alguien sabe con seguridad?¿La seguridad del mensaje WCF en realidad encripta los contenidos del mensaje?
Por ejemplo, puede especificar tanto las credenciales de transporte y de mensajes en su fichero de configuración:
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="Certificate"
negotiateServiceCredential="true" />
</security>
Por lo que yo puedo decir la documentación de MSDN implica que la seguridad de mensajes simplemente se basa en cualquiera de nombre de usuario/contraseña o la autenticación basada en certificados (negociación), pero no especifica específicamente que el mensaje en sí mismo está encriptado en el nivel del mensaje. Por ejemplo, si utilizo ÚNICAMENTE seguridad de mensajes, con negociación basada en certificados, no creo que el contenido del mensaje esté realmente encriptado (es decir, un detector de paquetes podría interceptar el contenido del mensaje sin procesar, incluso si el servicio exige autenticación). ?
Si es posible el cifrado de nivel de mensaje verdadero (usando NetTcpBinding) ¿cómo se hace en el código? Creo que esto está relacionado con el AlgorithmSuite, aunque no estoy seguro,
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
binding.Security.Message.AlgorithmSuite = new System.ServiceModel.Security.TripleDesSecurityAlgorithmSuite();
decidí simplemente oler los paquetes a mí mismo utilizando Wireshark, y puedo confirmar que esto es cierto.Aparentemente, Windows se encarga de la encriptación misma para la comunicación de dominio/dominio de confianza. ¡Gracias! –