安全技巧:SOA的安全及防御之道

      面向服务的架构(SOA)是一种松耦合服务模式,通过标准化的接口来联系各种形式的服务,这对信息资源的二次利用和服务模式的二次重整具有极大的作用。但是,SOA的应用目前尚处于起始阶段,还存在许多安全问题有待解决。

  SOA的安全问题

  SOA是通过XML/SOAP等几种标准化技术来实现的。但是,SOA的安全存在以下几个难点。

  1. 不同信任域的信任关系如何转移和认同

  业务流程可能由不同厂商的基于异构平台的多种服务组合而成,每个服务都具有各自独立的安全域。这些安全域可能由企业的不同部门负责管理和维护,这要求必须在SOA的范围内建立统一的信任体系,然而实施起来难度极大。

   2. 安全标准不统一

  SOA具备来自异构系统的多样性特点,要求建立一个统一的安全基础设施和标准。但是目前情况是: 不同的应用系统有不同的认证、授权模式,协调和统一难度大。

   3. 如何应对第三方服务交互请求带来的威胁

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

   4. 其他安全问题

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

  应对SOA安全性问题的相关标准

  为了应对上述问题,OASIS制定了一系列技术标准,这些标准包括:

  WS-Security。描述如何将XML加密和XML签名应用于SOAP文档或信息。

  WS-SecurityPolicy。 对哪些人被允许访问某个服务以及访问方式做出规定,并对认证方式的类型和/或所需要的加密等级做出限制。这是Web服务策略(WS-Policy)的子集,以更为通用的方式对服务的能力和限制进行描述。此标准由IBM和微软公司共同开发,并于2007年7月正式确立。

  WS-SecureConversation。 是按照WS-Security标准,实施WS-SecurityPolicy中所描述的策略的方法。此标准于2007年3月通过审批,Actional、BEA 、思科、CA公司、利基网络、Oracle、Reactivity、RSA等厂商都表示支持此标准。

  WS-Trust。应用WS-Security标准传输密码、数字证书以及安全性断言标记语言(SAML)等安全标识。XML密钥管理规范 (XKMS)和SAML有部分相同之处。

  WS-Federation。根据WS-SecurityPolicy中描述的服务规则,应用WS-Trust中提到的被传输的安全标识,通过Web服务的认证。相较SAML,主要优势在于Windows支持这一标准。

  这些标准中需重点关注WS-Security。