在面向服务的体系架构(SOA)中,服务的安全对于保护企业的核心资产具有重要的作用。本系列文章将通过对策略驱动服务安全治理的介绍,展示如何在 SOA 治理的框架中实现服务安全问题与业务问题的解耦,如何处理 SOA 安全中的加解密、数字签名、身份认证和服务访问授权等问题,以及如何把 SOA 安全的灵活性与高性能统一在一个解决方案中。本文是系列文章的第 1 部分,将针对 SOA 的安全策略作一个概述。
服务安全设计以及常见的问题
企业 IT 应用的典型环境已经是一个由网络、服务器、路由设备以及中介处理设施(比如 ESB)构建成的复杂的应用环境。由于这样的复杂网络环境面临着外部和内部的各种攻击和欺诈,因此如何在不安全的网络环境中保护敏感信息得到了广泛的重视。法律规定方面,企业有义务保护其客户的隐私信息;自身信息安全的方面,一个企业要保证其敏感信息的保密性、完整性和可溯源性等等。
难以监控和验证当前所有应用安全是否同时满足某一规程;
难以满足不断修订或增加的规程(如 ITAR 规程)需要细粒度访问控制的需求,如除了基于角色的访问控制,还需要基于规则和基于属性的访问控制;
难以满足不断增长的安全多样化需求,包括个性化、目录、端口以及数据级别的访问控制;
在各个系统中分别开发应用安全会重复增加费用。
企业对应用安全的整合是企业 IT 应用整合的重要组成部分,用 SOA 安全来整合企业应用安全可以给企业带来一致、松耦合和易重用的安全。SOA 安全通过集中的、基于标准的安全服务来实现认证、授权和审计(AAA,Authentication, Authorization and Audit),可以实现一致地管理企业范围内的基于角色的授权、基于内容和基于规则的访问控制和服务访问风险的控制等策略。
回页首
SOA 安全概述
SOA 作为构建 IT 系统的一种新方式,它能够通过重用现有 IT 资产来构建新的业务应用,并且具有灵活改变的能力以支持未来业务的发展。然而在 SOA 中,服务之间跨域操作的松耦合性给安全带来了不少挑战。SOA 架构的目标是实现业务的敏捷性,如何构建易管易控、高度重用而又灵活应变的应用安全来是实现这个目标的一个难点。在 SOA 环境中,主要的安全需求有以下几项:
把身份认证从服务中解耦出来;
以事务形式实时地无缝地连接安全和应用系统;
当服务被编排成应用时,每个服务都应当执行与应用安全相对应的恰当的安全控制;
把使用不同技术实现的服务和异构的系统中的身份安全信息进行统一管理;
保护事务中的敏感数据信息而不影响其他的服务;
能够和不断增长的企业、行业以及法律法规的各种约束保持一致性。
为此 IBM 提出了 SOA 安全参考模型,如图 2 所示。
图 2.SOA 安全参考模型
这个参考模型是针对企业域而非单一应用系统,其中:
业务安全服务(Business Security Services):管理对约束满足性、报表、身份认证、访问管理、数据保护、隐私、可靠性管理、不可否认性,以及系统安全和网络安全的要求;
IT 安全服务(IT Security Services):作为 SOA 基础架构的组成部分,把安全本身作为服务提供给应用服务(即 Security as a Service),使之能够实现身份认证、访问授权、保密性、完整性和审计,它支撑着业务安全服务;
安全使能器(Security Enablers):主要是加解密算法、目录技术和密匙机制等支持 IT 安全服务完成业务功能的各种技术;
安全策略管理(Security Policy Management):作为策略管理(Policy Management)的一部分执行撰写、转换、实施和监控安全策略,如:撰写对服务访问者的认证和授权的策略、依据可靠模型在不同服务访问之间传递安全信息、审计重要事件和保护敏感信息等等。从功能上来说,安全策略管理是 SOA 安全的核心部分之一;
策略管理(Policy Management):提供基于策略的管理平台,以达到 IT 架构和业务的一致性要求;
治理和风险管理(Governance and Risk Management):提供了一套机制在比较大的 SOA 环境中来实施策略。其中治理(Governance)帮助客户在整个企业范围内更好地管理 SOA,风险管理(Risk Management)评估 SOA 环境中的各种风险并制定管理这些风险的战略。
SOA 安全参考模型实际上是 IBM 的 SOA 的参考架构中 IT 服务管理的一部分。
回页首
策略驱动的服务安全
前面已经提到安全策略管理是 SOA 安全的核心部分之一。在 SOA 治理的支撑下,策略驱动的服务安全解决方案,使业务需求产生出来的目标在操作层面上能够得到很好的贯彻和执行。总的说来,策略驱动的服务安全能够提供:
控制的可见性:策略是控制逻辑的具体表现,而不会像硬编码那样分散在系统的各个角落难以可视化;
高度的灵活性:能够快速响应市场竞争或者企业自身、行业内部规程和法规的变化;
能够做到一致性管理,利用策略配置的工具能够做到策略的一致性管理,并很少发生配置错误;
能够充分保证服务和应用都是满足控制要求的,特别是对于外部的访问者;
能够降低花销和节省时间,不需要设计、编写、测试、部署和维护硬编码。
策略驱动的服务安全解决方案是策略驱动的服务治理的一部分。用策略驱动的方式来进行服务安全管理时,应该参考策略管理生命周期(Policy Management Life Cycle),如下图所示。
图 3. 策略管理生命周期
策略管理生命周期是一个闭环的四段方法论。
策略撰写(Author),依据业务和技术需求识别、设计、编写和巩固策略,并识别出有可能被策略影响到的利益相关者;
策略转换(Transform),把撰写的策略(有可能还是业务需求的形式)转化成可以执行的形式,并把它部署到策略实施点(Policy Enforcement Point, PEP);
策略实施(Enforce),在运行的环境中实施已经部署的策略;
策略监控(Monitor),测量、分析和报告策略的运行数据,检查策略的满足性要求,并把监控的结果作为输入进入下一个回环的撰写阶段的输入,以便进一步完善策略满足新的业务需求。
在策略驱动的服务治理中,策略被分为三个层面:
在后续的文章中,我们将陆续介绍在应用场景中如何集成上述的这些产品、运用消息安全策略和访问授权策略实现 SOA 安全。
回页首
总结
在 SOA 整合的过程中 SOA 安全得到越来越多的关注,策略驱动的服务安全是 SOA 安全的最佳实践,策略驱动的 SOA 服务安全能够安全与业务的解耦、细粒度的访问控制和高性能的实施。IBM 提供了丰富而强大的 SOA 产品来支持策略驱动的服务安全,最终实现正规化、标准化、自动化、可追踪和高重用的 SOA 安全。
本文概述了在 SOA 的架构下使用策略来帮助实现服务的基本概念,接下来的下一篇我们结合一个具体的场景介绍如何使用 TSPM (Tivoli Security Policy Manager) 和 DataPower 以及 WSRR(WebSphere Service Repository and Registry)实现消息内容的保护。
在面向服务的体系架构(SOA)中,服务的安全对于保护企业的核心资产具有重要的作用。本系列文章将通过对策略驱动服务安全治理的介绍,展示如何在 SOA 治理的框架中实现服务安全问题与业务问题的解耦,如何处理 SOA 安全中的加解密、数字签名、身份认证和服务访问授权等问题,以及如何把 SOA 安全的灵活性与高性能统一在一个解决方案中。本文是系列文章的第 1 部分,将针对 SOA 的安全策略作一个概述。
服务安全设计以及常见的问题
企业 IT 应用的典型环境已经是一个由网络、服务器、路由设备以及中介处理设施(比如 ESB)构建成的复杂的应用环境。由于这样的复杂网络环境面临着外部和内部的各种攻击和欺诈,因此如何在不安全的网络环境中保护敏感信息得到了广泛的重视。法律规定方面,企业有义务保护其客户的隐私信息;自身信息安全的方面,一个企业要保证其敏感信息的保密性、完整性和可溯源性等等。
难以监控和验证当前所有应用安全是否同时满足某一规程;
难以满足不断修订或增加的规程(如 ITAR 规程)需要细粒度访问控制的需求,如除了基于角色的访问控制,还需要基于规则和基于属性的访问控制;
难以满足不断增长的安全多样化需求,包括个性化、目录、端口以及数据级别的访问控制;
在各个系统中分别开发应用安全会重复增加费用。
企业对应用安全的整合是企业 IT 应用整合的重要组成部分,用 SOA 安全来整合企业应用安全可以给企业带来一致、松耦合和易重用的安全。SOA 安全通过集中的、基于标准的安全服务来实现认证、授权和审计(AAA,Authentication, Authorization and Audit),可以实现一致地管理企业范围内的基于角色的授权、基于内容和基于规则的访问控制和服务访问风险的控制等策略。
回页首
SOA 安全概述
SOA 作为构建 IT 系统的一种新方式,它能够通过重用现有 IT 资产来构建新的业务应用,并且具有灵活改变的能力以支持未来业务的发展。然而在 SOA 中,服务之间跨域操作的松耦合性给安全带来了不少挑战。SOA 架构的目标是实现业务的敏捷性,如何构建易管易控、高度重用而又灵活应变的应用安全来是实现这个目标的一个难点。在 SOA 环境中,主要的安全需求有以下几项:
把身份认证从服务中解耦出来;
以事务形式实时地无缝地连接安全和应用系统;
当服务被编排成应用时,每个服务都应当执行与应用安全相对应的恰当的安全控制;
把使用不同技术实现的服务和异构的系统中的身份安全信息进行统一管理;
保护事务中的敏感数据信息而不影响其他的服务;
能够和不断增长的企业、行业以及法律法规的各种约束保持一致性。
为此 IBM 提出了 SOA 安全参考模型,如图 2 所示。
图 2.SOA 安全参考模型
这个参考模型是针对企业域而非单一应用系统,其中:
业务安全服务(Business Security Services):管理对约束满足性、报表、身份认证、访问管理、数据保护、隐私、可靠性管理、不可否认性,以及系统安全和网络安全的要求;
IT 安全服务(IT Security Services):作为 SOA 基础架构的组成部分,把安全本身作为服务提供给应用服务(即 Security as a Service),使之能够实现身份认证、访问授权、保密性、完整性和审计,它支撑着业务安全服务;
安全使能器(Security Enablers):主要是加解密算法、目录技术和密匙机制等支持 IT 安全服务完成业务功能的各种技术;
安全策略管理(Security Policy Management):作为策略管理(Policy Management)的一部分执行撰写、转换、实施和监控安全策略,如:撰写对服务访问者的认证和授权的策略、依据可靠模型在不同服务访问之间传递安全信息、审计重要事件和保护敏感信息等等。从功能上来说,安全策略管理是 SOA 安全的核心部分之一;
策略管理(Policy Management):提供基于策略的管理平台,以达到 IT 架构和业务的一致性要求;
治理和风险管理(Governance and Risk Management):提供了一套机制在比较大的 SOA 环境中来实施策略。其中治理(Governance)帮助客户在整个企业范围内更好地管理 SOA,风险管理(Risk Management)评估 SOA 环境中的各种风险并制定管理这些风险的战略。
SOA 安全参考模型实际上是 IBM 的 SOA 的参考架构中 IT 服务管理的一部分。
回页首
策略驱动的服务安全
前面已经提到安全策略管理是 SOA 安全的核心部分之一。在 SOA 治理的支撑下,策略驱动的服务安全解决方案,使业务需求产生出来的目标在操作层面上能够得到很好的贯彻和执行。总的说来,策略驱动的服务安全能够提供:
控制的可见性:策略是控制逻辑的具体表现,而不会像硬编码那样分散在系统的各个角落难以可视化;
高度的灵活性:能够快速响应市场竞争或者企业自身、行业内部规程和法规的变化;
能够做到一致性管理,利用策略配置的工具能够做到策略的一致性管理,并很少发生配置错误;
能够充分保证服务和应用都是满足控制要求的,特别是对于外部的访问者;
能够降低花销和节省时间,不需要设计、编写、测试、部署和维护硬编码。
策略驱动的服务安全解决方案是策略驱动的服务治理的一部分。用策略驱动的方式来进行服务安全管理时,应该参考策略管理生命周期(Policy Management Life Cycle),如下图所示。
图 3. 策略管理生命周期
策略管理生命周期是一个闭环的四段方法论。
策略撰写(Author),依据业务和技术需求识别、设计、编写和巩固策略,并识别出有可能被策略影响到的利益相关者;
策略转换(Transform),把撰写的策略(有可能还是业务需求的形式)转化成可以执行的形式,并把它部署到策略实施点(Policy Enforcement Point, PEP);
策略实施(Enforce),在运行的环境中实施已经部署的策略;
策略监控(Monitor),测量、分析和报告策略的运行数据,检查策略的满足性要求,并把监控的结果作为输入进入下一个回环的撰写阶段的输入,以便进一步完善策略满足新的业务需求。
在策略驱动的服务治理中,策略被分为三个层面:
在后续的文章中,我们将陆续介绍在应用场景中如何集成上述的这些产品、运用消息安全策略和访问授权策略实现 SOA 安全。
回页首
总结
在 SOA 整合的过程中 SOA 安全得到越来越多的关注,策略驱动的服务安全是 SOA 安全的最佳实践,策略驱动的 SOA 服务安全能够安全与业务的解耦、细粒度的访问控制和高性能的实施。IBM 提供了丰富而强大的 SOA 产品来支持策略驱动的服务安全,最终实现正规化、标准化、自动化、可追踪和高重用的 SOA 安全。
本文概述了在 SOA 的架构下使用策略来帮助实现服务的基本概念,接下来的下一篇我们结合一个具体的场景介绍如何使用 TSPM (Tivoli Security Policy Manager) 和 DataPower 以及 WSRR(WebSphere Service Repository and Registry)实现消息内容的保护。