IBM 公司与 Microsoft 公司联合发布的安全性白皮书。
本文描述了为解决 Web 服务环境中的安全性问题而提议的策略。它定义了一个全面的 Web 服务安全性模型,这个模型通过使各种系统能够安全地以一种与平台和语言无关的方式进行互操作来支持、集成和统一几个流行的安全性模型、机制和技术(包括对称和公用密钥技术)。它还描述了一组规范和案例,这些案例显示了如何一起使用这些规范。
这是一个预备文档,以后随着时间的推移可能会发生实质性的改变。本文档中包含的信息代表 International Business Machine 和 Microsoft Corporation 在发布之日对所讨论问题的当时的观点。因为 IBM 和 Microsoft 必须对不断变化的市场形势作出反应,所以不应该将本文档解释为 IBM 和 Microsoft 方面做出的承诺,并且 IBM 和 Microsoft 无法在发布之日后保证本文档提供的任何信息的准确性。
允许提供、分发或以其它形式传播这篇文档中所包含的信息并不意味着(无论明示的还是默示的)给予您 IBM 或 Microsoft 和/或其他第三方所拥有或控制的知识产权的许可证。IBM、Microsoft 和/或其他第三方可能拥有涵盖本文档中主题的专利权、专利申请、商标、版权或其他知识产权。提供这篇文档并没给予您 IBM 或 Microsoft 或任何其他第三方的专利权、商标、版权或其它知识产权的许可证。这里描述的示例公司、组织、产品、域名、电子邮件地址、徽标、人物、地点和事件纯属虚构。如关系到任何真实的公司、组织、产品、域名、电子邮件地址、徽标、人物、地点或事件纯属无意,请勿妄加推测。
这里包含的这篇文档和信息以“仅此状态”提供,并被适当的法律最大程度地许可,IBM 和 Microsoft 以“仅此状态和未消除任何错误”的状态提供本文档,因此对所有关于本文档的其它保证和条件(无论是明示的、默示的、还是法定的)不负任何责任,这些保证和条件包括(但不限于)任何(如果有的话)对适销性、适用于某特定用途、准确性、完全负责、结果、技艺精湛的成果、确认无病毒、无疏忽等保证和条件。另外,对于本文档相关的知识产权的标题、安静享用、安静拥有、与描述相符或不侵犯也不提供任何保证或条件。
在任何情况下,IBM 或 MICROSOFT 都不对任何第三方受到的生产替代品或服务损失、利润亏损、使用上的损失、数据损失、或者任何意外的、相应产生的、直接的、间接的、或特殊的损害负责,不管是有合同、民事侵权行为、保证还是其它条件、由此引起还是由与本文档相关的任何其它协议引起、也不管第三方是否已经提醒可能会有这种损害。
摘要
IT 业已经谈论了将近两年 Web 服务。当 Web 服务用于试验计划和大规模生产时,拥有一种松散耦合的、与语言和平台无关的、在组织内跨企业、跨因特网链接应用程序的方法的好处正变得愈发明显。再往前,我们的客户、业界分析家和新闻界确定了当 Web 服务日益成为主流时要解决的关键问题:安全性。这篇文档提议了一个技术上的策略和指南,业界可以籍此建立并实现一个基于标准的体系架构,这个体系架构非常全面,同时又足够灵活,可以满足真实企业的 Web 服务安全性需要。
这个新出现的 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 服务技术必须提供的集成和互操作性好处的同时利用并扩展安全性基础架构中的现有投资。
介绍和动机
为 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 服务是一