首页> 中国专利> 断言消息签名

断言消息签名

摘要

本发明涉及一种用于将断言消息(200)从证明方(20)提供给信任方(40)的方法,所述方法包括步骤:创建包括一个或多个声明的断言(A);创建断言证明(pA);从所述断言(A)和所述断言证明(pA)创建临时私钥和相应的临时公钥(K);为所述临时公钥(K)创建密钥证明(pK);利用所述临时私钥创建断言消息签名(S);创建包括临时公钥(K)、断言证明(pA)、密钥证明(pK)、断言(A)、消息体(220)和所述断言消息签名(S)的断言消息(200)给信任方(40)。

著录项

  • 公开/公告号CN101411117A

    专利类型发明专利

  • 公开/公告日2009-04-15

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200780011449.6

  • 申请日2007-04-26

  • 分类号H04L9/32(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人曲瑞

  • 地址 美国纽约

  • 入库时间 2023-12-17 21:49:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-04

    未缴年费专利权终止 IPC(主分类):H04L 9/32 专利号:ZL2007800114496 申请日:20070426 授权公告日:20111214

    专利权的终止

  • 2011-12-14

    授权

    授权

  • 2009-06-10

    实质审查的生效

    实质审查的生效

  • 2009-04-15

    公开

    公开

说明书

技术领域

本发明涉及用于将断言消息从证明方(a proving party)提供给信任方(a relying party)的方法、系统、发送实体、接收实体、计算机程序、信号和断言消息格式。

背景技术

用户在浏览因特网或执行其它类型电子事务时,变得越来越关心其隐私。因此,用户身份的安全和改进的管理具有不断增长的需求。在最广泛的意义上,身份管理意味着管理关于人的所有个人信息,至少包括人的所有数字关系。商用案例是,例如减少用户管理成本以及一般地促进电子商务。身份管理是基础结构问题,其中类似因特网和网络标准的标准可能使几乎所有方受益。当今最主要的在线事务需要用户将其身份或某些属性提供给服务供应商。作为一种普遍流行的方案,用户在网络表格中输入未经认证的属性,其意味着服务供应商请求的属性比业务过程本身所需的属性多。服务供应商利用附加信息检查所提供属性的一致性检查。

联合身份管理(FIM)协议与这种方案相比具有多个优点。服务供应商可以准确地获得所需的属性,并且使这些属性由受信任的身份提供者认证。FIM协议遵循该机制来代表用户将请求者动作发送给身份提供者,在那里用户认证并且获得由服务供应商所请求的属性的证书。通过遵循数据最小化原则,即仅发送服务所需的用户数据,FIM方案可提高用户的私密性。FIM提供了在属性的安全性和用户的隐私方面有利的被广泛采用和标准化的协议。

匿名证书系统甚至提供了用于身份管理和属性交换的更强的方法。该概念由D.Chaum在″Security without identification:Transaction systems to make big brother obsolete.Communications ofthe ACM,28(10):1030-1044,1985年10月″中介绍。匿名证书系统的关键特性是匿名证书的发出事务不可链接到其显示事务。这允许用户保密匿名证书并且多次利用其来提供认证的属性数据给信任方。在2001年的Springer Verlag,93.118页,LNCS的2045卷,2001年EUROCRYPT,Advance in Cryptology,编辑B.Pfitzmann中的J.Camenisch和A.Lysyanskaya所著的″Efficient non-transferableanonymous multi-show credential system with optional anonymityrevocation″中公开了一种高级匿名证书系统。该高级匿名证书系统允许即使相同证书的多个显示也是彼此不可链接的。该系统进一步推广至所谓的私有证件系统,其使用户有选择地示出有关身份属性的声明,所述身份属性被存储在单个证书中,并且支持更多不同的属性、有关那些属性的任意逻辑公式的表示,以及可验证加密属性和属性的加密确认的集成。当利用该系统断言属性时,身份提供者不必牵涉及事务处理中。用户提前获得其私有证件并且将其本地存储。每当用户希望提供认证的属性给服务提供者时,其使用一个或多个私有证件来生成新证明以在其私有证件中显示有关这些属性的逻辑公式。

上述的通用系统基于知识的零知识证明。当前签名标准,尤其诸如XML签名的稳定且牢固建立起来的标准的公钥签名标准,与零知识验证不兼容(可以从http://www.w3.org/TR/xmldsig-core/中得到的Donald Eastlake,Joseph Reagle,David Solo(等)所著:XML-Signature Syntax and Processing,W3C Recommendation,2002)。然而,XML-签名是大多数FIM和WEB服务(WS)安全性架构的基础。

本发明的目的是为身份管理提供改进的解决方案。

发明内容

本发明涉及如独立权利要求中所定义的方法、系统、发送实体、接收实体、计算机程序、信号和断言消息格式。在所附的从属权利要求中提供了本发明的其它实施例。

根据本发明的一个方面,提供了一种用于将断言消息从证明方提供给信任方的方法,所述方法包括步骤:

-创建包括一个或多个声明的断言,

-创建断言证明,

-从所述断言和所述断言证明创建临时私钥和相应的临时公钥,

-为所述临时公钥创建密钥证明,

-利用所述临时私钥创建一个断言消息签名,

-创建断言消息,其包括所述临时公钥、所述断言证明、所述密钥证明、所述断言、消息体和所述断言消息签名。

在根据本发明的本方面所述的方法中,从断言和断言证明创建临时私钥和临时公钥的密钥对。这将断言和断言证明绑定到消息体。

断言的声明可涉及证明方的任何属性。例如,声明可包括有关证明方的身份的信息,例如有关证明方的年龄、居所、国籍或信用卡的信息。有关证明方的属性的声明可被指定为逻辑公式。

传统公钥签名需要公钥证书与签名一起被发送。类似地,根据本发明的本方面的断言、断言证明和临时公钥可被认为对应于传统公钥签名机制的公钥证件。

证明方可以是希望提供有关其属性的声明给信任方的任何实体。例如,证明方可以是诸如因特网的网络的用户。在其它情况下,证明方可以是一种硬件设备,其通过特性证明来证明有关其自身或强化通信的中间方的特性。

断言证明提供了在断言中所做的声明的加密证明。利用断言证明,在断言中所做的声明可被信任方验证。

断言可被断言证明暗示而无需被明确表示。

信任方可以是请求有关证明方的信息的任何实体。例如,信任方可以是经由因特网提供服务的服务提供者。

利用临时私钥创建断言消息签名。利用断言消息签名,断言和断言证明可被安全地绑定到消息的消息体。

最后,创建所述断言消息,其包括断言、断言证明、临时公钥、密钥证明、主消息体和断言消息签名。然后,断言消息可被发送到信任方。

该方法有下列好处,即其允许利用要求私钥/公钥签名的方法或协议交换断言和相应断言证明。

根据本发明的一个实施例,利用安全绑定函数创建临时私钥、临时公钥和密钥证明。

安全绑定函数可理解成一种这样的函数,其允许验证包括临时私钥和临时公钥的临时密钥对是伪随机地、随机地或不可预测地从断言证明和断言生成的。换言之,安全绑定函数将临时密钥对和利用临时密钥对所创建的断言消息签名分别绑定到断言和断言证明。换言之,安全绑定函数被用于生成临时私钥,以及用于对被用作临时私钥的加密确认的相应临时公钥进行正确性证明。

根据本发明的一个实施例,所述安全绑定函数是可验证的随机函数。

可验证的随机函数允许一方通过对一个公知的值应用可验证的随机函数而生成一个秘密值。可验证的随机函数的数学结构允许该方能够创建该秘密值是据此而生成的证明。利用可验证的随机函数,分别为断言和断言证明伪随机地和新近地生成临时私钥和临时公钥。

根据该实施例,密钥证明可证明临时密钥对是通过对断言、断言证明和诸如时间戳的其它可选输入参数应用安全绑定函数,具体地说应用可验证的随机函数而创建的。

根据本发明的该方面的一个实施例,断言消息签名包括子步骤:

-创建所述断言消息的一个或多个部分的断言消息摘要,

-利用所述临时私钥从所述断言消息摘要创建所述断言消息签名。

这提高了签名产生的效率,尤其对于信息量大的签名。断言消息摘要应当从应签名的断言消息的所有部分中创建。根据本发明的另一个实施例,利用散列函数计算断言消息摘要。

根据本发明的该方面的另一个实施例,断言消息签名是封装签名。这种封装签名从整个断言消息中创建摘要。这有下列好处,即消息的所有部分都被封装签名来签名。

根据本发明的该方面的另一个实施例,断言证明和/或密钥证明是一种零知识验证。这有下列好处,即证明方不必向信任方公开其身份。其可保持完全匿名。其允许证明方有选择地提供有关其自身的声明,而对多个交易保持完全不可链接。

根据本发明的另一个实施例,断言证明和/或密钥证明是一种最少公开证明。这有下列好处,即其增加了可使用的算法的数量并且提供简单的实施解决方案。

根据本发明的另一个实施例,断言证明和/或密钥证明是一种非交互证明。通过将,例如Fiat-Shamir启发式算法应用于交互式零知识证明,可以建立非交互证明。由于这些非交互协议不要求任何交互,所以非交互证明适合于单个断言消息。

根据本发明的另一个实施例,临时公钥和临时私钥是数字签名算法(DSA)密钥对。

DSA是一种广泛使用的签名算法。根据本发明的方法允许零知识或最少公开协议与此类DSA签名的组合。

根据本发明的另一个实施例,断言消息签名是根据扩展标记语言数字签名(XML-DSIG)标准的签名。XML-DSIG签名标准是许多WEB服务标准,例如WS安全标准的签名标准。

根据本发明的另一个实施例,可验证的随机函数是由Dodis和Yampolsky提出的函数。

该可验证的随机函数的使用是一种非常有效的解决方案。

可验证的随机函数的详细描述在“2005年,公钥密码,LNCS的卷3386,416.431页,Y.Dodis和A.Yampolsky所著的A VerifiableRandom Function with Short Proofs and Keys.”中给出。

该函数已经包括基于双线性映射的密钥证明。

代替该基于双线性映射的密钥证明,可使用离散对数知识的非交互零知识证明。

根据本发明的另一个实施例,断言证明源自于证明方的一个或多个私有证件。私有证件系统是其中支持复杂属性声明的匿名证书系统的概括。私有证件系统允许从身份提供者获得私有证件,并且使用其形成经证实的声明,提交和使用两者都可以以私密性增强的方式进行。用户或证明方从身份提供者获得私有证件,并且将这些证件在本地保存。证件可具有较长寿命,例如多年。一旦被获得,证件从不发送给信任方。每当用户需要将具有涉及属性的声明的断言提供给信任方时,其使用一个或多个其私有证件来以一种受控方式发布有关其第三方签署的属性的部分信息。可以执行该发布而无需涉及身份提供者。

根据本发明的另一个实施例,在联合身份管理(FIM)系统中执行该方法。联合身份管理(FIM)协议是三种类型参与者之间的协议。用户(证明方),其身份将被联合;身份提供者,其证实身份;以及信任方,其是用户身份的接收方。当今的标准化和建立的FIM协议典型地利用签名的断言令牌,这些令牌从身份提供者被传送给用户以及从用户传送到信任方。此类协议的一个著名例子是如“http://www-128.ibm.com/developerworks/library/,2003年7月,WS联盟:Active Requestor Profile,1.0版本,C.Kaler和A.Nadalin.”中指定的WS-联盟主动请求方简表。后者基于包含在WS安全消息中的安全断言。每当请求用户的身份,由请求方(证明方)从身份提供者获得安全断言,然后转发给信任方。这允许以下特性:i)由身份提供者认证属性,以及ii)正是所需的属性被传送给信任方。第一个特性为信任方提供了安全性,第二个为用户(证明方)提供了私密性。

根据本发明的第二方面,提供了一种用于评估断言消息的方法,所述断言消息包括具有一个或多个声明的断言、所述断言的断言证明、从所述断言和所述断言证明创建的临时公钥、所述临时公钥的密钥证明、消息体和断言消息签名,所述方法包括步骤:

-利用所述密钥证明检查所述临时公钥,

-利用所述断言证明检查所述断言,

-利用所述临时公钥检查所述断言消息签名,

-如果所述断言消息签名、所述临时公钥和所述断言的检查结果为肯定,则将所述断言消息评估为有效。

接收断言消息的信任方不得不检查临时公钥的有效性、断言的有效性和断言消息签名的有效性,以便评估断言消息的有效性。

优选地,断言消息签名包括临时公钥的索引(reference)、临时公钥、相应密钥证明的索引,以及密钥证明、断言和断言证明的索引。然后,临时公钥的索引可从断言消息签名中提取,以及密钥证明的索引从临时公钥中提取。可以利用密钥证明验证临时公钥。跟随断言和相应的断言证明的索引,利用断言证明可以验证在断言中所做的声明。然后,可以利用临时公钥验证断言消息签名。

应该注意到,可以按不同顺序执行本发明的不同方面的各步骤。更进一步地,所述步骤还可以被组合,即例如两个或更多步骤被一起执行。

本发明的另一方面涉及一种计算机程序,其包括当所述计算机程序在计算机系统上被执行时,用于实现如权利要求1至13中任何一个所述方法的步骤的指令。

本发明的另一方面涉及一种用于将断言消息从证明方发送到信任方的发送实体,提供所述发送实体以用于:

-创建包括一个或多个声明的断言,

-创建断言证明,

-从所述断言和所述断言证明创建临时私钥和相应的临时公钥,

-为所述临时公钥创建密钥证明,

-利用所述临时私钥创建断言消息签名,

-发送包括所述临时公钥、所述断言证明、所述密钥证明、所述断言、主消息体和所述断言消息签名的所述断言消息给所述信任方。

这种发送实体可以是例如证明方的计算机。

本发明的另一方面涉及一种用于从证明方接收断言消息的接收实体,所述断言消息包括具有一个或多个声明的断言、所述断言的断言证明、从所述断言和所述断言证明创建的临时公钥、所述临时公钥的密钥证明、消息体和断言消息签名,提供所述接收实体以用于:

-利用所述密钥证明检查所述临时公钥,

-利用所述断言证明检查所述断言,

-利用所述临时公钥检查所述断言消息签名,

-如果所述断言消息签名、所述临时公钥和所述断言的检查结果为肯定的,则将所述断言消息评估为有效。

这种接收实体可以是例如信任方的服务器。

本发明的另一方面涉及一种包括断言消息的信号,其中所述断言消息包括消息头和消息体,其中所述消息头包括具有一个或多个声明的断言、断言证明、从所述断言和所述断言证明创建的临时公钥、所述临时公钥的密钥证明以及利用相应于所述临时公钥的临时私钥所创建的断言消息签名。

本发明的另一方面涉及一种规定断言消息的格式的断言消息格式,其中根据所述格式的断言消息包括消息头和消息体,其中所述消息头包括具有一个或多个声明的断言、断言证明、从所述断言和所述断言证明创建的临时公钥、所述临时公钥的密钥证明以及利用相应于所述临时公钥的临时私钥所创建的断言消息签名。

本发明的另一方面涉及一种系统,其包括如权利要求15所述的发送实体和如权利要求16所述的接收实体。

本发明的上述不同方面提供了一种通用结构,其使基于零知识证明协议,如私有证件系统的语义能传送给诸如XML-DSIG密钥和签名的公钥签名系统。由于根据许多工业标准,尤其是WEB服务(WS)安全标准,公钥签名系统被广泛使用并且是强制的,所以可广泛适用本发明。

本发明的不同方面允许将私有证件系统集成到WS安全中,因此使新的WS联合主动请求方简表能具有提高的隐私特性。

特别地,上述本发明的不同方面能提供满足以下要求的系统:

(a)由于XML-DSIG标准已经稳定,并且改变到零知识证明可能使XML-DSIG语义复杂得超出可管理性,所以不改变XML-DSIG标准。

(b)不诉诸于对超出原始目的的标准部分进行非常广泛的解释,并且甚至不诉诸于违反其期望语义。

这利用WS安全环境中的现有标准语义学给无缝集成私有证件系统提供了可能性。

附图说明

下面,参照以下示意附图,仅通过例子详细地描述本发明的优选实施例。

图1示出了根据本发明的实施例的系统的示意图,

图2示出了根据本发明的实施例的消息流的示意图,

图3示出了根据本发明的实施例的断言消息的示意图,

图4示出了根据本发明的实施例创建断言消息的流程图,

图5示出了根据本发明的实施例验证断言消息的流程图,

图6示出了WS安全标准格式下的根据本发明的实施例的断言消息令牌的示意图。

附图仅提供图解的目的,而不必按比例代表本发明的实际例子。

术语表

以下是非正式的定义来帮助理解说明书。

用户或证明方:身份被管理的实体。通常用户或证明方是个人,但是至少小企业通常会像个人一样与其它企业交互,例如在旅行预约和信息搜集时。在其它情况下,证明方可以是硬件设备,其证明通过特性证明来增强通信的其自身或中间方的特性。

信任方:一种实体,例如,由例如服务器代表的组织,其期望知道用户或证明方的名字或属性。这种组织包含一个人的所有通信对方,例如银行、医生、同事、因特网服务提供商和家庭。

身份提供者:一种为人存储与身份相关的信息的实体。这可以是银行、认证机构(CA)、因特网服务提供商等。

术语“计算机”包含比如PC的设备,但是也包括数字助理、移动电话和其它电子设备。

具体实施方式

参照图1,描述了根据本发明的示例性实施例的系统10的总布置图。附图中,相同标号被用来表示相同或类似部分。系统包括证明方20,身份提供者30和信任方40。在该例子中,证明方20是希望与信任方40进行交易,例如购买交易的用户。证明方20在计算机60上运行客户端应用程序50,例如网页浏览器。身份提供者30运行服务器70,而信任方40运行服务器80。经由通信线路90,计算机60可连接到身份提供者30的服务器70,以及信任方40的服务器80上。通常通过网络,例如因特网提供通信线路90。身份提供者40可以是,例如一家银行或提供身份管理服务的其它专业机构。身份提供者30通常为提交与身份相关的信息(IRI)而设。术语与身份相关的信息IRI被理解为与人或用户相关的任何信息。与身份相关的信息IRI包括名字、地址、组成员资格、特许凭证、人口资料、个人偏好、日历项,医药和财务信息,以及有关个人的或在用户名下可以数字方式存储的一切别的东西。证明方20可期望这种IRI,例如用于访问控制、授权、个性化、认证、登录、商业、医药、政府或其它事件。特别地,身份提供者30为提交属性证书,还有所表示的私有证件或用户证件而设。身份提供者30的服务器70、证明方20的计算机60以及信任方40的服务器80包括私有证件系统插件100。该私有证件系统插件100有利于系统10担当私有证件系统。私有证件系统是匿名证书系统的概括,在匿名证书系统中支持关于属性声明的复杂断言。证明方20可从身份提供者30获得一个或多个私有证件110。私有证件110可在证明方20的计算机60上被本地存储。证明方20可使用私有证件110来建立经证实的断言120。经证实的断言120包括具有关于证明方20属性的声明的断言和相应的断言证明。通过发送这些经证实的断言120给信任方40,证明方20在保持完全匿名和不可链接的同时,可向信任方40证明这些断言。例如,利用非交互零知识或非交互最少泄露证明可建立对断言的证明。

图2示出了根据本发明的示例性实施例的断言消息200的格式的示意图。断言消息200是如参照图1所述的经证实的断言120的优选实施例。其包括消息头210和消息体220。消息头210包括具有断言A的断言令牌230、证明令牌240、具有临时公钥K的临时公钥令牌250和具有签名S的封装签名令牌260。证明令牌240包括断言证明令牌241和密钥证明令牌242,断言证明令牌241具有该断言的断言证明pA,密钥证明令牌242具有临时公钥K的密钥证明pK。封装签名令牌260包括临时公钥令牌250的索引270。临时公钥令牌250包括证明令牌240的索引280,而证明令牌240包括断言令牌230的索引290。消息头210可包括其它单元或令牌。消息体220可包括各种消息,例如图1中信任方40的访问服务的请求。

计算机60可作为用于将断言消息200从证明方20发送到信任方40的发送实体。

服务器80可作为用于接收和验证断言消息200的接收实体。

图1中所示的环境有利于描述以下用于将如图2所示的断言消息200从证明方20提供给信任方40的流程。

图3示出了本发明的示例性实施例的消息流的示意图。其中,用带标记的箭头描述证明方20与身份提供者30和信任方40之间的消息流,箭头分别用罗马数字指示。用圆圈中的罗马数字来指明其它步骤或子步骤。该流程被理解为按由增大的罗马数字的顺序所指明地、自顶向下顺序地执行。然而,应该注意到该协议的多个实例无需指定顺序,可以并行运行。

在步骤I中,证明方20向身份提供者30请求包括例如出生日期、邮政编码和有关证明方20的身份的进一步信息的私有证件。身份提供者30发出所请求的私有证件,并且在步骤II中将其发送回给证明方20。在步骤III中,证明方20将该私有证件存储在计算机60上。步骤I和II可被重复执行若干次,即证明方20可将若干私有证件存储在计算机60上。

如果证明方20希望使用信任方40的服务,则其在步骤IV中向信任方40发送请求以获得所期望服务的政策。在步骤V中,信任方40将政策发送回证明方20。在该例子中,假定所请求服务的政策需要用户大于21岁的证明。在步骤VI中,证明方20分析所接收的政策,并且把它与存储在计算机60上的可用私有证件110相比较。如果一个或多个适当的私有证件110有效,则用户或证明方20可分别选择它,并且利用计算机60的私有证件系统插件100,创建断言消息,比如如图2所示的断言消息200。在该例子中,断言消息包括证明方20大于21岁的断言。该断言和相应断言证明可从私有证件的出生日期推导出。在步骤VII中,断言消息从证明方20被发送给信任方40。收到断言消息之后,信任方40在步骤VIII中检查断言消息有效性。如果断言消息已被证实为有效,则在步骤IX中,信任方40发送一个结果,比如所请求的信息,给证明方20。所请求的信息可以是例如仅大于21岁的人员可访问的网页。

如果证明方20希望使用信任方40的其它服务,则其在步骤X中向信任方40发送另一个请求以获得所期望服务的政策。在步骤XI中,信任方40将政策发送回证明方20。在该例子中,假定所请求服务的政策需要证明方20的邮政编码的证明。在步骤XII中,证明方20分析所接收的政策,并且把它与存储在计算机60上的可用私有证件110相比较。如果适当的私有证件110有效,则用户或证明方20可分别选择它,并且利用计算机60的私有证件系统插件100,创建经证实的断言,即断言和相应的断言证明。在该例子中,经证实的断言包括证明方20具有所指明的邮政编码的信息。此外,计算机60的私有证件系统插件100创建包括经证实的断言的另一个断言消息。在步骤XIII中,断言消息从证明方20被发送给信任方40。在收到断言消息之后,信任方40在步骤XIV中检查断言消息有效性。如果断言消息已被验证为有效,则在步骤VX中,信任方40发送一个结果,例如所请求的信息,给证明方20。

图2的断言消息格式可用于将使用私有证书系统的认证集成到标准公钥签名机制中,类似XML-DSIG。这可通过将使用私有证书的认证传送到使用临时公钥/私钥签名的认证中来建立,其中可利用该临时公钥/私钥签名生成XML-DSIG签名。对于该认证传送,安全模型假定证明方20不被信任方40信任。因此,应当强制要么证明方20根据协议如实地选择临时签名密钥对,要么验证中止。这可以通过设置这样的要求来实现:证明方总是为每个经证实的断言选择伪随机且新的临时签名密钥对。

临时签名密钥对的这一特性阻止了恶意证明方20可能试图多次使用临时签名密钥对、其它委托人的误绑定密钥对或将一个密钥对绑定到多个证书。根据本发明的该实施例,利用私有证书系统(例如,证明方20具有属性:att=′大于21岁′)作出的认证声明被转换成包括以下声明的断言:

(a)证明方20具有属性att(例如,大于21岁)。

(b)证明方20拥有对应于临时公钥K的临时私钥Ks。

(c)密钥对(Ks;K)对于该断言来说是伪随机和新近生成的。

针对每个由证明方20利用例如基于零知识证明的协议做出的声明,可以保证新的临时密钥对是新近和伪随机地生成的。此外,利用可验证的伪随机函数和相应的零知识证明表明正确计算了临时公钥,可以保证证明方20如实地创建了临时密钥对。一次性临时密钥对允许交易的不可链接性。

该临时密钥对可用于利用由经证明的断言所扩展的语义建立XML签名。经证明的断言具有三种令牌类型:断言令牌230、证明令牌240和临时公钥令牌250。临时公钥令牌250与涉及临时密钥对的特性和可靠产生的声明相关联。断言令牌230提供有关证明方20的属性的额外声明,它们与临时密钥对相关联。最后,证明令牌240拥有那些声明的两方面的证明:一方面,证明临时密钥对的特性和可靠产生;另一方面,证明有关证明方20属性的断言的额外声明。

在下文中,将更详细地说明断言消息的建立和验证。

作为先决条件,假定G是素数阶q的循环群,而g是其生成元,g和组G两者都是如图1所示的系统10的系统参数。选择G和g,使得其可被用作DSA签名方案的公共参数,DSA签名方案被所有系统参与者使用,即被身份提供者30、证明方20和信任方40使用。假定证明方20具有将被执行的协议所需的所有私有证件。还假定所有参与者具有需要作为协议的输入的证件验证密钥。作为先决条件,还假定可验证的随机函数对于所有使用系统的参与者,即证明方20、身份提供者30和信任方40有效。在如图1所示的私有证件系统插件100中可以使可验证的随机函数有效。由具有素模P(prime modulus p)和素数阶q的循环群G,以及该群的生成元g来定义该可验证的随机函数。

随后,描述作为证明方20(签名者)与信任方40(验证者)之间的协议的方法。协议接下去进行由证明方20完成的断言消息的创建,以及由信任方40完成的断言消息的验证。

图4示出了根据本发明的示例性实施例的创建如图3中所示的断言消息的流程图。

在步骤400中,证明方20从信任方40接收信任方40的政策(访问控制政策),它包括当前请求的访问信息。该步骤400对应于参照图2描述的步骤V和XI。

在随后步骤410中,针对私有证件和存储在证明方20的计算机60的私有证件系统插件100中的预定偏好,以及针对证明方20的输入,分析所接收的政策。

在步骤420中,作为前面步骤410的结果,创建断言。这种断言可以是,例如证明方20的年龄大于或等于21岁的声明。

在步骤430中,创建断言证明。根据本发明的该实施例,断言证明是一种知识的非交互式零知识证明,即其是断言有效性的证明,但是除了断言的有效性之外不传达任何其它信息。通过使用证明方20的私有证件110的子集、断言A、证件发行者的公钥以及其它公共参数作为输入,生成断言证明。

断言证明的一个例子的详细描述在“Springer Verlag,LNCS,2004年的有关安全协议的第十二届国际研讨会,BANGERTER E.,CAMENISCH,J.,和LYSYANSKAYA,A.所著的A cryptographicframework for the controlled release of certified data.”中给出。此处被参考引用。

为了以下说明,假定变量上下文为交互行为的安全上下文,例如,当前时间或来自信任方40的质询。

在随后的步骤440中,利用具有断言A、断言证明pA和安全上下文作为输入的Dodis和Yampolsky的可验证的随机函数,生成包括临时私钥Ks和临时公钥K的临时DSA密钥对以及密钥证明pK

步骤440包括以下子步骤:

a.)利用密码散列函数H计算中间值m作为A||pA||上下文的散列

b.)随机从{l,...,q}选择x

