断言消息签名的制作方法

文档序号:7676156阅读:160来源:国知局
专利名称:断言消息签名的制作方法
技术领域
本发明涉及用于将断言消息从证明方(a proving party )提供给 信任方(a relying party )的方法、系统、发送实体、接收实体、计算 机程序、信号和断言消息格式。
背景技术
用户在浏览因特网或执行其它类型电子事务时,变得越来越关心 其隐私。因此,用户身份的安全和改进的管理具有不断增长的需求。 在最广泛的意义上,身份管理意味着管理关于人的所有个人信息,至 少包括人的所有数字关系。商用案例是,例如减少用户管理成本以及 一般地促进电子商务。身份管理是基础结构问题,其中类似因特网和 网络标准的标准可能使几乎所有方受益。当今最主要的在线事务需要 用户将其身份或某些属性提供给服务供应商。作为 一种普遍流行的方 案,用户在网络表格中输入未经认证的属性,其意味着服务供应商请 求的属性比业务过程本身所需的属性多。服务供应商利用附加信息检 查所提供属性的一致性检查。
联合身份管理(FIM)协议与这种方案相比具有多个优点。服务 供应商可以准确地获得所需的属性,并且使这些属性由受信任的身份 提供者认证。FIM协议遵循该机制来代表用户将请求者动作发送给身 份提供者,在那里用户认证并且获得由服务供应商所请求的属性的证 书。通过遵循数据最小化原则,即仅发送服务所需的用户数据,FIM 方案可提高用户的私密性。FIM提供了在属性的安全性和用户的隐私 方面有利的^皮广泛采用和标准化的协+义。
匿名证书系统甚至提供了用于身份管理和属性交换的更强的方 法。该概念由D. Chaum在"Security without identification :Transaction systems to make big brother obsolete. Communications of the ACM, 28 ( 10 ):1030-1044, 1985年10月"中介绍。匿名证书系统的 关键特性是匿名证书的发出事务不可链接到其显示事务。这允许用户 保密匿名证书并且多次利用其来提供认证的属性数据给信任方。在 2001年的Springer Verlag , 93.118页,LNCS的2045巻,2001年 EUROCRYPT, Advance in Cryptology,编辑B. Pfitzmann中的J. Cameniseh和A. Lysyanskaya所著的"Efficient non-transferable anonymous multi-show credential system with optional anonymity revocation"中公开了 一种高级匿名证书系统。该高级匿名证书系统允 许即使相同证书的多个显示也是彼此不可链接的。该系统进一步推广 至所谓的私有证件系统,其使用户有选择地示出有关身份属性的声明, 所述身份属性被存储在单个证书中,并且支持更多不同的属性、有关 那些属性的任意逻辑公式的表示,以及可验证加密属性和属性的加密 确认的集成。当利用该系统断言属性时,身份提供者不必牵涉及事务 处理中。用户提前获得其私有证件并且将其本地存储。每当用户希望 提供认证的属性给服务提供者时,其使用一个或多个私有证件来生成 新证明以在其私有证件中显示有关这些属性的逻辑公式。
上述的通用系统基于知识的零知识证明。当前签名标准,尤其诸 如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 Verifiable Random Function with Short Proofs and Keys."中给出。
该函数已经包括基于双线性映射的密钥证明。
代替该基于双线性映射的密钥证明,可使用离散对数知识的非交 互零知识证明。根据本发明的另一个实施例,断言证明源自于证明方的一个或多 个私有证件。私有证件系统是其中支持复杂属性声明的匿名证书系统 的概括。私有证件系统允许从身份提供者获得私有证件,并且使用其 形成经证实的声明,提交和使用两者都可以以私密性增强的方式进行。 用户或证明方从身份提供者获得私有证件,并且将这些证件在本地保 存。证件可具有较长寿命,例如多年。 一旦被获得,证件从不发送给 信任方。每当用户需要将具有涉及属性的声明的断言提供给信任方时, 其使用一个或多个其私有证件来以一种受控方式发布有关其第三方签 署的属性的部分信息。可以执行该发布而无需涉及身份提供者。
根据本发明的另一个实施例,在联合身份管理(FIM)系统中执 行该方法。联合身份管理(FIM)协议是三种类型参与者之间的协议。
用户(证明方),其身份将被联合;身份提供者,其证实身份;以及
信任方,其是用户身份的接收方。当今的标准化和建立的FIM协议典
型地利用签名的断言令牌,这些令牌从身份提供者被传送给用户以及 从用户传送到信任方。此类协议的 一 个著名例子是如
"http:〃www國128.ibm.com/developerworks/library/, 2003年7月,WS 联盟Active Requestor Profile, l.O版本,C. Kaler和A. Nadalin."中
指定的ws-联盟主动请求方简表。后者基于包含在ws安全消息中的安
全断言。每当请求用户的身份,由请求方(证明方)从身份提供者获
得安全断言,然后转发给信任方。这允许以下特性i)由身份提供者 认证属性,以及ii)正是所需的属性被传送给信任方。第一个特性为信 任方提供了安全性,第二个为用户(证明方)提供了私密性。
根据本发明的第二方面,提供了 一种用于评估断言消息的方法, 所述断言消息包括具有一个或多个声明的断言、所述断言的断言证明、 从所述断言和所述断言证明创建的临时公钥、所述临时公钥的密钥证 明、消息体和断言消息签名,所述方法包括步骤
-利用所述密钥证明检查所述临时公钥,
-利用所述断言证明检查所述断言,
-利用所述临时公钥检查所述断言消息签名,
-如果所述断言消息签名、所述临时公钥和所述断言的检查结果为肯定,则将所述断言消息评估为有效。
接收断言消息的信任方不得不检查临时公钥的有效性、断言的有 效性和断言消息签名的有效性,以便评估断言消息的有效性。
优选地,断言消息签名包括临时公钥的索引(reference)、临时 公钥、相应密钥证明的索引,以及密钥证明、断言和断言证明的索引。 然后,临时公钥的索引可从断言消息签名中提取,以及密钥证明的索 引从临时公钥中提取。可以利用密钥证明验证临时公钥。跟随断言和 相应的断言证明的索引,利用断言证明可以验证在断言中所做的声明。 然后,可以利用临时公钥验证断言消息签名。
应该注意到,可以按不同顺序执行本发明的不同方面的各步骤。 更进一步地,所述步骤还可以被组合,即例如两个或更多步骤被一起 执行。
本发明的另 一方面涉及一种计算机程序,其包括当所述计算机程 序在计算机系统上被执行时,用于实现如权利要求1至13中任何一个所 述方法的步骤的指令。
本发明的另 一方面涉及一种用于将断言消息从证明方发送到信 任方的发送实体,提供所述发送实体以用于
-创建包括一个或多个声明的断言,
-创建断言证明,
-从所述断言和所述断言证明创建临时私钥和相应的临时y〉钥,
-为所述临时公钥创建密钥证明,
-利用所述临时私钥创建断言消息签名,
-发送包括所述临时公钥、所述断言证明、所述密钥证明、所迷 断言、主消息体和所述断言消息签名的所述断言消息给所述信任方。 这种发送实体可以是例如证明方的计算机。
本发明的另一方面涉及一种用于从证明方接收断言消息的接收 实体,所述断言消息包括具有一个或多个声明的断言、所述断言的断 言证明、从所述断言和所述断言证明创建的临时/>钥、所述临时〃^钥 的密钥证明、消息体和断言消息签名,提供所述接收实体以用于
-利用所述密钥证明检查所述临时公钥,-利用所述断言证明检查所述断言, -利用所述临时公钥检查所述断言消息签名,
-如果所述断言消息签名、所述临时公钥和所述断言的检查结果 为肯定的,则将所述断言消息评估为有效。
这种接收实体可以是例如信任方的服务器。
本发明的另一方面涉及一种包括断言消息的信号,其中所述断言 消息包括消息头和消息体,其中所述消息头包括具有 一个或多个声明 的断言、断言证明、从所述断言和所述断言证明创建的临时>^钥、所 述临时公钥的密钥证明以及利用相应于所述临时公钥的临时私钥所创 建的断言消息签名。
本发明的另一方面涉及一种规定断言消息的格式的断言消息格 式,其中根据所述格式的断言消息包括消息头和消息体,其中所述消 息头包括具有一个或多个声明的断言、断言证明、从所述断言和所述 断言证明创建的临时公钥、所述临时公钥的密钥证明以及利用相应于 所述临时公钥的临时私钥所创建的断言消息签名。
本发明的另 一方面涉及一种系统,其包括如权利要求15所述的发 送实体和如权利要求16所述的接收实体。
本发明的上述不同方面提供了一种通用结构,其使基于零知识证 明协议,如私有证件系统的语义能传送给诸如XML-DSIG密钥和签名 的公钥签名系统。由于根据许多工业标准,尤其是WEB服务(WS) 安全标准,公钥签名系统被广泛使用并且是强制的,所以可广泛适用 本发明。
本发明的不同方面允许将私有证件系统集成到WS安全中,因此 使新的WS联合主动请求方简表能具有提高的隐私特性。
特别地,上述本发明的不同方面能提供满足以下要求的系统
(a) 由于XML-DSIG标准已经稳定,并且改变到零知识证明可能使 XML-DSIG语义复杂得超出可管理性,所以不改变XML-DSIG标准。
(b) 不诉诸于对超出原始目的的标准部分进行非常广泛的解释,并 且甚至不诉诸于违反其期望语义。
12这利用ws安全环境中的现有标准语义学给无缝集成私有证件系
统提供了可能性。


