保护 XML Web 服务:XML 防火墙和 XML VPN





5.00/5 (2投票s)
讨论 XML 和 Web 服务特定的安全挑战,并提出 SSL 或单独的 XML 防火墙解决方案的局限性。概述理想的 Web 服务安全解决方案的属性。

XML 和 Web 服务安全的挑战
通过提供一种灵活、平台中立的方式来渲染各种数据类型,XML 已成为跨异构应用程序交换信息的标准。因此,Web 服务(一组基于 XML 的协议,用于查找和通信松耦合、可互联网调用的应用程序“服务”)已成为集成异构应用程序和实现面向服务架构 (SOA) 的首选机制。
在数据交换和集成方面标准化 XML 和 Web 服务可带来显著的 IT 优势,包括灵活性、互操作性和广泛的覆盖范围。然而,它也带来了新的安全挑战。
- Web 服务可以通过任何传输协议进行传输,包括 HTTP 等常用 Web 协议。这使得 Web 服务很容易绕过网络防火墙。
- Web 服务通过开放的 API 公开业务功能,这需要新的应用程序感知安全措施。
- Web 服务支持多跳复合应用程序,这需要消息级别的安全和审计,能够跨越端到端的多个 SOA 事务。
- 基于 XML 的消息可能被故意或无意地格式化错误,导致解析器或应用程序崩溃,从而产生新的 XML 威胁和漏洞防护要求。
- Web 服务事务主要是机器到机器的,这需要对机器到机器信任的启用和凭证管理进行新的思考。
- Web 服务及其客户端应用程序在成功交换数据之前,必须就安全参数(如加密偏好和标准支持)达成一致,这就需要新的策略协调方式。
传统的安全措施,如网络防火墙和 VPN,不足以应对这些新的安全挑战。网络防火墙不具备服务或应用程序感知能力,因此无法根据服务或服务特性(如操作类型)来控制访问。网络防火墙也无法防御消息或消息附件中携带的 XML 威胁,因为它们无法检查 XML 消息、验证 XML 结构或检测异常的 XML 内容。同样,基于网络的 VPN(无论是 SSL 还是 IPSec)在消息穿越 SOA 事务中的服务跳跃时,都无法保持消息的完整性和隐私。此外,VPN 无法在 SOA 事务中提供消息级别的审计跟踪或不可否认性。因此,直到最近,实现应用程序级别的 XML 和 Web 服务安全唯一的选择是将安全性直接编程到应用程序本身的服务中。
然而,将安全性编码到 Web 服务中需要开发人员了解如何在 Web 服务及其客户端上实现新兴的 WS-* 标准,例如 WS-Security、WS-SecureConversation、WS-Trust、WS-Federation 和 WS-Policy 等。这要求 Web 服务编码人员和客户端开发人员通过带外机制协调安全偏好,因为 Web 服务无法自动向客户端传达安全预期或能力。如果 Web 服务安全性需要与现有的信任基础设施(如 PKI、目录、单点登录 (SSO) 和身份联合)集成,程序员将需要在服务和客户端应用程序上实现一次性集成。因此,在大多数情况下,编程 XML 和 Web 服务安全性将缺乏用户所需的、一致性、灵活性、可伸缩性和部署速度。
因此,已经出现了两类新的安全基础设施,以尝试满足客户对服务提供商和客户端上专用 XML 和 Web 服务安全的需求。为了应对 Web 服务提供商集成端的 Web 服务安全管理和执行的复杂性,用户现在可以利用一类新的 XML 安全基础设施,通常被称为 XML 防火墙或 Web 服务网关。XML 防火墙或 Web 服务网关,如 Layer 7 的 SecureSpan Gateway,是一种专用设备或软件,可以部署在 DMZ 或数据中心,以强制执行 XML 和 Web 服务安全偏好,包括访问控制、凭证管理、完整性、隐私、威胁缓解和审计。在某些情况下,例如 Layer 7 的 XML 防火墙,它们还可以执行硬件加速的数据转换、路由、SLA 和其他策略操作。在所有情况下,XML 防火墙都允许安全管理员定义 XML 和 Web 服务事务的安全策略,并集中执行,无需编程。
XML 防火墙是保护 Web 服务安全的第一步,但在某些情况下,还需要通过 XML VPN 来自动化客户端应用程序的安全。当 Web 服务跨安全和身份域共享,或者当客户端应用程序是门户网站时,通常需要协调身份域、提供 PKI 以进行基于证书的信任、与现有的单点登录基础设施集成、启用不可否认性以及管理 Web 服务和客户端应用程序之间的策略变更。手动执行此操作虽然可行,但非常复杂。出于这些原因,一些供应商(如 Layer 7)还提供 XML VPN 产品来自动化客户端安全和协调。
本白皮书探讨了如何以及何时部署 XML 防火墙和 XML VPN,以提供面向 SOA 基础设施的总 XML 和 Web 服务安全。
XML 防火墙:第一步
以 Web 世界为灵感,Layer 7 Technologies 等技术供应商开发了 XML 特定防火墙(如 Layer 7 的 SecureSpan Gateway),以解决 XML 和 Web 服务特有的安全挑战。XML 防火墙(如 SecureSpan Gateway)旨在检查和评估传入流量的 XML 内容,并根据该评估执行适当的安全操作。这些操作可能包括将消息路由到指定端点、根据消息内容转换消息、验证签名、解密字段或阻止对某些操作的访问。对于 SecureSpan Gateway,这些操作通过专用 ASIC 加速器得到加速。
XML 防火墙通常通过检查 SOAP 消息头或(对于原生 XML)HTTP 头来将传入消息解析到特定的目标 Web 服务。一旦解析到目标 Web 服务,XML 防火墙就可以根据目标地址、发起方身份、消息内容以及在某些情况下,先前策略的成功执行,应用存储的安全策略。大多数 XML 防火墙还可以检查消息体内的元素,如字段、参数和附件。作为 Web 服务生命周期管理的一部分,一些 XML 防火墙还自动生成后端目标 Web 服务的虚拟化 WSDL 视图,以简化版本控制、寻址和基于 SLA 的操作。
理论上,几乎任何类型的消息级别 XML 操作都可以在 XML 防火墙内部进行控制和处理。通过承担一个或多个共享 Web 服务的负担,应用程序提供商可以集中进行安全配置和管理。这使得 Web 服务部署的上市时间更快,并在不断变化的业务条件下提高了灵活性。但是,XML 防火墙只解决了问题的一半。在强制执行提供商端 Web 服务安全性的同时,XML 防火墙未能解决管理整个集成端到端安全性的更广泛问题。阻止未经授权的应用程序或消息通过 XML 防火墙显然是有价值的,但如果没有相应的机制将安全预期传达给受信任的客户端应用程序,就没有一致的方法来确保集成一端的安全性符合另一端的安全策略。
尽管 XML 防火墙可以消除将安全性编程到它们所保护的 Web 服务应用程序中的需求,但它们无助于受信任的客户端应用程序访问相同的受保护 Web 服务。确保客户端应用程序满足安全预期需要带外协商(例如,通过电话或电子邮件),然后是独立的客户端编程和全面的合规性测试。这种高接触过程成本高昂、耗时且容易出错。此外,没有及时的方法将更改的 XML 防火墙安全策略传达并应用到客户端应用程序。
XML 防火墙本身无法解决安全协调的挑战。仅凭 XML 防火墙无法完全实现跨 Web 服务集成的端到端安全管理。如果没有某种形式的客户端协调,像同步客户端和 Web 服务之间的加密参数以及提供客户端证书和密钥(例如,为了实现 WS-Security 标准)等基本操作就会变得繁琐。像将单点登录扩展到 Web 服务、联合身份以及桥接面向消息的中间件岛屿等高级应用程序则变得不可能。XML 防火墙中任何安全策略的更改都会破坏与所有授权客户端应用程序的集成。显然,真正的端到端 XML Web 服务安全不仅仅需要 XML 防火墙。
XML VPN:快速、灵活的合作伙伴赋能
XML 防火墙是更广泛的 Web 服务安全策略中的关键要素,但鉴于 Web 服务事务的集成性质,它们通常不足够。参与 SOA 事务的服务之间的安全要求必须进行协调。理想情况下,这种协调应该是动态的,以便在不涉及开发人员的情况下自动适应一个或多个系统上的更改。
一种可能的安全协调模型是使用 XML 防火墙加上客户端技术,用于将安全工作负载分配给客户端系统并与客户端系统协调安全偏好。与 VPN 安全一样,客户端技术应根据部署要求提供软件或硬件形式。对于不希望使用任何客户端占用的客户,也应提供纯粹面向开发者的选项。客户端技术还应为 Web 服务事务提供其他增值功能,如单点登录集成、PKI 提供、联合协调、不可否认性和策略变更管理。然后,该架构的服务提供商端和客户端组件可以通过交换策略文档的虚拟大纲来协调它们针对事务的特定安全偏好、条款和条件。这将通过确保一个系统中的策略更改自动传输到其他系统来保持 Web 服务的松耦合性质。
与 XML 防火墙结合使用,这种类型的客户端组件可以为组织提供跨越传统企业安全边界内部和外部事务的安全模型。实时与 XML 防火墙协商不仅可以节省大量的开发人员精力,还可以消除基于编程的安全提供中固有的错误和不一致性风险。虽然不是万能药,但这种双向安全模型在许多 Web 服务集成场景中都可能是有益的。
Layer 7 的 SecureSpan Bridge 是这种全功能 XML VPN 的一个例子。SecureSpan Bridge 可部署在客户端应用程序上或其前面,能够无缝地实现利用 Web 服务作为集成框架的联合 Web 服务、B2B 和跨域门户项目。
整合
Web 服务安全没有放之四海而皆准的解决方案。总会有一些情况,Web 服务本身中编程的访问列表就足够了。其他时候,SSL 可能足以满足隐私和完整性要求。然而,在需要细粒度消息处理和审计的场景中,像 XML 防火墙和 XML VPN 这样的专用 XML 和 Web 服务安全技术将是必需的。
在这些情况下,最终用户应该寻找能够同时提供用于防御 Web 服务访问的 XML 防火墙,以及用于在 Web 服务集成中实现安全的、可选的客户端协调组件的供应商。这将确保 XML Web 服务集成真正具有灵活性和互操作性,同时又不牺牲关键的安全或成本要求。