c.)计算中间值,y:=g^x

d.)计算临时私钥Ks,Ks:=1/(x+m)(mod q)

e.)计算临时公钥K,K:=g^{Ks}(mod p)

f.)利用由Camenisch和Stadler在″1997年,Springer Verlag,页410.424.,LNCS的1296卷,CRYPTO′97,编辑B.Kaliski,保密学的发展,J.Camenisch和M.Stadler所著的Efficient group signatureschemes for large groups.″中介绍的符号,计算密钥证明pK作为如下指定的非交互证明。

密钥证明pK的计算包括以下子步骤:

f1.)从Zq随机选择变量r1,其中Zq为来自0...q-1的整数的集合

f2.)从Zq随机选择变量r2

f3.)计算t1:=g^{r1}

f4.)计算t2:=g^{r2}

f5.)计算t3:=y^{r2}g^{mr2}

f6.)计算c:=H(t1,t2,t3,y,K,g,p,q)

f7:)计算s1:=r1+cx

f8.)计算s2:=r2+cKs

然后用(y,K,g,s1,s2,c)的集合建立最终的密钥证明pK

步骤b和c创建可验证的随机函数的实例。步骤d、e和f利用可验证的随机函数的实例创建临时密钥对和临时密钥对的密钥证明。

可选地,密钥证明可基于双线性映射。

