|
Web 服务世界的安全性:提议的体系架构和指南广告 Web 服务世界的安全性:提议的体系架构和指南
本文描述了为解决 Web 服务环境中的安全性问题而提议的策略。它定义了一个全面的 Web
服务安全性模型,这个模型通过使各种系统能够安全地以一种与平台和语言无关的方式进行互操作来支持、集成和统一几个流行的安全性模型、机制和技术(包括对称和公用密钥技术)。它还描述了一组规范和案例,这些案例显示了如何一起使用这些规范。 允许提供、分发或以其它形式传播这篇文档中所包含的信息并不意味着(无论明示的还是默示的)给予您 IBM 或 Microsoft 和/或其他第三方所拥有或控制的知识产权的许可证。IBM、Microsoft 和/或其他第三方可能拥有涵盖本文档中主题的专利权、专利申请、商标、版权或其他知识产权。提供这篇文档并没给予您 IBM 或 Microsoft 或任何其他第三方的专利权、商标、版权或其它知识产权的许可证。这里描述的示例公司、组织、产品、域名、电子邮件地址、徽标、人物、地点和事件纯属虚构。如关系到任何真实的公司、组织、产品、域名、电子邮件地址、徽标、人物、地点或事件纯属无意,请勿妄加推测。 这里包含的这篇文档和信息以“仅此状态”提供,并被适当的法律最大程度地许可,IBM 和 Microsoft 以“仅此状态和未消除任何错误”的状态提供本文档,因此对所有关于本文档的其它保证和条件(无论是明示的、默示的、还是法定的)不负任何责任,这些保证和条件包括(但不限于)任何(如果有的话)对适销性、适用于某特定用途、准确性、完全负责、结果、技艺精湛的成果、确认无病毒、无疏忽等保证和条件。另外,对于本文档相关的知识产权的标题、安静享用、安静拥有、与描述相符或不侵犯也不提供任何保证或条件。 在任何情况下,IBM 或 MICROSOFT 都不对任何第三方受到的生产替代品或服务损失、利润亏损、使用上的损失、数据损失、或者任何意外的、相应产生的、直接的、间接的、或特殊的损害负责,不管是有合同、民事侵权行为、保证还是其它条件、由此引起还是由与本文档相关的任何其它协议引起、也不管第三方是否已经提醒可能会有这种损害。 摘要 这个新出现的 Web 服务体系架构的关键好处是能够交付集成的、可互操作的解决方案。通过应用这个全面的安全性模型,确保 Web 服务的完整性、机密性和安全性对组织和它们的客户来说都至关重要。 为回应客户和业界所示的关心,IBM 和 Microsoft 已经联手制定了这个提议的 Web 服务安全性计划和指南,用来开发一组说明如何为在 Web 服务环境中交换的信息提供保护的 Web 服务安全性规范。 第一次,我们把以前不兼容的安全性技术,如公用密钥基础架构、Kerberos 和其它安全性技术都放在了一起,创建了一个安全性模型。简言之,它不是一个理想化的框架而是一个实用框架,它使我们能够在我们的客户目前所在的异类 IT 世界中构建安全的 Web 服务。 在这篇文档中,我们提供了一组范围很广的规范,它们包含许多安全性技术,其中包括跨范围广泛的应用程序和企业拓扑的认证、授权、隐私权、信任、完整性、机密性、安全通信通道、联合、委托和审核。这些规范提供了一个框架,这个框架可扩展、灵活并且最大程度地利用安全性基础架构中的现有投资。这些规范包含并扩充了 IBM 和 Microsoft 以前提议的相似规范(即 SOAP-Security、WS-Security 和 WS-License 规范)中表达的思想。 通过利用 Web 服务模型核心处的自然可扩展性,这些规范建立在一些基础技术如 SOAP、WSDL、XML 数字签名(XML Digital Signature)、XML 加密法(XML Encryption)和 SSL/TLS 的基础之上。这允许 Web 服务提供者和请求者开发满足他们应用程序的个别安全性需求的解决方案。 IBM 和 Microsoft 目的在于与客户、伙伴和一些标准组织合作用一种阶段性方法发展并改善这个安全性模型。我们正在为 WS-Security 规范促成这种工作。WS-Security 定义了用于保护消息完整性和机密性的核心工具以及用于把有关安全性的声明与消息关联起来的机制。虽然 WS-Security 是这种工作的基础,但它只是个开始,我们将与业界合作制定出处理策略、信任和隐私权问题的附加规范。 为使本文档中讨论的问题和解决方案尽可能具体,我们讨论了反映 web 服务当前和预期的应用程序的几个案例。这些案例包括防火墙处理、隐私权、浏览器和移动客户机的使用、访问控制、委托以及审核。 我们期望大家关心可以做些什么工作来确保各种提议的规范的互操作性和一致实现。为解决这个问题,IBM 和 Microsoft 将与标准组织、开发者社区以及业界组织(如 WS-I.org)亲密合作来开发将为工具厂商提供指导的互操作性概要文件和测试。 这篇文档概述了一个全面的、模块化的解决方案,在实现这个解决方案时,将允许客户构建可互操作而且安全的 Web 服务,这些 Web 服务在允许客户充分利用 Web 服务技术必须提供的集成和互操作性好处的同时利用并扩展安全性基础架构中的现有投资。 介绍和动机 统一这一系列可用安全性技术意味着应用程序安全性的功能需求必须从所应用的特定机制中抽象出来。例如,只要每个设备都能够安全地表示正确的身份,进行在线购买的用户就不应该受使用的是蜂窝式电话还是膝上型电脑的影响。 目标是使客户能够很容易地使用异类系统建立可互操作的解决方案。例如,这篇文档稍后提议的安全消息传递模型同时支持公用密钥基础架构(public key infrastructure,PKI)和 Kerberos 身份机制作为更通用工具的特殊体现,并且能够扩展到支持额外的安全性机制。集成通过单个安全性模型的抽象使一个组织可以使用它们在安全性技术中的现有投资,同时可以与使用不同技术的组织通信。 另外,当使用不同身份机制的组织合作使用 Web 服务时,安全性信任模型会提供一个灵活的框架,在这个框架中,如果配置了合适的授权,组织就可以互相连接。 同时,每个客户和每个 Web 服务根据它们特定的业务需要和运营环境都有自己独特的安全性需求。例如,在工作组设置中,简单性和易于操作是大家最关心的,而对于公共的因特网应用程序,更优先考虑的是抵挡协同的拒绝服务攻击(denial-of-service)的能力。因为这些要求可以用多种方式组合在一起,并且可以以不同的特殊级别表示,所以成功的 Web 服务安全性方法就要求一组灵活的、可互操作的安全性基本元素,通过策略和配置,这些安全性基本元素可以使许多种安全解决方案成为可行的方案。 为解决这些问题,这篇文档根据一组把以前不同的技术集成在一起的安全性抽象提议了一种创新的方法来创建安全的、可互操作的 Web 服务。这样就能够对整体框架内的特定客户需求进行特殊化,同时允许技术随时间的推移而发展,并逐步递增地部署这些技术。 作为这个创新方法的示例,安全消息传递模型可以添加到现有的传输级别安全性解决方案。一个客户可以把消息级完整性或持久的机密性(消息元素的加密)添加到通过诸如安全套接字层(Secure Sockets Layer,SSL/TLS)传送消息的现有 Web 服务。现在,消息有了在传输层外持久存在的完整性(或机密性)。 我们期望能够从多个厂商广泛获取所提议的新兴模型和规范,并期望合适的标准组织会考虑它们。模型、规范和标准流程一起使企业能够快速而又有效利用成本地增加它们现有应用程序的安全性并放心地开发可互操作的、安全的新 Web 服务。 这种模型对企业的好处很明显。通过为 Web 服务构建一个全面的安全性体系架构,使组织和客户能够在业务流程正日益改建为 Web 服务时更好地确保它们的投资和资产会得到保护。 Web
服务安全性模型术语 Web 服务(Web service) — 术语“Web
服务”广泛适用于许多种基于网络的应用程序拓扑。在这篇文档中,我们使用术语“Web 服务”来描述一些应用程序组件,这些组件的功能和接口被通过包括
XML、SOAP、WSDL 和 HTTP 在内的现有和新兴 Web 技术标准的应用程序公开给潜在的用户。与 Web
站点、基于浏览器的交互或者平台相关的技术相比,Web 服务是一种以与平台和语言无关的方式,通过定义的格式和协议,从计算机到计算机提供的服务。
下图显示了一些不同种类的安全性令牌。 图 1. 不同种类的安全性令牌
已签名安全性令牌(Signed Security Token) —
我们定义了已签名安全性令牌作为安全性令牌,它包含一组由签发者用密码的方式签署的相关声明(断言)。已签名安全性令牌的示例包括 X.509 证书和 Kerberos
票据。 目前,安全套接字层(SSL)和实际的传输层安全性(Transport Layer Security,TLS)一起被用于为 web 服务应用程序提供传输级别的安全性。SSL/TLS 提供了几个安全性功能,包括认证、数据完整性和数据机密性。SSL/TLS 启用了点对点安全会话。 IPSec 是另一个用于传输安全性的网络层标准,对于 Web 服务来说,它可能会变得很重要。与 SSL/TLS 一样,IPSec 也用主机认证、数据完整性和数据机密性提供安全的会话。 目前的 Web 服务应用程序拓扑把移动设备、网关、代理、负载平衡器、“非军事区”(demilitarized zone,DMZ)、外包数据中心(outsourced data center)和全球分发的、动态配置的系统这许多东西都组合在一起。所有这些系统都依赖于消息处理中介体转发消息的能力。特别是,SOAP 消息模型对抽象物理网络和应用程序基础架构的逻辑端点进行操作,因此它经常要把一个多跳(multi-hop)拓扑与中间参与者集成在一起。 当传输层之外的中介体接收并转发数据时,数据的完整性和任何随数据流动的安全性信息都可能会丢失。这就迫使任何上行消息处理器都要依赖先前中介体所进行的安全性评价并完全信任它们对消息内容的处理。全面的 Web 服务安全性体系架构中所需的东西是一个提供端到端安全性的机制。成功的 Web 服务安全性解决方案将能够同时利用传输层和应用层的安全性机制来提供一套全面的安全性功能。 图 2. 点对点配置
图 3. 端到端配置
这里描述的 Web 服务安全性模型使我们能够通过一个过程达到这些目的,在这个过程中: Web
服务可以要求进来的消息证明一组声明(例如,名称、密钥、许可、性能等等)。如果消息到达但没有必需的声明,那么服务可以忽略或者拒绝该消息。我们把这一组必需的声明和相关的信息称为策略。
图 4. 安全性令牌服务模型
这个常规的消息传递模型 — 声明、策略和安全性令牌 — 包含并支持几个更特殊的模型,比如基于身份的安全性、访问控制列表和基于性能的安全性。它允许使用现有的技术如 X.509 公用密钥证书、Kerberos 共享秘密的票据甚至密码摘要。我们后面将讨论到它还提供一个集成抽象,这个集成抽象允许系统在不同的安全性技术之间建立一座桥梁。这个常规模型对于建立更高级的密钥交换、认证、授权、审核和信任机制就已经足够了。 Web 服务安全性规范 以后,我们将继续与客户、伙伴以及标准组织合作开发一套初始的 Web 服务安全性规范。 图 5. Web 服务安全性规范 这组规范将包括一个消息安全性模型(WS-Security),还有 Web 服务端点策略(WS-Policy)、一个信任模型(WS-Trust)和一个隐私权模型(WS-Privacy)。这些初始规范一起提供了一个基础,在这个基础上我们可以跨多个信任域建立安全的、可互操作的 Web 服务。 根据这些初始规范,我们将继续与客户、伙伴及标准组织合作为安全会话(WS-SecureConversation)、联合信任(WS-Federation)和授权(WS-Authorization)提供后继规范。 这些安全性规范结合在一起使得许多用目前更基本的安全性机制难以实现的案例(本文档在后面描述了其中一些案例)可以成功。 同时,我们将提议并继续做些相关的工作,用与审核、管理和隐私权相关的规范加强 Web 服务安全性框架。 另外,IBM 和 Microsoft 还致力于与象 WS-I 这样的组织合作建立互操作性概要文件。 安全性规范、相关活动和互操作性概要文件组合在一起将使用户能够很容易地建立可互操作的、安全的 Web 服务。 下面概述了每个被提议的规范: 初始规范 WS-Security:描述如何向 SOAP
消息附加签名和加密报头。另外,它还描述如何向消息附加安全性令牌(包括二进制安全性令牌,如 X.509 证书和 Kerberos 票据)。
WS-SecureConversation:将描述如何管理和认证各方之间的消息交换,包括安全性上下文交换以及建立和派生会话密钥。 WS-Security WS-Security 提供了一个通用机制用于把安全性令牌与消息关联起来。WS-Security 并不要求特定类型的安全性令牌。它被设计为可扩展的(例如,支持多种安全性令牌格式)。例如,一个请求者可能会提供身份证明和他们具有某个特定业务认证的证明。 提供消息完整性的方法是一起使用 XML 签名和安全性令牌(它可能包含或暗示关键数据)以确保消息在传输过程中未被修改。完整性机制被设计为支持多个签名(可能是由多个参与者签署的),并可以扩展为支持额外的签名格式。签名可以引用(也就是指向)一个安全性令牌。 同样,提供消息机密性的方法是一起使用 XML 加密和安全性令牌为 SOAP 消息的一部分保密。加密机制被设计为支持额外的加密技术、流程和多个参与者的操作。加密也可以引用一个安全性令牌。 最后,WS-Security 描述了编写二进制安全性令牌的机制。这个规范还特别描述了如何编写 X.509 证书和 Kerberos 票据以及如何包括进不透明加密的密钥。它还包含可用于进一步描述与消息包含在一起的安全性令牌的特征的可扩展性机制。 WS-Policy WS-Policy 将是完全可扩展的,并将不会对可以描述的要求和能力的类型做什么限制;但是,该规范很可能识别几个基本的服务属性,包括隐私权属性、编码格式、安全性令牌要求和支持的算法。 这个规范将定义一个常规的 SOAP 策略格式,这种格式能支持的不仅仅是安全性策略。这个规范还将定义一个向 SOAP 消息附加服务策略的机制。 WS-Trust 这个规范将描述如何通过创建安全性令牌保证服务把现有的直接信任关系用作代理信任的基础。这些安全性令牌保证服务建立在 WS-Security 的基础上,用一种保证令牌的完整性和机密性的方式传送那些必需的安全性令牌。 然后这个规范将描述如何把几个现有的信任机制与这个信任模型一起使用。 最后,这个信任模型将明确允许,但不强求主体进行授权委托和模仿。注意,委托与模仿是一致的,但它提供额外级别的可跟踪性。 WS-Privacy 通过使用 WS-Policy、WS-Security 和 WS-Trust 的组合,组织可以声明并指出遵守声明的隐私权策略。这个规范将描述一个关于如何把隐私权语言嵌入到 WS-Policy 描述以及如何使用 WS-Security 把隐私权声明与消息关联起来的模型。最后,这个规范将描述如何使用 WS-Trust 机制同时为用户首选项和组织实践声明评价这些隐私权声明。 WS-SecureConversation 这个规范将描述如何建立会话密钥、派生密钥和消息令牌(per-message)密钥。 最后,这个规范将描述服务如何安全地交换上下文(关于安全性属性和相关数据的声明的集合)。为完成这个工作,该规范将描述 WS-Security 和 WS-Trust 中定义的安全性令牌签发和交换机制概念,并以它们为基础。例如,使用这些机制,服务可以支持使用弱对称密钥技术的安全性令牌,还可以签发使用非共享(不对称)密钥的更强壮些的安全性令牌。 WS-SecureConversation 被设计为在 SOAP 消息层运作,这样消息就可以通过多种传送器和中介体传送。这并不排除在其它消息传递框架中使用它。为进一步增加系统的安全性,可以跨选中的多个链接把传输级安全性与 WS-Security 和 WS-SecureConversation 一起使用。 WS-Federation 同时还引入一个信任策略来指出并限制和确定被代理的信任类型。 这个规范还将定义用于管理信任关系的机制。 WS-Authorization 这个规范将被设计为在授权格式和授权语言上都是灵活且可扩展的。它使最大范围的案例成功并确保安全性框架能长期存在。 把Web 服务安全性与当前的安全性模型关联起来 传输安全性(Transport Security) —
现有技术,如安全套接字(SSL/TLS),可以为消息提供简单的点对点完整性和机密性。Web 服务安全性模型支持把这些现有的安全传输机制与
WS-Security(以及其它规范)一起使用来提供(特别是跨多个传送器、中介体和传输协议的)端到端完整性和机密性。 联合、授权(包括委托)、隐私权和信任的现有模型独特性有余,而通用性不足。这个策略的后面阶段将确定说明这些安全性属性的规范。 现有的信任模型通常都是基于企业间的协定。现有信任模型的一个示例是 UDDI Web 服务。在 UDDI 中,有好几个参与者,他们通过一致同意支持一组 API 来提供一个通用业务注册中心(Universal Business Registry)。UDDI 中的“信任模型”不是根据特定认证机制的要求为“信任”定义一个单独的模型,而是把认证的责任交给了节点,该节点是信息的管理员。也就是说,UDDI Web 服务的每个实现都有自己的认证机制并强制遵守自己的访问控制策略。“信任”是操作员之间的,也是请求者和管理它的信息的操作员之间的。 案例 这里描述的示例公司、组织、产品、域名、电子邮件地址、徽标、人物、地点和事件纯属虚构。如关系到任何真实的公司、组织、产品、域名、电子邮件地址、徽标、任务、地点或事件纯属无意,请勿妄加推测。 下面的列表简要介绍了提议的初始规范和相关的可交付方案(deliverable)可以支持的一些案例: 使用用户名/密码和传输级安全性的直接信任—
这个案例演示使用用户名和密码以及传输安全性的认证。 启用联合 —
这部分描述了几个涉及到联合信任的不同案例。 在下图中,“蓝色”框代表服务,“浅蓝色”框代表安全性令牌和它们的身份及委托声明。 使用用户名/密码和传输级安全性的直接信任 图 6: Web 服务安全性和现有传输安全性机制
请求者用安全传输(例如 SSL/TLS)打开了与 Web 服务的连接。它发送自己的请求并在请求中包含进一个包含其用户名和密码的安全性令牌。服务对这些信息进行认证,处理请求并返回结果。 在这个案例中,消息机密性和完整性是用现有的传输安全性机制处理的。 这个案例假设双方都已经使用了一些机制来建立共享的秘密 — 请求者密码。但没有对双方之间的组织关系做什么假设。 使用安全性令牌的直接信任 图 7. 双方之间的直接信任
请求者向服务发送消息,在消息中包含一个已签名安全性令牌并使用,例如签名,提供安全性令牌的所有权证明。服务检验该证明并评价安全性令牌。安全性令牌上的签名有效并被服务直接信任。服务处理该请求并返回一个结果。 直接信任假设涉及到的各方都透彻理解了隐私权策略。 获得安全性令牌 图 8. 引用的安全性令牌
请求者向服务发出一个请求,包含对安全性令牌的引用并提供所有权证明。Web 服务使用所提供的信息从令牌存储服务获取安全性令牌并验证证明。Web 服务信任(注意,这种信任是建立在消息语义之外的)这个安全性令牌,所以处理该请求并返回响应。 防火墙处理 如下所示,防火墙检验进来的 SOAP 消息并只允许来自“被授权”请求者的那些消息穿过防火墙。 图 9. 处理 SOAP 消息的防火墙
在这个案例中,有两个向防火墙内的 Web 服务发送消息的请求者。防火墙检查消息以确定请求者是否已“被授权”可以向防火墙内的指定 Web 服务发送消息。 在这个案例中,防火墙通过检查用于对消息签名的安全性令牌做出了这样的决定。如果签名有效,并且信任安全性令牌的签名授权机构授权该消息进入防火墙,并且令牌说它的确授权该消息进入防火墙,那么就允许该消息进入防火墙;否则,就拒绝它。有些情况下,签名可以特指防火墙为 SOAP 参与者。 在其它案例中,防火墙还可以充当安全性令牌的签发机构,并且只允许包含防火墙签发的安全性令牌的所有权证明的消息。 已签发的安全性令牌 图 10. 被信任一方进行的简单认证
在头两步中,请求者与认证机构通信获得安全性令牌,特别是证明请求者身份的断言的已签名声明。 请求者得到了一个安全性令牌,因为 Web 服务有一个策略要求需要一个适当类型的安全性令牌(在这个例子中,是身份证明)。 请求者下一步是向 Web 服务发送一条消息并接收响应,安全性令牌和所有权证明都被附加到消息上(请考虑认证者或签名的挑战)。 注意,在上面的描述中,并没有详细描述身份认证服务的操作。为获得一个身份安全性令牌,请求者可以使用现有的安全性协议或者也可以利用 Web 服务安全性规范。 如果我们假设请求者使用的是 Web 服务安全性规范,那么系统的操作步骤如下:身份服务在策略中描述它的要求,然后请求者可以请求一个安全性令牌,还有它的身份证明。 注意,身份服务只是一个安全性令牌服务。而且,Web 服务的对称性考虑到了所有的 Web 服务,还封装了安全性令牌服务。 最后,注意 Web 服务可以代表请求者(从安全性令牌服务)获得安全性令牌并把它们返回给请求者以供后面的消息使用。 强制遵守业务策略 请考虑下列示例: 图 11. 强制遵守业务策略的一个示例
Nicholas' Dealership 有一个用于与部件供应商交互的 Web 服务。但是,他们只希望与部件经过制造商认证的供应商做生意。 一个部件公司,Joshua's Parts 将去制造商那儿并出示(且证明)它们的身份安全性令牌(例如,来自所演示的安全性令牌服务的令牌)并请求一个来自制造商的安全性令牌,该令牌声明他们是经过认证的部件经销商(假设他们被认证过并且名声很好)。然后 Joshua's Parts 可以联系 Nicholas' Dealership 并提供(且证明)这两个安全性令牌。 如果 Nicholas' Dealership 已经把他们的业务策略编进了服务策略中,负责策略一致的担子就落到了部件公司(例如 Joshua's Parts)的头上。 服务策略还可以就制造商将允许存储什么信息来确保遵守隐私权策略指定一些限制。 隐私权 基本的隐私权问题可以通过在服务策略中提供隐私权声明解决。涉及到委托和授权的更复杂的案例将包含在特定于那些案例的规范中。 举例来说,一个人声明了一组“策略首选项”,它描述了这个人是不是允许日程服务根据个人信息进行处理。这个日程服务使用一组“隐私权实践规则”来决定对个人信息的使用和公开。日程服务通过把隐私权实践规则和隐私权首选项结合起来,确定是否允许所提议的使用或公开来做出决定。 图 12. 服务策略中的隐私权声明
Web 客户机 图 13. Web 客户机通过中间层应用程序与服务通信
而且,这个案例假设安全性令牌使中间层应用程序能够在与服务谈话时充当客户机。 为使这个案例成功,Web 客户机的浏览器访问中间层应用程序并被重定向到一个相关的身份服务。一旦经过认证(例如使用 HTML 表单和 https),请求就被重定向回中间层应用程序。身份服务向初始的中间层应用程序 Web 服务器提供一个安全性令牌(表明身份和委托)— 例如使用经 HTTPS 发送的查询字符串。现在这个 Web 服务器就可以使用这些安全性令牌并可以以它自己的身份向 Web 服务签发请求。Web 服务处理该请求并将结果返回到 Web 服务器,在这个服务器中结果被格式化并被返回到浏览器。 移动客户机 下面是一个把这两种思想结合在一起的示例。当网络操作员支持移动客户机(使用这些 Web 服务安全性规范)时,它们可以配置那些客户机来通过网络操作员的网关发送请求。在这个案例中,网关是一个积极参与整个消息流的 SOAP 中介体;网络操作员还特别提供专为移动设备设计的一个增值(value-add)加密算法。网关可以增加或更改安全性令牌以及消息的保护质量。注意,这个 Web 服务安全性模型固有的灵活性允许这个解决方案,甚至当设备在外部网上漫游时也允许。 下面的示例演示了这一点: 图 14. 通过网关访问服务的移动客户机
启用联合 Adventure456 处的 Alice 想使用 Business456 处的 Currency Web 服务。该 Currency 服务将只处理带有 Business456 签发的安全性令牌的请求。Alice 只有一个 Adventure456 签发的带身份声明的安全性令牌(也即,一个身份安全性令牌)。 在这个案例中,如果 Business456 愿意接受与 Adventure456 的安全性联合,Alice 将只能够访问 Currency 服务。 下面的几个分段描述了进行安全性联合的几种方法。 使用安全性令牌交换的联合 图 15. 使用安全性令牌交换的联合
在这种方法中,Business456 安全性令牌服务被配置为接受 Adventure456 签发的带身份声明的安全性令牌。 应该注意,这个示例与强制遵守业务策略案例中的示例非常相似。这个示例演示了 web 服务安全性模型的灵活性。 使用信任链的联合 为做到这一点,Currency 服务将初始请求转发给评价初始安全性令牌的 Business456 安全性令牌服务。如果该令牌有效,它认可该请求,并且可以为 Alice 包括进一个 Business456 安全性令牌以供后面的请求使用。下图演示了这个过程。 图 16. 使用信任链的联合
在这种方法中,Business456 安全性令牌服务被配置为接受 Adventure456 签发的带身份声明的安全性令牌。 使用安全性令牌交换的联合(PKI -> Kerberos)
按照 Currency 服务的策略的指示,Alice 向 Business456 的安全性令牌服务出示(且证明)她的公用密钥安全性令牌。这个安全性令牌服务封装了 Business456 的 KDC。结果,它能够验证 Alice 的公用密钥安全性令牌并签发了一个用于 Currency 服务的 Kerberos 安全性令牌。下图中演示了这个过程。 图 17. 使用安全性令牌交换(PKI -> Kerberos)的联合
在这种方法中,Business456 安全性令牌服务被配置为接受 Adventure456 签发的带身份声明的公用密钥安全性令牌。 使用安全性令牌交换(Kerberos -> 安全性令牌服务)的联合
这里我们假设 Adventure456 和 Business456 的管理员们为联合安全性已经交换了公用密钥证书。我们进一步假设 Alice 只支持对称密钥技术。 根据 Currency Web 服务的策略,Alice 需要获得一个可用于访问 Business456 处的安全性令牌服务的安全性令牌。因为 Alice 使用的是对称密钥安全性令牌,Alice 首先联系她的安全性令牌服务以获取为 Business456 安全性令牌服务准备的安全性令牌。注意,这个安全性令牌将包含一个与 Business456 安全性令牌服务的公用密钥编码在一起的对称密钥,Sab。 使用为 Business456 安全性令牌服务准备的安全性令牌,Alice 请求一个用于 Currency 服务的安全性令牌。Business456 安全性令牌服务向 Alice 提供了一个对称密钥 Sac 和一个用于 Currency 服务的安全性令牌。 使用为 Currency 服务准备的安全性令牌和相关的对称密钥,Alice 向 Currency 服务发送了一个请求。 图 18. 使用安全性令牌交换(Kerberos -> 安全性令牌服务)的联合
使用凭证交换(Kerberos -> Kerberos)的联合
这里,我们假设 Adventure456 和 Business456 处的管理员不想建立跨域的传输信任,但为了联合安全性,想交换公用密钥证书。我们进一步假设 Alice 和 Currency 服务都只支持对称密钥技术。 就象前面的示例中那样,安全性令牌服务有能力向它们信任域内的服务提供对称密钥安全性令牌。所以,上面描述的这种方法在这个案例中是可行的。 图 19. 使用凭证交换(Kerberos -> Kerberos)的联合
验证服务 在这个案例中,我们已经将验证服务与安全性令牌服务分开了。在其它案例中,它们可以组合在一起或者具有直接信任关系(因此不需要 WS-Federation)。 图 20. 与安全性令牌服务分开的验证服务
在这个案例中,请求者从安全性令牌服务获得了一个安全性令牌。然后它将消息发送给 Web 服务并在消息中包括了所有权证明(例如,一个签名)。Web 服务发送签名块、安全性令牌和计算出的已签名的摘要给验证服务。然后,Web 服务信任的这个验证服务发出一个有效/无效决定。 应该注意,验证服务可以通过签发一个代表声称正确声明的请求者的安全性令牌来表明它的决定。 支持委托 Alice 并不知道 Bob 将如何安排会议的日程,但她希望限制可以看到她的日程的一组服务。 图 21. 信任委托
Alice 向 Bob 提供了一个安全性令牌,这个令牌使 Bob 能够根据她的日程安排会议。这个安全性令牌包含限制 Bob 将会议安排到周二的声明。而且,只要主题(一个或多个)能够证明它们有一个来自 TrustUs456(一个第三方服务)的隐私权证明,这个安全性令牌就会使 Bob 能够签发后继的安全性令牌。 既然服务 schedule456 已经被 TrustUs456 审核过了,那么它们就有了一个声明它们的隐私权证明的安全性令牌。 当日程服务在 calendar456 处访问 Alice 的日程时,它可以验证它的隐私权证明的所有权证明及其访问声明,并根据来自 Alice,通过 Bob,到达它自身的安全性令牌安排会议日程。 访问控制 图 22. 访问控制
Alice 与她的日程服务通信(认证她自己)获得授权列表。她更新授权列表来允许 Bob 查看她的闲/忙数据、安排会议并将数据提交给服务。现在,当 Bob 为这些操作访问她的日程服务时,他不需要来自 Alice 的委托安全性令牌。 审核 为跟踪这种类型的活动,服务可以提供审核功能。也即,当发生与安全性有关的事件,比如认证或者未证明的声明或者错误的签名时,就记录下来。管理员可以安全地访问日志来检查与安全性相关的事件并管理日志。 例如,敌人可能会努力假扮 Bob。使用监视器/管理工具,安全性管理员 Carol 查看审核日志时看到 Alice 的日程已经有了许多安全性失败记录。在查看数据时,她看到有时 Bob 的请求失败是因为他的签名与消息(一条或多条)不匹配,消息是旧的(被重用的)。于是 Carol 便收集审核记录以用于追查这些敌人。 图 23. 审核服务操作
总结 IBM 和 Microsoft 相信这是定义一个全面的 Web 服务安全性策略的第一步。它将反映我们迄今为止已经确定的问题和解决方案。由于我们将继续与客户、伙伴以及标准组织合作来保护 Web 服务,我们希望会有使这个策略更加全面所需的其它思想和规范。 供稿者 主要的供稿者包括(按字母顺序排列):Giovanni Della-Libera,Microsoft;Brendan Dixon,Microsoft;Joel Farrell,IBM;Praerit Garg,Microsoft;Maryann Hondo,IBM;Chris Kaler,Microsoft;Butler Lampson,Microsoft;Kelvin Lawrence,IBM;Andrew Layman,Microsoft;Paul Leach,Microsoft;John Manferdelli,Microsoft;Hiroshi Maruyama,IBM;Anthony Nadalin,IBM;Nataraj Nagaratnam,IBM;Rick Rashid,Microsoft;John Shewchuk,Microsoft;Dan Simon,Microsoft;Ajamu Wesley,IBM 参考资料 脚注 使用 WS-Security — 可以使用 WS-Policy 请单击文章顶部或底部的讨论参与本文的讨论论坛。
如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐 jill.jiang@amt.com.cn | 021-51096826-112 | 在线联系 |
[原创]ITSM工具选型,我们需要..昨天拜访了客户是有关ITSM工具选型。交谈中,客户对市面上几款ITSM软件的熟悉程度出乎我们的意料。Remedy、MRO、爱得维特、福瑞杰、游龙、泰岳和金道等等…… CIO职场,强者生存?在2008年,我们将继续看到CIO向商业运营方向发展。与此同时,我们也会看到商业管理人员将与技术管理人员一起竞争CIO岗位。 IT领导者的就职机会虽有不少,但其难度将会大幅提高。2…… 防震减灾,IT当关今天,任何的防震救灾体系,都离不开IT技术。地震观测台是数字化的,震害防御需要对以往的地震信息进行数据分析,应急救援要需要现代多样化的通讯技术。如果说,在许多行业,信息技术还只是一…… |
|
|