CN102904927B - 具有时间相关证书的分布式计算机系统 - Google Patents

具有时间相关证书的分布式计算机系统 Download PDF

Info

Publication number
CN102904927B
CN102904927B CN201210320927.4A CN201210320927A CN102904927B CN 102904927 B CN102904927 B CN 102904927B CN 201210320927 A CN201210320927 A CN 201210320927A CN 102904927 B CN102904927 B CN 102904927B
Authority
CN
China
Prior art keywords
certificate
time
interval
controller
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210320927.4A
Other languages
English (en)
Other versions
CN102904927A (zh
Inventor
M.诺瓦克
P.J.利奇
曾毅
S.辛哈
K.M.肖尔特
G.肯南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102904927A publication Critical patent/CN102904927A/zh
Application granted granted Critical
Publication of CN102904927B publication Critical patent/CN102904927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords

Abstract

一种分布式系统,在该系统中,时间相关证书是由依照不同的本地时间工作的控制器提供的。在转换间隔中,不同的控制器有可能在相同的绝对时间产生不同的证书,通过识别在转换间隔期间产生的证书,避免了那些由于时间歪斜因而控制器产生不一致证书导致的差错。在转换间隔期间,控制器和其他设备可以基于验证功能的特性而以不同的方式使用证书。每一个控制器都可以基于自己调度的更新或是来自其他设备的请求而对证书进行周期性更新,由此,更新时间将被偏移随机延迟,以免出现过多的网络业务量。控制器可以基于与任何给定时间相关联的经密码保护的密钥以及识别与该证书相关联的实体的信息来确定哪个证书在该时间有效。

Description

具有时间相关证书的分布式计算机系统
背景技术
分布式计算机系统业已成为一种用于处理现代计算需求所产生的大量数据的重要解决方案。通过将计算工作负载扩展到多个单独的计算机系统,不但提供了比单个计算机系统更快地处理数据的能力,而且还提供了根据需要来添加和移除计算资源的可扩缩性,以及可用于通过回避单个故障点来为提供具有更少中断的服务的能力。这种分布式系统可以包括数以千计的互连计算机系统,并且通常被大型企业用于提供主机托管(web-hosting)或安全内部网之类的服务。
但是,此类系统的分布特性使得安全性成为一个挑战。一些安全性配置可能要求响应某个请求的计算机能够访问一组用于特定服务的证书(credential)。然而在一些分布式系统中,服务可以具有在不同计算机上运行的多个实例,并且一个或多个实例可能尝试依照相同的证书工作。进一步加剧挑战的是,一些分布式系统可能会将输入的服务请求路由到在分布式系统中随机选择的计算机,由此,不同的请求会在不同计算机之间扩散。由于请求方并不区分可能处理服务请求的众多可能的计算机,因此,在分布式系统中,任何能对该服务请求做出响应的计算机都有可能能够访问与该服务相关联的证书。
证书可以允许计算设备参与到与提供服务相关联的任意数量的验证功能中。例如,验证功能可能涉及由提供服务的计算设备向需要其请求方提供服务的另一个设备证明服务身份。而计算设备往往通过使用服务的证书执行密码功能来证明服务身份。例如,在提供服务的设备试图访问受限于该服务的实例的信息或其他资源时,将会产生一个验证请求。作为替换,在其他上下文中也可以产生验证请求,例如在试图访问服务的客户机尝试核实提供服务的设备确实代表该服务的时候。无论所要执行的验证功能具有怎样的特性,对于分布式系统中无缝执行这些验证功能的多个计算设备中的任一计算设备来说,一个或多个设备可能采取行为来依照同步的证书集合运行。通过这种方式,在提供服务中涉及的一个或多个计算机可能会呈现一个共有身份,并且可以交替参与到提供服务的处理中。
此外,良好的安全性实践有可能规定这些证书要周期性更新以便保持其机密性。这种证书更新可被称为证书刷新、回滚(rollover)或再生。众所周知,无论使用什么名称,证书的周期性更新都是通过在已被授权访问证书的计算设备上手动更新证书来提供的。在某种程度上,该处理可以用产生和设置证书的脚本来自动执行,然而,错误仍旧是常见的,并且有可能需要人员辅助。对于大型组织来说,在执行这些手动或部分自动的操作的员工上耗费大量金钱是屡见不鲜的。此外,在此类更新期间在一个或多个服务中遭遇到中断也并不罕见,尤其是在服务的运行于分布式环境中的多个实例之间协调更新的时候。这种中断可能会导致组织的金钱损失或是人员生产率损失。
发明内容
在可以由多个发布设备中的任一设备来产生时间相关(time-dependent)证书的分布式系统中,证书信息被产生以便包括第一和第二证书。第一证书可以是为当前间隔计算的证书,所述当前间隔是根据产生该证书信息的发布设备追踪的本地时间确定的。第二证书可以是为在先间隔计算的证书,其中所述在先间隔是根据产生该证书信息的发布设备追踪的本地时间确定的。
除了第一和第二证书之外,证书信息还可以包括关于该证书信息是否是在在先间隔与当前间隔之间的阈值数量的转换(transition)时间以内产生的指示。在这个证书转换阈值以内,由于发布设备追踪的本地时间存在差别,因此,不同的证书发布设备有可能产生不一致的证书。然而,在这个阈值之外,由于不同的发布设备的本地时间可以全都处于证书转换之前或全都处于证书转换之后,因此,不同的发布设备可以产生一致的证书。这个阈值时间量可以由围绕转换的时间窗口或是围绕证书信息之间的转换的间隔的其他任何适当的表示来代表。
能够访问证书信息的设备可以基于证书是否是在转换间隔以内产生的来有选择地使用证书。在一些实施例中,在转换间隔以外可以使用第一证书。而在转换间隔以内,第一或第二证书都是可以使用的。
此外,当设备基于证书产生信息时,如果该信息要由可能已经从与用以产生该信息的发布设备不同的发布设备接收到证书的设备来处理,那么可以使用第二证书。为了处理使用证书产生的接收到的信息,其中所述证书可能是由不同于用来处理该信息的发布设备的发布设备产生的,可以使用第一或第二证书来处理该信息。
在一些实施例中,时间相关证书可以用适合分布式系统的技术来计算。时间相关证书可以是用两种类型的间隔而为一个帐户计算的,或者是为其他任何为之产生了证书的实体计算的。第一类型的间隔可以定义发布设备可以用它自己的本地时钟追踪的间隔。此类设备可以识别具有公共标识符集合的第一类型的间隔,并且可以选择用于每一个第一类型的间隔的密钥,例如密码密钥。
第二类型的间隔可以涉及帐户,并且可以指示用于帐户的证书有效的时段。对于每一个帐户来说,第二类型的间隔可以是不同的,但是产生证书的发布设备可以依照第一类型的间隔来确定用于每一个账户的每一个第二类型的间隔的持续时间,由此,第二类型的间隔揭示了预定的(scheduled)证书刷新时间。
为了产生用于帐户的证书,设备可以依照第一类型的间隔来确定帐户证书预定要改变的时间。举例来说,该时间可以是第二类型的间隔的开端。产生证书的设备可以获取与产生证书的其他设备共享的密钥,其中所述密钥在第一类型的间隔中是有效的。与关于帐户的信息以及为之产生证书的时间相结合,密钥可被组合在密码函数中以便产生证书。该证书可以在当前的第二类型的间隔中是有效的。为了确定在先间隔的证书,标记了在先的第二类型的间隔的开端的第一类型的间隔可被识别,并且可以对于该该间隔重复所述计算。
在一些实施例中,可以使用一种或多种技术来减小分布式系统中的过多计算负载,如果多个设备中的每一个要在以类似方式预定的回滚时间中为每一个帐户计算新证书,那么所述过多计算负载可能就会发生。触发证书再生的设备可以确定预定回滚时间,但是证书的实际生成有可能是在与预定的时间相差一个随机间隔的时间偏移上发生的。在一些实施例中,这个随机间隔可以由产生证书的发布设备确定。在其他实施例中,可以向使用证书的设备请求该证书,并且这些请求可以在时间上随机分布,以避免多个请求在相同时间到达。
在一个方面中,本发明涉及一种包含了多个主机计算设备以及多个控制计算设备的系统。该主机计算设备托管(host)了多个服务,并且每一个控制计算设备被配置成为多个服务中的任何一个服务产生证书信息。该证书信息包括第一证书、第二证书以及指示。第一证书是基于控制计算设备的当前本地时间而为多个时间间隔中的第一时间间隔确定的。而第二证书则是为多个时间间隔中的第二时间间隔确定的,第二时间间隔处于第一时间间隔之前。所述指示表明控制计算设备的本地时间是否处于第一时间间隔与第二时间间隔之间的阈值数量的转换时间以内。
在另一个方面,本发明涉及一种在具有在分布式系统中发布时间相关证书的多个计算设备的群组中操作计算设备的方法。每一个计算设备在多个时间间隔中发布一致的证书,所述证书是由每一个计算设备根据计算设备上本地保持的本地时间发布的。该方法包括:使用至少一个处理器来提供证书信息,其中所述证书信息包括第一证书、第二证书以及指示。第一证书是基于计算设备的当前本地时间而为多个时间间隔中的第一时间间隔确定的。第二证书则是为多个时间间隔中的第二时间间隔确定的,其中所述第二时间间隔处于第一时间间隔之前。所述指示表明计算设备的本地时间是否处于第一时间间隔与第二时间间隔之间的阈值数量的转换时间以内。
在另一个方面,本发明涉及至少一种包含计算机可执行指令的计算机可读存储介质,其中所述计算机可执行指令在被运行时,对包含多个发布时间相关证书的控制计算设备的分布式系统中的主机计算设备进行控制。所述多个控制设备中的每一个在多个时间间隔中发布一致的证书,所述证书是由每一个控制设备根据所述控制设备本地保持的本地时间发布的。该计算设备使用证书来执行依照某种方法的验证功能。该方法包括接收来自多个控制设备中的一个控制设备的证书信息,其中该证书信息包括第一证书、第二证书以及指示。第一证书是基于控制设备的当前本地时间而为多个时间间隔中的第一时间间隔确定的。第二证书是为多个时间间隔中的第二时间间隔确定的,其中所述第二时间间隔处于第一时间间隔之前。该指示表明控制设备的本地时间是否处于第一时间间隔与第二时间间隔之间的阈值数量的转换时间以内。该方法还包括:基于所述指示而在第一证书与第二证书进行选择,以便在验证功能中使用。
在另一个方面,本发明涉及一种包含多个计算设备的联网系统,其中每一个计算设备都具有相应的本地定时源,并且每一个计算设备都被适配成识别多个间隔中的间隔,所述多个计算设备使用各自的本地定时源来追踪公共持续时间的间隔。此外,每一个计算设备都通过基于与实体相关联的证书回滚信息来选择多个间隔中的一个间隔,并且执行至少与该实体相关联的选定间隔和信息的功能,从而为该实体计算证书。
在另一个方面,本发明涉及一种操作多个计算设备中的一个计算设备来为多个帐户中的每一个产生时间相关证书的方法。该方法包括:追踪时间以便识别多个间隔,以及使用至少一个处理器来产生用于帐户的证书。这种证书的生成包括:为所述帐户确定多个间隔中的一个间隔,其中用于该帐户的证书在所述间隔是最新近被调度来基于与帐户相关联的证书刷新信息而被改变的,确定用于所确定的间隔的密钥,以及至少根据所述密钥以及与帐户相关联的信息来计算证书。
在另一个方面,本发明涉及至少一种包含计算机可执行指令的计算机可读存储介质,其中在被至少一个处理器运行时,所述计算机可执行指令将执行一种用于为实体计算证书的方法。该方法包括:访问用于该实体的证书刷新信息,其中该证书刷新信息包括起始时间以及证书回滚间隔。该方法还包括:至少基于该起始时间和证书回滚间隔来计算预定的证书回滚时间,以及至少根据所计算的预定证书回滚时间以及与帐户相关联的信息来计算证书。
在另一个方面,本发明涉及一种包括多个计算设备的联网系统,其中每一个计算设备都被适配成为多个实体中的每一个产生一致的证书,其中在适用于每一个实体的多个第一类型的间隔中的每一个间隔期间,为所述每一个实体产生的证书是不同的。每一个计算设备都通过追踪公共持续时间的多个第二类型的间隔以及通过为实体计算证书来产生证书。计算用于实体的证书包括:基于与该实体相关联的证书回滚信息来选择多个第二类型的间隔中的一个第二类型的间隔,所选择的第二类型的间隔定义第一类型的间隔的开端,以及在与所选择的第二类型的间隔规定的基准时间偏离的时间,执行密码功能来产生用于实体的证书,其中所述证书在第一类型的间隔期间是有效的。
在另一个方面,本发明涉及一种操作分布式计算机系统来提供时间相关证书的方法。该方法包括:使用至少一个处理器来为一个或多个实体中的每一个重复产生证书,其中每一个证书在相对于多个第二类型的间隔的子集所确定的第一类型的间隔中有效。生成证书的处理包括:为一个或多个实体中的每一个确定用于为第二个第一类型的间隔重新产生证书的时间,其中该时间是相对于第一个第一类型的间隔的末端确定的,并且与第一个第一类型的间隔的末端偏移了一个随机时间。
在另一个方面,本发明涉及至少一种包含计算机可执行指令的计算机可读存储介质,其中在被具有多个控制器的分布式计算系统中的计算设备运行时,所述计算机可执行指令将会执行一种方法。该方法包括:接收证书信息,所述证书信息包括至少一个证书和时间指示值,其中该时间指示值指定可以从多个控制器中的任何一个获取更新证书的计划时间。此外,该方法还包括:在相对于所述计划时间确定的随机时间请求更新的证书。
以上是关于所附权利要求定义的本发明的非限制性概述。
附图说明
以下附图并没有打算按比例绘制。在附图中,在不同的图中示出的每一个相同或近似相同的组件都是用相同的数字表示的。为了清楚起见,并不是每一个组件都在每一个图中进行了标记。在附图中:
图1A是本发明的实施例在其中工作的分布式系统的示意图;
图1B是示出了在执行验证功能期间处于分布式系统内部的证书信息流的略图;
图1C是示出了在执行替换的验证功能期间处于分布式系统内部的证书信息流的略图;
图2A是示出了在单个计算设备上发布时间相关证书的时间线的略图;
图2B是示出了转换间隔的略图,其中在所述转换间隔,每一个都发布时间相关证书的多个计算设备可以因为时钟歪斜而发布不一致的证书;
图2C是示出了围绕证书的预定更新时间的对称转换间隔的略图,其中在所述转换间隔,计算设备可以因为始终歪斜而发布不一致的证书;
图2D是示出了非对称转换间隔以及计算设备用来发布时间相关证书信息以便避免分布式系统中的不一致效应的其他时间间隔的略图;
图3是操作计算设备来发布时间相关证书信息以便避免分布式系统中的不一致效应的方法的流程图;
图4A是使用根据图3的方法产生的证书信息来执行涉及入站验证请求的验证功能的方法的流程图;
图4B是使用根据图3的方法产生的证书信息来执行涉及出站验证请求的验证功能的方法的流程图;
图5A是产生时间相关证书信息的方法的流程图,其中所述方法减小了在分布式系统内部的计算设备上出现高计算需求的状况的出现率;
图5B是对分布式系统中使用证书信息的计算设备进行操作的方法的流程图,其中所述方法减少了在分布式系统内部出现高计算负载的情形;
图6是示出了计算时间相关证书的方法的流程图;以及
图7是本发明的实施例可在其上工作的典型计算设备的示意图。
具体实施方式
发明人已经认识并意识到,在服务主机之类的设备从域控制器之类的多个发布设备中的任一发布设备获取证书的分布式系统中,用于提供和/或使用证书信息的改进技术可以降低在此类系统中出现差错或中断的风险。在一些系统中,控制器可以提供时间相关证书,由此,即便控制器间的定时歪斜所造成的不一致性导致不同控制器产生可在绝对时间帧中的相同时间适用的不同证书,主机和/或控制器也可以成功执行验证功能。
在一些实施例中,每一个服务或是要使用证书的其他实体可以具有一个在控制器上复制的帐户。与该帐户相关联的信息可以揭示与证书相关联的有效期间隔(validity interval),由此,一旦通过了有效期间隔,那么每一个帐户的证书可以改变。在每一个控制器保持它自己的本地时间的分布式系统中,不同的控制器可以在不同的时间改变证书。结果,当在使用证书的控制器上执行验证功能的一部分的时候,另一部分在不同控制器上用不一致证书执行的验证功能有可能失败。
在分布式系统的一些实施例中,每一个控制器可以具有一种识别间隔的机制和一种为所述间隔产生证书的机制。例如,每一个控制器可以将时间分成间隔,并且用于服务的不同证书可被指派给每一个间隔。多个控制器中的每一个可以试图通过执行计算来为服务产生一致的证书,其中所述计算取决于其间产生证书的间隔。然而,每一个控制器可以追踪其自身的本地时间,由此,不同控制器追踪的本地时间之间的差值或歪斜可能导致不同的控制器在相同的绝对时间为该时间指派不同的间隔,并且相应地产生不同的证书。在该情景中,第一控制器有可能识别出一个由第一控制器的本地时间量度的可适用时间间隔,而具有不同本地时间的第二控制器则有可能基于所述第二控制器的本地时间确定所适用的是不同的间隔。
如果第一控制器和第二控制器确定所适用的是不同的时间间隔,那么第一控制器和第二控制器可以在相同的绝对时间实例提供不同的证书。结果,对于基于来自其中一个控制器的证书启动的验证功能而言,如果该验证功能是基于来自另一个控制器的证书完成的,那么所述验证功能可能不会产生预期结果。举例来说,如果基于来自第一控制器的证书产生了用于服务的令牌,并且随后将所述令牌提供给尝试基于该令牌以及来自第二控制器的证书来验证服务的设备,那么验证功能的结果有可能得到一个结论,那就是证书无效。这种源于第一控制器和第二控制器在相同时间提供不同证书的结论可能导致验证失败,并且还会导致服务中断。
发明人已经认识并意识到,通过控制系统中的一个或多个设备来采取在围绕其间不同证书有效的间隔之间的转换的时间窗口期间产生一致的结果的行为,那么将可以避免这种中断后果。为了支持这种行为,当控制器产生证书信息时,每一个控制器都可以提供第一证书和第二证书。第一证书可以代表在当前间隔适用的证书,所述当前间隔则由产生该证书的控制器上的本地时间量度。第二证书可以代表在之前紧挨着的间隔中适用的证书,并且该间隔是由产生证书的控制器的本地时间量度的。此外,证书信息可以包括关于该证书信息是否是在转换或转换间隔周围的时间窗口期间产生的指示,其中在所述转换或转换间隔期间,不同的分布式控制器可以基于其本地时间基准来断定其在不同的时间间隔中工作。
可以访问该证书信息的设备可以使用该指示来选择使用证书中的哪一个。此外,所选择的证书还可以取决于将要使用该证书执行的验证功能的特性。例如,在指示信息表明证书不是在转换间隔中产生的情景中,设备可以选择一个证书,该证书代表产生证书信息的控制器所确定的适用于当前间隔的证书。无论所要执行的验证功能具有怎样的特性,该证书都可以被选择。
然而,如果证书是在转换间隔期间产生的,那么设备可以基于要执行的验证功能的特性来选择证书。举例来说,如果验证功能是出站验证,例如打算通过执行使用证书的密码功能来产生令牌的功能,那么可以在转换间隔中选择第二证书。该选择可以确保接收令牌的设备能够向任何控制器核实该令牌,即便是尚未转换到新间隔的控制器。相反,如果该功能是入站功能,例如涉及尝试核实另一个设备提供的令牌的功能,那么在验证令牌的时候可以接受第一证书或第二证书。相应地,如果令牌是用来自尚未转换到新间隔的控制器的证书产生的,那么在第一与第二证书之间选择验证令牌所依据的证书可以避免出现不正确的结果。
现在转到图1A,该图示出的是一个可以在其中执行验证功能的例示系统。在本示例中,该系统是包含产生证书的设备以及使用这些证书的其他设备的分布式系统。这些设备通过网络进行连接,由此它们可以交换证书信息以及依照其在分布式系统中的角色来执行其他功能。应该意识到的是,虽然产生证书的设备和使用证书的那些设备被图示成在分布式系统中具有特定和不同的作用,但是这种区分并不是本发明所必需的。对本发明来说,产生或使用证书的设备的作用并不重要。在一些实施例中,举例来说,产生证书的设备也可以使用这些证书。
图1A是包含一个或多个互连计算设备的分布式系统100的简化图示。显示了四种类型的设备:主机,控制器,客户机以及服务器。然而,设备的数量和类型仅仅用于例证目的,并且对本发明来说并不是至关重要的。
示出了诸如主机1021、1022和1023之类的主机。主机可以是计算设备,除了其它功能之外,所述计算设备向其他计算设备提供一个或多个服务。举例来说,主机可以是企业网络中的服务器,数据库,或者可以是向其他计算设备提供数据和/或服务的其他任何设备。
图1A还示出了系统100中的多个控制器设备。为了简单起见,示出了两个控制器,即控制器1041和控制器1042。控制器可以执行不同的功能,包括但不局限于控制哪些设备可以访问网络或控制其他计算设备上的一个或多个行为。作为一个具体示例,控制器设备可以是域控制器,例如本领域已知的用于企业网络的域控制器。可以对这其中的每一个控制器,以便为一个或多个实体发布供其自身或是其他计算设备使用的时间相关证书。这些证书可以用于验证实体等原因,其中举例来说,所述实体可以是用户、帐户或服务。在图1A的示例中,为之发布了证书的实体可以对应于用以控制对互连形成分布式系统的设备的受管理的网络所进行的访问的帐户。在主机上运行的每一个服务都可以凭借该帐户来运行,由此,每一个服务都可以具有在分布式系统内部认可且为之发布了证书的身份。
对于其他设备来说,无论是在分布式系统的内部还是外部,所述设备都可以与主机和/或控制器交换数据或服务。例如,此类设备可以是客户机106或服务器108,或者可以是其他任何向分布式系统100内部的设备请求服务或者向分布式系统100内部的设备提供服务的设备。在图1A示出的示例中,客户机106可以获得来自控制器1041的授权令牌,以便与主机1021建立安全连接。相反,服务器108可以使用控制器1042来核实它从主机1022接收的令牌。
在分布式系统100的一些实施例中,诸如主机或控制器之类的一个或多个设备可以复制数据和服务。复制的设备可以表明多个设备中的任何一个都能执行功能。在这样的情景中,虽然不同的设备可以具有数据或服务的不同实例,但是复制的目的可以是允许一个或多个实例在任何给定的时间为任何给定的请求提供一致的结果。
除了其他原因之外,对于复制的系统来说,一种可能的动机可以是允许将服务请求路由到提供相同数据和/或服务的多个设备中的任一设备,以便将处理负载分布到多个设备上。请求方没有必要知道哪一个特定设备执行该服务。因此,请求方不能将请求定向到分布式系统中的特定设备。在这样的例示情景中,设备集合中的一个或多个设备可以以相同的身份来运行服务,并且可以采取行为以便能访问一致的证书。
作为这种被复制的系统的示例,在图1A中,在主机1021、1022、1023上可以运行数据库服务,由此,处于主机上的所述数据库的一个或多个实例可以采取行为,以便在任何时间点依照相同的安全原则来运行。在复制系统的这样的实施例中,一个或多个控制器1041和/或1042可以运行分布式证书生成服务,以便尝试在任何时间点产生一致的证书。
然而在一些分布式系统中,产生一致的证书的任务有可能会是一项挑战。例如,在一些名为多主设备的系统(multi-master system)的实施例中,控制器可以充当对等体,并且每一个控制器可以依照它自己的本地时钟和内部状态来独立产生它自己的证书。但是,应该意识到的是,本发明没有必要局限于多主设备配置。作为替换,可以有单个(主)控制器产生证书并将其分发给其他(从属)控制器。无论控制器如何协调证书生成处理,协调不同控制器产生并被不同主机使用的可能不一致的证书的难题都可能是存在的。举例来说,不一致性有可能是由于控制器之间的本地时间基准的差别而产生的,或者是因为传输延迟或其他那些可能导致不同控制器追踪的本地时间产生差异的因素而产生的。在一些实施例中,不一致性有可能是通过在时间上扩展产生证书的计算负载而被有意引入到系统中的。
图1B和1C给出了控制器之间的不一致的证书信息如何导致验证失败的示例。然而应该意识到,这两个示例仅仅是代表性的实施例,其绝不是为了进行限制。不一致性有可能以多种方式中的任何方式产生,并且可以应用这里描述的技术来避免这些以及其他类型的系统中的服务中断。
图1B显示了充当控制器1041和1042的两个不同设备参与验证功能的情景。这其中的每一个设备都可以是产生证书信息的任何适当的设备。在一些实施例中,控制器1041和1042可以是域控制器。作为替换或补充,他们可以是Kerberos密钥分发中心。然而应该意识到,分布式系统100不必局限于这些选择,并且可以由依照验证方法交换信息的互连计算设备的任何适当配置来实施。
在图1B的示例中,第一控制器1041接收对于涉及证书的验证功能的请求1121。该请求可以从计算设备106随机路由,其中所述计算设备106可以是代表用户110行动的客户机,或者可以是其他任何请求验证功能的设备。此外,该客户机可以请求用于诸如帐户之类的特定实体的验证功能。所述验证功能的目的可以是获取用于与设备102之类的计算设备进行的安全事务的授权,其中所述计算设备102可以是主机或是其他任何提供服务的设备。例如,请求1121可以是请求控制器1041使用证书信息来产生可供客户机106用以访问主机102上的别的服务的票据的请求。
作为替换,请求1121可以是由控制器1041已经借助其他任何适当的手段或是带有其他任何适当的目的接收的,其中举例来说,所述手段可以是确定性路由,所述目的可以是授权入站请求。然而一般来说,控制器从设备接收的请求可以是对于涉及证书的验证功能的任何适当的请求。
一旦接收到请求1121,则控制器1041可以使用多种手段来确定用于被请求的实体的证书,这其中包括但不局限于从其本地数据存储器1131中检索证书信息或是计算一个证书生成函数。在一些实施例中,该证书生成函数可以是依赖于时间的,并且可以取决于控制器1041追踪的本地时间。无论控制器如何确定该证书信息,它都可以向客户机106返回一个适当的响应1141。作为例示情景,如果系统使用的是基于Kerberos的验证,那么响应1141可以是包含验证令牌和加密密钥的证书信息的密码函数。
在一些实施例中,一旦接收到响应1141,则客户机106可以在包含被路由至主机102的请求116的后续验证功能中使用接收到的信息,其中所述主机102可以是提供服务的设备。在这个实施例中,验证功能可以包括对于设备106的验证,但在其他实施例中,该验证功能可以涉及证书的任何适当的密码功能。
一旦接收到请求116,则主机102然后可以通过向第二控制器1042发送对于验证功能的后续请求1122来尝试验证该请求。例如,该验证功能的特性可以是主机102访问针对验证请求116的证书信息,但其并不局限于此。第二控制器可以通过确定与请求1121相关联的相同帐户的证书信息来尝试执行该验证功能。举例来说,控制器1042可以通过从它的本地存储器1132中读取或是通过计算证书生成函数来做出该确定。
无论控制器1042如何确定证书信息,它都可以使用该证书信息来尝试验证功能,并且可以向主机102返回结果1142。然后,主机102可以向客户机106返回回复118,其中所述回复可以准许或拒绝验证请求,或者也可以是其他任何适当的响应。
在一些实施例中,为使客户机106接收来自主机102的服务,可以要求第二控制器1042使用与第一控制器1041使用的证书信息相一致的证书信息。然而,第一控制器1041与第二控制器1042的内部状态的不同可能导致不同控制器具有不一致的证书信息,而这有可能导致验证失败。举例来说,如果证书依赖于时间并且取决于第一控制器1041和第二控制器1042上的不同的本地时间,那么有可能会发生上述情况。
图1B示出的前述示例描述的是这样一个示例,其中主机102可以参与“入站”验证功能,或者更一般地,主机102可以参与任何涉及到将证书应用于从另一个设备接收的对象的适当功能。如果执行验证功能的设备确定该对象是由一个设备使用所述执行验证功能的设备所应用的相同证书产生的,那么该对象可被认为是得到授权的。当主机102和客户机106从两个不同的控制器获取了用于相同帐户的不一致的证书信息时,这时有可能会发生验证失败。在这种情况下,举例来说,控制器1041和1042可能使用显著不同的本地时间基准来产生时间相关证书。
作为不一致的证书信息如何导致验证失败的另一个示例,图1C示出了一个由主机102随后向另一个设备108发送请求120的情景。该请求可以是一个要求访问设备108上的诸如数据或应用之类的服务的请求,并且设备108本身可以是服务器、数据库或是其他任何提供服务的设备。举例来说,如果来自主机102的请求120涉及针对设备108的“出站”验证功能,那么有可能出现这种情景。
主机102可以向控制器1042发送一个对于验证功能的请求1122,其中该请求的目的是获得与设备108进行的安全事务的授权。控制器1042可以通过使用来自它本地存储器1132的证书或者计算证书生成函数来执行验证功能,并且随后向主机102返回恰当的响应1142。与图1B的“入站”情形相似,该响应1142可以包括使用主机102在请求120中发送给设备108的证书加密的对象,然后,设备108可以尝试获取对于该对象的验证。
为了验证接收到的对象,服务器108可以向第三控制器1043发送对于验证功能的请求1123。与控制器1041和1042一样,第三控制器1043可以使用多种手段来确定证书信息,例如从它的本地存储器1133中读取或是计算证书生成函数。该证书生成处理可以是依赖于时间的,由此,所述证书有可能依赖于产生证书的控制器1043追踪的本地时间。基于该验证功能的结果,控制器1043然后可以向设备108返回一个响应1143。当控制器1042和1043使用不一致的证书来执行它们各自的验证功能时,这时有可能发生验证失败。
图1B和1C全都显示了证书信息的不一致性如何导致不期望的验证失败的示例。这种证书信息的不一致性可以是由不同的因素造成的。证书不一致性的一个可能的原因在于:在一些分布式系统中,证书有可能周期性改变,除了其他原因外,其目的有可能是帮助保持其机密性。然而,系统中的不同部分有可能在相同的时间使用不同的证书,而这将会产生能导致非预期的验证失败的不一致性,即便是在接收有效证书的设备之间也是如此。
图2A示出了具有时间相关证书的例示控制器104的时间线图表。在一些实施例中,特定的证书有可能只在某个时间长度上有效,并且有可能在该时间届满之后改变。图2A示出了三个间隔2021、2022、2023,其中所述间隔可被称为有效期间隔或回滚间隔,并且特定证书在所述间隔期间是有效的。然而,此类间隔的数量和名称对本发明来说并不重要。此类间隔的长度可以是任何适当的持续时间,并且还可以是数天或数周,这取决于受保护的应用或服务。举例来说,更安全的服务可以具有更频繁的证书更新以及更短的有效期间隔。而且,用于不同实体的这种类型的间隔可以具有不同的持续时间,并且可以是在不同的时间开始的。
在一些实施例中,每一个有效期间隔2021、2022、2023都可以处于证书发生变化的时间之前和/或之后,其中所述时间在图2A中用转换时间2041、2042和2043示出。这些转换时间的数量和名称对于本发明而言并不重要,这些转换时间可以代表发生了从较早的证书信息到较新的证书信息的变化的时间,或者可以代表证书信息中的其他任何适当的变化。
在分布式系统的一些实施例中,这些有效期间隔和转换时间可以由控制器使用与为之产生了证书的帐户或其他实体相关联的刷新信息来确定。在一些实施例中,该刷新信息可以包括证书信息中的预定变化之间的时间。作为替换,在一些实施例中,刷新信息还可以包括创建帐户或其他实体的时间,或是用于量度这些有效期间隔的其他任何适当的起始时间。
在诸如复制系统之类的一些实施例中,不同的控制器可以尝试以同步方式来执行证书更新,以便在整个分布式系统中保持一致的证书。然而,如果不同控制器追踪的本地时间之间存在差别,那么同步证书更新可能是一个难题。在这样的情景中,在任何给定时间,一些控制器有可能具有较早的证书,而其他控制器则有可能具有较新的证书。
图2B示出了本地时间差别如何导致证书信息不一致的一个可能的示例。在该示例中显示了三个控制器,即控制器1041、1042以及1043,然而确切的数量对于本发明而言并不重要。控制器可以确定预定的证书回滚时间,其中该时间打算相对于绝对时标在同一时间发生的。然而,没有一个控制器是相对于绝对时标工作的,相反,每一个控制器都是依照它自己的本地时间工作的。虽然分布式系统可以尝试同步控制器的本地时间,但是出于多种原因,在每一个控制器追踪的本地时间之间有可能存在差别。
结果,控制器有可能会在用时间2041、2042和2043表示的不同时间经历到证书转换。这些时间可以代表从一个回滚间隔到另一个回滚间隔的可能转换。如所示,用于第一控制器的第一和第二回滚间隔被标记成间隔20211和20212,用于第二控制器的回滚间隔被标记成间隔20221和20222,而用于第三控制器的回滚间隔则分别被标记成间隔20231和20232
本地时钟之间的差值或歪斜可以用对于相同的预定转换在不同控制器上的转换时间的差表示。如所示,第一控制器1041与第二控制器1042之间的转换时间差是用时间歪斜21212表示的;第一控制器1041与第三控制器1043之间的转换时间差是用时间歪斜21213表示的;而第二控制器1042与第三控制器1043之间的转换时间差则是用时间歪斜21223表示的。在时间2041,当第一控制器1041刚刚可以开始从一个证书转换到下一个证书时,第二控制器1042有可能已经转换到下一个证书,而第三控制器1043则有可能仍在使用先前的证书。
如所示,在一些实施例中,在预定转换周围可以存在一个时间间隔,其中在所述时间间隔期间,经过不同控制器处理的证书请求可以返回不同的结果。这种不一致性可能导致非预期的授权失败。然而应该理解,图2B仅仅表示不一致的证书如何可以在不同控制器上存在的一个可能实施例。
图2C示出了在一些实施例中,控制器如何可以在转换时间附近使用证书差分处理来避免非预期的授权失败。在一些实施例中,控制器可以将其时间线210分成另一种类型间隔的离散单元。这种类型的间隔可被称为“纪元(epoch)”,它可以具有可以短于有效期间隔的固定持续时间,但是确切的名称和持续时间对本发明而言并不重要。为了简单起见,在图2C中仅仅标记了前两个纪元,标记为2081和2082
每一个控制器可以依照这些纪元来追踪时间。纪元的追踪通常可以在所有控制器上以任何恰当的方式同步。相应地,在所有的控制器上会有相应的纪元。然而,由于每一个控制器都使用它自己的本地时间来确定每一个纪元的开端和结束,因此,纪元将会遭遇到与图2B所示的歪斜相类似的歪斜。
每一个控制器可以相对于这些纪元量度时间。例如,每一个有效期间隔可以在与纪元开端对准的时间开始和停止。在一些实施例中,转换时间可以对应于纪元开端。如所示,转换时间2041、2042和2043对应于纪元3、6和9的开端。在一些实施例中,有效期间隔可以被表述成是整数个的纪元。在该示例中,每一个有效期间隔包括三个纪元,但是每一个有效期间隔的纪元的实际数量对于本发明而言并不重要。
在一些实施例中,在证书的每一个转换时间周围,控制器可以指定某个时间窗口或转换间隔。在图2C中显示了三个这样的被标记成2161、2162和2163的转换间隔,但是这种转换间隔的实际数量可以取决于相应转换的数量。转换间隔可以采用多种方式来定义。作为示例,转换间隔可以由来自证书有效期间隔之间的预定转换的小于阈值时间量的所有时间确定。
所述阈值可被设置为确保无论控制器上存在什么样的时钟歪斜,在任一控制器的预定转换时间之前的所述阈值时间量之前,不会有其他控制器已经经历到新证书的相应转换。同样,在任一控制器的预定转换时间之后的阈值时间量之前,所有其他控制器都会已经经历到新证书的相应转换。
在一些实施例中,该阈值可以是基于任何两个控制器之间的最大歪斜估计来定义的。举例来说,图2B示出了最大时钟歪斜218,在图2B中,所述歪斜与控制器1041和1043之间的歪斜是对应的。确定最大时钟歪斜218的处理可以采用多种方式进行,包括但不局限于控制器周期性轮询权威的时间源,并且取第一控制器轮询的时间与最后一个控制器轮询的时间之间的差值。无论如何估计最大歪斜218,所述歪斜均可用于指定围绕转换时间的阈值时间量。
该阈值可以用多种方式确定,以使其可以指定一个足够大的转换间隔,由此,如果任一设备假设所有控制器都具有相同的证书,那么在转换间隔之外是不会发生非预期的授权失败的。更一般来说,该阈值可以依照任一恰当的方式使用,以便指定一个转换间隔,从而使得设备可以在转换间隔以内和以外采用不同的方式来产生和/或使用证书。
在一些实施例中,转换间隔的持续时间可以取决于使用证书的方式。在设备会在预定转换之前和之后以不同方式使用证书的实施例中,转换间隔可以在预定转换之前和之后延长不同的时间量。相应地,为了避免非预期的验证失败,转换间隔没有必要是对称的。
举个例子,一旦涉及第二设备所产生的对象的验证功能失败,那么第一设备可以使用之前紧接着的证书来重复该验证功能。如果第二设备尚未转换并且是用先前证书来产生对象的,那么所述验证将会成功。同样,如果刚刚已经转换到新证书的任一设备在其转换间隔结束之前继续使用之前紧接着的证书,那么其他任何设备(无论该设备是否转换到新证书)都能成功完成验证功能。结合这种使用证书的协议,每一个控制器只需要追踪预定转换之后的转换间隔。换句话说,在该实施例中,转换间隔可以仅仅延伸至预定转换时间之后而不是之前的时间。
不管转换间隔的长度和对称性如何,在该转换间隔以内,控制器都未必具有一致的证书信息。例如,一些控制器可能具有旧的证书,而其他控制器则有可能具有新证书,或者在证书信息之间还有可能存在其他形式的差异。
因此,在一些实施例中,在这些特定的转换间隔内部,即使证书信息中可能存在不一致性,计算设备也可以用一种确保其他设备都能成功执行验证功能的方式来有选择地使用时间相关的证书信息。
在一些实施例中,如图2C所示,转换间隔的持续时间可以小于纪元的持续时间。例如,转换间隔的长度可以是数分钟或数秒,而纪元的长度则可以是数小时或数天。但是应该意识到的是,对本发明而言,纪元和阈值的确切持续时间并不重要,并且它们中的任何一个可以根据分布式系统的特性而具有任何恰当的值。
虽然证书信息的确切特性可以取决于所使用的安全协议,但在一些实施例中,证书信息可以包括三种信息:与第一有效期间隔相对应的第一证书;与第一有效期间隔之前的第二有效期间隔相对应的第二证书;以及表明发布该证书的计算设备的本地时间是否处于第一与第二间隔之间转换的阈值时间量以内的指示。后一种信息可以是表明第一证书是在转换间隔期间产生的或者可能是在转换间隔期间提供的信息的示例。
用于确定在计算第一和第二证书的过程中使用的第一和第二有效期间隔的处理可以取决于证书生成时间。在一些实施例中,第一间隔可以是当前间隔(包含证书生成时间的间隔)。作为替换,在一些实施例中,第一间隔可以是下一个间隔(包含证书生成时间的间隔之后的间隔)。
在一些实施例中,对于发布证书的计算设备的本地时间是否处于第一与第二有效期间隔之间转换的阈值时间量以内的指示可以包括一个或多个时间指示值或定时值。在一些实施例中,可能有第一时间指示值和第二时间指示值。然而,这些值的数量可以根据所使用的验证配置的特性而存在差别。
例如,第一时间指示值可以代表能够从多个计算设备中的任何一个获取更新的证书的计划时间。为了简单起见,这个第一时间指示值可被称为“恢复(comeback)”提示(hint)(或者简称为CB)。在一些实施例中,第二时间指示值可以代表在它之前没有一个控制器提供更新证书的计划时间。为了简单起见,这个第二时间指示值可被称为“无变化”提示(或者简称为NC)。这些值可以采用任何适当的方式来确定。
图2D以及表1和2显示了计算设备如何可以发布时间相关的证书信息的可能实施例。在这些特定实施例中,转换间隔是以非对称方式安置在转换时间之前的,但是一般来说,转换间隔可以具有关于转换时间的任何类型的对称性。
表1表示其中计算设备可以产生新的证书信息或是替换旧的证书信息的实施例。举例来说,如果在足够长的时间里证书没有被访问,那么有可能发生这种情景。该确定可以基于各种判据,举例来说,其中一个判据可以是存储器中的证书信息与图2D中间隔2021之前的间隔相对应。无论是怎样的特定判据或动机,计算设备都可以在任何点依照表1来决定产生新的证书信息。
表2表示其中计算设备可以返回已有的已存储证书信息或者可能还可以产生新的证书的情景。举例来说,如果存在已存储的证书信息并且依照任意数量的适当判据认为所述证书信息是当前证书信息,那么有可能发生这种情景,其中举例来说,所述适当判据可以是证书信息的一部分与图2D中的间隔2021相对应。无论具有怎样的具体判据或动机,计算设备都可以在任何时间基于表2来决定返回证书信息。
 表1:产生新的证书信息或是替换旧的证书信息
间隔 用于计算证书的有效期间隔 第一时间指示值(恢复提示) 第二时间指示值(无变化提示) 写入?
2201 2021 2042 2222
2162 2021 2042 当前时间
2202 2022 2043 2223
表2:替换现有的当前证书信息
间隔 用于计算证书的有效期间隔 第一时间指示值(恢复提示) 第二时间指示值(无变化提示) 写入?
2201 2021 2042 2222
2162 2022 2042 2223
2202 2022 2043 2223
 在表1和表2中,第一列显示的都是图2D所示的三个可能的间隔2201、2162和2202,其中所述间隔代表其间可以进行证书生成处理的三个不相交的时间间隔。然而,此类间隔的数量和特性是出于例证目的选择的,并且其对本发明而言并不重要。表1和2的第一行对应于转换间隔之前的间隔2201。第二行对应于间隔2162,其中该间隔是转换间隔。第三行则对应于转换间隔之后的间隔2202
表1和2的第二列显示了计算设备用以计算证书信息的有效期间隔。第三和第四列显示了两个时间指示值的不同赋值。虽然本示例中的时间指示值是一个标称时间,但是作为替换,时间指示值也可以是从当前时间开始的时间间隔或是其他任何关于时间实例的指示。表1和2的最后一列表示计算设备产生的证书信息是否可以本地保存以及被复制到其他计算设备。
图3示出了对可以使用表1和2来发布时间相关证书信息的计算设备进行操作的方法302的一个可能的实施例。该计算设备可以是响应于证书请求1122来产生证书信息的控制器,所述请求则可以是由主机或者一般来说是由任一请求证书的设备发送的。作为替换,方法302也可以用于为其他验证请求产生证书,例如要求核实证书的请求或要求使用证书的请求,或者该方法也可以为其他任何涉及证书的适当验证功能产生证书。
而且,并不要求该请求是在网络上或是从另一个设备接收的。举例来说,该请求可以是在产生证书的组件上从相同设备上使用证书或管理证书的另一个组件接收的。作为一个具体示例,在一些实施例中,该请求可以是由追踪多个实体的证书的预定回滚时间以及请求新证书的组件产生的。
在图3中,诸如控制器之类的发布证书信息的计算设备可以首先在304中确定其本地存储器中的证书是否过时。举例来说,这种确定可以通过检查已存储的第一证书是不是没有与当前有效期间隔相对应来做出。如果确定存储器中的证书过时,那么控制器可以像行为3061和3062中那样计算分别与当前有效期间隔以及在先有效期间隔对应的第一和第二证书。这种证书过时的情景与表1是对应的,在该表格中,当前有效期间隔是间隔2021或间隔2022,这取决于由所述表格的第一列确定的证书请求到达时间。
作为替换,举例来说,如果已存储的第一证书对应的是当前间隔之前的间隔,那么可以认为所述证书可“有点”过时。在这种情况下,通过将已存储的第一证书指派给新存储的第二证书,以及基于当前有效期间隔来计算所要存储的新的第一证书,可以对所述证书进行更新。通过这种方式,与已存储的所有的两个证书全都过时的情形相比,这里使用的计算相对较少。
在图3中,控制器然后可以在行为308中继续将这些新计算的证书写入其本地存储器,以及以与表1的最后一列相对应的方式来将复制更新发送给其他控制器。这种行为可以在分布式系统中执行,其中作为管理其中分布式系统中的所有控制器可以一致执行功能的分布式系统的一部分,所述控制器将会复制信息。然而,在其他实施例中,这种复制更新既可以有选择地进行,也可以被完全忽略。在执行这种复制更新时,举例来说,该复制更新可以涉及将新计算的证书发送到其他控制器,以使它们可以将这些证书写入其本地存储器。
随后,在行为311,控制器确定其是否处于转换间隔以内。如果是的话,那么如行为3101中那样,它会将第二时间指示值(NC提示)设置成代表当前时间。在表1中,这种情况对应于请求在间隔2162中到达。该时间指示值向请求方表明:由于控制器处于转换间隔以内,因此所述证书有可能在近期的任何时间发生变化,所以其他设备可以在这个转换间隔期间更新其证书。否则,如果控制器确定不在阈值间隔以内,那么在行为3102,该控制器会将第二时间值设置成代表下一个阈值的起始时间。在表1中,这种情形对应的是请求在间隔2201或2202中到达。
无论第二时间指示值是如何确定的,在行为309,控制器都会将第一时间指示值(CB提示)设置成代表当前有效期间隔的末端。这样做向请求方表明其可以在当前有效期间隔结束之后请求新的证书。
最后,一旦确定证书信息,那么如图3的行为1142中所示,控制器可以将该信息返回给请求设备。
作为替换,与表2相对应,如果控制器在行为304中确定存储的证书尚未过时,那么它可以基于行为312中关于其是否在转换间隔中工作的检查来使用已存储的证书或是计算新的证书。举例来说,行为312中的确定处理可以通过检查本地时间是否表明控制器处于预定转换时间的阈值时间量以内来完成。如果控制器确定其处于阈值以内,那么像在行为316中那样,控制器可以使用存储器中的第一证书作为新的第二证书,并且它可以像在行为3063中那样基于下一个间隔来计算新的第一证书。在表2中,这种情景与请求在间隔2162中到达是对应的。
然而,如与间隔2162的行相对应的表2的最后一列中的“否”所示,在该情景中,控制器不能将这些新确定的证书更新至其存储器,和/或不能将这些证书复制到其他控制器。对于未必在相应的预定转换时间更新过证书的控制器来说,通过先行(forego)或推迟存储和/或复制转换间隔期间产生的证书,可以避免来自这些控制器的证书出现不一致性。
然后,如行为3102中那样,第二时间指示值被设置成代表下一个转换间隔的开端。在表2中,该情景是所述请求在间隔2162中到达的时候发生的,在这种情况下,转换间隔的下一个起始时间是2223
随后,在步骤309,控制器将第一时间指示值(CB提示)设置成代表当前有效期间隔末端。这样做会向请求方表明它可以在当前有效期间隔结束之后请求新的证书。
最后,一旦确定证书信息,那么如行为1142中所示,控制器会将该信息返回给请求设备。
如果控制器在行为312中确定其不处于阈值以内,那么在行为314,它会使用来自其存储器的第一和第二证书。在这样做时,控制器可以假设在转换间隔以外,其他控制器与它自己全都共享的是相同的证书。此外,如行为3102中那样,控制器会将第二时间指示值(NC提示)设置成代表下一个转换间隔开始之前的时间。在表2中,如果请求是在间隔2201或2202中到达的,那么有可能出现这种情景,在这种情况下,下一个转换间隔分别会在时间2222或2223开始。
随后,在步骤309,控制器会将第一时间指示值(CB提示)设置成代表当前有效期间隔的末端。这样做会向请求方表明其可以在当前有效期间隔结束之后请求新的证书。
最后,一旦确定证书信息,那么如行为1142所示,控制器将该信息返回给请求设备。
在以上论述中,证书包括第一证书、第二证书以及第一和第二时间指示值。然而应该意识到,证书信息的其他的适当实施例也是可以存在的。
上文描述了诸如控制器之类的计算设备如何可以基于证书请求定时来以不同的方式发布证书的一些可能的实施例。以下论述给出了主机计算设备如何可以使用控制器提供的证书信息以便基于要使用证书执行的验证功能的定时和/或特性来以不同的方式使用证书的一些实施例。
图4A显示了诸如主机之类的设备如何可以基于验证功能的定时和特性来以不同的方式使用证书的典型实施例中的行为。在这个特定示例中,主机可以从另一个设备接收要求验证该设备发送的对象的请求。举例来说,如图1B所示,该请求可以是来自客户机的“入站”验证请求。
无论该请求具有怎样的特性,在行为1122,主机都可以先向控制器请求证书。在将请求定向到主机上运行的服务的情景中,该请求可以是针对与该服务的实例依仗其在主机上运行的帐户相关联的证书。然而,对本发明来说,由于所述实施例可以是为任何数量的用途实施的,因此,关于证书请求的具体原因并不重要。此外,并不要求为了处理每一个请求而请求证书。由于证书在有效期间隔中是有效的,因此,行为1122可以在主机不具有当前证书的时候执行。
无论何时产生请求,主机随后都可以在步骤1142中接收包含证书信息的响应。该证书信息可以包括第一和第二证书。
然后,分别在步骤4041和4042中,主机可以继续检查第一或第二证书是否核实了入站请求。例如,该处理可以通过使用证书将密码功能应用于接收到的对象来完成。如果证书核实了该请求,那么主机可以决定响应于请求设备在406中执行一个行为。例如,所述行为可以是授权访问特定数据或服务。
否则,如果第一或第二证书均未核实请求方发送的对象,那么主机可以在408中执行另一个行为。例如,该行为可以是拒绝针对特定数据或服务的授权。
无论采取怎样的行为,主机然后都可以在步骤118中向请求方回送一个响应。在该情景中,所述响应表明该请求是否可以表明产生请求的实体是否已被授权接收主机提供的服务。然而应该意识到,所执行的具体验证功能对本发明来说并不重要。例如,不去核实请求不同,主机可以使用证书来解密文档或是执行其他任何适当的验证功能。
图4B显示了主机可以开始别的类型的验证功能的情景。举例来说,该验证功能可被设计成使用特定实体的证书来产生要由另一个设备验证的对象。该对象可以是任何适当的对象,无论所述对象是单个值、二进制大对象(BLO)还是任何适当形式的数据。该对象的示例可以包括令牌、证书、加密的盘问短语或是带签名的盘问短语。在该示例中,该处理可以在如图1C所示的“出站”验证请求期间发生,其中主机向服务器之类的另一个设备请求安全事务。
无论该验证功能具有怎样确切的特性,在步骤1122,主机都可以向控制器请求证书,并且在步骤1142中接收返回的证书信息。
然后,主机可以基于控制器是否处于转换间隔中来以不同的方式行动。关于控制器是否处于转换间隔中的确定可以依照任何适当的方式进行。在行为410中,其中可以确定所述控制器在产生证书的时间是否处于预定转换时间的某个阈值时间量以内。举例来说,该确定可以使用接收到的证书信息中的指示来做出。在一些实施例中,该指示可以具有两个时间指示值,在这种情况下,如果第一时间指示值(CB提示)小于第二时间指示值(NC提示),那么主机可以确定控制器处于预定转换的阈值时间以内。举例来说,在表2中,这种情况会在与间隔2162相对应的行中发生。无论在行为410中如何做出所述确定,主机然后都可以使用从控制器接收的第一或第二证书来产生密码功能。
如果主机确定控制器不在转换间隔以内,那么在行为4121中,主机可以使用密码功能中的第一证书来产生可被另一个设备验证的值。作为替换,如果主机确定控制器处于阈值以内,那么在行为4122,主机可以使用密码功能中的第二证书来产生可被另一个设备验证的值。第一证书可以对应于产生该证书的设备所量度的当前有效期。而第二证书则可以对应于在先的有效期间隔。
无论使用哪一个证书,在行为120中,主机然后都可以将所产生的值发送给另一个设备,以便请求某种验证功能。
在一些实施例中,控制器可以更新其管理的每一个帐户的证书,以使当前证书在每一个有效期间隔中都是可用的。对于管理大量证书的控制器来说,当证书需要改变时,分布式系统内部的计算负载和/或其他资源使用率有可能很大。这种状况会在多个实体同时要求改变的情况下发生。在每一个控制器上计算新证书的处理同样会耗费大量系统资源。即便不同控制器的时钟存在某种歪斜,这种情景也有可能创建“复制风暴”,这是因为多个控制器将会为多个实体计算证书,并且由此可能会汲取系统资源。
在一些实施例中,证书可以以一种减小复制风暴的可能性和/或严重性的方式更新。图5A和5B显示了用于更新证书的两个可能的实施例:控制器驱动的更新以及主机请求的更新。然而应该意识到,本发明不必局限于这两种选择,并且该系统可以提供任何适当的手段来更新证书。在一些实施例中,更新时间与预定更新时间会偏移随机延迟。除了其他理由之外,这样做的目的可以是避免所有那些尝试同时为给定实体更新证书的控制器之间的过多复制更新。
图5A显示了控制器驱动的证书更新的一个可能的实施例。在这样的实施例中,如行为502中那样,控制器在每一个纪元开端运行一个任务,以便更新所有过期的证书。为了简单起见,图5A示出了这样一种方法,其中该方法具有为每一个实体运行的单独过程,以便在每一个纪元检查用于该实体的证书是否过期。作为替换,控制器上的单个过程也可以在每一个纪元周期性检查所有实体。
正如行为504中那样,无论控制器如何为多个实体触发证书更新,它都可以将实体证书的更新时间调度在下一个纪元开端加上随机偏移的位置。该随机偏移可以是任何适当的持续时间。在一些实施例中,随机偏移的持续时间可以介于一个上限和一个下限之间,以便确保在这些限度之间随机选择一个值的时候,不同控制器被调度来更新相同证书的时间是扩展在超出供控制器计算和复制证书的时间量的间隔上的。
结果,当控制器等待时,它有可能在行为506中接收到来自其他控制器的复制更新,而这将会避免控制器更新相同证书的需要。如果这样的话,那么如在行为508中那样,控制器可以将该更新写入它的本地存储器。如果控制器接收到对于它被调度更新的证书的更新,那么它不必产生证书,并且可以改成在继续调度下一次更新之前在行为510中等待当前纪元结束。
同样,在延迟过程中,在行为512中,控制器可以接收来自主机之类的设备的对证书的请求,并且可以对所述请求做出响应。在这种情况下,由于控制器尚未获取用于其当前有效期间隔的证书,因此,如上文中结合图3描述的那样,它可以获取最近的证书,例如通过执行处理302来获取。然后,在行为518,控制器可以继续将其存储器中的证书复制到其他控制器,之后则会返回到调度下一个更新。
但是应该意识到的是,在处理302中,控制器可以实际计算新的证书,也可以不计算,并且所述控制器既可以将新证书写入其存储器,也可以不写入。在一些实施例中,如果没有将新证书写入本地存储器,那么控制器可以选择跳过行为518的复制,并且简单地调度下一个更新。
否则,如果控制器在行为512中没有接收到这种中断,那么在行为514中,它可以通过检查来了解其是否达到其预定更新时间,如果没有的话,那么它会在行为516中返回以进行等待。
如果控制器在行为514中确实达到其预定更新时间,那么它可以在行为304中继续检查存储的证书是否过时。如果是的话,那么控制器可以在行为306中为当前和先前间隔计算新的证书,其中所述行为后续将在图6中被详细描述的。然后,在行为518,控制器可以将其本地存储器的复制更新发送到其他控制器,其目的可以是使用新计算的证书来对其进行更新。此后,控制器可以继续调度其下一个证书更新。
如果控制器在行为304中确定存储器中它的证书尚未过时,那么这可以表明它尚未到达转换时间,由此没有必要进行更新。在这种情况下,它会返回并调度下一个更新检查。
以上论述描述的是控制器为给定实体发起它自己的证书更新的情形,其中举例来说,所述给定实体可以是用户的帐户或是可以具有证书的其他任何适当的实体。图5B显示了一个其中由主机在行为520中发起证书更新的替换实施例。图5B示出了可以在主机上执行的处理。
在这种情况下,主机在与实体相关联的证书信息中的指示所提供的时间调度其对于新证书的请求。例如,该指示可以具有第一时间指示值(“返回”提示)。无论主机如何确定该时间,它都可以像行为522中那样通过在指示提供的时间中添加随机偏移来调度更新时间。这个随机值可以具有任何持续时间范围,包括图5A的随机值的持续时间范围,并且所述随机值可以用任何适当的方式选择。然后,主机可以一直等待直到向控制器请求更新的时间。
在等待的同时,在步骤524,主机有可能经历验证失败。在一些实施例中,主机可以请求当前证书来确保所述失败不是因为主机在尝试执行验证功能的过程中应用过期证书造成的结果。然而,在一些实施例中,主机可以有选择地请求已更新的证书,以此作为一种减小系统上的负载的方式。举例来说,如果主机可以接收到与其已经接收的证书不同的证书,那么该主机可以只请求已更新的证书。相应地。主机对于验证失败的响应可以取决于它相对于最近接收到已更新证书的时间的当前时间。如果在主机最近接收到已更新证书之后一个时间量中发生验证失败,那么主机会在不等待预定更新时间的情况下请求新的证书,其中所述时间量介于第二时间指示值(“无变化”提示)与其请求更新的预定时间之间。所述主机可以改为立即向控制器请求更新,其中该处理可以依照处理302(图3)来执行。
否则,主机会在行为526中继续检查其是否到达更新时间。如果尚未到达,那么在行为528,主机将会返回到等待该预定时间。否则,一旦在步骤526中到达预定更新时间,那么主机可以在步骤1122中向控制器请求最新的证书,以及在步骤1142中获取最新的证书。然后,如返回到行为522的处理所示,主机可以基于其在最近的证书中接收的“返回”提示来继续调度下一个更新请求。
图6显示了操作控制器之类的计算设备来为实体产生时间相关证书的方法306。举例来说,实体可以是特定用户或服务的帐户。然而,对于被产生了证书的实体来说,该实体的类型对于本发明而言并不重要。该处理可以在任何一个或多个时间为任何一个或多个实体重复执行,并且可以在每一个有效期间隔为这其中的每一个实体产生不同的证书——或者至少具有这样一种随机性,那就是很难确定允许在任何时间为任何实体产生的证书被以非授权的方式来确定的模式(pattern)。
在一些实施例中,每一个帐户都可以与在证书生成中使用的信息相关联。该信息可以包括识别帐户的信息以及允许任一控制器确定该帐户的有效期间隔开端的定时信息。举例来说,该信息可以包括帐户标识符A、帐户创建纪元TC(A)以及证书有效性间隔L(A)。然而,这些帐户信息的名称和数量可以是任何适当的值。此外,由于时间可以以纪元或是其他任何适当的单元为单位量度,因此,在这里术语“时间”和“纪元”可以可交换地使用。
在一些实施例中,控制器可以使用“种子密钥”和帐户标识符来产生证书。举例来说,所述种子密钥可以是通过使用可以被一个或多个控制器知道的全局“主密钥”来实施的。这种主密钥可以用多种不同的方式提供。例如,密钥分发服务(KDS)或是其他任何向所有控制器提供公共主密钥的适当设备都是可以存在的。这个主密钥还可以随时间更新。例如,在一些实施例中有可能存在与每一个时间纪元相关联的已刷新主密钥。
在图6中,控制器可以在行为600中开始计算证书。该计算可以源于另一个设备(像图3中那样)发送的对证书的请求,或者它也可以源于内部调度的证书更新(与图5A中一样)。然而,方法600可以响应于任何适当的事件而在任何适当的时间执行。对于纪元T中的给定证书请求来说,控制器可以在行为602中确定被请求实体的有效期间隔和帐户创建时间。该信息可以用任何适当的方式确定。它可以是从数据存储器中读取的,其中该数据存储器可以由控制器保持或是处于分布式系统内部的任何适当的位置。作为替换,该信息的一些或全部可以是与证书请求一起提供的。
无论该信息是如何获取的,在行为604中,控制器都可以计算包含纪元T的有效期间隔的第一个纪元。这个第一纪元的值可以用标识符EID(对应于纪元ID)标识,并且举例来说,所述第一纪元的值可以用以下公式计算:
EID = T -(T-TC)mod(L)                                                                     (1)
在这里,数学运算“(x)mod(y)”表示的是将整数x与整数y相除得到的余数。
无论EID是如何计算的,都可以有一个EID以这样的方式与每一个有效期间隔相关联,所述方式为所述EID在任何纪元T与包含纪元T的相应有效期间隔之间提供映射。在一些实施例中,EID可以对应于有效期间隔的第一纪元,但在其他实施例中,EID可以对应于有效期间隔的另一个恰当定义的标识符。
无论纪元EID是如何确定的,在一些实施例中,控制器都可以在行为606中继续访问与纪元EID相关联的全局主密钥。然后,在行为608中,控制器可以一起使用该主密钥以及帐户ID来计算种子密钥。
前述步骤描述的仅仅是产生种子密钥的处理的一个示例,其中所述种子密钥可以仅仅利用关于给定时间和帐户ID的知识而从主密钥中确定性地计算得到。这种方法可以允许一个或多个控制器以分布的方式产生相同的种子密钥。然而,无论种子密钥是如何产生的,它都可以用于在行为610中产生证书,其中所述证书具有可配置的使用期限,并且响应于外部事件而被周期性更新,其中所述外部事件要么是成员主机驱动的对于最新证书的请求,要么是在域控制器上运行的预定更新。
通过从当前纪元T中减去有效期间隔L,以及对时间(T-L)运行证书生成算法,可以以类似的方式来计算用于之前间隔的证书。特别地,用于第二证书的EID可以是通过以下公式计算的:
EID =(T-L)-(T-L-TC)mod(L)                                                       (2)
与先前一样,数学运算“(x)mod(y)”表示的是将整数x与整数y相除得到的余数。等式(1)和(2)代表用于为与给定时间实例相对应的当前和先前有效期间隔确定标识符的处理的两个可能的实施例。然而,本发明没有必要局限于这些特定等式,并且可以使用其他任何适当的手段来计算给定时间实例处用于给定账户的有效期间隔的标识符。
前述的这些步骤提供了关于控制器如何可以仅仅基于关于账户身份和可以在控制器之间全局共享的密码保护的主密钥的知识来计算用于任何给定时间的第一和第二证书的一些可能的实施例。然而应该意识到,本发明没有必要局限于这些特定实施例,并且可以有其他适当的方式来确定在给定时间实例有效的时间相关证书。
图7示出了其上可以实施本发明的适当计算系统环境700的一个示例。该计算系统可以代表分布式系统100中的任何计算设备。举例来说,它可以代表主机,例如1021,可以代表控制器,例如1041,可以代表客户机106、服务器108或是在分布式系统中工作的任何适当的设备。计算系统环境700只是适当计算环境的一个示例,其并没有打算暗示关于本发明的使用或功能范围的任何限制。计算环境700也不应被解释成具有与在该例示工作环境700中示出的任一组件或组件组合相关联依存关系或需求。
本发明可以与众多的其他通用或专用计算系统环境或配置一起工作。适合与本发明一起使用的公知计算系统、环境和/或配置的示例包括但不局限于个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费类电子设备、网络PC、小型计算机、大型计算机、包含了上述任何系统或设备的分布式计算环境等等。
该计算环境可以执行计算机可执行指令,例如程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本发明还可以在由那些通过通信网络连接的远端处理设备执行任务的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于本地和远端计算机存储媒体上,包括存储器存储设备。
参考图7,用于实施本发明的例示系统包括采用计算机710的形式的通用计算设备。计算机710的组件可以包括但不局限于处理单元720、系统存储器730以及将包括系统存储器在内的不同系统组件耦合到处理单元720的系统总线721。系统总线721可以是若干种总线结构中的任何一种,其中包括存储器总线或存储器控制器、周边总线以及使用了多种总线架构中的任何一种的本地总线。作为示例而不是限制,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及也被称为夹层(Mezzanine)总线的周边组件互连(PCI)总线。
计算机710通常包括多种计算机可读媒体。计算机可读媒体可以是能被计算机710访问的任何可用媒体,并且包括易失和非易失媒体,可移除和不可移除媒体。作为示例而不是限制,计算机可读媒体可以包括计算机存储媒体和通信媒体。计算机存储媒体包括通过任何用于存储计算机可读指令、数据结构、程序模块或其他数据之类的信息的方法或技术实施的易失和非易失、可移除和不可移除媒体。计算存储媒体包括但不局限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多用途碟片(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或是其他任何可以用于存储期望信息并能被计算机710访问的介质。通信媒体通常包含处于诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送媒体。术语“调制数据信号”指的是这样一种信号,其中该信号的一个或多个特性是以一种在信号中编码信息的方式而被设置或改变的。作为示例而不是限制,通信媒体包括有线网络或直接线路连接之类的有线媒体,以及包括无线媒体,例如声学、RF、红外及其他无线媒体。上述各项的任何组合同样也应该包含在计算机可读媒体的范围以内。
系统存储器730包括采用易失和/或非易失存储器形式的计算机存储媒体,例如只读存储器(ROM)731和随机存取存储器(RAM)732。基本输入/输出系统733(BIOS)包含在诸如启动过程中帮助在计算机710内部的元件之间传送信息的基本例程,该基本输入/输出系统通常被存储在ROM 731中。RAM 732通常包括可以由处理单元720立即访问和/或当前正在操作的数据和/或程序模块。作为示例而不是限制,图7示出了操作系统734、应用程序735、其他程序模块736以及程序数据737。
计算机710还可以包括其他的可移除/不可移除、易失/非易失计算机存储媒体。作为示例,图7示出了读取或写入不可移除的非易失磁媒体的硬盘驱动器741,读取或写入可移除的非易失磁盘752的磁盘驱动器751,以及读取或写入CD-ROM或其他光媒体之类的可移除非易失光盘756的光盘驱动器755。其他那些能在例示操作环境中使用的可移除/不可移除、易失/非易失计算机存储媒体包括但不局限于磁带盒、闪存卡、数字多用途碟片、数字录像带、固态RAM、固态ROM等等。通常,硬盘驱动器741经由接口740之类的不可移除存储器接口连接到系统总线721,并且磁盘驱动器751和光盘驱动器755通常通过接口750之类的可移除存储器接口连接到系统总线721。
以上论述并在图7中示出的驱动器以及与之关联的计算机存储媒体为计算机710提供了对于计算机可读指令、数据结构、程序模块以及其他数据的存储。举例来说,在图7中,硬盘驱动器741被图示成存储操作系统744、应用程序745、其他程序模块746以及程序数据747。应该指出的是,这些组件与操作系统734、应用程序735、其他程序模块736以及程序数据737可以是相同或不同的。操作系统744、应用程序745、其他程序模块746以及程序数据747在这里被赋予不同的数字以便图示它们至少是不同的拷贝。用户可以通过输入设备将命令和信息输入计算机710,其中举例来说,所述输入设备可以是键盘762和通常被称为鼠标、轨迹球或触摸板的指示设备761。其他输入设备(未显示)可以包括麦克风、摇杆、游戏板、碟式卫星天线、扫描仪等等。这些和其他输入设备通常通过与系统总线耦合的用户输入接口760连接到处理单元720,但是也可以通过其他接口和总线结构来连接,例如并行端口、游戏端口或通用串行总线(USB)。监视器791或其他类型的显示设备同样经由接口连接到系统总线721,例如视频接口790。除了监视器之外,计算机还可以包括可以通过输出周边接口795连接的其他周边输出设备,例如扬声器797和打印机796。
计算机710可以使用与远端计算机780之类的一个或多个远端计算机相连的逻辑连接而在联网环境中工作。远端计算机780可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括在上文中关于计算机710描述的众多或所有元件,然而,在图7中仅仅示出了存储器存储设备781。图7描述的逻辑连接包括局域网(LAN)771和广域网(WAN)773,但是也可以包括其他网络。这些联网环境在办公室、企业级计算机网络、内部网以及因特网中是很普遍的。
当在LAN联网环境中使用时,计算机710通过网络接口或适配器770连接到LAN 771。当在WAN联网环境中使用时,计算机710通常包括调制解调器772或是用于在因特网之类的WAN 773上建立通信的其他装置。调制解调器772可以处于内部或外部,它可以经由用户输入接口760或其他恰当机制连接到系统总线721。在联网环境中,关于计算机710描述的程序模块或是其某些部分可以保存在远端存储器存储设备中。作为示例而不是限制,图7示出了驻留在存储器设备781上的远端应用程序785。应该意识到的是,所显示的网络连接是例示性的,用于在计算机之间建立通信链路的其他装置也是可以使用的。
应该意识到的是,在以这种方式描述了本发明至少一个实施例的若干个方面之后,本领域技术人员是很容易想到不同的替换、修改和改进的。
此类替换、修改和改进都打算成为本公开的一部分,并且打算处于本发明的实质和范围以内。更进一步,虽然指示了本发明的优点,然而应该意识到,并不是本发明的每一个实施例都会包含所描述的每一个优点。一些实施例未必使用在这里以及一些实例中被描述成有利的特征。相应地,前文的描述和附图仅仅是作为示例的。
本发明的上述实施例可以采用多种方式中的任何一种来实施。例如,这些实施例可以使用硬件、软件或是其组合来实施。当以软件实施时,软件代码可以在任何适当的处理器或处理器集合上运行,不论所述处理器或处理器集合是在单个计算机中提供还是分布在多个计算机中。此类处理器可以作为集成电路来实施,其中一个或多个处理器处于一个集成电路组件中。然而,处理器也可以使用任何适当格式的电路来实施。
此外还应该意识到,计算机可以体现为多种形式中的任何一种,例如安装在机架上的计算机、台式计算机、膝上计算机或平板计算机。此外,计算机可以被嵌入在通常不被视为计算机但却具有适当处理能力的设备中,包括个人数字助理(PDA)、智能电话或是其他任何适当的便携或固定电子设备。
此外,计算机还可以具有一个或多个输入和输出设备。除了其他用途之外,这些设备可以用于呈现一个用户接口。可用于提供用户接口的输出设备的示例包括用于视觉呈现输出的打印机或显示屏,以及用于音频呈现输出的扬声器或其他声音生成设备。可用于用户接口的输入设备的示例包括键盘和指示设备,例如鼠标、触摸板和数字化平板。另举一例,计算机可以通过语音识别或其他音频格式来接收输入信息。
此类计算机可以由一个或多个网络采用任何适当的形式互连,其中包括作为局域网或广域网,例如企业网或因特网。此类网络可以基于任何适当的技术,并且可以依照任何适当的协议工作,以及可以包括无线网络、有线网络或光纤网络。
此外,这里概述的不同方法或处理可以编码成能在使用了多种操作系统或平台中的任何一种的一个或多个处理器上运行的软件。另外,此类软件可以采用多种适当的编程语言和/或编程或脚本工作中的任何一种来撰写,并且还可以编译成是在框架(framework)或虚拟机上运行的可执行机器语言代码或中间代码。
在这方面,本发明可以体现为使用一种或多种程序编码的计算机可读存储介质(或多个计算机可读媒体)(例如计算机存储器,一个或多个软盘,紧凑型碟片(CD),光盘,数字视频盘(DVD),磁带,闪速存储器,现场可编程门阵列或其他半导体器件中的电路配置,或其他有形的计算机存储介质),其中当所述一种或多种程序在一个或多个计算机或其他处理器上运行时,所述程序将会执行实施上述本发明的不同实施例的方法。从上述示例可以明白,计算机可读存储介质可以将信息保持足够长的时间以便以非瞬时形式提供计算机可执行指令。这种计算机可读存储介质或媒体是可运输的,由此,其上保存的一个或多个程序可被加载到一个或多个不同计算机或其他处理器上,以便实施如上所述的本发明的不同方面。这里使用的术语“计算机可读存储介质”仅仅包括可被视为制造产品(即制品)或机器的计算机可读介质。作为替换或补充,本发明可以体现为计算机可读存储介质之外的计算机可读介质,例如传播信号。
这里使用的术语“程序”或“软件”其一般意义是指可以用于对计算机或其他处理器进行编程,以便实施如上所述的本发明的不同方面的任何类型的计算机代码或计算机可执行指令集合。此外还应该意识到,根据本发明的一个方面,在运行时执行本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而是可以采用模块化的形式分布在多个不同的计算机或处理器之中,以便实施本发明的不同方面。
计算机可执行指令可以采用由一个或多个计算机或其他设备运行的多种形式,例如程序模块。一般来说,程序模块包括例程、程序、对象、组件、数据结构等等。其执行特定的任务或实现特定的抽象数据类型。通常,在不同的实施例中可以根据需要来组合或分布程序模块的功能。
此外,数据结构可以采用任何适当的形式存入计算机可读媒体。为了易于例证,数据结构可被显示成具有通过在数据结构中的位置相关联的字段。这种关联同样可以通过为用于字段的存储器指派计算机可读介质中传达字段之间关系的位置来实现。但是,任何适当的机制均可用于在数据结构的字段中的信息之间建立关联,这其中包括通过使用在数据元素之间建立关联的指针、标签或其他机制。
本发明的不同方面既可以单独使用,也可以组合使用,还可以采用上述实施例中没有具体论述的多种排列使用,由此,本发明并不仅限于被应用于如上说明书中阐述的或是在附图中图示的细节和组件排列。例如,在一个实施例中描述的各方面可以采用任何方式与在其他实施例中描述的各方面相结合。
此外,本发明可以体现为方法,在这里已经提供了所述方法的一个示例。作为方法一部分执行的操作可以采用任何适当的方式排序。相应地,可以构造以与所图示的顺序不同的顺序来执行操作的实施例,其中所述实施例可以包括同时执行一些操作,即使这些操作在说明性实施例中被显示成是顺序操作。
在权利要求中使用了“第一”、“第二”、“第三”等顺序术语来修饰权利要求要素,但这并不单独意味着任何优先级、优先权、一个权利要求要素超出另一个要素的顺序或是执行方法操作的时间顺序,而是仅仅用作标签来将具有某个名称的权利要求要素与另一个具有相同名称的要素区分开来(如果不是用于顺序术语的话),以便区分各权利要求元素。
此外,这里使用的措辞和术语是用于描述目的的,而不应该将其视为限制。这里使用的“包括”、“包含”或者“具有”、“含有”、“涉及”及其不同变体意味着包含了其后列举的项目,以及其等价物和附加项目。

Claims (15)

1.一种操作分布式计算机系统(100)来提供时间相关证书的方法,该方法包括:
使用至少一个处理器(720)来为一个或多个实体中的每一个重复产生证书,每一个证书都在相对于多个第二类型的间隔(2081和2082)的子集所确定的第一类型的间隔(2021、2022或2023)中有效,所述产生包括为一个或多个实体中的每一个确定为第二个第一类型的间隔产生证书的时间,所述时间是相对于第一个第一类型的间隔的末端确定的,其中该时间与第一个第一类型的间隔的末端偏移一个随机时间。
2.权利要求1的方法,其中:
该方法是在分布式计算机系统(100)的多个控制器中的一个控制器上执行的;以及
该方法还包括:使用控制器上的本地定时源来追踪时间,以便识别多个第二类型的间隔(2081和2082)。
3.权利要求2的方法,其中:
分布式计算机系统(100)包括多个控制器;以及
证书是在多个控制器中的每一个控制器上基于所述控制器上追踪的时间而被重复产生的,其中所述控制器使用该控制器上的本地定时源来追踪所述时间以便识别多个第二类型的间隔(2081和2082)。
4.权利要求1的方法,其中:
第一类型的间隔(2021、2022或2023)包括整数个第二类型的间隔(2081和2082)。
5.权利要求1的方法,其中:
该方法是在分布式计算机系统(100)的控制器上执行的;以及
生成证书的时间是由在控制器上运行的任务确定的。
6.一种联网系统(100),包括:
多个计算设备(1041、1042和1043),其中每一个计算设备都被适配成为多个实体中的每一个产生一致的证书,为每一个实体产生的证书在适用于该实体的多个第一类型的间隔(2021、2022或2023)中的每一个第一类型的间隔期间是不同的,其中每一个计算设备(1041、1042和1043)是通过以下处理来产生证书的:
       追踪具有共同持续时间的多个第二类型的间隔(2081和2082);
       通过以下处理来计算用于实体的证书:
           基于与实体相关联的证书刷新信息来选择多个第二类型的间隔(2081和2082)中的一个第二类型的间隔,所选择的第二类型的间隔定义了第一类型的间隔的开端;以及
           在与所选择的第二类型的间隔定义的基准时间(2042)偏移的时间,执行密码功能来产生用于所述实体且在第一类型的间隔期间有效的证书。
7.权利要求6的联网系统(100),其中:
每一个计算设备(1041、1042或1043)还被适配成随机确定偏移。
8.权利要求7的联网系统(100),其中:
每一个计算设备(1041、1042或1043)包括域控制器。
9.权利要求7的联网系统(100),其中:
每一个计算设备(1041、1042或1043)通过有选择地产生证书来响应对用于实体的证书的请求,所述有选择地产生包括:
       当所述请求是在基准时间(2042)的预定间隔(2162)以内接收到时:
           产生证书;以及
           响应于该请求,返回所产生的证书;
       当所述请求是在基准时间(2042)的预定间隔(2162)以外接收到时:
           从数据存储器(1131、1132或1133)中检索证书;以及
           响应于该请求来返回所检索的证书。
10.权利要求9的联网系统(100),还包括:
多个主机计算设备(1021、1022和1023),所述多个主机计算设备(1021、1022和1023)中的每一个都运行一个与证书相关联的服务的实例,每一个主机计算设备(1021、1022和1023)都被适配成产生请求。
11.一种操作分布式计算机系统(100)来提供时间相关证书的设备,该设备包括:
用于使用至少一个处理器(720)来为一个或多个实体中的每一个重复产生证书的装置,每一个证书都在相对于多个第二类型的间隔(2081和2082)的子集所确定的第一类型的间隔(2021、2022或2023)中有效,所述用于产生的装置包括用于为一个或多个实体中的每一个确定为第二个第一类型的间隔产生证书的时间的装置,所述时间是相对于第一个第一类型的间隔的末端确定的,其中该时间与第一个第一类型的间隔的末端偏移一个随机时间。
12.权利要求11的设备,其中:
该设备被包括在分布式计算机系统(100)的多个控制器中的一个控制器中;以及
该设备还包括:用于使用控制器上的本地定时源来追踪时间,以便识别多个第二类型的间隔(2081和2082)的装置。
13.权利要求12的设备,其中:
分布式计算机系统(100)包括多个控制器;以及
证书是在多个控制器中的每一个控制器上基于所述控制器上追踪的时间而被重复产生的,其中所述控制器使用该控制器上的本地定时源来追踪所述时间以便识别多个第二类型的间隔(2081和2082)。
14.权利要求11的设备,其中:
第一类型的间隔(2021、2022或2023)包括整数个第二类型的间隔(2081和2082)。
15.权利要求11的设备,其中:
该设备被包括在分布式计算机系统(100)的控制器中;以及
生成证书的时间是由在控制器上运行的任务确定的。
CN201210320927.4A 2011-09-01 2012-09-03 具有时间相关证书的分布式计算机系统 Active CN102904927B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/224257 2011-09-01
US13/224,257 US8640210B2 (en) 2011-09-01 2011-09-01 Distributed computer systems with time-dependent credentials

Publications (2)

Publication Number Publication Date
CN102904927A CN102904927A (zh) 2013-01-30
CN102904927B true CN102904927B (zh) 2015-06-17

Family

ID=47576962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210320927.4A Active CN102904927B (zh) 2011-09-01 2012-09-03 具有时间相关证书的分布式计算机系统

Country Status (2)

Country Link
US (1) US8640210B2 (zh)
CN (1) CN102904927B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032492B2 (en) 2011-09-01 2015-05-12 Microsoft Corporation Distributed computer systems with time-dependent credentials
US9058467B2 (en) 2011-09-01 2015-06-16 Microsoft Corporation Distributed computer systems with time-dependent credentials
US9436943B1 (en) * 2012-03-13 2016-09-06 Google Inc. Method and system for authorizing long-lived transactions
US9269358B1 (en) 2012-07-11 2016-02-23 Microstrategy Incorporated User credentials
US9887992B1 (en) * 2012-07-11 2018-02-06 Microstrategy Incorporated Sight codes for website authentication
US8775807B1 (en) 2012-10-26 2014-07-08 Microstrategy Incorporated Credential tracking
US9640001B1 (en) * 2012-11-30 2017-05-02 Microstrategy Incorporated Time-varying representations of user credentials
US9154303B1 (en) 2013-03-14 2015-10-06 Microstrategy Incorporated Third-party authorization of user credentials
US9872162B2 (en) 2014-02-12 2018-01-16 Telefonaktiebolaget Lm Ericsson (Publ) Pre-configuration of devices supporting national security and public safety communications
US9847983B1 (en) * 2014-04-29 2017-12-19 Amazon Technologies, Inc. Epoch-based management of security credentials
CN106921499B (zh) * 2016-11-01 2020-02-14 阿里巴巴集团控股有限公司 利用状态机来管理数字证书的方法及装置
US10609077B1 (en) 2016-12-16 2020-03-31 Amazon Technologies, Inc. Event-restricted credentials for resource allocation
US11347879B2 (en) * 2018-09-07 2022-05-31 Truist Bank Determining the relative risk for using an originating IP address as an identifying factor
CN110704172B (zh) * 2019-09-20 2024-03-12 深圳市递四方信息科技有限公司 集群系统定时任务调度方法及集群系统
US11301549B2 (en) * 2020-04-28 2022-04-12 Jpmorgan Chase Bank, N.A. Method for performing password transitions
CN114040349B (zh) * 2020-07-21 2024-04-09 华为技术有限公司 一种电子设备和分布式系统
US11784831B1 (en) * 2021-06-22 2023-10-10 Amazon Technologies, Inc. Management of digital certificate with repeated rollback

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505309A (zh) * 2002-11-20 2004-06-16 安全地处理被用于基于web的资源访问的客户证书
JP2004266536A (ja) * 2003-02-28 2004-09-24 Seiko Precision Inc タイムスタンプシステム及びそのプログラム
CN1897518A (zh) * 2005-07-14 2007-01-17 华为技术有限公司 一种分布式的身份证书签发方法
CN1929380A (zh) * 2006-09-23 2007-03-14 西安西电捷通无线网络通信有限公司 一种公钥证书状态的获取及验证方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2247964A (en) * 1990-09-13 1992-03-18 John Robert Devany Controlling access to a keyboard-operated computer system
US7698381B2 (en) 2001-06-20 2010-04-13 Microsoft Corporation Methods and systems for controlling the scope of delegation of authentication credentials
US20040117386A1 (en) 2002-12-12 2004-06-17 Sun Microsystems, Inc. Syncronization facility for information domains employing dissimilar protective transformations
US7644275B2 (en) 2003-04-15 2010-01-05 Microsoft Corporation Pass-thru for client authentication
US8037515B2 (en) 2003-10-29 2011-10-11 Qualcomm Incorporated Methods and apparatus for providing application credentials
US7698557B2 (en) * 2003-12-22 2010-04-13 Guardtime As System and method for generating a digital certificate
US20050160264A1 (en) 2004-01-21 2005-07-21 Reid Kuhn Trusted authentication credential exchange methods and apparatuses
US20060005010A1 (en) 2004-06-16 2006-01-05 Henrik Olsen Identification and authentication system and method for a secure data exchange
US7784089B2 (en) 2004-10-29 2010-08-24 Qualcomm Incorporated System and method for providing a multi-credential authentication protocol
US20070186115A1 (en) 2005-10-20 2007-08-09 Beijing Watch Data System Co., Ltd. Dynamic Password Authentication System and Method thereof
CN101345723B (zh) 2007-07-11 2011-04-06 华为技术有限公司 客户网关的管理认证方法和认证系统
US8059814B1 (en) 2007-09-28 2011-11-15 Emc Corporation Techniques for carrying out seed or key derivation
US8516566B2 (en) 2007-10-25 2013-08-20 Apple Inc. Systems and methods for using external authentication service for Kerberos pre-authentication
EP2152033B1 (en) 2008-07-01 2011-10-26 Vodafone Holding GmbH Method and device for generating a time-dependent password
US8984597B2 (en) * 2010-05-27 2015-03-17 Microsoft Technology Licensing, Llc Protecting user credentials using an intermediary component
GB2481587B (en) * 2010-06-28 2016-03-23 Vodafone Ip Licensing Ltd Authentication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505309A (zh) * 2002-11-20 2004-06-16 安全地处理被用于基于web的资源访问的客户证书
JP2004266536A (ja) * 2003-02-28 2004-09-24 Seiko Precision Inc タイムスタンプシステム及びそのプログラム
CN1897518A (zh) * 2005-07-14 2007-01-17 华为技术有限公司 一种分布式的身份证书签发方法
CN1929380A (zh) * 2006-09-23 2007-03-14 西安西电捷通无线网络通信有限公司 一种公钥证书状态的获取及验证方法

Also Published As

Publication number Publication date
CN102904927A (zh) 2013-01-30
US20130061301A1 (en) 2013-03-07
US8640210B2 (en) 2014-01-28

Similar Documents

Publication Publication Date Title
CN102904927B (zh) 具有时间相关证书的分布式计算机系统
CN112417379B (zh) 一种集群许可证管理方法、装置、授权服务器及存储介质
US11327745B2 (en) Preventing falsification in version management
US20180034646A1 (en) Method and apparatus for seamless remote renewal of offline generated digital identity certificates to field deployed hardware security modules
EP3454238A1 (en) Registration and authorization method, device and system
JP4907718B2 (ja) デジタル著作権管理のための多重証明書失効リストのサポート方法および装置
US10878080B2 (en) Credential synchronization management
US9058467B2 (en) Distributed computer systems with time-dependent credentials
CN103620556A (zh) 将应用绑定到设备能力
EP3765982B1 (en) Autonomous cross-scope secrets management
CN110569251A (zh) 一种数据处理方法、相关设备及计算机可读存储介质
US9032492B2 (en) Distributed computer systems with time-dependent credentials
CN112396421B (zh) 一种基于区块链通证的身份认证系统及方法
US20190306169A1 (en) System and method for managing access to stored objects
US20120239937A1 (en) Information processing device, computer program product, and access control system
US20080320569A1 (en) Methods, systems, and apparatus for staggered renewal periods
US11714627B2 (en) Tokenized mobile device update systems and methods
AU2023202613A1 (en) Application centric centralized certificate management system for managing certificates across data centers
JP3754342B2 (ja) 公開鍵証明書の有効性検証システム
US11601290B2 (en) Centralized database with provisions to prevent PKI key and security certificate duplication
JP6901373B2 (ja) ユーザ管理装置、ユーザ管理システム
CN112417400A (zh) 基于多集群系统的安全优化方法、装置、电子设备及介质
CN112182009A (zh) 区块链的数据更新方法及装置、可读存储介质
US11477038B2 (en) Certificate transfer system and certificate transfer method
US10880150B1 (en) Node-indexed system, apparatus and method configured to sequence client events within a peer-to-peer network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150714

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150714

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.