电子签名的验证的制作方法

文档序号:6454119阅读:250来源:国知局

专利名称::电子签名的验证的制作方法电子签名的验证背景电子商务是跨局域网、广域网和全球网络在各方之间进行商业交易的一种新兴方法。然而,为了使电子商务被认为是一种进行贸易的安全且可靠的手段,在适当的位置必须有适当的控制来保护交易并确保交易中的双方的信任和信用。例如,重要的是一方可以在提供有效合法保护的制度下依赖于对另一方在电子进行的贸易中的要约的接受。在这一方面,提供了电子签名作为保护交易信息并提供电子商务中的信任的有效的安全组件。欧洲官方指令将电子签名定义为"附加到或逻辑上关联于其它电子数据并且担当认证方法的电子形式的数据",但是也可采用其它定义或该定义的变型。一般而言,电子签名可以提供关于一标识的签署者以及可任选地一角色在给定时刻在一签名策略下明确地签署了承诺的证据。该签名策略指定了关于签名创建和验证的技术上的和程序上的要求,以满足特定的商业需求。给定的合法框架可以识别特定的签名策略为满足其法定的、规章的、以及司法的要求。例如,特定的签名策略可被法庭认可为满足关于电子商务的合法要求。因此,在该合法框架内,电子合同的持有者可以提供关于该合同是由另一方电子地签署的并且因此可对该方强制实行的证据。基本电子签名的验证一般涉及某些特定的密码校验。然而,当必须考虑到电子签名随着时间的撤消或过期时,验证变为更复杂的问题。此外,向电子签名添加诸如限定特性、时间戳和联署等高级特征有助于长期的签名有效性以及原始签名的非否认,但是这些特征也可使签名有效性验证过程变复杂。现有的方法无法提供对此类高级电子签名的稳健和有效的验证,尤其是在存在多个时间戳和联署的情况下。概述此处所描述并要求保护的实现通过提供一种用于验证电子签名的系统解决了上述问题。电子签名可以与时间戳相关联,每一时间戳包括一时间值。时间戳验证模块检测电子签名的证书链州中的无效证书,并记录该无效证书的最早无效时间值。验证模块还验证与电子签名相关联的时间戳并记录最早有效时间戳的时间值。声明模块在最早有效时间戳的时间值早于一个或多个无效证书的最早无效时间值时将该电子签名声明为有效的。电子签名可另选地或另外地与联署相关联。联署验证模块验证与电子签名相关联的联署,并且声明模块在所有联署被确定为有效时将该电子签名声明为有效的。在一些实现中,提供作为计算机程序产品的制品。计算机程序产品的一个实现提供可由计算机系统读取并编码计算机程序的计算机程序存储介质。计算机程序产品的另一实现可由计算系统在载波内具体化并编码计算机程序的计算机数据信号来提供。在此还描述和列举了其它实现。提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。图1示出了用于生成并验证电子签署的数据的示例过程。图2示出了对电子签署的文档的示例验证器的输入。图3示出了用于验证电子地签署的数据的示例操作。图4示出了可用于实现所描述的技术的示例系统。详细描述图1示出了用于生成并验证电子签署的数据的示例过程100。签署者102将电子签名与电子文档相关联。电子签名可用于不论是否加密的各种数据(例如,文档、消息、文件等),来认证该数据的签署者或发送者的身份并确保该数据的原始内容自从签署的时间以来未改变。例如,在一个实现中,签署者102通过对定义文档的数字数据执行散列算法来创建电子签名。示例散列算法可包括但不限于,安全散列算法(SHA)、消息摘要算法(MDA)、以及RACE完整性原语评估消息摘要(RIPEMD)的各种变型。对数字数据执行散列算法产生通常被称为"散列"或摘要的散列结果。签署者102然后可使用从公钥一私钥机构获得的私钥来加密该签名摘要。所加密的签名摘要表示与该数据相关联的电子签名(作为签名值)的基本分量。该签名值可以与数字数据相关联地发送或储存。在接收到该数据和签名值后,接收方116然后可使用验证器118来验证所接收的数字数据。例如,验证器118可使用签署者的公钥(可从签署者、公钥一私钥机构或某一其它源获得)来解密与文档相关联的加密的签名摘要(表面上得到原始的签名摘要)。验证者118还可生成所接收的数字数据的散列。如果所接收到的数字数据的散列和所解密的签名摘要匹配,则认为基本电子签名,以及因此所接收的数字数据的有效性至少在基本等级上得到验证。即,如果没有其它安全问题,则签名被认为是签署者的签名并且该文档从签署时间开始没有改变。因此,通过将文档与电子签名相关联,签署者102创建可在某一等级上由接收方116或验证器118验证的经签署的文档104。应当注意,电子签名可以用几种不同的方式与文档相关联,包括将电子签名嵌入在文档中、将文档嵌入在电子签名中、在电子签名中引用文档、在文档中引用电子签名、以及将文档和电子签名彼此相关联地储存(例如,储存在同一文件系统目录或文件夹中)。然而,该基本等级的验证仍表现出重大的信任问题。例如,验证器118假设用于解密所加密的签名摘要的公钥实际上属于该签署者其仍是有效的。然而,公钥可能不再有效(例如,相应的私钥被盗、签署者不再被授权来使用该私钥等)。因此,电子签名可由一个或多个可信方(诸如认证机构106或某些其它证书实体,此处统称为"证书签署者")来证实以证明该公钥属于指定的签署者。一般而言,证书使用电子签名来将公钥与身份一诸如个人或组织的名字、公钥所有者的地址等信息一绑定在一起。一个示例证书可包括正被签署的公钥;个人、计算机或组织的名字或标识符;有效时段;以及撤消中心的地址(例如,URL),然而也可采用其它形式的证书。例如,在典型的公钥基础结构(PKI)方案中,数据可由可信认证机构(CA)来证明。在信任网(weboftrust)方案中,证书可由签署者(自签名证书)或其它用户("批注者")来签署。在任一情况下,证书上的电子签名是证书签署者关于包含身份信息和公钥的证明。证书可用于对公钥密码的大规模使用。在多个用户之中安全地交换密钥在没有附加保护的情况下变得不切实际且不安全。例如,如果第一方希望其他人能够向其发送秘密消息,则第一方可以发布与该第一方相关联的公钥。处理该公钥的任何人然后可以向该方发送安全信息。不幸的是,第二方也可发布声称该公钥属于第一方的公钥,并且因此可接收目标仅针对第一方的秘密消息。然而,如果第一方将其公钥内置到证书中并且由可信的第三方(例如,认证机构)数字地签署该公钥,则信任该可信第三方的任何人能够仅仅检验该证书来看该可信第三方是否证实嵌入的公钥属于该第一方。以此方式,向第一方发秘密信息的发送者可确信仅第一方能够访问该秘密消息。类似地,证书能够允许验证者确信电子签名实际属于签署者。此外,在大规模部署中,可采用证书链。例如,第一方可能不熟悉第二方的认证机构,因此第二方的证书也可包括其由"更高级"认证机构(例如,商业认证机构)签署的认证机构公钥,该公钥可能被第一方认可。该过程可导致证书链,所有证书都由一最终的可信方证明,这共同证明公钥属于一指定个体。然而,证书具有其自己的安全问题。某些证书具有有限的有效时段,在该有效时段外,证书被认为是过期的。另外,例如如果发现证书的相关私钥被泄密(例如,认证机构的系统遭到黑客攻击),或者如果发现签署者和嵌入在证书中的特定公钥之间的关系不正确或者已改变(例如,如果个人改变了工作或名字),则可撤消证书。用于确定证书是否被撤消的一种方法是将证书与证书撤消列表(CRL)—被撤消或取消的证书的列表一进行比较。确定证书的有效性的另一种方法是使用在线证书状态协议(OCSP)查询认证机构来获得特定证书的状态。因此,尽管证书提供了关于与文档相关联的电子签名是指定签署者的签名的某种确信,但是证书本身在其与电子签名相关联的时候有可能己经过期或被撤消(统称为"无效")。例如,假设签署者116电子地签署了文档并且用己撤消的证书来证实该电子签名。由于该证书在证实签名的时候已经被撤消,因此验证器118不能出于证明的目的来充分地证明签署者116实际已签署了该文档(例如,认证机构的黑客可能盗窃了该证书、签署文档、并且证实其自己的签名是签署者116的签名)。为了在这种情况下提供保护,可使用时间戳以增强高级电子签名的安全性。时间戳是一种可从可信第三方(例如,时间戳机构110)获得以证明电子签名的证书或证书链存在并且在时间戳中指定的时刻是有效的。在一个实现中,时间戳机构110验证电子签名和证书链。如果这些是有效的,则时间戳机构110对包括时间值和电子签名摘要的时间戳数据的集合求散列,并将该时间戳散列与电子签名相关。时间戳也可由一个或多个可信第三方来验证。假设实现了基本电子签名,包括相关联的限定特性和证书的验证,则可验证与该电子签名相关联的一个或多个时间戳以确定该电子签名和证书在签署时是有效的。如果在时间戳中指定的时刻没有一个电子签名的证书是无效的,则认为该电子签名的有效性被验证为在从时间戳中指定的时间内。如果在时间戳的时间之后撤消了电子签名的证书或证书链,则电子签名中的信任未受损害,因为有效性至少在一个时间点得到验证。然而,与时间戳相关联的证书也可过期或被撤消。这一情况并不意味着电子签名是无效的,仅仅是电子签名的时间戳不能被信任。因此,电子签署的文档的持有者可以随时间将该电子签名提交给一个或多个时间戳机构,由此将多个时间戳与该电子签名相关联。例如,公司可以在年度的基础上将其现有的合同提交给时间戳机构以加强电子签署的文档的有效性。以此方式,该公司获得关于在给定时刻电子签名有效的多个证明。如果发现一个或多个时间戳被撤消,则有可能有另一时间戳保持有效,由此至少在一个时间点保留了电子签名的有效性。另外,高级电子签名中的电子签名值可以与来自第三方(例如,联署机构或某一其它方,此处统称为"联署实体")的一个或多个电子联署相关联。电子联署表示另一方对原始签署者的电子签名的承认或公证。电子联署也可由一个或多个证书来证实。例如,文档的执行在其被认为合法地绑定之前可能需要来自两方或多方的电子签名。因此,联署表示标识的第二方的电子签名,并且与由标识的第一方电子地签署的同一数据相关联。联署有效地签署了与数据相关联的现有签名。一个或多个联署可以与单个文档相关联。电子联署也可以与其自己的时间戳和/或联署相关联。与电子签名证书(或证书链)、零个或多个时间戳、以及零个或多个联署相关联的经签署的文档114然后可被发送到接收方116。如果接收方116希望验证与经签署的文档114相关联的电子签名的有效性,则验证器118(例如,文档管理器、文件管理器、电子邮件客户端等的验证模块)可接收经签署的文档114,并测试该电子签名、时间戳和/或联署以验证该电子签名的有效性。在存在多个时间戳和/或多个联署的情况下,验证器118的实现可将电子签名声明为"有效"、"在指定的时间点有效"或"无效"(即,不可被验证,这暗示该电子签名不能被信任)。验证器118还可生成关于电子签名上的验证状态的其它声明。在另一实现中,验证器118可以提供更详细的结果:<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>图2示出了对电子签署的文档202的示例k证器的输入。电子签名204与电子文档202相关联。这一关联可以通过如上所述的各种方法来实现,但出于描述的目的,将假设电子签名被嵌入在电子文档202中。电子签名204包括签名值206(带有或没有证书)、零个或多个时间戳210(带有或没有证书)、以及零个或多个联署218(带有或没有证书)。在一个实现中,签名值206是通过对定义电子文档202的数字数据求散列以创建电子签名204的摘要然后使用签署者的私钥加密该摘要来生成的。签名值206也可通过证书208来证实。证书208可以是单个证书或证书链。如先前所讨论的,与签名值206相关联的一个或多个证书在签署的时刻(或验证的时刻)可能是无效的。电子签名204还可以如图2所示与一个或多个时间戳210相关联。时间戳可由时间戳机构添加,该机构可任选地测试电子签名值206以及与其相关联的证书208。一示例时间戳在时间戳212的分解图中示出为包括电子签名值206的摘要214和时间值216(例如,包括时间和日期信息)。在时间戳212中还可组合其它参数,包括但不限于限定特性、散列算法类型等。在一个实现中,时间戳机构接收签名值206的摘要214,将该摘要214与时间值216(例如,包括时间和日期信息)以及可能的其它参数相组合,对该组合求散列,用时间戳机构的私钥加密散列的组合(签署它),并将经签署的结果发送回原始签署者以便与文档202相关联。在替换实现中,时间戳机构接收电子签名204,并验证电子签名值206和证书208。如果这些是有效的,则时间戳机构对电子签名值206求散列以获得新的签名摘要214。时间戳机构然后对新的签名摘要214、时间值216和可能的其它参数的组合求散列,用时间戳机构的私钥加密该散列的组合(签署它),并将经签署的结果发送回原始签署者以便与文档202相关联。时间戳212也可通过一个或多个证书218来证实,并且可以与其自己的时间戳和联署相关联。每一时间戳210证明该电子签名以其特定形式存在的时间(例如,日期和时间值)。稍后,可由验证器221验证一个或多个时间戳210以确定与文档202相关联的电子签名有效的最早时间。例如,公司A与公司B电子地签署了协定,并且希望在法庭上强制执行该协定。公司B否认该协定,声称该签名是无效的,并指出电子签名的证书链中的证书之一已被撤消。如果公司A能够证实时间戳具有的时间在撤消日期之前,则公司A能够举出表明该电子签名在至少一个时间点是有效并且因此可被强制执行的可靠的证据。电子签名204还可以如图2所示与一个或多个联署218相关联。联署可由联署机构添加,该机构可任选地测试电子签名值206以及与其相关联的证书208。一个示例联署在联署220的分解图中示为电子签名值206的摘要224。在联署220中还可组合其它参数,包括但不限于限定特性、散列算法类型等。在一个实现中,联署机构接收签名值206的摘要224,对该摘要224求散列,用联署机构的私钥加密该散列的摘要,并将加密的结果(即,联署220)发回签署者以便与文档202相关联。在替换实现中,联署机构接收电子签名204,并验证电子签名值206和证书208。如果这些是有效的,则联署机构对电子签名值206求散列以获得新的签名摘要224。联署机构然后对新的签名摘要224求散列,用联署机构的私钥加密该散列的结果(签署它),并将经签署的结果(联署220)发回原始签署者以便与文档202相关联。联署220也可通过一个或多个证书222来证实,并且可以与其自己的时间戳和联署相关联。每一联署220表示对与文档202相关联的电子签名204的承认或公证。例如,如果需要与孩子对电子文档的签名相关联的父母双方的签名,则父母的签名可作为电子联署218来提供。为了使电子签名204得到验证,验证器221确认所有联署218。应当理解,电子签名204可以不包括一个或多个时间戳的集合或一个或多个联署的集合。然而,对电子签名204的验证可以通过包括这些分量中的一个或多个而变得更稳健。图3示出了用于验证电子地签署的数据的示例操作300。接收操作302接收形式类似于图2所示的经签署的数据,诸如经签署的文档或消息。经签署的数据可以包括与电子签名相关联的证书、时间戳和/或联署。经签署的数据的示例可包括但不限于,商业交易的查账索引、电子医疗系统中的医疗指南、使用公民的电子ID卡或用于在web服务之间通信的SOAP(简单对象访问协议)消息签署的因特网退税提请、纸质出版物中的縮微胶片图像等。验证操作304验证基本电子签名值。在一个实现中,对基本电子签名的验证包括使用签署者的公钥来解密与经签署的数据相关联的电子签名值以获得电子签名摘要。验证操作304还可生成所接收的数据的散列。如果该散列匹配电子签名摘要,则认为基本电子签名值得到验证。如果该散列不匹配电子签名摘要,则验证操作304将基本电子签名值的有效性声明为"不可验证",这意味着与数据相关联的电子签名可能是不可信的,因为数据或签名本身可能已被篡改。确认操作306检查对电子签名可能存在的任何限定特性。限定特性的某些示例可包括但不限于,签署位置和时间,签署者在公司中的角色、通过签署表达的承诺的类型(例如,文档作者、核定者、合同执行者等)的指示以及其它信息。例如,签名验证策略指定需要如何确认特定限定特性。例如,这一策略可能需要必须产生签名的特定位置。另一确认操作308确认与基本电子签名值相关联的证书链(例如,一个或多个证书)。确认操作308将当前时间(例如,日期和时间)与证书的有效时段进行比较以确定证书是否过期。同样,确认操作308咨询撤消列表或认证机构以确定证书是否已被撤消。如果一个或多个证书被确定为已过期或撤消,则判定操作312将检测该无效性,并且如果有任何时间戳与该电子签名相关联,则将处理定向到确认操作316。基于证书的有效时段的到期时间以及基于来自撤消列表或认证机构的撤消信息的撤消时间统称为"无效时间"。一般而言,证书表示将公钥与身份绑定在一起的电子签名。确认操作308从最不可行的证书到最可信的证书沿着证书链向上工作。例如,确认操作308可从与链中的最不可信的证书相关联的认证机构获得公钥。确认操作308然后使用该公钥来解密该证书并从解密的证书中提取经证实的公钥。如果用于验证电子签名值的公钥和当前经证实的公钥匹配,并且证书未过期且未被认证机构撤消,则证书被认为是有效的。如果证书被确定为当前是无效的,则记录该证书过期或被撤消的时间(例如,日期和时间)。然后,验证操作308可从与链中的下一最不可信的证书相关联的认证机构获得公钥。确认操作308然后使用该公钥来解密该证书并从解密的证书中提取经证实的公钥。如果用于验证较低层证书的公钥和经证实的公钥匹配,并且当前证书未过期且未被认证机构撤消,则该证书被认为是有效的。该处理沿着证书链向上继续,直到验证了最可信认证机构的证书,此时该证书链被认为是有效的。在一个实现中,根据证书中的预期使用参数来评估证书使用(例如,某些证书并不旨在用于数据签署)。如果任何证书被确定为已损坏(例如,数据己被篡改、在传输期间损坏等等),则证书的有效性不能被验证,因此电子签名的有效性也不能被验证。判定操作312确定是否发现证书链中的任何证书是无效的(例如,被撤消或到期)。如果否,则在声明操作314中将电子签名声明为有效的。在替换实现中,和/或对于包括一个或多个联署的电子签名的配置,可在声明有效性或无效性之前将诸如参考操作324和326所描述的某些联署验证操作应用于联署。如果链中的至少一个证书被确定为无效,并且没有与电子签名相关联的时间戳,则证书链中的无效性一般指示该电子签名不能被信任,因为没有方法来确定该证书链在签署时刻是否是有效的。然而,如果电子签名与时间戳相关联,则可启动确认操作316以确定该证书链是否在任何先前的时间点是有效的,这可提供电子签名能依靠的证据基础。因此,确认操作316试图验证与电子签名相关联的一个或多个时间戳。在一个实现中,确认操作316使用时间戳机构的公钥来解密时间戳以获得电子签名值的摘要和时间值。确认操作316然后确定来自时间戳的电子签名值的摘要是否匹配从电子签名值解密的电子签名值的摘要。确认操作316还可测试与时间戳相关联的证书链。如果电子签名摘要匹配(并且证书链得到验证),则该时间值表示电子签名以其特定形式存在的时间点。确认操作316可以对与电子签名相关联的所有时间戳操作(或至少直到找到满足测试操作322中的测试的时间戳)。选择操作选择最早的有效时间戳并记录该时间值为1。确定操作320检査证书链中的各证书的所记录的到期/撤消日期并记录最早无效时间为T2。判定操作322测试是否L〈T2。如果^<丁2,则该证书链至少在Ti是有效的,且因此是可信的。处理可以进而验证与电子签名相关联的任何联署。(如果没有联署与电子签名相关联,则处理可直接前进到声明操作328,该操作声明电子签名至少在时刻Ti是有效的且因此是可信的。)如果^不小于T2,则声明操作330声明电子签名为无效的(即,不可验证)。如果联署与电子签名相关联,则确认操作324试图使用此处所描述的用于电子签名的验证技术来验证所有这些联署。如果所有联署都得到验证,则声明操作328声明电子签名至少在时刻T,是有效的,且因此是可信的。或者,如果联署之一不能被验证,则声明操作330声明电子签名为无效的(即,不可验证)。用于实现本发明的图4的示例性硬件和操作环境包括游戏控制台或计算机20形式的通用计算设备,包括处理单元21、系统存储器22、以及将包括系统存储器在内的各种系统组件操作上耦合至处理单元21的系统总线23。可以只存在一个或者存在一个以上处理单元21,使得计算机20的处理器包括单个中央处理单元(CPU),或者多个处理单元,通常称为并行处理环境。计算机20可以是常规计算机、分布式计算机、或者任何其他类型的计算机,本发明不限于此。系统总线23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、交换光纤、点对点连接、以及使用各种总线体系结构中的任一种的局部总线。系统存储器可被简单称为存储器,并且包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26存储在ROM20中,它包含帮助在诸如启动期间在计算机24内元件之间传递信息的基本例程。计算机20还包括用于对硬盘(未示出)进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28、以及用于对可移动光盘31,如CD-ROM或其它光介质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别由硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接到系统总线23。驱动器及其关联的计算机可读介质为计算机20提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。本领域的技术人员可以理解,在示例操作环境中也可使用可储存可由计算机访问的数据的任何类型的计算机可读介质,如磁带盒、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等。多个程序模块能存储在硬盘、磁盘29、光盘31、ROM24或RAM25中,包括操作系统35、一个或多个应用程序36、其它程序模块37和程序数据38。用户可通过诸如键盘40和定点设备42等输入设备向个人计算机20中输入命令和信息。其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常通过耦合到系统总线的串行端口接口46连接到处理单元21,但也可通过其它接口连接,如并行端口、游戏端口和通用串行总线(USB)。监视器47或其它类型的显示设备也经由接口,诸如视频适配器48连接至系统总线23。除监视器之外,计算机通常包括其它外围输出设备(未示出),如扬声器或打印机。计算机20可使用至一个或多个远程计算机,诸如远程计算机49的逻辑连接在网络化环境中操作。这些逻辑连接由耦合至或者作为计算机20—部分的通信设备来实现,本发明不限于特定类型的通信设备。远程计算机49可以是另一计算机、服务器、路由器、网络PC、客户机、对等设备或其它常见的网络节点,并且通常包括许多或所有以上相对于计算机20所描述的元件,尽管在图4中仅示出了存储器存储设备50。图4中画出的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的网络环境常见于办公室网络、企业范围计算机网络、内联网和因特网,并且可以是所有类型的网络。当在LAN网络环境中使用时,计算机20通过作为一种通信设备类型的网络接口或适配器53连接到局域网51。当在WAN联网环境中使用时,计算机20通常包括调制解调器54、网络适配器、一种类型的通信设备,或者用于经广域网52建立通信的任何其他类型的通信设备。或为内置或为外置的调制解调器54经由串行端口接口46连接到系统总线23。在网络化环境中,相对于个人计算机20所描述的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段和通信设备。在一个示例实现中,电子签名验证模块、时间戳验证模块、联署验证模块、声明模块、散列模块、加密模块、解密模块和其它模块可由储存在存储器22和/或存储设备29或31中并由处理单元21执行的指令来具体化。电子签名、公钥、私钥、摘要、证书、时间戳、联署以及其它数据可被储存在存储器22和/或存储设备29或31中作为持久数据存储。此处所描述的技术在一个或多个系统中被实现为逻辑操作和/或模块。逻辑操作可被实现为在一个或多个计算机系统中执行的处理器实现的步骤的序列以及在一个或多个计算机系统中的互连机器或电路模块。同样地,各组件模块的描述可以按照由模块执行或实现的操作来提供。所得的实现是取决于实现所描述的技术的底层系统的性能要求的选择问题。从而,组成此处所述的技术的实施例的逻辑操作被不同地称为操作、步骤、对象或模块。此外,应该理解,除非以其他方式明确地要求保护或权利要求语言固有地需要一特定的次序,否则逻辑操作可以任何次序来执行。以上说明、示例和数据提供了对本发明的各示例性实施例的结构和使用的全面描述。尽管以上带着一定程度的特殊性或对一个或多个单独实施例的参考描述了本发明的各实施例,但是本领域的技术人员能够对所公开的实施例做出多种改变而不背离本发明的精神或范围。更具体地,应该理解,所描述的技术可以独立于个人计算机采用。因此可构想其他实施例。其目的是以上描述中所包含以及在附图中所示出的所有一切应当解释为仅仅是例示特定实施例而非限制。可以对细节或结构做出更改而不背离如所附权利要求书中定义的本发明的基本元素。虽然已经用对结构特征和/或方法动作专用的语言对本主题进行了描述,但是应该理解,在所附权利要求中定义的该主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现所要求保护的主题的示例形式而公开的。权利要求1.一种用于验证与多个时间戳相关联的电子签名的方法,其中每一时间戳包括一时间值,所述方法包括检测(312)所述电子签名的证书链中的一个或多个无效证书;选择(318)所述一个或多个无效证书的最早无效时间;验证(316)与所述电子签名相关联的时间戳;记录(320)最早有效时间的时间值;如果所述最早有效时间戳的时间值早于所述一个或多个无效证书的最早无效时间值,则将所述电子签名声明(322)为无效的。2.如权利要求1所述的方法,其特征在于,所述电子签名与多个联署相关联,并且所述方法还包括验证与所述电子签名相关联的多个联署,其中所述声明操作包括如果所有所述联署都被确定为有效并且所述最早有效时间戳的时间值早于所述一个或多个无效证书的最早无效时间值,则将所述电子签名声明为有效的。3.如权利要求1所述的方法,其特征在于,所述联署中的一个或多个通过一个或多个证书的链来证实,并且验证所述联署的操作包括验证证实所述联署的所述证书;以及如果证书链中的所述一个或多个证书被确定为有效的,则确定联署为有效的。4.如权利要求l所述的方法,其特征在于,还包括验证所述电子签名的证书链中的证书,其中如果所述证书链中的一个证书到期或被撤消,则所述证书被认为是无效的。5.如权利要求1所述的方法,其特征在于,无效证书的无效时间表示在所述无效证书的有效时段之后的时间。6.如权利要求1所述的方法,其特征在于,无效证书的无效时间表示所述无效证书被撤消的时间。7.如权利要求1所述的方法,其特征在于,所述电子签名包括由签署者提供的电子签名值,并且所述方法还包括使用所述签署者的公钥来验证所述电子签名值。8.如权利要求1所述的方法,其特征在于,所述时间戳各自通过一个或多个证书的链来证实,并且所述验证时间戳的操作包括确定时间戳的每一证书是否过期或被撤消,其中如果证书链中的证书过期或被撤消,则时间戳被认为是无效的。.9.如权利要求1所述的方法,其特征在于,所述时间戳各自通过一个或多个证书的链来证实,并且所述验证时间戳的操作包括验证证实所述时间戳的证书;以及如果证书链中的所述一个或多个证书被确定为有效,则确定时间戳为有效。10.—种具有用于执行实现如权利要求1所述的操作的计算机迸程的计算机可执行指令的计算机可读介质。11.一种验证与多个联署相关联的电子签名的方法,所述方法包括验证(324)与所述电子签名相关联的所述多个联署;如果所有所述联署都被确定为是有效的,则声明(328)所述电子签名为有效的。12.如权利要求11所述的方法,其特征在于,所述联署中的一个或多个通过一个或多个证书的链来证实,并且所述验证联署的操作包括验证证实所述联署的证书;以及如果证书链中的所述一个或多个证书被确定为有效的,则确定联署为有效的。13.如权利要求ll所述的方法,其特征在于,还包括;验证所述电子签名的证书链中的证书,其中如果所述证书链中的证书过期或被撤消,则所述证书被认为是无效的。14.如权利要求11所述的方法,其特征在于,所述电子签名包括由签署者提供的电子签名值,并且所述方法还包括使用所述签署者的公钥来验证所述电子签名值。15.—种具有用于执行实现如权利要求11所述的操作的计算机进程的计算机可执行指令的计算机可读介质。16.—种用于验证与多个时间戳相关联的电子签名的系统,其中每一时间戳包括一时间值,所述系统包括时间戳验证模块(221),所述时间戳验证模块检测所述电子签名的证书链中的一个或多个无效证书,记录所述一个或多个无效证书的最早无效时间值,验证与所述电子签名相关联的时间戳,以及记录最早有效时间戳的时间值;声明模块(330),所述声明模块在所述最早有效时间戳的时间值早于所述一个或多个无效证书的最早无效时间值时声明所述电子签名为有效的。17.如权利要求16所述的系统,其特征在于,所述电子签名与多个联署相关联,并且所述系统还包括验证与所述电子签名相关联的多个联署的联署验证模块,其中所述声明模块在所有所述联署被进一步确定为有效时声明所述电子签名为有效的。18.如权利要求17所述的系统,其特征在于,所述联署中的一个或多个通过一个或多个证书的链来证实,并且所述联署验证模块还验证证实所述联署的证书,并在证书链中的一个或多个证书被确定为有效时确定联署是有效的。19.如权利要求16所述的系统,其特征在于,还包括验证所述电子签名的证书链中的证书的电子签名验证模块,其中如果所述证书链中的证书过期或被撤消,则所述证书被认为是无效的。20.如权利要求16所述的系统,其特征在于,所述电子签名包括由签署者提供的电子签名值,并且所述系统还包括使用所述签署者的公钥来验证所述电子签名值的电子签名验证模块。全文摘要一种系统验证电子签名。电子签名可以与时间戳相关联,每一时间戳包括一时间值。时间戳验证模块检测电子签名的证书链中的无效证书,并记录该无效证书的最早无效时间值。验证模块还验证与电子签名相关联的时间戳并记录最早有效时间戳的时间值。声明模块在最早有效时间戳的时间值早于一个或多个无效证书的最早无效时间值时将该电子签名声明为有效的。电子签名可另选地或另外地与联署相关联。联署验证模块验证与电子签名相关联的联署,并且声明模块在所有联署被确定为有效时将该电子签名声明为有效的。文档编号G06Q20/00GK101395624SQ200780007299公开日2009年3月25日申请日期2007年2月13日优先权日2006年3月2日发明者M·帕夫利契奇申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1