在步骤450中,断言消息200被部分汇编成包括消息体210、临时公钥令牌250、包括断言证明令牌241和密钥证明令牌242的证明令牌240,以及断言令牌230。

在步骤460中,利用临时私钥Ks,计算封装的XML数字签名作为对步骤450的部分汇编的消息的断言消息签名。根据一个实施例,步骤460包括利用散列函数H创建步骤450的部分汇编的消息的断言消息摘要的子步骤。在随后的子步骤中,利用临时私钥Ks,从断言消息摘要中计算断言消息签名(S)。

在步骤470中,断言消息签名S被添加到断言消息200的消息头210。因此,得到如图2所示的断言消息200。

对于封装的签名S,可选地,可以通过仅对部分消息签名来创建断言消息签名。然而,至少应当签名断言证明pA

然后,在最终步骤480中,断言消息从证明方20被发送给信任方40。

图5示出了根据本发明的示例性实施例的验证断言消息200的流程图。由信任方40执行以下步骤。

在步骤500中,信任方40从证明方20中接收断言消息200。

在步骤510中,从断言消息200中提取断言证明pA和密钥证明pK、临时公钥K和断言消息签名S。

在步骤520中,利用可验证的随机函数验证临时公钥K。可验证的随机函数在信任方40的服务器80的私有证件系统插件100中有效。

