论文部分内容阅读
摘 要:為提高面向服务架构在现代大型信息系统应用的安全性,该文从面向服务架构的设计思路、XML的设计目标入手,对XML签名和XML加密的缺陷进行了分析。
关键词:面向服务架构(SOA) 安全 扩展标记语言(XML)
中图分类号:TP319 文献标识码:A 文章编号:1674-098X(2014)04(a)-0034-01
SOA作为一个全新的网络架构和系统组织方法,和其它所有的新兴技术一样,在提供便利的同时也面临许多挑战,最大的挑战表现在安全领域。一是由于架构具有刻意的分散性即无中心,数据会实时向各方传输,因此需要受到全时域、全空域的保护。二是为了提供随遇接入的服务,SOA提出单点登录(Single Sign On,SS0)的概念,这种理想化的设计对基于信息基础网络的访问控制提出了极高的要求。三是在SOA架构中,所有安全功能都需要通过底层的XML语言来实现,XML并不是一个具备控制与鉴别能力的语言,这就给上层的应用安全带来诸多问题。因此,深入分析SOA安全问题产生的原因,找到解决脆弱性的办法,是我们必须解决的关键问题。
1 设计思路分析
当今公众软件系统存在的基本问题是许多现行的安全协议当初并非是出于整体安全和互操作而设计的。这些协议根据需要产生,并随着时间不断演变。SOA最早也起源于因特网,目前代表着互操作性的顶峰,在这一架构中网络资源均作为分离的、松散耦合的、中立的服务供用户调用。这些服务对于没有基础平台或应用工具的网络用户都是可以获得的。由于这些服务具有独立的、标准化的特性,因此在系统各组件之间、甚至是受私有证书保护的产品之间,都具有很强的互操作性。即便服务的功能与实现发生了显著变化,但是只要它与用户之间的服务合约不变,用户就不会感受到这种变化。从某种意义上来说,SOA可以被看作是由黑匣子组成的网络,其中的服务能够为外部应用提供定义良好的接口。
2 安全问题分析
SOA所面临的安全问题与应用其他任何信息系统时所遇到的安全问题是相似的,即如何确保机密性、完整性和可用性。SOA的体系结构从本质上说是一系列由元数据和基于XML的标准数据协议生成的应用程序,因此SOA安全问题的核心就是XML安全。
2.1 XML的设计目标
XML是一种非常冗长的语言,每个数据项都要求有起始标记和结束标记,这样往往造成大量的无效信息。在大型数据结构中,当文件包含许多数据项时,大部分信息都是标记而并非数据,这意味着较高的带宽开销。在XML的应用中,需要使用被称为“分析器”的软件组件来解析带有XML标记的数据。XML文档包含的数据越多,携带的标记就越多,编译文件所需的处理能力和时间也就越多。
万维网联盟(World Wide Web Consortium,W3C)将XML设计为可以衍生出不同专用标记语言或数据描述语言的通用框架。简单来讲,XML是描述数据的一种方式,无需考虑格式,而且与应用无关。随着网络服务技术的提升和XML应用的推广,考虑到日益突出的安全问题,结构化信息标准促进组织开始推出XML签名和XML加密两个用来提供XML文件加密的标准。XML签名是用来将文件的部分或全部进行数字签名,以实现数据的完整性和发送人身份的可认证,防止发送抵赖;XML加密是将文件的部分或全部进行加密,以提供数据的加密性,确保文件内容在发送过程中不向未授权者开放。
2.2 XML安全缺陷
XML的最大优势在于其灵活性和应用无关性,但是从安全角度来看也是一个明显的薄弱环节,下面分别分析XML签名和XML加密的缺陷。
XML签名只对XML标记了的数据进行处理,而XML解析器的数据格式可以自由改变,即签名的对象不唯一,使得不同的格式数据在哈希算法中产生不同的值。如果两个解析器对同样的信息进行不同的格式化,很有可能给其它用户以篡改的机会和方法,从而导致XML签名认证失败。针对这一问题,一个推荐的解决方法是产生哈希数之前,在签名的生成与验证中增加一个特别步骤。这一步骤根据具体要求对数据进行重新格式化,以保证同一信息的两个不同格式化方法产生相同结果。但是这一额外步骤增加了信息发送者和接收者的开销,更为严重的是,将使签名的来源变成源数据的格式化版本而非提交给签名机制的源数据本身。一个具备足够访问权限的攻击者可以通过这一额外的标准化步骤,在生成签名值之前输入或更换数据。
XML加密由于XML的灵活性而遭受相似的攻击。具体来说,XML并不要求数据块在一个文件中按照指定的顺序排列。加密的XML数据不能保证以一种有序的方式来支持数据单点访问进程。如果解密所需的密钥在加密数据负荷后出现,整个负荷需要缓冲直至文件全部传输完毕。在这种情况下,缓冲信息所需的内存可能会超过可用内存,或者信息的处理时间变得过长。这些问题恰恰有可能引起拒绝服务攻击。此外,加密数据必须在被XML封装之前以文本的形式编码,这使信息容量大约增加了30%,进而带来加密通信带宽需求增大,XML变得异常繁琐等突出问题。
参考文献
[1] [DoD-8320.2-G] DoD CIO, Guidance for Implementing Net-Centric Data Sharing, 2006.
[2] [NSAWSVA] NSA, Web Services Vulnerability Assessment, 2004.
[3] Laura Lee,Rod Fleischer. Service Oriented Architecture (SOA)– Security Challenges And Mitigation Strategies. IEEE,2007.
[4] Laura Lee ,Rod Fleischer. Service Oriented Architecture (SOA)– Security Challenges And Mitigation Strategies.IEEE,2007.
关键词:面向服务架构(SOA) 安全 扩展标记语言(XML)
中图分类号:TP319 文献标识码:A 文章编号:1674-098X(2014)04(a)-0034-01
SOA作为一个全新的网络架构和系统组织方法,和其它所有的新兴技术一样,在提供便利的同时也面临许多挑战,最大的挑战表现在安全领域。一是由于架构具有刻意的分散性即无中心,数据会实时向各方传输,因此需要受到全时域、全空域的保护。二是为了提供随遇接入的服务,SOA提出单点登录(Single Sign On,SS0)的概念,这种理想化的设计对基于信息基础网络的访问控制提出了极高的要求。三是在SOA架构中,所有安全功能都需要通过底层的XML语言来实现,XML并不是一个具备控制与鉴别能力的语言,这就给上层的应用安全带来诸多问题。因此,深入分析SOA安全问题产生的原因,找到解决脆弱性的办法,是我们必须解决的关键问题。
1 设计思路分析
当今公众软件系统存在的基本问题是许多现行的安全协议当初并非是出于整体安全和互操作而设计的。这些协议根据需要产生,并随着时间不断演变。SOA最早也起源于因特网,目前代表着互操作性的顶峰,在这一架构中网络资源均作为分离的、松散耦合的、中立的服务供用户调用。这些服务对于没有基础平台或应用工具的网络用户都是可以获得的。由于这些服务具有独立的、标准化的特性,因此在系统各组件之间、甚至是受私有证书保护的产品之间,都具有很强的互操作性。即便服务的功能与实现发生了显著变化,但是只要它与用户之间的服务合约不变,用户就不会感受到这种变化。从某种意义上来说,SOA可以被看作是由黑匣子组成的网络,其中的服务能够为外部应用提供定义良好的接口。
2 安全问题分析
SOA所面临的安全问题与应用其他任何信息系统时所遇到的安全问题是相似的,即如何确保机密性、完整性和可用性。SOA的体系结构从本质上说是一系列由元数据和基于XML的标准数据协议生成的应用程序,因此SOA安全问题的核心就是XML安全。
2.1 XML的设计目标
XML是一种非常冗长的语言,每个数据项都要求有起始标记和结束标记,这样往往造成大量的无效信息。在大型数据结构中,当文件包含许多数据项时,大部分信息都是标记而并非数据,这意味着较高的带宽开销。在XML的应用中,需要使用被称为“分析器”的软件组件来解析带有XML标记的数据。XML文档包含的数据越多,携带的标记就越多,编译文件所需的处理能力和时间也就越多。
万维网联盟(World Wide Web Consortium,W3C)将XML设计为可以衍生出不同专用标记语言或数据描述语言的通用框架。简单来讲,XML是描述数据的一种方式,无需考虑格式,而且与应用无关。随着网络服务技术的提升和XML应用的推广,考虑到日益突出的安全问题,结构化信息标准促进组织开始推出XML签名和XML加密两个用来提供XML文件加密的标准。XML签名是用来将文件的部分或全部进行数字签名,以实现数据的完整性和发送人身份的可认证,防止发送抵赖;XML加密是将文件的部分或全部进行加密,以提供数据的加密性,确保文件内容在发送过程中不向未授权者开放。
2.2 XML安全缺陷
XML的最大优势在于其灵活性和应用无关性,但是从安全角度来看也是一个明显的薄弱环节,下面分别分析XML签名和XML加密的缺陷。
XML签名只对XML标记了的数据进行处理,而XML解析器的数据格式可以自由改变,即签名的对象不唯一,使得不同的格式数据在哈希算法中产生不同的值。如果两个解析器对同样的信息进行不同的格式化,很有可能给其它用户以篡改的机会和方法,从而导致XML签名认证失败。针对这一问题,一个推荐的解决方法是产生哈希数之前,在签名的生成与验证中增加一个特别步骤。这一步骤根据具体要求对数据进行重新格式化,以保证同一信息的两个不同格式化方法产生相同结果。但是这一额外步骤增加了信息发送者和接收者的开销,更为严重的是,将使签名的来源变成源数据的格式化版本而非提交给签名机制的源数据本身。一个具备足够访问权限的攻击者可以通过这一额外的标准化步骤,在生成签名值之前输入或更换数据。
XML加密由于XML的灵活性而遭受相似的攻击。具体来说,XML并不要求数据块在一个文件中按照指定的顺序排列。加密的XML数据不能保证以一种有序的方式来支持数据单点访问进程。如果解密所需的密钥在加密数据负荷后出现,整个负荷需要缓冲直至文件全部传输完毕。在这种情况下,缓冲信息所需的内存可能会超过可用内存,或者信息的处理时间变得过长。这些问题恰恰有可能引起拒绝服务攻击。此外,加密数据必须在被XML封装之前以文本的形式编码,这使信息容量大约增加了30%,进而带来加密通信带宽需求增大,XML变得异常繁琐等突出问题。
参考文献
[1] [DoD-8320.2-G] DoD CIO, Guidance for Implementing Net-Centric Data Sharing, 2006.
[2] [NSAWSVA] NSA, Web Services Vulnerability Assessment, 2004.
[3] Laura Lee,Rod Fleischer. Service Oriented Architecture (SOA)– Security Challenges And Mitigation Strategies. IEEE,2007.
[4] Laura Lee ,Rod Fleischer. Service Oriented Architecture (SOA)– Security Challenges And Mitigation Strategies.IEEE,2007.