下面,参照以下示意附图,仅通过例子详细地描述本发明的优选 实施例。
图l示出了根据本发明的实施例的系统的示意图,
图2示出了根据本发明的实施例的消息流的示意图, 图3示出了根据本发明的实施例的断言消息的示意图, 图4示出了根据本发明的实施例创建断言消息的流程图, 图5示出了根据本发明的实施例验证断言消息的流程图, 图6示出了 WS安全标准格式下的根据本发明的实施例的断言消 息令牌的示意图。
附图仅提供图解的目的,而不必按比例代表本发明的实际例子。
术语表
以下是非正式的定义来帮助理解说明书。
用户或证明方身份被管理的实体。通常用户或证明方是个人, 但是至少小企业通常会像个人一样与其它企业交互,例如在旅行预约 和信息搜集时。在其它情况下,证明方可以是硬件设备,其证明通过 特性证明来增强通信的其自身或中间方的特性。
信任方 一种实体,例如,由例如服务器代表的组织,其期望知 道用户或证明方的名字或属性。这种组织包含一个人的所有通信对方, 例如银行、医生、同事、因特网服务提供商和家庭。
身份提供者 一种为人存储与身份相关的信息的实体。这可以是 银行、认证机构(CA)、因特网服务提供商等。
术语"计算机,,包含比如PC的设备,但是也包括数字助理、移 动电话和其它电子设备。
具体实施例方式
参照图l,描述了根据本发明的示例性实施例的系统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获得一个或多个私有 证件IIO。 私有证件110可在证明方20的计算机60上被本地存储。证明 方20可4吏用私有证件110来建立经证实的断言120。经证实的断言120 包括具有关于证明方20属性的声明的断言和相应的断言证明。通过发 送这些经证实的断言120给信任方40,证明方20在保持完全匿名和不可 链接的同时,可向信任方40证明这些断言。例如,利用非交互零知识 或非交互最少泄露证明可建立对断言的证明。
图2示出了根据本发明的示例性实施例的断言消息200的格式的 示意图。断言消息200是如参照图1所述的经证实的断言120的优选实施例。其包括消息头210和消息体220。消息头210包括具有断言A的断言 令牌230、证明令牌240、具有临时公钥K的临时z^钥令牌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) 证明方M具有属性att (例如,大于21岁)。(b) 证明方20拥有对应于临时y厶钥K的临时私钥Ks。(c) 密钥对(Ks; K)对于该断言来说是伪随机和新近生成的。 针对每个由证明方20利用例如基于零知识证明的协议做出的声明,可以保证新的临时密钥对是新近和伪随才几地生成的。此外,利用 可验证的伪随机函数和相应的零知识证明表明正确计算了临时公钥, 可以保证证明方20如实地创建了临时密钥对。 一次性临时密钥对允许 交易的不可链接性。该临时密钥对可用于利用由经证明的断言所扩展的语义建立 XML签名。经证明的断言具有三种令牌类型断言令牌230、证明令 牌240和临时公钥令牌2S0。临时公钥令牌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中可以4吏可验证的 随机函数有效。由具有素模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 cryptographic framework for the controlled release of certified data." 中给出。此处 被参考引用。为了以下说明,假定变量上下文为交互行为的安全上下文,例如, 当前时间或来自信任方40的质询。在随后的步骤440中,利用具有断言A、断言证明pA和安全上下文 作为输入的Dodis和YampoIsky的可验证的随机函数,生成包括临时私 钥Ks和临时公钥K的临时DSA密钥对以及密钥证明pK。步骤440包括以下子步骤a. )利用密码散列函数H计算中间值m作为A IIpaII上下文的散列b. )随机从0,…,q》选择xc. )计算中间值,y:=gAxd. )计算临时私钥Ks, Ks:- l/(x+m)(mod q)e. )计算临时公钥K, K:=gA{Ks}(modp)f. )利用由Camenisch和Stadler在"1997年,Springer Verlag,页 410.424., LNCS的1296巻,CRYPTO' 97,编辑B. Kaliski,保密学的 发展,J. Camenisch和M. Stadler所著的Efficient group signature schemes for large groups."中介绍的符号,计算密钥证明PK作为如下 指定的非交互证明。密钥证明PK的计算包括以下子步骤fl.)从Zq随机选择变量rl ,其中Zq为来自O...q-l的整数的集合f2.)从Zq随机选择变量r2f3.)计算t^gA(Wf4.)计算t2:-gA(Wf5.)计算t3:-yA0^gA(mr2)f6.)计算c^H(" ,t2, t3,y,K,g,p,q)f7:)计算s^-^+cxf8.)计算S2:-r2+cKs然后用(y,K,g,Sl,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作 为AllpAll上下文的散列。在步骤520的第二子步骤中,验证零知识证明PK,其证明临时公 钥K的密钥正确性。临时公钥的验证包括以下子步骤al.)计算in:-yKgA(s^a2.)计算U2:-KKgA(Wa3.)计算U3FgA(-c》yA(S2〉gA(ms^a4.)计算c':-H(Uh u2, u3,y,K,g,p,q)a5.)比较c和c',并且仅当 C-C,时,验证密钥证明PKo在步骤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)、 闪存、固件、可编程逻辑等等l。计算机可读介质中的代码由处理器访问和执行。在其中编码代码或逻辑的介质还可以包括通过空间或诸如 光纤、铜线等的传输介质传播的传输信号。在其中编码代码或逻辑的 传输信号还可包括无线信号、卫星传输、无线电波、红外信号、蓝牙 等等。在其中编码代码或逻辑的传输信号能够被发送站发送以及由接 收站接收,其中编码在传输信号中的代码或逻辑在接收和发送站或设 备处可被解码,并且被存储在硬件或计算机可读介质中。此外,"制 造产品"可包括这样的硬件和软件部件的组合,其中嵌入、处理和执 行代码。当然,本领域技术人员会认识到在不偏离实施例的范围的情 况下,可做出许多修改,而且制造产品可包括任何信息承载介质。例 如,制造产品包括已在其中存储了指令的存储介质,当由机器执行所 述指令时,导致执行操作。某些实施例可采取完全硬件实施例、完全软件实施例或包含硬件 和软件单元两者的形式。在一个最优实施例中,本发明用软件实现, 其包括但不局限于固件、常驻软件、微码等等。此外,某些实施例可采取可从计算机可用或计算机可读介质访问 的计算机程序产品的形式,它们提供程序代码以供计算机或任何指令 执行系统或结合它们使用。为了该描述的目的,计算机可用或计算机 可读介质可以是任何装置,其可包含、存储、通信、传播或传送程序 以供指令执行系统、装置或设备或结合它们使用。该介质可以是电子、 磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计 算机可读介质的例子包含半导体或固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光 盘。光盘的当前例子包含压缩盘-只读存储器(CD-ROM)、读/写压 缩盘(CD-R/W)和DVD。术语"某些实施例,,、"实施例"、"一个或多个实施例"、"一 些实施例"和"一个实施例"意味着一个或多个(而不是所有)实施 例,除非另外明确地指定。术语"包含,,、"包括"、"具有"及其 变型意味着"包括但不限于",除非另外明确地指定。项目的列举列 表不意味着任何或全部项目互斥,除非另外明确地指定。术语"一个"22意味着"一个或多个",除非另外明确地指定。
彼此通信的设备不一定彼此连续通信,除非另外明确地指定。此 外,彼此通信的设备可直接通信或通过一个或多个中间者间接地通信。 另外,描述具有彼此通信的若干组件的实施例不意味着需要所有这种 组件。而是描述各种可选组件以说明很多种可能实施例。
此外,虽然处理步骤、方法步骤、算法等可按相继次序描述,这 种处理、方法和算法可被配置成以其它顺序工作。换言之,可被描述 的步骤的任何排序或顺序不一定表示按该顺序执行步骤的要求。本文 所描述的过程的步骤可以按实际的任何顺序执行。此外, 一些步骤可 以同时、并联或并行执行。
当此处描述单个设备或产品时,显然多于一个设备/产品(无论 是否协作)可被用来取代该单个设备/产品。类似地,当此处描述不止 一个设备或产品时(无论是否协作),显然单个设备/产品可被用来取 代该多于一个设备或产品。设备的功能性和/或特性可由没有明确描述 成具有这种功能性/特性的一个或多个其它设备代替实施。因而,其它 实施例不必包含设备本身。
本上下文中的计算机程序装置或计算机程序是指用任何语言、代 码或符号的一组指令的任何表达式,所述指令旨在使具有信息处理能
力的系统直接执行,或者在下列任意一个或两者之后执行具体的功能 a)变换到其它语言、代码或符号;b)以不同材料形式再现。
权利要求
1.一种用于将断言消息(200)从证明方(20)提供给信任方(40)的方法,所述方法包括步骤-创建包括一个或多个声明的断言(A),-创建断言证明(pA),-从所述断言(A)和所述断言证明(pA)创建临时私钥和相应的临时公钥(K),-为所述临时公钥(K)创建密钥证明(pK),-利用所述临时私钥创建一个断言消息签名(S),-创建断言消息(200),其包括所述临时公钥(K)、所述断言证明(pA)、所述密钥证明(pK)、所述断言(A)、消息体(220)和所述断言消息签名(S)。
2. 如权利要求l所述的方法,其中利用安全绑定函数创建所述临 时私钥、所述临时公钥(K)以及所述密钥证明(pK)。
3. 如权利要求2所述的方法,其中所述安全绑定函数是一个可验 证的随机函数。
4. 如前面任何一个权利要求所述的方法,其中创建所述断言消 息签名(S)的步骤包括子步骤-创建所述断言消息(200)的一个或多个部分的断言消息摘要, -利用所述临时私钥从所述断言消息摘要创建所述断言消息签名 (S)。
5. 如前面任何一个权利要求所述的方法,其中所述断言消息签 名(S)是被封装的签名。
6. 如前面任何一个权利要求所述的方法,其中所述断言证明(pa)和/或所述密钥证明(pK)是零知识证明或最少泄露证明。
7. 如前面任何一个权利要求所述的方法,其中所述断言证明(pa)和/或所述密钥证明(pK)是一个非交互的证明。
8. 如前面任何一个权利要求所述的方法,其中所述临时公钥(K)和所述临时私钥是数字签名算法(DSA)密钥对。
9. 如前面任何一个权利要求所述的方法,其中所述断言消息签 名(S)是根据扩展标记语言数字签名(XML-DSIG)标准的签名。
10. 如权利要求3所述的方法,其中所述可验证的随机函数是由 Dodis和Yampolsky提出的函数。
11. 如前面任何一个权利要求所述的方法,其中所述断言证明 (Pa)源自于所述证明方(20)的一个或多个私有证件(110)。
12. 如前面任何一个权利要求所述的方法,其中在联合身份管理 (FIM)系统中,尤其在WS联合系统中执行所述方法。
13. —种用于评估断言消息(200)的方法,所述断言消息(200) 包括具有一个或多个声明的断言(A)、所述断言(A)的断言证明(pA)、 从所述断言(A)和所述断言证明(Pa)创建的临时公钥(K)、所述 临时公钥(K )的密钥证明(Pk )、消息体(220 )和断言消息签名(S ), 所述方法包括步骤-利用所述密钥证明(Pk)检查所述临时公钥(K), -利用所述断言证明(Pa)检查所述断言(A), -利用所述临时公钥(K)检查所述断言消息签名(S), -如果所述断言消息签名(S)、所述临时公钥(K)和所述断言(A)的检查结果为肯定,则将所述断言消息(200)评估为有效。
14, 一种计算机程序,包括用于当在计算机系统上被执行时实现 如权利要求1至13中任何一个所述方法的步骤的指令。
15. —种用于将断言消息(200 )从证明方(20)发送到信任方(40)的发送实体(60),提供所述发送实体(60)以用于 -创建包括一个或多个声明的断言(A), -创建断言证明(Pa),-从所述断言(A)和所述断言证明(Pa)创建临时私钥和相应的 临时z〉钥(K),-为所述临时公钥(K)创建密钥证明(Pk), -利用所述临时私钥创建断言消息签名(S), -发送包括所述临时公钥(K)、所述断言证明(Pa)、所述密钥证明(Pk)、所述断言(A)、消息体(220)和所述断言消息签名(S) 的所述断言消息(200)给所述信任方(40)。
16. —种用于从证明方接收断言消息的接收实体(80),所述断 言消息(200)包括具有一个或多个声明的断言(A)、所述断言(A) 的断言证明(Pa)、从所述断言(A)和所述断言证明(pa)创建的 临时公钥(K )、所述临时公钥(K )的密钥证明(Pk )、消息体(220 ) 和断言消息签名(S),提供所述接收实体(80)以用于-利用所述密钥证明(Pk)检查所述临时公钥(K), -利用所述断言证明(Pa)检查所述断言(A), -利用所述临时公钥(K)检查所述断言消息签名(S), -如果所述断言消息签名(S)、所述临时公钥(K)和所述断言 (A)的检查结果为肯定的,则将所述断言消息(200)评估为有效。
17. —种包括断言消息(200 )的信号,其中所述断言消息(200) 包括消息头(210)和消息体(220),其中所述消息头(210)包括具 有一个或多个声明的断言(A)、断言证明(pa)、从所述断言(A) 和所述断言证明(pA)创建的临时公钥(K)、所述临时公钥(K)的 密钥证明(Pk)以及利用相应于所述临时公钥(K)的临时私钥所创 建的断言消息签名(S)。
18. —种规定断言消息(200)的格式的断言消息格式,其中根 据所述格式的断言消息(200)包括消息头(210)和消息体(220), 其中所述消息头(210)包括具有一个或多个声明的断言(A)、断言 证明(Pa)、从所述断言(A)和所述断言证明(pa)创建的临时公 钥(K)、所述临时公钥(K)的密钥证明(pK)以及利用相应于所 述临时公钥(K)的临时私钥所创建的断言消息签名(S)。
19. 如权利要求18所述的断言消息格式,其中所述断言消息格式 为根据WEB服务安全(WS-安全)标准和/或WEB服务信任(WS-信 任)标准的格式。
20. —种系统(IO),其包括如权利要求15所述的发送实体(60) 和如权利要求16所述的接收实体(80)。
全文摘要
本发明涉及一种用于将断言消息(200)从证明方(20)提供给信任方(40)的方法,所述方法包括步骤创建包括一个或多个声明的断言(A);创建断言证明(p<sub>A</sub>);从所述断言(A)和所述断言证明(p<sub>A</sub>)创建临时私钥和相应的临时公钥(K);为所述临时公钥(K)创建密钥证明(p<sub>K</sub>);利用所述临时私钥创建断言消息签名(S);创建包括临时公钥(K)、断言证明(p<sub>A</sub>)、密钥证明(p<sub>K</sub>)、断言(A)、消息体(220)和所述断言消息签名(S)的断言消息(200)给信任方(40)。
文档编号H04L9/32GK101411117SQ200780011449
公开日2009年4月15日 申请日期2007年4月26日 优先权日2006年5月21日
发明者D·M·索默, J·卡默尼施, T·R·格洛斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1