基于SOA架构的业务安全性研究

日期: 2012-09-28 来源:TechTarget中国 英文

  SOA(Service-Oriented Architecture,面向服务的体系结构)是一个组件模型,它将应用程序的不同功能单元通过这些单元之间定义良好的接口和契约联系起来。这些接口独立于实现服务的硬件平台、操作系统和编程语言,使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。和以往联网的分布式的系统不同,SOA 与平台相独立,其通信和特定的平台和技术没有必然的联系。

  在企业中,将日常的各种业务应用划分为若干服务,然后通过SOA,用户可以构建、部署和整合这些服务,且无须依赖应用程序及其运行平台,从而提高业务流程的灵活性。例如,一个电子商务网站建立SOA架构后能够使自己与供应商、分销商、信用卡公司和消费者无缝地集成在一起。在一个客户下订单之后,系统将自动编排大量的信息,而不需要在每一次登录时都询问用户或者系统。对于企业来说,这种业务灵活性可以大大加快开发新业务的速度,并降低总体拥有成本,同时改善对及时、准确性业务信息的访问。

  不过,SOA在带给企业灵活性,便捷性的同时,对于现实的要求也是很高的。因为整个SOA 应用架构相当于企业的信息平台,而企业本身对于平台本身的安全性、可靠性以及相关的服务质量都有相当高的要求。为了确保SOA 能够切实给企业带来效益,企业必须通盘考虑这种新架构的运行平台。因为,SOA 在提供价值链上企业之间信息共享和业务流程自动化的同时,也给业务信息安全带来了负面影响,且存在安全隐患。

  SOA架构的负面影响

  SOA架构是一种松耦合服务模式,通过标准化的接口来联系各种形式的服务,无论服务置于何地,均能通过一种便捷而统一的方式实现相关功能,这对信息资源的二次利用和服务模式的二次重整具有极大的作用。但是,如果没有适当的安全措施,它也会把这个服务平台的钥匙交给黑客。另外,SOA安全标准的不成熟加剧了互操作性方面的难题。如果想严加保护涉及多个企业的庞大Web服务网络,每个企业必须就采用的技术、甚至安全策略达成共识。

  此外,企业中使用Web服务进行相互操作的系统对于内、外部攻击的防御能力越来越差。当这些系统使用的Web服务由供应商和业务伙伴等外部机构提供时,SOA和Web服务的部署工作将变得更加复杂,不得不谨慎部署最新的安全解决方案,如应用级防火墙、IDP、SSL VPN 和SSL卸载产品等,以便为企业中的SOA环境提供安全保护。

  二 基于SOA架构的业务安全隐患

  SOA虽然在某些方面使安全简化,但是在其他方面却使安全问题变得复杂。由于在基础设施中使用了XML一类的数据结构通用协议、IP 通信协议和通用操作系统,SOA 有助于简化某些安全决策;但在模块程序中,由于许多移动部件作为最终应用要集成在一起,使得安全决策变得复杂。

  2.1 企业机构中缺乏对安全风险严重性的认识和知识

  企业机构中的人员普遍认为被攻击的几率极低,不可能发生在他们身上,因此对安全风险缺乏认识。没有安全意识,则导致对保障系统信息安全的知识不重视。事实上,安全应该作为一套核心的服务实施,允许集中管理和维护安全。此外,管理层必须理解这个风险并且提供适当的支持和资金以便有效地保证企业的安全。

  2.2 信息泄露的问题

  以一个电子商务网站为例,一个订单能够引发一个包含提供给一个供应商、分销商和信用卡公司的XML数据,由于每一方都有不同的安全要求,比如只有信用卡公司有权访问信用卡信息(信用卡信息应该按照PCI的要求加密),供应商需要知道什么产品及产品在目录的什么地方,分销商需要知道有关产品和发货地址的信息。如果不能保证XML传送的安全性,将泄漏交易过程中的敏感信息。

  2.3 欺诈问题

  欺诈主要是指未授权的用户访问授权用户被授权的资源,并以授权用户的名义进行交易,使得真正的授权用户的利益受到损失和破坏。在SOA系统中,强调设备与设备的交互,而大多数IT安全性都是基于人与设备的交互。传统的安全防御对象主要是针对人,而SOA更多地强调了设备与设备的交互,即所谓服务的互操作性,那么如何应对来自合作伙伴或第三方服务交互请求的欺诈威胁(因为大多数情况下,这些请求被人恶意利用和操纵),将是SOA安全防御的一项重要课题。身份验证和授权在这个环境中变得更加富于挑战性。在未受保护的SOA中,想要阻止Web服务的未授权使用实际上是不可能的。未授权用户可以非常轻松地访问Web服务,而Web服务往往不具备跟踪谁在使用它们或者谁被允许使用它们的固有毛病。

  2.4 其它方面的安全问题

  SOA整套架构在应用层与表示层的隔离上做得不完美,这会导致在未来阶段新的代理程序很容易寻找和利用SOA的安全漏洞,僵尸网络工具准确找到应用系统中安全漏洞的概率比较大,准确性也比较高。

  总之,SOA的应用还处于起始阶段,还存在许多的安全隐患。

  三 基于SOA架构的业务安全对策

  SOA从本质上说是一种由元数据和XML一类的标准数据结构协议生成的应用程序,从而SOA所面临的安全问题与应用其他任何分布式系统时所遇到的安全问题是相同的,即如何确保机密性(Confidentiality)、完整性(Integrity)和可用性(Availability)。

  3.1 提高认识和明确责任感

  针对企业机构中缺乏对安全风险严重性的认识和知识的安全隐患,有两件事情能够缓解这种风险。第一是提高认识,通常采用培训安全知识的方式。不仅仅对开发人员进行培训,对于管理层、架构师、审计师、测试人员和其他人等都进行针对他们需求的培训。第二,安全是每一个人的责任,不仅仅是企业架构师和安全架构师的责任。机构要全力保证企业的安全。建议企业雇用有经验的SOA 安全人员或者雇用一个安全顾问把这个知识传授给机构内部的安全部门。

  3.2 采用加密和认证等技术防止信息泄露

  针对信息泄露的问题,需要进行多层次防范措施。采用加密和认证技术,在公共网络上建立安全专用隧道的网络,也就是常说的VPN;其次,网络服务的访问大多数通过HTTP协议,HTTP上实现的安全套接字层 (Security Socket Layer,SSL)也是成熟的安全通讯方式;但是,在上面的电子商务网站例子中,同样的信息要同时发给三个不同的公司,并且不需要任何一家公司登录,所以仅使用SSL是不够的。可以结合使用第三种即针对XML处理专门制定的消息级别的XML加密和处理标准,它把消息转换为一段经过加密的XML,消息仍然是XML格式的,但是使用加密算法将内容隐藏起来了。另外,保证XML传送安全在SOA安全中也非常重要。XML传送的安全包括两个部分:基础设施安全和加密。为了保证基础设施安全,硬件防火墙、安全设备都可以用来保护网络内部和外部的通信,通常这些设备都是SOA系统所必备的。但是,前提是需要对这些硬件防火墙和安全设备进行正确的配置以便保证XML信息在入口和网络界限之间能正常工作。这些XML信息包括数字签名的或者拥有其它安全标记的信息。而加密则是对SOA系统使用的XML文件进行加密。XML文件数字签名和加密有两个World Wide Web Consortium 规范:XML-加密和XML-签名。对于在HTTP连接之上发送的XML文件,则应使用SSL保护文件传送的安全。

  3.3 采用身份认证和消息的数字签名应对欺诈问题

  针对欺诈问题,可以使用身份认证和消息的数字签名来解决。身份认证保证授权的用户能够访问被授权的资源。由于在企业级SOA中身份认证不局限于单一安全控制域,而安全断言标记语言(Security Assertion Markup Language,SAML)标准提供了不同安全域之间认证的交互,以一种可为用户调用的Web 服务所接受的方式表达用户的真实性,并且,SAML基于XML的标准,为以标准方式描述安全性信息提供了一个框架。通过一个标准的认证过程,多方可以达成一致,使用一组给定的标准来对一组指定的用户进行身份验证,参加这个过程的安全域组成一个身份联邦(Identity Federation)。接下来,SOAP消息被传递给目的Web服务,并附加上一个SAML断言。但是需要注意SAML断言不依赖于联邦身份验证过程。

  数字签名用于保证消息真正创建者身份的真实性以及消息在发送系统到接受系统之间传输时未被篡改。数字签名是对身份和消息内容进行惟一的处理得到的一个基于密钥的非常大的数,是一种消息级的安全措施,它结合了数字证书密钥和加密等安全方法。如果消息被改变了,那么惟一的数字签名将不再与密钥和用于创建密钥的原始消息相匹配。为此,数字签名提供了个不可否认性,例如,数字签名可以证明你的供应商收到的电子订单确实是由你发出而且在传输中没有被篡改过。针对企业级SOA,可以使用专门制定的处理XML消息级别的XML数字签名标准。

  四 总结

  虽然关于SOA技术的标准已经有很多了,专门针对安全问题而制定的标准却屈指可数。OASIS技术委员会制定了一系列技术标准,WS-Security是迄今为止得到认可的安全性标准集合的总称,包括WS-Security(描述如何将XML加密和XML签名应用于SOAP文档或信息)、WS-Trust(应用WS-Security标准传输密码、数字证书以及SAML断言等安全标识)、WS-SecurityPolicy(对哪些人被允许访问某个服务以及访问方式做出规定,并对认证方式的类型和/或所需要的加密等级做出限制)、WS-Federation(根据WS-SecurityPolicy 中描述的服务规则,应用WS-Trust 中提到的被传输的安全标识,通过Web服务的认证)、WS-SecureConversation( 按照WS-Security标准,实施WS-SecurityPolicy中所描述的策略的方法)等。现在,SOA领域的“物质基础”已尘埃落定,而“上层建筑”仍在建立之中。

  需要注意的是,就像在IT的其他领域中一样,若想保障基于SOA架构业务的安全性,就需要有大量开销。因为在到达目的地之前,每条消息都必须经过好几个地方,另外证书文件可能会很大,从而给网络造成很大的负担,而且整个过程往往会降低性能。但遗憾的是,为了安全这些开销和负担是必不可少的。

  此外,如果想保护牵涉多家企业的庞大Web服务网络,每家企业必须就采用的技术、甚至安全策略达成共识,因为如果合作伙伴的员工使用弱密码来访问系统,那么即使要求本企业的员工使用生物特征识别技术和物理令牌也是毫无用处的。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