在WCF中,将wshttpbinding
与Message Security一起使用时(用于加密通过网络发送的序列化XML),为什么我们需要SSL Transport Security,它也使用SSL证书进行加密?
最佳答案
为了解决这个问题,最好从Windows Communication Foundation (WCF)的一些基础知识开始
通过了解这些关键点,您的问题的答案应该变得清晰
WCF关键安全功能
任何面向服务的体系结构(SOA)都需要支持安全性功能,这些功能为客户端和服务之间交换的消息提供审核,身份验证,授权,机密性和完整性。
审核。有效的审核和记录(即不可否认)。不可否认性保证用户不能拒绝执行操作或发起交易。
身份验证。自信地确定您的服务的客户。这些可能是最终用户,其他服务,进程或计算机。
授权。确定经过身份验证的用户可以访问哪些系统资源和操作。
保密。确保数据保持私有和机密性,并确保未经授权的用户无法查看数据的过程。加密通常用于加强机密性。
诚信确保防止意外或故意修改数据。通常通过使用哈希技术和消息身份验证代码来提供传输中数据的完整性。
有关上述内容的更多信息,请参见:WCF Security Fundamentals
WCF安全模型
在WCF中,您有几种选择来提供传输安全性,这些选择主要分为(但不限于)以下传输安全性模式
运输。在传输级别提供了相互身份验证和消息保护
信息。在消息级别提供了相互身份验证和消息保护
都。传输和消息上都提供了相互身份验证和消息保护
此机制还有其他混合变体,有关此主题的更多信息,请参见:Message and Transport Security
运输安全
关于WSHttpBinding的传输安全性使用HTTP传输,而用于保护传输的主要机制是基于HTTP的Secure Sockets Layer (SSL),通常称为HTTPS。
传输安全性仅在客户端和服务器之间提供点对点安全通道,如果该服务器是负载平衡器或代理服务器,则结果服务器可以直接访问消息的内容(如果不安全)
有关运输安全性的更多信息,请参见:Transport Security Overview
讯息安全
关于WSHttpBinding的消息安全性使用WS-Security规范来保护消息。 WS-Security规范描述了SOAP消息传递的增强功能,以确保SOAP消息级别(而不是传输级别)的机密性,完整性和身份验证。
消息安全性与传输安全性不同,它在每个消息中都封装了安全凭证和声明以及任何消息保护(签名或加密)。通过修改消息的内容将安全性直接应用于消息,可使受保护的消息在安全性方面自成一体。这将启用某些使用传输安全性时无法实现的方案。
可以在这里找到更多信息Message Security in WCF
传输和消息安全
现在回答您的问题,在某些高级情况下,可以将传输和邮件安全性结合在一起。例如,将安全性传输到您的负载均衡器或某种代理,将消息安全性传输到其最终目的地,以确保消息未更改和/或内容分别保持私有。
使用hyprib方法的另一个示例可能是以用户为中心的Web应用程序中的场景,其中Web应用程序在其自己的服务器上运行并与单独服务器上的业务服务对话。 Web应用程序服务器代表用户与业务服务器对话
在大多数情况下,不需要组合的传输和消息安全性,并且由于传输安全性使用硬件加速,而消息安全性则不需要,因此可能不需要或不适合使用额外的性能开销
有关传输和消息安全性的更多信息,请参见此处Message and Transport Security
关于.net - 将wsHttpBinding SSL传输安全性与消息安全性结合使用有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27560790/