Я прочитал документацию, представленную в MSDN, и некоторые другие сообщения на этом сайте. Тем не менее, все еще немного неясно, будет ли WCF (, в частности NetTcpBinding ), действительно шифровать содержимое сообщения при использовании безопасности сообщений с сертификатами. Кто-нибудь знает наверняка?
Например, вы можете указать учетные данные как для транспорта, так и для сообщения в своей конфигурации :
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="Certificate"
negotiateServiceCredential="true" />
</security>
. Насколько я могу судить, документация MSDN подразумевает, что безопасность сообщений просто зависит либо от имени пользователя/пароля, либо от аутентификации на основе сертификата -(согласования ), но конкретно не указывается, что само сообщение фактически зашифровано в уровень сообщений.
Например, если я использую ТОЛЬКО безопасность сообщений с согласованием на основе сертификата -, я не думаю, что содержимое сообщения на самом деле зашифровано (, т.е. анализатор пакетов может перехватить необработанное содержимое сообщения --, даже если служба применяет аутентификацию )?
Если возможно шифрование на уровне истинного сообщения -(с использованием NetTcpBinding ), как это делается в коде? Я полагаю, что это связано с AlgorithmSuite, хотя я не уверен,
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
binding.Security.Message.AlgorithmSuite = new System.ServiceModel.Security.TripleDesSecurityAlgorithmSuite();