返回列表 发帖

保护 Web 服务

介绍
现在,当以电子方式处理业务的企业试图把它们的流程和它们的伙伴、客户和供应商的流程集成在一起的时候,它们面临着各种各样的风险。诸如 SOAP、WSDL 和 UDDI 之类的 Web 服务核心技术能够使连接应用程序所必需的集成基础架构简化(streamline)和标准化,尽管这种能力至关重要,但它们并不直接提供保护企业资产所必需的安全性机制。IBM、Microsoft 和 VeriSign 认识到了这一点,它们已经联合起来致力于解决客户和业界通常所关心的问题,为 Web 服务开发一个全面的安全性模型。
由于正在开发的创新的指南是以 Web 服务基础架构为基础的,它第一次能够将以前不能互操作的各种安全性技术(例如,公共密钥基础架构(PKI)、Kerberos 和其它技术)集合在一起,为客户提供了构建安全的 Web 服务的实用的、现实的方法。
本文的目的是介绍所提议的安全性模块的基本原理并阐明它的优点。为实现这个目的,我们将探讨几个能说明模型的设计与使用的业务案例。我们将通过把指南中罗列的规范应用到虚构的但却普遍的业务问题上来阐明这些情况。
SOAP
一种被提议的标准格式,用于在应用程序之间使用标准的因特网技术交换业务消息。
WSDL
一种被提议的标准格式,用于描述 Web 服务的功能和要求。
UDDI
一个规范的集合,它阐明了 Web 服务在因特网上和私有业务关系内是如何被分类以及被发现的。
PKI
一个流行的网络安全性体系结构,它提供了基于加密派生的密钥的高级别的保护,该密钥用以声明人们的身份并检测未授权的篡改。
Kerberos
麻省理工学院(Massachusetts Institute of Technology,MIT)开发的一个流行的网络认证协议。
X.509 证书
用在 PKI 基础架构中一种标准令牌类型,以声明访问者的身份。
Kerberos 票据
用在 Kerberos 环境中的一种令牌类型,用以声明人们访问指定资源的身份和授权。


挑战
我们的许多客户已经指出,至少在早期阶段,Web 服务技术将主要以有助于简化它们的内部业务流程的方式实现 — 例如,把业务流程、供应链以及客户关系集成在一起,并使它们自动化。虽然客户实现这些解决方案时本来需要解决很多问题,但出现最频繁的是安全性方面的问题。当一家公司希望用因特网作为通信通道把它的业务系统和伙伴的业务系统集成在一起时,这两家公司怎样才能确信它们的信息得到了适当的保护呢?
Acme Parts 公司是一家虚构的汽车零件制造商,它已经开始向完全集成的电子商务基础架构转换。它们已经设计并实现了基于工作流的电子采购和供应链自动化系统,该系统将它们和它们的供应商及客户直接联系在一起。Acme Parts 认识到投资上的良好收益后,已经将注意力转移到简化它们的管理流程上了,首先从人力资源部门开始。
We-R-HR.com 是一家 HR(人力资源)管理公司,它提供了一整套供外包的 HR 管理解决方案。We-R-HR.com 提供的产品包括各种工资单、津贴、在线教育(e-learning)和业绩跟踪应用程序,每一项都作为 Web 服务向客户公开。
We-R-HR.com 推出这个基于费用的(feebased)服务的集合所采用的方法遵循一个自助服务(self-service)模式,该模式允许 Acme Parts 公司将 We-R-HR.com 的功能直接集成到它们公司内部网的门户中。图 1 阐明了 Acme Parts 公司选用的解决方案的高级拓扑结构。
图 1. Acme Parts Co. 的 HR 解决方案高级拓扑结构
在这个视图中,我们注意到 Acme Parts 和 We-R-HR 都必须解决的许多关键问题。
由于雇员数据的高度敏感特性,Acme Parts 要求 We-R-HR.com 实现一个严格的安全性策略和隐私权策略,确保只允许那些在 Acme Parts Co. 的内部网内操作的 Acme Parts Co. 的雇员、经理和行政人员通过 We-R-HR.com 服务访问 Acme Parts 雇员数据,并且确保仅在安全的网络通道上交换信息。
Acme Parts Co. 已经决定所有的 Employee HR 数据都必须存储在 Acme Parts 防火墙后面,而不是将它们现有的旧雇员 HR 数据库迁移到 We-RHR.com(并且保持对数据较紧密的控制),同时要求赋予 We-RHR.com 应用程序穿过防火墙访问必要信息的访问权。按照合同,不允许 We-R-HR.com 持续存储任何 Acme 雇员的信息。
Acme Parts 和 We-R-HR.com 各自实现不同的安全性模型和信任模型。Acme 依靠基于 PKI 的基础架构,We-R-HR.com 使用基于 MIT Kerberos 规范的 Kerberos 系统。只有当请求者持有有效的 We-R-HR.com Kerberos 票据时,他才能访问 We-R-HR.com 的 HR 服务。只有当请求者持有有效的 Acme Parts X.509 证书时,他才能访问 Acme 的雇员数据库。

