SOA的安全措施
主要的XML安全标准如下:XML加密、XML签名语法和处理、数字签名、XML密钥管理规范(XKMS)。XML是一门标记语言,能够标记不同数据源的信息内容,包括结构化和半结构化文档、关系数据库和对象储存库。
数据和应用程序曾经相互独立,而现在却要跨多个部门和组织作为服务来提供。虽然安全在过去属于IT领域,但SOA治理扩大了安全的范畴,包含组织策略和实践,因而涵盖了业务领域。如何让SOA不断成熟,以满足安全和治理的需要?如今XML安全方面的标准和规范有哪些?它们彼此是如何协同工作的?如何以可扩展的方式来实施这些标准,又不牺牲性能和可维护性?本文试图解答这些问题。
不妨看一下SOA的几个应用实例。以供应链管理为例:诸多生产商、零售商和消费者相互联系,使用众多的系统和应用程序,主要通过因特网来联系。SOA是实现这种松散耦合的交互关系的理想机制。企业级SOA的一个必要部分就是,把安全服务和治理策略运用于交易合作伙伴之间的各个联系层面上。
如果客户在某零售商的网站上下订单,显而易见,订单处理事务必须是安全可靠的。然而,事实不像表面上那么简单。零售商的订单履行应用应当涉及与库存管理系统的交互关系。一旦所订产品准备送货,零售商就与负责送货的交易合作伙伴联系,并应当为客户提供可以浏览订单状态的服务。这种相互关系都需要应用层实现安全,传输协议层通常也需要实现安全。另外,组织必须制订及管理各种策略:谁拥有数据?谁对该数据的真实性负责?各部门和交易合作伙伴如何共享数据?这就是SOA治理所要解决的任务。
这些相互关系带来了类似客户在网站上下订单的需求。在这两个交易合作伙伴交互信息的过程中,必须实行安全策略,还要确定治理服务的策略。
另一个应用实例就是生产商的产品开发生命周期。这个过程可能涉及外部的交易合作伙伴,也可能不涉及,但一家大型生产商通常有好几个部门参与一个制成品的生产。SOA提供了可重复使用、灵活开发的好处,哪怕是在生产商并不涉及外部合作伙伴的场景下。另外,这里需要同样的安全和策略需求。
这些场景所共有的安全需求包括如下几个方面:
● 验证:我怎么知道你的身份是正确的?
● 授权:你有权执行这笔事务吗?
● 完整性:你发送的数据跟我收到的数据一样吗?
● 签名:创建及验证类似手写签名的电子签名。
● 机密性:我们确信没有人读取你发给我的数据吗?
● 审查:把所有事务记录下来,以便事后验证。
● 不可否认性:发送方和接收方都可以向第三方(如法官)证实事务中发送及收到的是同一数据。
由于应用间各自独立的身份安全数量激增,其他安全需求如单次登录(SSO)已变得很重要。威胁预防也渐渐成了另一项重要的安全需求,以便排除不良数据(如间谍软件和恶意软件等)。
XML安全标准和SOA
XML是基于标准的选择,体现了上述需求,因而XML安全标准可以用来满足需求。XML安全标准充分利用了现有的XML标准,还能改进这些标准,方法如下:
● XML安全标准定义了表示安全信息的XML词汇,使用XML模式(XML Schema)等XML技术来定义,譬如,用XML签名语法和处理标准(XML-Signature Syntax and Processing)定义的 元素,建议用于传输、签名或者加密密钥信息。
● XML安全标准尽量使用其他现有的XML标准,以便充分利用现有的XML成果。譬如说,XML签名语法和处理标准允许XPath表达式提取XML的一部分进行处理。值得一提的是,既有的XML安全标准出现之前,是不可能实现这种有选择的签名处理的。要么整个文档被签名,要么根本不签名。XML安全标准旨在提供XML的灵活性和扩展性。它们让安全可以应用于XML文档、XML元素和元素内容以及任意的二进制文档。它们通过使用XML命名空间和可扩展的XML模式定义,支持XML词汇的扩展。
● XML安全技术可以应用于端到端安全,如果XML消息通过众多处理中介来发送,这需要特别重视。持久性安全与内容相关,而不是与传输管道相关。内容仍然具有安全性。XML安全技术还可以结合传输安全技术使用,譬如安全套接层和传输层安全(SSL/TLS)。这里要强调的另一点就是,用于SSO功能的身份也随同消息一起传输。
- 本文关键词:

