将 wsHttpBinding SSL 传输安全与消息安全结合使用有啥好处吗?

Posted

技术标签:

【中文标题】将 wsHttpBinding SSL 传输安全与消息安全结合使用有啥好处吗?【英文标题】:Is there any benefit to using wsHttpBinding SSL Transport Security in conjunction with Message Security?将 wsHttpBinding SSL 传输安全与消息安全结合使用有什么好处吗? 【发布时间】:2015-02-18 01:53:57 【问题描述】:

在 WCF 中,当使用 wshttpbinding 和 Message Security(加密通过网络发送的序列化 XML)时,为什么我们需要 SSL Transport Security,它也使用 SSL 证书进行加密?

【问题讨论】:

请注意,这实际上是一个很好的问题,对大多数人来说并不明显,所以我冒昧地按照原帖的精神重新格式化了这个问题 【参考方案1】:

要解决这个问题,最好从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

【讨论】:

以上是关于将 wsHttpBinding SSL 传输安全与消息安全结合使用有啥好处吗?的主要内容,如果未能解决你的问题,请参考以下文章

网络安全——传输层安全协议

什么叫SSL

没有身份验证的 WCF 传输安全性

SSL与HTTPS协议

如何保护 webHttpBinding?

http与https的区别