2.2 基于XML的服务间通信易受到监听和窃取
由于XML的纯文本的本质,未经保护的XML在互联网传输过程中很容易被监听和窃取。为了保障基于XML的通信安全,我们需要从传输层和消息层两个层面进行保护。通过传输安全,可以保证只允许授权用户可以访问基于XML的Web服务,目前可扩展访问控制标记语言(Extensible Access Control Markup Language,XACML)和Web服务策略(WS-Policy)是专门用来解决这个问题的两个标准;通过消息安全,可以保证Web服务环境中交换的XML消息的完整性和保密性,Web服务安全(Web Service Security,WSS)和安全声明标记语言(Security Assertion Markup Language,SAML)则用来解决这方面的问题。
目前主要的XML安全标准包括:XML加密、XML签名语法和处理、数字签名和XML密钥管理规范(XML Key Management Specification,XKMS)等。值得一提的是,现有的XML安全标准已经可以实现对XML文档进行有选择的签名处理,而这在以前是不可能做到的,要么整个文档被签名,要么根本不签名。
下面我将重点介绍XML加密和XML签名。它们已经由W3C发布为标准,可以用来把安全加入到基于XML的数据中去。
XML加密是用来把原始的XML数据通过密码依次加密,从而让数据能够在请求者和服务端之间以一种模糊的方式传输。密码仅由请求者和服务端掌握,这就能保证即使是在传输的过程中有数据被截取,窃取者也只能看到一堆毫无意义的字符串,从而防止敏感信息泄露。
另一方面,XML签名则用来防止XML文档的被非法篡改。通过使用XML签名,一个服务供应商可以提供给任何的服务消费者——以一种确定的方式来检测XML的有效负载是否相对于它原来的方式或者原来的状态发生了改变。
需要特别指出的是,XML加密和XML签名适用于任何的XML类型的文档。意识到这一点是很重要的,因为它们不仅仅可以用来保护服务交互的有效负载的交换,同样的它们也可以用来保护类似WSDL这种契约,这些文档也是基于XML的,并且也是SOA中的一个重要组成部分。
同样,市场上也出现了专门解决这类问题的产品,称为XML安全网关。类似传统的防火墙,企业可以把它部署在网络边界上,从而对所有进出的XML数据进行保护。XML安全网关遵循包括XML和WS-Security在内的行业标准,对XML数据进行验证、加密、签名以及认证,来提供安全的基于XML的Web服务通信。此外,它还可提供防火墙功能和访问控制功能。有些产品还可以与网络管理软件集成,帮助企业降低IT管理成本,并解决依从性需求。
2.3 缺乏良好的编程模型严重威胁企业安全
对于任何应用程序来说,保护信息访问的安全都是最基本的要求。由于按 SOA 原则而构造实现的服务、应用程序以及跨组织操作所具有的松耦合特性,这种环境往往更加容易暴露现有安全实现的弱点或局限性,因此缺乏良好的编程模型将严重威胁Web服务的安全。
仅采用边界防御(如防火墙和路由器)来保护企业信息安全是不够的,因为企业必须能够随着其合作伙伴、客户和雇员之间的关系发展而建立和断绝动态的信任关系。因此,企业需要灵活的、可自定义的基础设施,以适应新要求和规章制度。要提供这种灵活性,不应简单的指望将策略生搬硬套到基础设施中,应该在服务的开发过程中建立和遵循由策略驱动的编程模型。SOA 编程模型可以确保每个服务调用都符合对请求者和服务端点均有效的安全策略。
从安全的角度来看,编程模型负责对于谁负责实现安全策略(如基础设施或应用程序)以及需要让请求者得到此信息的哪一部分等做出决策。另一方面要考虑的是调用服务的变数。服务的消费者是否通过可在订阅期间定制的选择得到了灵活性。最后,在实现安全解决方案时,还应该考虑安全工程——用于构建安全应用程序的工程方法。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
信息化建设的关键:数据交换与服务共享
信息化的高速发展,使人们明显体会到它带给各行业的高效与便利。然而在信息化的普及建设过程中,不同时期、不同厂商、不同技术研发的软件和应用……
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。