RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
了解 WS-Security
  • 作者:zhaozj
  • 发表时间:2020-12-23 10:38
  • 来源:未知

简介

在介绍 WS-Security 之前,我们有必要了解一下 WS-Security 存在的原因。很多刚刚接触 Web 服务的人都将 SOAP 看作是通过 HTTP 在两个端点之间交换消息的方法。通过 HTTP 可以验证调用方的身份、对消息签名以及对消息内容加密。这可以在以下几方面确保消息的安全性:调用方是已知的,消息接收方可以验证消息在传输过程中没有被更改,监视网络通信的实体无法识别出所交换的数据。但是如果准备采用 SOAP 消息传递来解决某些复杂问题,则仅仅基于 HTTP 的安全性是不够的。这些复杂问题通常涉及沿着比请求/响应更为复杂的路径发送消息,或者不使用 HTTP 进行传输。调用方以及消息的标识、完整性和安全性需要在多个跃点中保留。沿路由可能需要多个加密密钥。此外还要跨越信任域。HTTP 及其安全机制只面向点到点的安全性。而更复杂的解决方案则需要端到端的安全性。WS-Security 解决的是如何在多点消息路径中维护一个安全的环境。

本文假设读者已经熟悉XML 标准 XML 签名 XML 加密

WS-Security 通过利用现有标准和规范来实现安全性,这样就不必在 WS-Security 中定义一个完整的安全性解决方案了。业界已经解决了许多此类问题。例如 Kerberos 和 X.509 用于身份验证;X.509 还使用现有的 PKI 进行密钥管理;XML 加密和 XML 签名描述了 XML 消息内容的加密和签名方法;XML 标准描述了为签名和加密而准备 XML 的方法。WS-Security 在现有规范中添加了一个框架,用于将这些机制嵌入到 SOAP 消息中。这是以一种与传输无关的方式完成的。

WS-Security 定义了一个用于携带安全性相关数据的 SOAP 标头元素。如果使用 XML 签名,此标头可以包含由 XML 签名定义的信息,其中包括消息的签名方法、使用的密钥以及得出的签名值。同样,如果消息中的某个元素被加密,则 WS-Security 标头中还可以包含加密信息(例如由 XML 加密定义的加密信息)。WS-Security 并不指定签名或加密的格式,而是指定如何在 SOAP 消息中嵌入由其他规范定义的安全性信息。WS-Security 主要是一个用于基于 XML 的安全性元数据容器的规范。

除了利用其他现有的消息身份验证、完整性和加密外,WS-Security 还提供了什么?它指定了一个通过UsernameToken 。元素传输简单用户凭据的机制。此外,为了发送用于加密或签名消息的二进制令牌,还定义了一个