|
SOA安全:允许的安全技术 接驳云计算在本文中,我们将讨论如何在SOA中部署安全措施。SOA现在已经结合了原先的 SOAP/REST/UDDI、REST服务以及云计算。从专业的安全角度来看,SOA必须受到保护。 这个问题已经解决了吗? 在这点上,很多读者可能会认为“这和传统的网络应用软件并没有实质不同,因此为什么要对它单独进行安全保障?”。毕竟,在Web 2.0 环境中,用到的是网络浏览器和网络服务器,涉及的是一个用户。当数据在网络浏览器和网络服务器之间传输时,对SQL注入或者交叉脚本的攻击迹象进行数据扫描就可以了。当XML在网络上,你就必须对XML拒绝服务或者XPath注入等攻击也进行扫描。另外,保证译码安全也同样重要。浏览器上的“富应用软件” 承担着增强安全译码的职责。如果攻击者将JavaScript脚本插入递归下行至浏览器的数据,那么交叉脚本也是可能的。因为许多Web 2.0的脚本交叉都取决于服务于客户的JavaScript。带病毒的JavaScript传播的可能性就会变为现实。因此也必须进行侦测和隔离。 Freemium模式和数据利用风险 所谓的Freemium网络服务指的是免费提供的基础服务,如果有特殊需求或者增强型服务再另行收取额外费用。Freemium这个词本身是两种商业模式,免费和收费合二为一的混合词。 允许某些在SOA中的服务在Freemium模式下运行是很很吸引眼球的,因为它提供了一种付费商业模式的途径。不过这种模式的实用性更加复杂。 Freemium模式要预先设定SOA安全框架,这个框架能够侦测服务的过度使用,让用户对过度使用的服务进行付费。使用服务必须通过验证以便系统能侦测到某个特别用户过度使用了服务,从而要求用户进行付费。通常Freemium模式是使用研发人员代号来实现的。这些代号是嵌入在网络服务符号库中的,能传递给所提供的服务。举例来说,用户可以使用搜索服务来寻找特定的点,但是他们无法在不被察觉的情况下进行数据搜索,系统会要求他们进行付费。 当用户在SOA中实行Freemium服务模式时,企业可以选择编译自定义代码来执行,或者使用非定制的产品来实现,诸如XML网关。XML网关的优势是在无需改变实际代码的前提下就能更改模式中的参数。XML网关也能对我们前文所讨论的攻击进行扫描,诸如病毒代码注入。 身份验证和标准 了解是谁在使用SOA中的服务是很重要的,使用这些信息进行访问控制和通过审计跟踪维护信息安全也是如此。对服务的访问控制服务也要利用各种不同的标准,某些标准是X.509证书类型的,某些是SAML和网络服务安全这样的新标准。重要的是我们不要被这些标准所蒙蔽,特别是当他们以一种复杂的方式组合在一起时。 密码,X.509证书和WS-Security 密码的使用已经由来已久。目前在SOA安全中依然应用广泛。在很多情况下只是HTTP验证这种简单的问题,可以通过SSL传递出去以便密码不会被泄露。事实上即使是使用了数字签名验证,密码的泄露也很难完全避免。因此,为了阻隔特定的捕捉-重放攻击,SSL还应该别使用。尽管通过SSL进行HTTP 验证是一项古老的技术,但它在SOA的点对点身份验证中依然应用广泛。 X.509证书被应用于SSL验证中,网络服务可以向客户证明它的身份,或者在双向SSL中,客户还能向服务证明自己的身份。在这种情况下身份验证是没有定形的,因为网络服务交叉性经常会涉及应用程序与应用程序的对话。由此这里的验证也是对应用程序的验证。这些情况都是使用X.509证书,信任也是基于X.509证书的发行者(即授权机构,简称CA)。 和SSL一样,X.509证书经常会用于数字签名。XML签名是定义XML数据如何使用与X.509证书吻合的私人密钥来进行数字签名的标准,这样任何持有X.509证书签名方的用户都可以对签名进行验证。 XML 加密也是一项定义XML数据如何加密的标准。或许你会问“在加密XML数据和加密其他类型数据之间有什么不同?”,答案是XML数据可以有选择性的进行加密,比如说有选择性的对医疗记录中患者姓名进行加密。由于SOA中的信息多数都是XML的(REST和用于Web 2.0的JSON除外),XML加密在隐私保护方面非常有用。 Kerberos也是一项成熟的技术,能继续应用在SOA安全中。特别是Kerberos经常会用于Windows环境中,因为它也加强了 Windows网络中的身份验证和单一签名安全。 所有这些已经存在的安全技术都会继续应用在SOA之中。 WS-Security 网络服务安全是在2004年才实施标准化的一项新兴技术,它是在先前技术的基础上建立起来的。它是定义XML加密和XML签名如何应用到SOAP的标准,这样SOAP信息就可以被加密或者签名。另外,它还定义了密码和X.509证书在SOAP信息中的位置,SOAP如何与Kerberos共同运作。使用网络服务安全标准可是实现不同应用程序之间的协同工作。 Suns Glassfish和微软.NET这样的平台都能与网络服务安全标准相结合。这些技术能处理签名XML(使用网络服务安全标准的XML签名),身份验证 (使用密码,Kerberos或证书)和加密(使用网络服务安全标准的XML加密)。 XML网关 XML网关能通过提供网络上的安全处理和硬件加速来保障SOA的安全。XML网关将安全协议应用到需要保护的SOA服务。它代表的是位于真实网络服务前端的虚拟服务。这些虚拟服务可以被提速,还可以包括在真实SO服务之前发生的过渡服务。举例来说,XML网关可以呈现在真实SOAP网络服务前端的 REST界面。用这种方法,XML网关通常能提供协议调解,信息过渡,硬件加速以及安全。 SOA安全的未来以及与云计算的结合运用 根据内部应用软件到网络应用软件的概念进行定义,SOA目前正在寻找与云计算的连接。由亚马逊在线,Force.com和谷歌等提供的服务都是这种全球性SOA。他们能提供多种网络服务,通常都可以通过与应用软件结合的REST和AJAX界面来实现访问。 目前占据主导地位的方式是混合模式,即在本地SOA上的服务和云上的服务混合使用。举例来说,本地应用软件可能已经将销售数据从数据库中导出,然后将其放在TIBCO Rendezvous查询中。Force.com中召回的数据在放入Rendezvous查询之前可能会被用于富数据。另一个例子是本地应用软件使用亚马逊S3服务来进行存储。 在连接到云上的本地SOA的混合模式中,很重要的一点是确保没有私人数据被传输到云上。也可以通过对传输到云上的数据进行选择性加密来实现安全保障。另外,网络中断或者云服务故障不会经常影响到本地应用软件也很重要。用户可以使用XML网关作为本地“Cloud Broker”来控制从本地SOA到云上的连接。 责编:刘沙 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
推荐博客 |
|