在步骤520的第一子步骤中,利用密码散列函数H计算中间值m作为A||pA||上下文的散列。

在步骤520的第二子步骤中,验证零知识证明pK,其证明临时公钥K的密钥正确性。

临时公钥的验证包括以下子步骤:

a1.)计算u1:=y^{-c}g^{s1}

a2.)计算u2:=K^{-c}g^{r2}

a3.)计算u3:=g^{-c}y^{s2}g^{ms2}

a4.)计算c′:=H(u1,u2,u3,y,K,g,p,q)

a5.)比较c和c′,并且仅当c=c′时,验证密钥证明pK

在步骤530中,通过使用证明方20的私有证件的子集、断言A、私有证件的发行者,即身份提供者30的公钥以及其它公共参数作为输入,验证断言证明pA

在步骤540中,利用临时公钥K验证断言消息签名S。

如果在步骤520、530和540中执行的所有检查的结果为肯定的,则断言消息200被认为是有效的,并且在步骤550中发出断言消息200的验证。如果在步骤520、530和540中执行的检查之一的结果为否定的,则断言消息200被认为是无效的,并且在步骤560中放弃验证过程。

图6示出了根据WS安全标准实现的断言消息的消息头600的例子。该例子是WEB服务消息的WS安全头部的框架。注意到,在该例子中,名字空间wsse是WS安全之一,并且名字空间cred用于这里的扩展。

