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();