实现这个解决方案的关键问题很清楚:当雇员信息在两家公司之间来回交换时,如何保证雇员信息的安全性、完整性和机密性以及如何赋予每个公司适当的访问权,以使 HR 外部引进具有商业意义。在这个上下文中,“完整性”意味着我们能更好地检测出数据在途中是否已经被篡改或损坏。通过应用正被提议的 Web 服务安全性模型的原则,解决方案也变得明朗起来。
解决方案
Web 服务安全性模型引入了一个由各个相互联系的规范组成的集合,这些规范描述了把安全性功能程序放到 Web 服务环境中的方法。体系结构被设计成允许对规范进行混合匹配,使实现者能够仅部署他们需要的那部分。这些规范中的第一个 — Web 服务安全性(Web Services Security)(或称 WS-Security)文档 — 提供了把消息完整性和机密性功能程序添加到 Web 服务中所必需的基本元素,并且提供把安全性令牌(例如,数字证书和 Kerberos 票据)关联到 SOAP 消息的方法。WS-Security 为正提议的 Web 服务安全性模型打下了基础。随着时间的推移,除安全性外,还将引入其它规范来解决安全性策略、信任、隐私权和授权。
图 2. Web 服务安全性指南
有望成为 Web 服务安全性模型的部分内容的规范有:
WS-Security:该规范定义了如何将元素添加到一条 SOAP 消息,这条 SOAP 消息有助于保护在企业应用程序之间交换的消息的完整性和机密性,并且提供了将发送者身份和消息关联在一起的方法。
WS-Policy:该规范描述了决定企业应用程序必须如何与另一个企业应用程序集成在一起的业务、安全性、隐私权和信任策略。
WS-Trust:该规范描述了如何在 Web 服务环境中建立企业之间的信任关系。
WS-Privacy:该规范描述了如何把隐私权策略以及首选项与 Web 服务相关联。
WS-SecureConversation:描述了如何将集合消息作为更复杂的企业事务的一部分安全地交换。
WS-Federation:描述了一个模型,该模型用于把不兼容的安全性机制,或部署在不同域中的、类似的机制集成在一起。例如,如果两个 IBM 业务伙伴都实现基于 PKI 的身份基础架构,或者如果其中一个伙伴碰巧实现了 Kerberos 系统,WS-Federation 规范将提供一个关于如何应用 Web 服务技术把那些系统联系到一起的指南。
WS-Authorization:描述了如何在 Web 服务基础架构中提供应用程序授权请求和决定(例如,允许 Sally 访问 Employee 数据库)。