消息头600包括含有断言证明和密钥证明的证明部分610、含有断言的断言部分620、含有临时公钥的临时公钥部分630、以及含有封装签名的封装签名部分640。

任何公开的实施例可与所示和/或所述的一个或多个其它实施例。对于实施例的一个或多个特性也可能如此。

其它实施例细节

所述技术可以被实现成方法、装置或涉及软件、固件、微代码、硬件和/或其任何组合的制造产品。如此处所使用的术语″制造产品″是指在介质中实现的代码或逻辑,其中这种介质可包括硬件逻辑[例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等等],或者计算机可读介质,例如磁存储介质(例如硬盘驱动器、软盘、磁带等等)、光存储器(CD-ROM、光盘等等)、易失性和非易失性存储器设备[例如电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、固件、可编程逻辑等等]。计算机可读介质中的代码由处理器访问和执行。在其中编码代码或逻辑的介质还可以包括通过空间或诸如光纤、铜线等的传输介质传播的传输信号。在其中编码代码或逻辑的传输信号还可包括无线信号、卫星传输、无线电波、红外信号、蓝牙等等。在其中编码代码或逻辑的传输信号能够被发送站发送以及由接收站接收,其中编码在传输信号中的代码或逻辑在接收和发送站或设备处可被解码,并且被存储在硬件或计算机可读介质中。此外,“制造产品”可包括这样的硬件和软件部件的组合,其中嵌入、处理和执行代码。当然,本领域技术人员会认识到在不偏离实施例的范围的情况下,可做出许多修改,而且制造产品可包括任何信息承载介质。例如,制造产品包括已在其中存储了指令的存储介质,当由机器执行所述指令时,导致执行操作。

