用于web服务的安全性策略验证的制作方法

文档序号:7940171阅读:156来源:国知局
专利名称:用于web服务的安全性策略验证的制作方法
技术领域
本发明的领域涉及数据处理,或者,更具体地,涉及用于web服务的安全性策略验 证的方法、设备和产品。
背景技术
许多企业当前都使用面向服务的体系结构(SOA)来进行开发,因为它们的商业模 式变化得更加频繁了。SOA使得应用开发更加容易,因为独立于技术的服务可以在内联网上 或者通过互联网耦接。由于商业模式变化得更加频繁,应用在其上运行的基础计算环境正 变得更加复杂,因为计算机能够使用复杂的拓扑结构(包括防火墙和中间服务器)被连网。 因此,非功能方面(例如安全性)的适当配置需要对这种复杂环境进行相当深入的理解。根据这种开发,从一开始就将安全性与软件工程过程统一起来是重要的。遗憾地 是,就安全性是在功能需求被实现以后再加上的意义而言,安全性通常被认为在大部分实 际开发中是事后想到的。但是,众所周知,在设计过程的后期校正缺陷极大地增加了对这些 缺陷的移除和修复的成本。近来,服务组件体系结构(SCA)作为SOA的组件模型被标准化。针对非功能需求 (例如安全性和事务处理)的意图在SCA的策略框架中的抽象水平上进行规定,并且这些意 图被映射到具体的策略中,如WS-安全性策略。根据SCA策略框架,软件工程师应当预先准 备WS-安全性策略文档的集合,以便从附属于SCA组件的安全性意图中检索策略。因此,重 要的是从开发过程的一开始就为SCA组件定义有效的策略文档。为了指导安全性策略的开发,大部分企业具有安全性简档(security profile)形 式的安全性指南,该安全性简档描述了 web服务安全性消息的格式。此外,也存在有关web 服务安全性的标准简档,例如WS-I基本安全性简档,该简档也规定了行业标准安全性消息 格式。然而,在现有技术中,确定安全性策略是否与安全性简档相符的过程是手动过程,由 于SOA环境的复杂性而充满了错误。这样,读者将会理解在用于web服务的安全性策略验 证方面存在着提升空间。

发明内容
本发明公开了用于web服务的安全性策略验证的方法、设备和产品,包括 将用于web服务的安全性策略转换为策略谓词逻辑表示(policy predicate logic representation);提供表示安全性策略简档的一个或多个规则的简档谓词逻辑表示 (profile predicate logicrepresentation);并且根据策略谓词逻辑表示和简档谓词逻 辑表示,确定安全性策略是否满足安全性策略简档。


现在参考如下附图,将仅以示例的方式描述优选实施例,在附图中图1描绘了根据本发明实施例的能够进行用于web服务的安全性策略验证的示例性系统的功能性框图; 图2描绘了示出根据本发明实施例的用于web服务的安全性策略验证的示例性安 全性策略和安全性简档的线条图;图3描绘了示出根据本发明实施例的用于web服务的安全性策略验证的示例性方 法的流程图;图4描绘了示出根据本发明实施例的用于web服务的安全性策略验证的另一个示 例性方法的流程图。
具体实施例方式从图1开始,参考附图描述根据本发明的实施例的用于web服务的安全性策略验 证的示例性方法、设备和产品。图1描绘了根据本发明实施例的能够进行用于web服务的 安全性策略验证的示例性系统的功能性框图。图1的示例性系统包括通过网络(100)连 接在一起以便进行数据通信的几个计算装置(152、120、122、124)。在每个计算装置(152、 120、122、124)上分别安装了 web服务(108、110、112、114)。web服务是一种软件,设计用 于支持通过网络的互操作的机器对机器的交互。web服务在网络上通过web应用编程接口 (API)被频繁访问,并在作为所请求的web服务的主机的远程系统上执行。用于web服务 的API通常利用web服务描述语言(WSDL)进行描述,并由服务代理根据通用描述、发现和 集成(UDDI)协议发布。在图1的示例性系统中,web服务通常根据SOAP通过基于可扩展标记语言(XML) 的消息的交换进行通信。SOAP是用于通过计算机网络交换基于XML的消息的平台和独立于 语言的协议,通常使用超文本传输协议(HTTP)或者安全HTTP。SOAP形成web服务堆栈的 基础层,提供更抽象的层可以在其上建立的基本消息传送框架。在SOAP中有几种不同类型 的消息传送模式,但是迄今为止,最常见的是远程过程调用(RPC)模式,其中一个web服务 (客户机)发送请求消息到另一个web服务(服务器),并且服务器马上发送响应消息到该 客户机。以这样的方式,SOAP是XML-RPC的后继者,XML-RPC是使用XML来对其调用进行编 码并使用HTTP作为传输机制的远程过程调用协议。利用SOAP实现的web服务消息是普通XML文档,其包含如下单元·必需的封套(Envelope)单元,将XML文档标识为SOAP消息;·可选的标题(Header)单元,包含标题信息;·必需的主体(Body)单元,包括调用和响应信息;以及·可选的故障(Fault)单元,提供有关当处理消息时发生的错误的信息。为了确保SOAP消息交换的安全,web服务通常利用安全性令牌和其他安全性机制 来保护web服务消息。用于嵌入安全性令牌和使用其他安全性特征来保护web服务消息的 一种格式在由结构化信息标准促进组织(OASIS)发布的WS-安全性规范中描述。WS-安全 性规范描述了如何将数字签名和加密标题加到SOAP消息上。此外,WS-安全性规范描述如 何将安全性令牌(包括二进制安全性令牌,如X. 509证书和Kerberos票据(ticket))附加 到web服务消息。读者将注意到,执行安全性保护的web服务消息被称为“web服务安全性 消息”。 在web服务安全性消息中,应用数据被嵌入到Body单元中,而安全性信息被嵌入到Header单元中。例如,考虑如下web服务安全性消息<soap:Envelope)<soap:Header)<wsse:Security)<wsse:BinarySecurityTokenValueType = " X509v3 " wsu:Id = " X509Token " EncodingType =〃 Base64Binary" >MIIEZzCCA9CgAwIBAgIQEmtJZc0rqrKh5i...</wsse:BinarySecurityToken><ds:Signature)<ds:Signedlnfo><ds:CanonicaliζationMethod Algorithm =〃 xml-exc-cl4n〃 /><ds: SignatureMethod Algorithm=" rsa-shal " /><ds:Reference URI = " #body〃 ><ds:Transforms)<ds : Transform Algorithm =〃 xml-exc-cl4n〃 /></ds:Transforms)<ds: DigestMethod Algorithm=" shal " /><ds:DigestValue>LyLsF094hPi4wPU...</ ds:DigestValue></ds:Reference)</ds:SignedInfo><ds:SignatureValue>HplZkmFZ/2kQLXDJbchm5gK...</ds:SignatureValue><ds:KeyInfo><wsse:SecurityTokenReference><wsse:Reference URI = " #X509Token" /></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature)</wsse:Security)</soap:Header)<soap:Body wsu:Id =" body" ><tru:StockSymbol xmlns:tru =" http://fabrikaml23.com/payloads" >QQQ
</tru:StockSynbol)
〈/soap: Body〉</soap:Envelope)上文的示例性web服务安全性消息示出了包含在由XML标签<S0ap:B0dy>和</ soap:Body)规定的Body单元中的应用数据以及包含在由XML标签〈soap:Header〉和</ soap:Header)规定的Header单元中的安全性数据。上述Header单元包括由XML标签 <wsseBinarySecurityToken> 禾口 </wsse:BinarySecurityToken> 规定的二进制安全性令 牌(BinarySecurityToken)单元中的X. 059安全性令牌。上述Header单元还包括由XML 标签<ds: Signature〉和</ds Signature〉规定的签名(Signature)单元中的数字签名。 Signature单元规定如下信息· Body单元被签名,·签名算法,
·转换算法, 对密钥的参考,·摘要值,以及·签名值。为了创建和识别具有特定安全性特征的web服务消息,web服务利用例如存储在 图1的计算装置(152)的RAM(168)中的web服务安全性策略(106)的安全性策略。web 服务安全性策略定义了 web服务使用或者产生的消息必须遵守的安全性规则。web服务安 全性策略可以在根据国际商业机器公司等开发的WS-安全性策略规范的XML文档中进行规 定。WS-安全性策略定义了若干部分,其可以包括在用于完整性和机密性声明、绑定和支持 令牌的安全性策略中。完整性和机密性声明指出web服务消息的哪些特定部分应当分别被 签名和加密。绑定规定了签名和加密消息的某些部分所需的详细信息,例如签名。绑定也 规定了 web服务消息中的加密算法、安全性令牌信息以及单元的布局。支持令牌是没有在 绑定部分中描述的附加令牌。例如考虑用于检验或产生上文描述的示例性web服务安全性消息的如下web服务 安全性策略…<spAsymmetricBinding><sp:InitiatorToken id=" initToken" ><sp:X509Token. . . /></sp:InitiatorToken><sp:RecipientToken id =" recipToken" ><sp:X509Token. . . /></sp:RecipientToken><sp:AlgorithmSuite><sp:Basic256/></sp:AlgorithmSuite><sp:Layout)<sp:Strict/)
</sp:Layout)</sp:AsymmetricBinding>…<sp:SignedParts>
<sp:Body/></sp:SignedParts>…上述示例性web服务安全性策略使用由XML标签<sp SignedParts)和</ sp SignedParts)指示的“SignedParts (签名部分)”单元示出完整性声明。该 “SignedParts”单元要求web服务安全性消息的Body单元被签名。上述示例性web服务安 全性策略还使用由 XML 标签 <sp: AsymmetricBinding)和 </sp AsymmetricBinding〉指示 的"AsymmetricBinding(非对称绑定)”部分示出绑定部分。该“AsymmetricBinding”部分 规定web服务安全性消息的Header单元必须包括X. 509证书,“Basic256”算法集用于签名 和加密安全性消息,并规定使用“strict (严格)”布局来设置安全性消息中的单元。读者 将注意到,为了清楚起见,上述示例性web服务安全性策略省略了逻辑操作符,例如,“all” 或者“ExactlyOne”。在web服务安全性策略中有用的逻辑操作符可以包括在WS-安全性策 略中规定的那些。由于安全性策略可以用在各种不同的运行时环境中,计算装置(152)包括存储在 RAM(168)中的运行时配置(107)。图1的运行时配置(107)规定了有关用于执行web服务 安全性策略(106)的针对特定平台的环境的信息。例如考虑web服务安全性策略(106)规 定使用用于签名和加密的特定X. 509密钥。运行时配置(107)可以规定特定密钥文件和用 于访问该密钥文件的ID/ 口令组合。在图1的例子中,计算装置包括存储在RAM(168)中的安全性策略简档(103)。类 似于安全性策略,安全性策略简档规定用于实现web服务间消息交换的安全性的规则或指 南。如上所述,大部分企业具有安全性简档形式的安全性指南,以指导描述web服务安全性 消息的格式的安全性策略的开发。例如,企业可以决定消息的Body单元将总是使用X. 509 密钥进行签名,并决定安全性消息中的单元以严格的方式进行设置。代替开发私有安全性 简档,还存在用于web服务安全性的行业标准简档,例如WS-I基本安全性简档,该简档也规 定了行业标准安全性消息格式。安全性策略简档的指南被用于开发web服务所使用的安全 性策略,以识别web服务消息是否符合企业的安全性策略简档。在图1的RAM(168)中还存储了策略验证模块(102)。图1的策略验证模块(102) 是相对于安全性简档的规则确定安全性策略是否有效的计算机软件。图1的策略验证模块 (102)包括根据本发明的实施例的一组计算机程序指令,用于web服务的安全性策略验证。 如下文中将更详细地讨论的,根据本发明的实施例,图1的策略验证模块(102)通过如下步 骤进行总体操作以便进行用于web服务的安全性策略验证将用于web服务(108)的安全 性策略(106)转换为策略谓词逻辑表示(101);提供表示安全性策略简档(103)的一个或 多个规则的简档谓词逻辑表示(104);并且根据策略谓词逻辑表示(101)和简档谓词逻辑 表示(104)确定安全性策略(106)是否满足安全性策略简档(103)。除了相对于安全性简档的规则确定安全性策略是否有效以外,策略验证模块(102)还可以相对于策略在其中使用的运行时环境的运行时配置确定安全性策略是否有 效。这种验证确保调用X. 509密钥的安全性策略被部署在实际具有X. 509密钥的环境中。 这样,根据本发明的实施例,策略验证模块(102)也可以通过如下步骤进行总体操作以便 进行用于web服务的安全性策略验证提供表示运行时配置环境(107)的一个或多个配置 参数的运行时配置谓词逻辑表示(105);并且根据策略谓词逻辑表示(101)和运行时配置 谓词逻辑表示(105)来确定安全性策略(106)是否匹配运行时配置环境(107)。在RAM(168)中还存储了操作系统(154)。根据本发明实施例的用于将固件更新应 用到数据中心中的服务器上的操作系统包括UNIXtm、LinuxTM、MicrosoftXPTM、AIXtm, IBM的 i5/0STM以及本领域技术人员能够想到的其他操作系统。图1的例子中的操作系统(154)、 web服务(108)、web服务安全性策略(106)、安全性策略简档(103)、策略谓词逻辑表示 (101)、简档谓词逻辑表示(104)、运行时配置(107)、运行时配置谓词逻辑表示(105)以及 策略验证模块(102)被示出为在RAM(168)中,但许多这种软件组件通常也存储在非易失性 存储器中,例如,盘驱动器(170)上。图1的计算装置(152)包括通过扩展总线(160)和总线适配器(158)耦接到处理 器(156)以及计算装置(152)的其他部件的盘驱动器适配器(172)。盘驱动器适配器(172) 将非易失性数据存储器以盘驱动器(170 )的形式连接到计算装置(152)。根据本发明实施 例的在用于web服务的安全性策略验证的计算装置中有用的盘驱动器适配器包括集成驱 动器电子部件(IDE)适配器、小型计算机系统接口(SCSI)适配器以及本领域技术人员能够 想到的其他适配器。非易失性计算机存储器还可以实现为光盘驱动器、电子可擦除可编程 只读存储器(EEPR0M或者闪速存储器)(134)、RAM驱动器等,如本领域技术人员能够想到 的。图1的示例性计算装置(152)包括一个或多个输入/输出(I/O)适配器(178)。 I/O适配器通过例如用于控制到例如计算机显示屏幕的显示装置的输出以及来自例如键盘 和鼠标的用户输入装置(181)的用户输入的软件驱动器和计算机硬件,实现面向用户的输 入/输出。图1的示例性计算装置(152)包括视频适配器(309),该视频适配器是专门设 计用于向例如显示屏幕或计算机监视器的显示装置(180)进行图形输出的I/O适配器的例 子。视频适配器(309)通过高速视频总线(164)、总线适配器(158)以及也是高速总线的前 端总线(162)连接到处理器(156)。图1的示例性计算装置(152)包括耦接计算装置以便通过数据通信网络(100)与 数据中心中的其他服务器进行数据通信的通信适配器(167)。这种数据通信网络(100)可 以例如以例如通用串行总线(USB)的外部总线、或者因特网协议(IP)网络或者Ethernet 网络、I2C网络、系统管理总线(SM总线)、智能平台管理总线(IPMB)以及本领域技术人员能 够想到的其他方式实现。通信适配器实现数据通信的硬件级,通过通信适配器,一个计算机 直接或通过数据通信网络向另一个计算机发送数据通信。根据本发明实施例的对用于web 服务的安全性策略验证有用的通信适配器的例子包括用于有线拨号通信的调制解调器、用 于有线数据通信网络通信的以太网(IEEE802.3)适配器和用于无线数据通信网络通信的 802. 11适配器。构成图1中示出的示例性系统的服务器和其他装置的设置用于解释,而非用于限 制。根据本发明的各个实施例有用的数据处理系统可以包括图1中未示出的本领域技术人员能够想到的附加的服务器、路由器、其他装置和对等体系结构。在这种数据处理系统 中的网络可以支持许多数据通信协议,包括例如TCP(传输控制协议)、IP(因特网协议)、 HTTP (超文本传输协议)、WAP (无线接入协议)、HDTP (手持装置传输协议)以及本领域技 术人员能够想到的其他协议。除了图1中示出的以外,本发明的各种实施例可以在各种硬 件平台上实现。为了进行进一步的解释,图2描绘了示出根据本发明实施例的用于web服务的安 全性策略验证的示例性安全性策略和安全性简档的线条图。图2示出了安全性简档(200), 其描述了根据WS-I基本安全性简档(BSP)规范的web服务安全性消息的安全性特征,并示 出了安全性简档(202),其描述了根据组织自身的私有安全性指南的web服务安全性消息 的安全性特征。图2还描述了三个安全性策略(204、206、208),其规定web服务产生或者使 用的安全性消息的安全性特征。图2的安全性策略(204、206、208)可以根据例如WS-安全 性策略规范来执行。在图2的例子中,安全性简档(200、202)和安全性策略(204、206、208)被转换为 谓词逻辑表示(210)。安全性策略的谓词逻辑表示规定安全性策略和web服务消息之间的 关系,也就是说,web服务消息是否符合特定安全性策略。类似地,安全性简档的谓词逻辑 表示规定安全性简档和web服务消息之间的关系,也就是说,web服务消息是否与特定安全 性简档相符。以这种方式,图2的谓词逻辑表示(210)将安全性简档(200、202)和安全性 策略(204,206,208)映射到web服务消息的全域(212)。WS-I BSP安全性简档(200)的谓 词逻辑表示规定消息全域(212)的子集“A”中的所有消息与WS-IBSP安全性简档(200)相 符。组织的私有安全性简档(202)的谓词逻辑表示规定消息全域(212)的子集“B”中的所 有消息与组织的私有安全性简档(202)相符。安全性策略1(204)的谓词逻辑表示规定消息 全域(212)的子集“C”中的所有消息与安全性策略1(204)相符。安全性策略2(206)的谓 词逻辑表示规定消息全域(212)的子集“D”中的所有消息与安全性策略2(206)相符。安 全性策略3(208)的谓词逻辑表示规定消息全域(212)的子集‘ ”中的所有消息与安全性 策略3 (208)相符。如上所述,软件开发者使用组织自身的私有安全性简档或者例如WS-I BSP的行业 标准安全性简档的指南来开发web服务使用的安全性策略。如图2中所示,策略验证模块 可以通过确定是否存在满足策略谓词逻辑表示以及不满足简档谓词逻辑表示的web服务 消息,根据策略的谓词逻辑表示和简档的谓词逻辑表示来确定安全性策略是否满足安全性 策略简档。例如,相对于WS-I BSP安全性简档(200)和组织自身的私有安全性简档(202) 考虑安全性策略1、2和3(204、206、208)是否有效。图2示出了安全性策略1 (204)和安全 性策略2 (206)满足WS-I BSP安全性简档(200),因为消息子集“C”和“D”都在消息子集 “A”中。图2示出了安全性策略3 (208)不满足WS-I BSP安全性简档200,因为消息子集 “E”不在消息子集“A”中。图2示出了安全性策略1(204)满足组织自身的私有安全性简档 (202),因为消息子集“C”在消息子集“B”中。图2示出了安全性策略2(206)和安全性策 略3 (208)不满足组织自身的私有安全性简档(202),因为消息子集“D”和消息子集“E”都 不在消息子集“B”中。如上所述,安全性简档(200、202)和安全性策略(204、206、208)在图2的例子中 被表示为谓词逻辑表示(210)。谓词逻辑表示(210)可以利用Prolog来实现。Prolog是基于谓词逻辑的高级编程语言。不像基于执行命令序列的传统编程语言,Prolog基于定义并且然后求解逻辑公式。Prolog有时被称为说明性语言或者基于规则的语言,因为其程序 包括事实和规则的列表。包括Prolog程序的事实和规则通常存储在称为Prolog数据库的 程序文件中。包括事实声明和逻辑规则的Prolog数据库被正确地视为知识库或者规则库。 在本公开内容中,Prolog的使用是示例性的,并不是本发明实施例中的要求。除了 Prolog 以外,许多方法和装置,以及许多计算机语言都将被本领域技术人员想到用于建立规则库, 并且所有这些方法、装置和语言都在本发明的范围内。在Prolog中的事实和规则通常都以谓词逻辑形式设置。例如,下文是示例性的一 组三个Prolog子句parent (fred, greta).parent(greta, henry).grandparent (Χ, Ζ) -parent (Χ, Y), parent (Y, Ζ)Prolog子句通常有三种类型事实(Fact)说明真的事件。规则(Rule)说明取决 于给定条件为真的事件。当规则被称为“真”时,问题(Question)被用于查明声明的事实 当前是否满足特定规则。Prolog问题有时被称为“目标”或“询问”。在上文中三行的例子
"parent (fred, greta)”是事实。“Parent”是谓词。“Fred”是第一自变量,有时称为 “主体”。"Greta"是第二自变量,有时称为“客体”。在上文三行的例子中,“grandparent(X,Ζ) -parent (X,Y),parent (X,Y) · ” 是规 则。"Grandparent (X,Ζ),,被称为规则的“头”。"Parent (X,Y),Parent (Y,Ζ),,被称为规则 的“主体”。"Parent (X, Y) ”是规则的第一子目标。“Parent(Y,Ζ) ”是规则的第二子目标。 Χ、Υ和Z是变量。该示例性规则以几种方法被正确描述。一种说明性描述是对所有的X和Ζ,如果 存在某一Y使得X是Y的父母并且Y是Z的父母,那么X是Z的祖父母。另一个说明性描述 是对于所有的X,Y和Ζ,如果X是Y的父母,Y是Z的父母,那么X是Z的祖父母。规则的 程序性解释是如果首先,目标parent(X,Y)成功地绑定Xl和Yl,并且然后目标parent (Y, Ζ)成功绑定Yl和Ζ1,那么目标grandparent (X,Ζ)成功为X绑定Xl并为Z绑定Zl。如果Prolog目标能够从Prolog数据库中的一组子句中被满足,那么它被称为 是“成功的”。如果目标不能被这样满足,那么目标失败。对于基于上述的一组三行示例性 Prolog子句的例子由于X被实例化为henry,询问“grandparent (fred,X) ”被满足。另一 方面,询问“grandparent (fred, bob),,不能从三行的示例性Prolog数据库中被满足,因为 “ bob ”没有出现在该组子句中。为了进一步说明,图3描绘了示出根据本发明实施例的用于web服务的安全性策 略验证的示例性方法的流程图。图3的方法包括将用于web服务的安全性策略(106)转 换(300)为策略谓词逻辑表示(101)。图3的安全性策略(106)示出了 web服务使用或产 生的消息必须遵守的一组安全性规则。图3的策略谓词逻辑表示(101)规定了安全性策略 (106)和web服务消息之间的关系,也就是说,web服务消息是否符合安全性策略(106)。例 如,考虑在上文描述过的示例性安全性策略的如下策略谓词逻辑表示01 :myPolicy(E)-02: E = env (H, B),
03: H = h(Sec),04: Sec =05: sec(06: bst(' OValueType' (' #X509v3'),
07 ' iEncodingType' (‘ #Base64Binary‘),08: ‘ iid' (TokenID),09: bstValue),10:sig(11: sigInfo(12: cl4nMethod(' iA lgorithm' (' xml-exc_cl4n#')),13 sigMethodC iA lgorithm' (' xmldsig#rs£i_sh£il ‘)),14: ref (‘ iURL' (BodyID),15:transforms (16 transform (17:' iA lgorithm' (' xml-exc_cl4n#')),18:digestMethodC iA lgorithm' (‘ xmldsig#sha 1')),19:digestValue(dVal))),20:sigValue(sVal),21:keyInfo(22:str (reference (' iURI' (TokenID))))))),23: B = body (‘ iid' (BodyID), bodyValue).在01-23行中的上述Prolog规则用于实现上述参考图1的示例性安全性策略的 策略谓词逻辑表示。在01行中的"HiyPolicy(E) ”用作Prolog规则的头,并且02-23行 中的所有内容用作Prolog规则的主体。在01行中的变量“E”表示web服务消息。上述 Prolog规则规定符合Prolog规则的主体中的目标的所有web服务消息也符合安全性策略 “myPolicy”。也就是说,如果上述Prolog规则的02-23行中的每个目标对于特定web服务 消息为真,那么web服务消息符合安全性策略“myPolicy”也为真。通过根据基本规则(primitive rule)、结构规则和合并规则,将用于web服务的 安全性策略(106)转换为策略谓词逻辑表示(101),可以执行根据图3的方法的将用于web 服务的安全性策略(106)转换(300)为策略谓词逻辑表示(101)。基本规则是提供用于将 安全性策略的片断转换为策略谓词逻辑表示的片断的指令的转换规则。例如,基本规则可 以提供指令,用于将如下安全性策略片断<sp:SignedParts)<sp:Body/></sp:SignedParts>转换为策略谓词逻辑表示的如下片断sig (siglnfo (cl4nMethod(iAlgorithm($[cl4n]),0141]sigMethod(iAlgorithm($[sigMethod])),
0142]ref(iURL(BodylD),
0143]transforms(
0144]transform(iAlgorithm($[transform])), 0145]digestMethod(iAlgorithm($[digest])),
0146]digestValue (***))),
0147]sigValue(氺氺氺),
0148]key Info (
0149]str(Reference(iURI (***)))))
0150]并转换为策略谓词逻辑表示的如下附加片断
0151]body (iid(BodylD))在上述例子中,由于安全性策略片断中的“SignedParts”单元要求消息中的签名 单元,上述“sig”策略谓词逻辑表示片断也规定消息要求签名单元。此外,由于安全性策略 片断中的“SignedParts”单元规定消息的Body被签名,上述“主体”策略谓词逻辑表示片 断规定消息要求Body单元。对于另一个例子,基本规则可以提供指令,用于将如下安全性策略片断<sp EncryptedParts><sp:Body/></sp EncryptedParts>转换为策略谓词逻辑表示的如下片断encKey (encMethod(iAlgorithm(氺氺氺)),keylnfo(str(Reference(iURI(氺氺氺)))),
cipherData (cipherValue (氺氺氺),refList(dataRef(iURI(encl))))并转换为策略谓词逻辑表示的如下附加片断encData (OType ( . . #Element),@Id (encl)),encMethod(iAlgorithm(氺氺氺)),cipherData (cipherValue(氺氺氺)))在上述例子中,由于安全性策略片断中的“EncryptedParts”单元要求消息的 Body单元被加密,上述“encKey”和“encData”策略谓词逻辑表示片断规定在web服务消息 中被要求的加密密钥信息和加密数据信息。对另一个例子,基本规则可以提供指令,用于将如下安全性策略片断<sp:X509Token spIncludeToken =" AlwaysToRecipt" ><sp:ffssX509V3Tokenl0/></sp:X509Token>转换为策略谓词逻辑表示的如下片断bst (iValueType ( . . #X509v3),iEncodingType ( . . #Base64Binary),iid(X509Token),BstVal)0175]在上述例子中,基本规则用于将要求消息的签名部分的X. 509安全性令牌的安全 、生策略片断转换为规定消息应当具有X. 509 二进制签名令牌(bst)的“bst”策略谓词逻辑 表示片断。
0176]对于另一个例子,基本规则可以提供指令,用于将如下安全性策略片断
0177]<sp UsernameToken sp: IncludeToken =" AlwaysToRecipt “ >
0178]<sp:WssUsernameTokenlO/>
0179]</sp:UsernameToken)
0180]转换为策略谓词逻辑表示的如下片断
0181]usernametoken (
0182]un(ID),
0183]pwd (PWD))
0184]在上述例子中,基本规则用于将要求消息的签名部分的用户名安全性令牌的安全 生策略片断转换为规定消息应当具有用户名/ 口令组合的“用户名令牌(usernametoken),, 策略谓词逻辑表示片断。
0185]对于另一个例子,基本规则可以提供指令,用于将如下安全性策略片断
0186]<spMustSupportRefKeyIdentifier/)
0187]转换为策略谓词逻辑表示的如下片断
0188]keylD (iEncordingType,iValueType,keyldentifier).
0189]在上述例子中,基本规则用于将要求web服务消息以支持参考令牌识别符的安全 生策略片断转换为规定消息应当规定参考密钥识别符的“密钥ID(keylD) ”策略谓词逻辑表 示片断。
0190]对于另一个例子,基本规则可以提供指令,用于将如下安全性策略片断
0191]<sp:MustSupportRefIasuerSerial/>
0192]转换为策略谓词逻辑表示的如下片断
0193]STR(
0194]X509IssuerSerial (
0195]X509IssuerName(DName),
0196]X509SerialNumber(sNumber))).
0197]在上述例子中,基本规则用于将要求web服务消息以支持对令牌发布者的参考的 安全性策略片断转换为规定消息应当规定X. 509发布者的“STR”策略谓词逻辑表示片断。
0198]对于另一个例子,基本规则可以提供指令,用于将如下安全性策略片断
0199]〈spMustSupportRefEmbeddedToken/>
0200]转换为策略谓词逻辑表示的如下片断
0201]STR(
0202]Embedded(@id(***), ***))
0203]在上述例子中,基本规则用于将要求web服务消息以支持对嵌入令牌的参考的安 全性策略片断转换为规定消息应当规定嵌入的安全性令牌的标识符的“STR”策略谓词逻辑 表示片断。读者将注意到,基本规则从安全性策略片断产生的上述策略谓词逻辑表示片断 是Prolog规则的片断。上述Prolog规则片断被示出用于解释而不是限制。基本规则可以
14用于将安全性策略片断转换为本领域技术人员将想到的策略谓词逻辑表示片断的其他形 式。结构规则是将安全性策略(106)的消息单元结构要求表达为策略谓词逻辑表示 (101)的转换规则。例如,安全性策略中的“布局(Layout)”单元定义了 SOAP消息标题中 的单元顺序,并且安全性策略中的“EncryptBeforeSigning”单元要求加密必须在签名之前 被执行。合并规则是定义如何将由基本规则创建的策略谓词逻辑表示片断合并成单个策 略谓词逻辑表示的转换规则。只使用基本规则和结构规则,构建的策略谓词逻辑表示可能 具有冗余单元或者可能缺乏单元之间的必要关联。例如,考虑web服务安全性策略的如下 部分<spAsymmctricBinding><sp:InitiatorToken><sp:X509Token spIncludeToken =" AlwaysToRecpt" ><sp:ffssX509V3Token 10/></sp:X509Token></sp:InitiatorToken><sp:AlgorithmSuite><sp:Basic256/></sp:AlgorithmSuite></sp:AsymmetricBinding><sp:SignedParts><sp:Body/></sp:SignedParts>以及其对应的策略谓词逻辑表示的如下部分bst (iValueType ( . . #X509v3),iEncodingType ( . . #Base64Binary),iid(X509Token),BstVal),…sig(sigInfo(cl4nMethod(iAlgorithm(. . . /xml-exc_cl4n#)),sigMethod(iAlgorithm(. . . /xmldsig#rsa_shal)),ref (iURL (BodylD),transforms (transform(iAlgorithm(. . . /xml-exc_cl4n#))),
digestMethod(iAlgorithm(. . . /xmldsig#shal)),digestValue(dVal)))sigValuc(sVal),keylnfo(str(Referenee(iURI(#X509Token)))))
…body(iid(BodylD))利用基本规则,“X509TOken”单元和“SignedParts”单元被分别转换为“bst”单 元和“sig”单元。在应用合并规则时,读者将注意到在安全性策略中的“AlgorithmSuite” 单元下的“Basic256”标识符用于规定签名的算法。这样,上述例子中的合并规则通过应用 “SignedParts”单元创建的签名单元必须参考“InitiatorToken”单元中规定的令牌的规 则,将X. 509令牌与“sig”单元相关联。图3的方法还包括提供(304)表示安全性策略简档(103)的一个或多个规则的 简档谓词逻辑表示(104)。图3的安全性策略简档(103)规定用于实现web服务间消息交 换中的安全性的规则或者指南。可以利用组织自身的私有安全性指南集、安全性指南的行 业标准集(如WS-I基本安全性简档规范),或者本领域技术人员将想到的任何其他实现方 式,实现安全性策略简档(103)。图3的简档谓词逻辑表示(104)规定安全性简档(103)和 web服务消息之间的关系,也就是说,web服务消息是否与安全性简档(103)相符。为了进 一步解释,考虑有关根据WS-I基本安全性简档规范实现的安全性简档中的安全性令牌子 站(substation)的如下指南C5443 当签名者的 SECURITY_T0KEN 是 INTERNAL_SECURITY_TOKEN 时,SIGNED_ INF0R可以包括SIG_REFERENCE,其参考签名者的SECURITY_T0KEN,以防止用使用相同密钥 的另一个SECURITY_T0KEN进行替代。软件开发者可以提供上述示例性安全性简档规则的如下简档谓词逻辑表示01 :c5443(E)-02 ...03 sec (04:sig(...05:ref (‘ iURL' (BodylD), )06:ref (' iURL' (TokenID), )07 ),08: B = body(' iid' (BodylD), bodyValue).01-08行中的上述示例性安全性简档规则被实现为Prolog规则。01行中的 "c5443(E) ”用作Prolog规则的头,并且02-08行中的所有内容用作Prolog规则的主体。 上述Prolog规则规定与Prolog规则的主体中的目标相符的所有web服务消息(即,签名 包括参考签名者安全性令牌的签名参考),也与安全性简档规则“c5443”相符。也就是说, 如果上述Prolog规则的02-08行中的每个目标对于特定web服务消息为真,那么该web服 务消息与安全性简档规则“c5443”相符为真。图3的方法还包括根据策略谓词逻辑表示(101)和简档谓词逻辑表示(104)确定 (306)安全性策略(106)是否满足安全性策略简档(103)。通过确定是否存在满足策略谓 词逻辑表示(101)并且不满足简档谓词逻辑表示(104)的web服务消息,可以执行根据图3 的方法确定(306)安全性策略(106)是否满足安全性策略简档(103)。通过利用策略谓词 逻辑表示(101)和简档谓词逻辑表示(104)执行Prolog表达式,可以执行确定是否存在满 足策略谓词逻辑表示(101)并且不满足简档谓词逻辑表示(104)的web服务消息。例如,考虑示例性策略谓词逻辑表示“myPolicy”和示例性简档谓词逻辑表示“c5443”。利用这些 示例性表示,执行如下Prolog表达式评估为真或假myPolicy(E), c5443(E)如果存在不满足“c5443”安全性简档规则但的确满足“myPolicy”安全性策略的 web服务消息“E”,那么上述示例性Prolog表达式评估为真。如果不存在不满足“c5443” 安全性简档规则但的确满足“myPolicy”安全性策略的web服务消息“E”,那么上述示例 性Prolog表达式评估为假。因此,如果表达式“myPolicy (E), c5443 (E) ”评估为假, 那么安全性策略(106)满足安全性策略简档(103)。然而,如果表达式“myPolicy (E), c5443(E)”评估为真,安全性策略(106)不满足安全性策略简档(103)。如下文中将更详细 地讨论的,当安全性策略(106)不满足安全性策略简档(103)时,Prolog可以提供满足表 达式“myPolicy (E), c5443 (E),,的web服务消息的例子,从而给策略开发者提供示例性 消息,该消息表明安全性策略(106)不满足安全性策略简档(103)。策略开发者可以利用这 种示例性消息来识别为什么安全性策略(106)不满足安全性策略简档(103)。从上述讨论 中,读者可以注意到,在安全性策略(106)和安全性简档(103)以谓词逻辑表示被表示后, 那么可以仅仅通过利用该表示评估谓词逻辑表达式来执行确定(306)安全性策略(106)是 否满足安全性策略简档(103)。图3的方法还包括如果安全性策略(106)满足安全性策略简档(103),通知(308) 用户安全性策略有效。根据图3的方法通知(308)用户安全性策略有效可以通过在图形用 户界面(⑶I)上向用户呈现安全性策略(106)与安全性策略简档(103)相符的通知来执 行。图3的方法还包括如果安全性策略(106)不满足安全性策略简档(103),则通知 (310)用户安全性策略(106)与安全性策略简档(103)的至少一个规则不相符。根据图3 的方法通知(310)用户安全性策略(106)与安全性策略简档(103)的至少一个规则不相符 可以通过在⑶I上向用户呈现安全性策略(106)与安全性策略简档(103)不相符的通知来 执行。根据图3的方法通知(310)用户安全性策略(106)与安全性策略简档(103)的至少 一个规则不相符还可以通过向用户提供消息的例子表明安全性策略(106)不满足安全性 策略简档(103)来执行。例如,再次考虑上述示例性Prolog表达式myPo 1 icy (E), c5443 (E)如果上述Prolog表达式评估为真,那么Prolog返回满足该表达式的web服务消 息“E”的实例。也就是,Prolog返回不满足“C5443”安全性简档规则但的确满足“myPolicy” 安全性策略的示例性消息。表明安全性策略(106)不满足安全性策略简档(103)的消息 的这种例子对于软件开发者修改安全性策略(106)以与安全性策略简档(103)相符是有用 的。参考图3的上述解释描述了相对于安全性简档的规则的、根据本发明实施例的用 于web服务的安全性策略验证。如上所述,根据本发明实施例的用于web服务的安全性策 略验证也可以相对于其中利用策略的运行时环境的运行时配置来执行。例如,这种验证确 保调用X. 509密钥的安全性策略被部署在实际上具有X. 509密钥的环境中。为了进一步解 释,图4描绘了示出根据本发明实施例的用于web服务的安全性策略验证的另一个示例性 方法的流程图。图4的方法包括将用于web服务的安全性策略(106)转换(300)为策略谓
17词逻辑表示(101)。以类似于上面参考图3描述的方式的方式,执行根据图4的方法的将用 于web服务的安全性策略(106)转换(300)成为策略谓词逻辑表示(101)。图4的方法还包括提供(400)表示运行时配置环境(107)的一个或多个配置参数 的运行时配置谓词逻辑表示(105)。图4的运行时配置环境(107)规定有关用于执行特定 web服务的针对特定平台的环境的信息。图4的运行时配置谓词逻辑表示(105)规定运行 时配置环境(107)与web服务消息之间的关系,也就是,运行时配置环境是否支持web服条 消息。例如,考虑特定运行时配置环境的如下运行时配置谓词逻辑表示01 =RTEnvironment(E)-02 E = env (H, B),03: H = h (Sec),04 See = sec (...)05 B = body(...).01-05行中的上述示例性运行时配置谓词逻辑表示被实现为Prolog规则。01行 中的“RTEnvironment(E) ”用作Prolog规则的头,02-05行中的所有内容用作Prolog规则 的主体。上述Prolog规则描述特定运行时配置环境支持的所有web服务消息“E”。也就是 说,对于特定运行时配置环境支持的所有消息,规则“RTEnviroment (E),,为真,并且对于特 定运行时配置环境不支持的所有消息,规则“RTEnviroment (E),,为假。图4的方法包括根据策略谓词逻辑表示(101)和运行时配置谓词逻辑表示(105), 确定(404)安全性策略(106)与运行时配置环境(107)是否匹配。通过确定是否存在运行 时配置环境(107)不支持但是的确满足安全性策略(106)的消息,可以执行根据图4的方 法的确定(404)安全性策略(106)与运行时配置环境(107)是否匹配。通过使用策略谓词 逻辑表示(101)和运行时配置谓词逻辑表示(105)执行Prolog表达式,可以执行确定是否 存在运行时配置环境(107)不支持但的确满足安全性策略(106)的消息。例如,考虑示例 性策略谓词逻辑表示“myPolicy”和示例性运行时配置谓词逻辑表示“RTEnvironment”。利 用这些示例性表示,执行如下Prolog表达式评估为真或假myPolicy (E), RTEnvironment (E)如果存在“RTEnvironment”所表示的运行时环境不支持但的确满足“myPolicy” 安全性策略的web服务消息“E”,则上述示例性Prolog表达式评估为真。如果不存 在“RTEnvironment”所表示的运行时环境不支持但的确满足“myPo 1 icy”安全性策略 的web服务消息“E”,则上述示例性Prolog表达式评估为假。因此,如果Prolog表达式 “myPolicy (E), RTEnvironment ) ”评估为假,那么安全性策略(106)与运行时配置环境 (107)匹配。然而,如果Prolog表达式“myPolicy (E), RTEnvironment (E) ”评估为真,那 么安全性策略(106)与运行时配置环境(107)不匹配。读者将注意到,在安全性策略(106) 和运行时配置环境(107)以谓词逻辑表示被表示之后,则可以仅仅通过利用该表示评估谓 词逻辑表达式来执行确定(404)安全性策略(106)是否与运行时配置环境(107)匹配。图4的方法包括如果安全性策略(106)与运行时配置环境(107)匹配,则通知 (406)用户安全性策略(106)与运行时配置环境(107)相符。通过在图形用户界面(GUI) 上向用户呈现安全性策略(106)与运行时配置环境(107)相符的通知,可以执行根据图4 的方法的通知(406)用户安全性策略(106)与运行时配置环境(107)相符。
如果安全性策略(106)与运行时配置环境(107)不匹配,图4的方法通知(408)用户安全性策略(106)与运行时配置环境(107)的至少一个配置参数不相符。通过在GUI 上向用户呈现安全性策略(106)与运行时配置环境(107)的至少一个配置参数不相符的通 知,可以执行根据图4的方法的通知(408)用户安全性策略(106)与运行时配置环境(107) 的至少一个配置参数不相符。也可以通过向用户提供表明安全性策略(106)与运行时配置 环境(107)的至少一个配置参数不相符的消息的例子,来执行根据图4的方法的通知(408) 用户安全性策略(106)与运行时配置环境(107)的至少一个配置参数不相符。例如,再次 考虑上述示例性Prolog表达式<formula>formula see original document page 19</formula>
如果上述Prolog表达式评估为真,那么Prolog返回满足该表达式的web服务消 息的实例。也就是说,Prolog返回“RTEnvironment”所表示的运行时环境不支持但的确满 足“myPolicy”安全性策略的示例性消息。表明安全性策略(106)与运行时配置环境(107) 的至少一个配置参数不相符的这种消息的例子对于软件开发者修改安全性策略(106)或 者运行时配置环境(107)可能是有用的。本发明的示例性实施例主要是在用于web服务的安全性策略验证的全功能计算 机系统的上下文中描述的。但是,本领域技术人员将认识到,本发明的实施例也可以在置于 用于任何适当的数据处理系统的计算机可读介质上的计算机程序产品中实现。这种计算机 可读介质可以是传输介质或者用于机器可读信息的可记录介质,包括磁性介质、光学介质 或者其他适当的介质。可记录介质的例子包括硬盘驱动器中的磁盘或者软盘、用于光学驱 动器的压缩盘、磁带以及本领域技术人员将想到的其他介质。传输介质的例子包括用于语 音通信的电话网络以及数字数据通信网络(例如Ethernets 和利用因特网协议及万维网 通信的网络以及无线传输介质,例如根据IEEE802. 11规范族实现的网络)。本领域技术人 员很容易认识到任何具有适当的编程装置的计算机系统将能够执行在程序产品中实现的 本发明的方法的步骤。本领域技术人员将很容易认识到,尽管本说明书中描述的一些示例 性实施例指向了安装在计算机硬件上并在其上执行的软件,但是,实现为固件或硬件的可 选实施例在本发明的范围内。本说明书的描述仅仅意在说明而非在限制的意义上进行解 释。
权利要求
一种用于web服务的安全性策略验证的设备,所述设备包括计算机处理器、可操作地耦接到所述计算机处理器的计算机存储器,所述计算机存储器具有置于其中的计算机程序指令,该计算机程序指令能够将用于web服务的安全性策略转换为策略谓词逻辑表示;提供表示安全性策略简档的一个或多个规则的简档谓词逻辑表示;根据策略谓词逻辑表示和简档谓词逻辑表示确定安全性策略是否满足安全性策略简档;以及如果所述安全性策略满足安全性策略简档,则通知用户安全性策略有效。
2.根据权利要求1的设备,其中将用于web服务的安全性策略转换为策略谓词逻辑表 示还包括根据基本规则、结构规则和合并规则,将用于web服务的安全性策略转换为策略 谓词逻辑表示。
3.根据权利要求1的设备,其中根据策略谓词逻辑表示和简档谓词逻辑表示确定安全 性策略是否满足安全性策略简档还包括确定是否存在满足策略谓词逻辑表示并且不满足 简档谓词逻辑表示的web服务消息。
4.根据权利要求1的设备,其中所述计算机存储器具有置于其中的计算机程序指令, 如果安全性策略不满足安全性策略简档,该计算机程序指令能够通知用户安全性策略与安 全性策略简档的至少一个规则不相符。
5.根据权利要求1的设备,其中所述计算机存储器具有置于其中的计算机程序指令, 该计算机程序指令能够提供表示运行时配置环境的一个或多个配置参数的运行时配置谓词逻辑表示;以及根据策略谓词逻辑表示和运行时配置谓词逻辑表示,确定安全性策略是否与运行时配 置环境匹配。
6.根据权利要求5的设备,其中计算机存储器具有置于其中的计算机程序指令,如果 安全性策略与运行时配置环境不匹配,该计算机程序指令能够通知用户安全性策略与运行 时配置环境的至少一个配置参数不相符。
7.根据权利要求5的设备,其中计算机存储器具有置于其中的计算机程序指令,如果 安全性策略与运行时配置环境匹配,该计算机程序指令能够通知用户安全性策略与运行时 配置环境相符。
8.一种用于web服务的安全性策略验证的计算机程序产品,所述计算机程序产品置于 计算机可读介质中,所述计算机程序产品包括计算机程序指令,该计算机程序指令能够将用于web服务的安全性策略转换为策略谓词逻辑表示;提供表示安全性策略简档的一个或多个规则的简档谓词逻辑表示;根据策略谓词逻辑表示和简档谓词逻辑表示,确定安全性策略是否满足安全性策略简 档;以及如果安全性策略满足安全性策略简档,则通知用户安全性策略有效。
9.根据权利要求8的计算机程序产品,其中将用于web服务的安全性策略转换为策略 谓词逻辑表示还包括根据基本规则、结构规则和合并规则,将用于web服务的安全性策略 转换为策略谓词逻辑表示。
10.根据权利要求8的计算机程序产品,其中根据策略谓词逻辑表示和简档谓词逻辑表示确定安全性策略是否满足安全性策略简档还包括确定是否存在满足策略谓词逻辑表 示并且不满足简档谓词逻辑表示的web服务消息。
11.根据权利要求8的计算机程序产品,其中还包括计算机程序指令,如果安全性策略 不满足安全性策略简档,该计算机程序指令能够通知用户安全性策略与安全性策略简档的 至少一个规则不相符。
12.根据权利要求8的计算机程序产品,还包括计算机程序指令,该计算机程序指令能够提供表示运行时配置环境的一个或多个配置参数的运行时配置谓词逻辑表示;以及根据策略谓词逻辑表示和运行时配置谓词逻辑表示确定安全性策略是否与运行时配 置环境匹配。
13.根据权利要求12的计算机程序产品,还包括计算机程序指令,如果安全性策略与 运行时配置环境不匹配,该计算机程序指令能够通知用户安全性策略与运行时配置环境的 至少一个配置参数不相符。
14.根据权利要求12的计算机程序产品,还包括计算机程序指令,如果安全性策略与 运行时配置环境匹配,该计算机程序指令能够通知用户安全性策略与运行时配置环境相 符。
15.根据权利要求8的计算机程序产品,其中计算机可读介质包括可记录介质。
16.根据权利要求8的计算机程序产品,其中计算机可读介质包括传输介质。
17.一种用于web服务的安全性策略验证的设备,所述设备包括计算机处理器、可操作 地耦接到所述计算机处理器的计算机存储器,所述计算机存储器具有置于其中的计算机程 序指令,该计算机程序指令能够根据基本规则、结构规则和合并规则,将用于web服务的安全性策略转换为策略谓词 逻辑表示;提供表示安全性策略简档的一个或多个规则的简档谓词逻辑表示;根据策略谓词逻辑表示和简档谓词逻辑表示确定安全性策略是否满足安全性策略简 档包括确定是否存在满足策略谓词逻辑表示并且不满足简档谓词逻辑表示的web服务消 息;如果所述安全性策略不满足所述安全性策略简档,则通知用户安全性策略与安全性策 略简档的至少一个规则不相符;提供表示运行时配置环境的一个或多个配置参数的运行时配置谓词逻辑表示;根据策略谓词逻辑表示和运行时配置谓词逻辑表示;以及如果安全性策略与运行时配置环境不匹配,则通知用户安全性策略与运行时配置环境 的至少一个配置参数不相符。
全文摘要
本发明公开了一种用于web服务的安全性策略验证的方法、设备和产品,包括将用于web服务的安全性策略转换为策略谓词逻辑表示;提供表示安全性策略简档的一个或多个规则的简档谓词逻辑表示;以及根据策略谓词逻辑表示和简档谓词逻辑表示确定安全性策略是否满足安全性策略简档。
文档编号H04L29/06GK101816006SQ200880106530
公开日2010年8月25日 申请日期2008年9月4日 优先权日2007年9月12日
发明者中村祐一, 佐藤史子, 钟显维 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1