这套规范最重要的方面或许就是它们并不是一夜之间制订的。安全性指南的作者已经认识到:只有当这个模型可以分解成独立的组件,并且以既满足客户短期和长期的需求又能满足产业发展的需求的方式组装时,它才能发挥作用。被提议的安全性指南首先试图解决最紧急的问题,而不是试图一次解决所有的 Web 服务安全性问题。
在这项工作的早期阶段,工作重点就已经是,并且今后仍然是解决关键的消息传递问题(例如,对消息加密、防止未授权的修改以及通信策略)。稍后的阶段将更集中于面向流程的问题,包括通过联合把各种安全性基础架构集成在一起,以及保护多个伙伴之间的消息流。接下来,我们将探讨这些规范中的每一个 — 尤其是 WS-Security 规范 — 将如何提供那些提供 AcmeParts/We-R-HR.com 解决方案所需的安全性模型所必需的功能。
步骤 1:联合身份
当 Acme Parts 和 We-R-HR.com 构建提议的解决方案时,它们将要碰到的关键问题是两家公司如何着手创建一个集成的安全性基础架构。假设公用密钥基础架构和 Kerberos 原来(在形式和功能上)是不能互操作的,解决方案就很重要。
联合的身份(Federated Identity)是一个术语,它描述了把不同身份认证机制集成在一起或在不同域中实现同一种认证机制。我们通过应用一个被称为凭证交换的过程来实现 PKI 和 Kerberos 之间的联合。
Sally 和所有的 Acme Parts 雇员一样,已经给她签发了 X.509 证书,用于在 Acme Parts 内部网中证明她的身份。为了使 Sally 使用 We-R-HR.com Web 服务,她必须能够用她的 X.509 证书来交换 We-R-HR.com 的 Kerberos 票据。Acme Parts HR Portal 将通过集成 We-R-HR.com 的安全令牌交换服务来自动为她交换。然而,Sally 不需要了解这种交换是怎样进行的。您完全无法看到如何使用 X.509 证书、Kerberos 票据以及安全性令牌交换服务,它们是通信基础架构的一部分,HR Portal 和外部引进 HR 服务就构建在这个通信基础架构之上。

图 3. 通过凭证交换把 Kerberos 和 PKI 联合起来
此处阐述的流程很简单。当 Sally 用她的 X.509 数字证书向 HR Portal 证明她身份的时候,此门户接受该证书并用它来交换授权 Sally 访问 We-R-HR.com 服务的 Kerberos 票据。无论 Sally 何时访问其中的一项服务,HR Portal 都将提供签发的 Kerberos 票据。对 Sally 来说,整个过程是完全透明的。
关键是 Web 服务安全性模型被设计为允许利用现有的认证机制,不引入一个新的认证模式。这样就大大节约了成本。凭证交换不是一个新概念。不过,被提议的安全性模型使得实现各方之间的互操作性变得更为简单,这些不同的方面通过应用 Web 服务标准来交换它们的票据。
步骤 2:保护通信
下一步是保护 Sally、HR Portal 与 We-R-HR.com 的 Web 服务之间的通信通道。要求 Sally 通过她的 Web 浏览器使用安全的 HTTP 连接来访问门户,并且要求所有在门户和 HR 服务之间交换的 SOAP 消息使用 WS-Security 规范来帮助保护信息的完整性和机密性,藉此可以保护通信通道。大多数 Web 浏览器支持安全 HTTP(HTTPS)协议,这就使得 Sally 易于安全地连接到门户上。WS-Security 用于把加密信息和完整性信息添加到 SOAP 消息中,这样 SOAP 消息所包含的信息就可以保持机密性并且您能发现未授权的修改。
WS-Security 提供附加的功能,用来把 Sally 的 Kerberos 票据(通过步骤 1 中描述的凭证交换过程获得的)和门户正在向 HR Web 服务发送的特定请求关联起来。所有这些元素都很重要,因为它们提供了一种机制,该机制确保了 Sally 的信息能更好地免于被偷窃或被误用。
图 4. 使用 SSL 和 WS-Security 的消息安全性
这种方法有很多优点。
SSL 在因特网上的部署和使用很普遍。如果您已经部署了一台 Web 应用程序服务器,那么您的因特网基础架构很有可能也支持 SSL。通过利用这些现有的功能,客户节约了时间和金钱。在这种情况下,可以通过 HR Portal 把 HR Web 服务功能安全地提供给 Sally,不用强制她改变访问 HR Portal 的方式。
使用 HTTPS 和 WS-Security 的组合(Sally 和门户之间的 HTTPS、HR Portal 和 HR Service 之间的 WS-Security),就可以更好地确保 Sally 正通过 HR Portal 发送给 HR Service 的消息能保证安全和机密,无需要求她确切了解 HR Portal 和 HR Service 是如何来回交换消息的。

步骤 3:建立策略、隐私权和信任
对于 Acme Parts/We-R-HR.com 解决方案的核心来说,联合认证和保护通信是最关键的第一步,但它们仅仅是开始。这两家公司还必须建立一个用于表达和强制遵守安全性、隐私权和信任策略的公共模型。从根本上来说,这意味着必须开发一个模型,这个模型允许技术基础架构和中型应用程序理解为给定的业务关系建立的业务策略,并遵照此业务策略行事
图 5. 用于表达和强制遵守安全性、隐私权和信任策略的模型将建立在 WS-Security 规范提供的基础上。
WS-Policy、WS-Privacy 和 WS-Trust 规范旨在以一种可扩展的、模块化的格式给服务提供者和消费者提供表达他们的安全性需求和功能的能力,这种格式有助于确保规范的应用和供应商实现之间的互操作性和灵活性。例如,在 We-R-HR.com 的安全性概要文件中将指出 Acme Parts 的雇员必须用他们的 X.509 数字证书来交换 We-R-HR.com 的 Kerberos 票据。类似地,决定如何访问和使用雇员信息的隐私权策略将在经过两家公司协商并一致同意的隐私权策略中表述。通过应用,用于这样策略语句、业务的标准的、可用计算机处理的格式可以依赖于 IT 基础架构和中间件来使那些策略的协商和强制遵守自动化。实际上,虽然这样的自动化是将来要处理的任务,但是正被提议的指南奠定了发展这类技术的必要基础。
优点
正被提议的 Web 服务安全性模块客户认识到几个关键的优点:
它是在现有安全性技术的基础上构建的,而不是取代现有的安全性技术。例如,WS-Security 和相关的规范并没有为认证、信任和隐私权引入新的机制。它们宁可引入简单的机制以使现有的标准和技术与 Web 服务相关联,这样就允许公司利用现有的安全性投资。
它是可扩展的。
WS-Security 模块旨在使安全性解决方案能够随业务需求的发展而发展,这样,当您的需求发生变化时可以节约长期开发成本。
它是有效的。
WS-Security 体系结构和指南是根据对客户现在所面临的情况和问题的全面研究设计的,并且已经按照允许首先解决最紧急问题的方法进行了构造。

可能 WS-Security 体系结构最重要的优点之一就是正在通过面向动态电子商务的 IBM Web Services Toolkit 给开发者提供开始工作的工具。您可以通过 IBM alphaWorks 站点(http://alphaworks.ibm.com/tech/webservicestoolkit)获取这个工具箱的最新发行版,它包括 WS-Security 规范的安全性令牌(把用户的身份和一个 Web 服务请求相关联)以及实现数字签名(保护消息免受未授权的篡改)组件。
总结
自从两年多以前 Web 服务技术涌现在主流 IT 产业中,我们的客户和业界普遍已经表示出对于在企业环境中广泛应用 Web 服务技术的潜在安全性问题的关注。IBM 感觉到正被提议的安全性模块是解决这些问题的第一个全面的,也是最现实的方法。
IBM 将全力以赴和我们的客户、伙伴、标准组织以及一般行业一起合作来进一步发展这个体系结构。随着这项工作连续结出硕果,我们将发行技术预览,从目前可用的 IBM Web Services ToolKit 开始,这将使开发者获得使用新规范的实际经验。

返回列表 回复 发帖