某些实施例可采取完全硬件实施例、完全软件实施例或包含硬件和软件单元两者的形式。在一个最优实施例中,本发明用软件实现,其包括但不局限于固件、常驻软件、微码等等。

此外,某些实施例可采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,它们提供程序代码以供计算机或任何指令执行系统或结合它们使用。为了该描述的目的,计算机可用或计算机可读介质可以是任何装置,其可包含、存储、通信、传播或传送程序以供指令执行系统、装置或设备或结合它们使用。该介质可以是电子、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的例子包含半导体或固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前例子包含压缩盘-只读存储器(CD-ROM)、读/写压缩盘(CD-R/W)和DVD。

术语“某些实施例”、“实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”意味着一个或多个(而不是所有)实施例,除非另外明确地指定。术语“包含”、“包括”、“具有”及其变型意味着“包括但不限于”,除非另外明确地指定。项目的列举列表不意味着任何或全部项目互斥,除非另外明确地指定。术语“一个”意味着“一个或多个”,除非另外明确地指定。

彼此通信的设备不一定彼此连续通信,除非另外明确地指定。此外,彼此通信的设备可直接通信或通过一个或多个中间者间接地通信。另外,描述具有彼此通信的若干组件的实施例不意味着需要所有这种组件。而是描述各种可选组件以说明很多种可能实施例。

此外,虽然处理步骤、方法步骤、算法等可按相继次序描述,这种处理、方法和算法可被配置成以其它顺序工作。换言之,可被描述的步骤的任何排序或顺序不一定表示按该顺序执行步骤的要求。本文所描述的过程的步骤可以按实际的任何顺序执行。此外,一些步骤可以同时、并联或并行执行。

当此处描述单个设备或产品时,显然多于一个设备/产品(无论是否协作)可被用来取代该单个设备/产品。类似地,当此处描述不止一个设备或产品时(无论是否协作),显然单个设备/产品可被用来取代该多于一个设备或产品。设备的功能性和/或特性可由没有明确描述成具有这种功能性/特性的一个或多个其它设备代替实施。因而,其它实施例不必包含设备本身。

本上下文中的计算机程序装置或计算机程序是指用任何语言、代码或符号的一组指令的任何表达式,所述指令旨在使具有信息处理能力的系统直接执行,或者在下列任意一个或两者之后执行具体的功能:a)变换到其它语言、代码或符号;b)以不同材料形式再现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号