Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|产品中心下载UML生成C++
您现在的位置: 天极网 > 开发频道 > SOA的安全措施
全文
群乐:SOA

SOA的安全措施

2008-01-09 08:52 作者: 佚名 出处: 计世网 责任编辑:方舟
     数据和应用程序曾经相互独立,而现在却要跨多个部门和组织作为服务来提供。虽然安全在过去属于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功能的身份也随同消息一起传输。

  ● XML安全技术尽量重复使用现有的加密和安全技术,不需要重复工作。譬如说,需要时,无须重新定义就可以使用X.509 V3证书——它们只是采用文本格式编码而成。现有的算法如SHA1摘要算法也通过把惟一的URI标识符进行关联、定义在XML安全处理模型中如何使用,从而被引入到XML安全标准世界。值得一提的是,URI标识符普遍应用于XML安全,用于加密和签名算法,而不仅仅用于散列算法。

  主要的XML安全标准如下:XML加密、XML签名语法和处理、数字签名、XML密钥管理规范(XKMS)。

  XML加密是万维网联盟(W3C)制订的一项规范,它为需要安全交换结构化数据的应用提供了端到端安全性。正如我们所知,XML本身就是对数据进行结构化处理的最流行的技术。因此,基于XML的加密自然是满足复杂需求的方法,可实现数据交换应用中的安全。

  W3C推荐的XML签名语法和处理标准提供了完整性、消息验证和签名者验证等服务。XML签名是为了用于XML事务而设计的数字签名。这项标准定义了一种模式,用于记录应用于任意(但往往是XML)数据的数字签名操作的结果。与没有XML识别功能的数字签名(如公钥加密标准即PKCS)一样,XML签名为签名的数据添加了验证、数据完整性以及支持不可否认性的功能。然而,与非XML签名语法和处理标准不同的是,XML签名语法和处理标准旨在认可及利用因特网和XML。

  数字证书是类似网上护照的电子文件。它们由可信的第三方即证书认证中心(CA)颁发,该机构负责验证证书持有者的身份。

  作为W3C的一项备忘录,XKMS简化了使用公钥基础设施(PKI)和数字证书来保护基于XML的因特网事务安全的工作。它为分发及注册适合于结合W3C的XML签名语法和处理标准使用的公钥规定了协议。XKMS由两部分组成:XML密钥信息服务规范(X-KISS)和XML密钥注册服务规范(X-KRSS)。

  从前面举例的供应链使用实例知道,通过因特网访问信息的功能对解决方案来说至关重要。Web服务可以实现这种功能,因为它们允许通过网络交换信息。Web服务基于以下三项重要标准:

  ● 简单对象访问协议(SOAP):数据传输协议。

  ● Web服务描述语言(WSDL):Web服务描述语言。

  ● 通用描述、发现和集成(UDDI):确定Web服务位置的注册中心。

  请注意,所有上述标准都可以用XML来定义。不过,本文举例的供应链解决方案必须具体解决两个问题:

  一、只允许授权用户可以访问基于XML的Web服务,这可以通过可扩展访问控制标记语言(XACML)和Web服务策略(WS-Policy)两个标准来解决;

  二、保护Web服务环境中交换的XML消息的完整性和机密性,这可以通过Web服务安全(WSS)和安全声明标记语言(SAML)来解决。

  本文基本介绍了Web服务策略、WSS、SAML、XACML以及XQuery和XML数据库如何赋予安全。WSS在SOAP环境下提供了消息保护。SAML和XACML支持授权,并且大力支持大规模分布式系统。最重要的是,所有这些标准都可以使用XML表示信息。Web服务策略、WSS、SAML和XACML都有一些共同之处。虽然所有这些标准都能够使用前些年使用的安全服务,但各自都有具体的特性,旨在适用于大规模分布式环境,譬如因特网。另外,这些标准可以使用及集成原先就有的安全标准。

  正如前文所述,这些标准使用XML。XML使诸多技术可以轻松扩展,以满足特殊需求,而使用旧格式不可能做到这点。另外,XML允许实施者使用现有的许多软件工具进行处理。以WSS为例,它旨在与SOAP的语法和处理模型紧密集成,该模型用XML来定义。

  另外,XML是一门标记语言,能够标记不同数据源的信息内容,包括结构化和半结构化文档、关系数据库和对象储存库。由于这么多采用XML格式的重要数据可供使用,这些数据可以查询及挖掘,以获得进一步的适用性,就显得极其重要。

  查询语言是XQuery,它能够理解XML,并且针对各种XML数据表示查询,无论是不是实际保存在XML中,还是通过中间件作为XML来浏览。XQuery广泛适用于许多类型的XML数据源。

  为XML数据添加持久性的推荐方法就是,使用这样的本地XML数据库技术,不但可以把XML作为另一个关系工件来对待,还可以作为自然的XML工件来对待。XML数据库管理服务器(XDMS)是企业级XML持久性机制,它具有传统关系数据库的所有功能。具有功能强大的XML索引、分析及加速等特性的XDMS是一大有利因素。

  Web服务策略

  

  如图1所示,Web服务策略框架提供了通用模型和相应语法,以描述及传达Web服务的策略。Web服务策略定义了一套基本的构件,可由其他Web服务规范使用及扩展,从而描述一系列广泛的服务需求、选项及功能。

  Web服务策略为表示基于XML Web服务的系统里面实体具有的功能、需求和一般特性提供了灵活、可扩展的语法。Web服务策略定义了一个框架和模型,用于把这些属性表示成策略。策略表达式允许简单的说明性声明,也允许比较复杂的条件声明。

  Web服务策略定义的策略是一个或者多个策略声明的集合体。有些声明规定了最终在传输过程中予以显示的传统需求和功能(譬如验证方案和传输协议选择)。有些声明规定了不在传输过程中予以显示、但对服务的合理选择及使用至关重要的需求和功能(譬如隐私策略和服务质量特性)。Web服务策略提供了单一的策略语法,以便能一致地考虑这两种声明。

  用XML表示策略声明称为策略表达式。只要使用策略操作符:All、ExactlyOne和OneOrMore等,就可以合并策略声明。

  下面演示了一项策略的简单示例:

  Claudio

  Role=Student

  与策略相关的其他规范是:Web服务策略声明语言;Web服务安全策略语言;Web服务策略附件;针对Web服务策略、Web服务授权和Web服务可靠消息传送等其他技术的策略。

  为了便于管理,还要有策略储存库(policy repository)。这个管理工具可以为插入、修改及删除策略提供接口。它应当可以提供与请求者相关的所有策略,可以通过XML数据库获得策略。用于XML的简单API(SAX)解析器速度快、占用内存小,可以对XML数据进行解析。

共2页。 1 2 :
网友关注
最新上市
编辑推荐
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml