專利名稱:具有時間相關(guān)證書的分布式計算機(jī)系統(tǒng)的制作方法
具有時間相關(guān)證書的分布式計算機(jī)系統(tǒng)
背景技術(shù):
分布式計算機(jī)系統(tǒng)業(yè)已成為一種用于處理現(xiàn)代計算需求所產(chǎn)生的大量數(shù)據(jù)的重要解決方案。通過將計算工作負(fù)載擴(kuò)展到多個單獨的計算機(jī)系統(tǒng),不但提供了比單個計算機(jī)系統(tǒng)更快地處理數(shù)據(jù)的能力,而且還提供了根據(jù)需要來添加和移除計算資源的可擴(kuò)縮性,以及可用于通過回避單個故障點來為提供具有更少中斷的服務(wù)的能力。這種分布式系統(tǒng)可以包括數(shù)以千計的互連計算機(jī)系統(tǒng),并且通常被大型企業(yè)用于提供主機(jī)托管(web-hosting)或安全內(nèi)部網(wǎng)之類的服務(wù)。但是,此類系統(tǒng)的分布特性使得安全性成為一個挑戰(zhàn)。一些安全性配置可能要求響應(yīng)某個請求的計算機(jī)能夠訪問一組用于特定服務(wù)的證書(credential)。然而在一些分布式系統(tǒng)中,服務(wù)可以具有在不同計算機(jī)上運行的多個實例,并且一個或多個實例可能嘗試依照相同的證書工作。進(jìn)一步加劇挑戰(zhàn)的是,一些分布式系統(tǒng)可能會將輸入的服務(wù)請求路由到在分布式系統(tǒng)中隨機(jī)選擇的計算機(jī),由此,不同的請求會在不同計算機(jī)之間擴(kuò)散。由于 請求方并不區(qū)分可能處理服務(wù)請求的眾多可能的計算機(jī),因此,在分布式系統(tǒng)中,任何能對該服務(wù)請求做出響應(yīng)的計算機(jī)都有可能能夠訪問與該服務(wù)相關(guān)聯(lián)的證書。證書可以允許計算設(shè)備參與到與提供服務(wù)相關(guān)聯(lián)的任意數(shù)量的驗證功能中。例如,驗證功能可能涉及由提供服務(wù)的計算設(shè)備向需要其請求方提供服務(wù)的另一個設(shè)備證明服務(wù)身份。而計算設(shè)備往往通過使用服務(wù)的證書執(zhí)行密碼功能來證明服務(wù)身份。例如,在提供服務(wù)的設(shè)備試圖訪問受限于該服務(wù)的實例的信息或其他資源時,將會產(chǎn)生一個驗證請求。作為替換,在其他上下文中也可以產(chǎn)生驗證請求,例如在試圖訪問服務(wù)的客戶機(jī)嘗試核實提供服務(wù)的設(shè)備確實代表該服務(wù)的時候。無論所要執(zhí)行的驗證功能具有怎樣的特性,對于分布式系統(tǒng)中無縫執(zhí)行這些驗證功能的多個計算設(shè)備中的任一計算設(shè)備來說,一個或多個設(shè)備可能采取行為來依照同步的證書集合運行。通過這種方式,在提供服務(wù)中涉及的一個或多個計算機(jī)可能會呈現(xiàn)一個共有身份,并且可以交替參與到提供服務(wù)的處理中。此外,良好的安全性實踐有可能規(guī)定這些證書要周期性更新以便保持其機(jī)密性。這種證書更新可被稱為證書刷新、回滾(rollover)或再生。眾所周知,無論使用什么名稱,證書的周期性更新都是通過在已被授權(quán)訪問證書的計算設(shè)備上手動更新證書來提供的。在某種程度上,該處理可以用產(chǎn)生和設(shè)置證書的腳本來自動執(zhí)行,然而,錯誤仍舊是常見的,并且有可能需要人員輔助。對于大型組織來說,在執(zhí)行這些手動或部分自動的操作的員工上耗費大量金錢是屢見不鮮的。此外,在此類更新期間在一個或多個服務(wù)中遭遇到中斷也并不罕見,尤其是在服務(wù)的運行于分布式環(huán)境中的多個實例之間協(xié)調(diào)更新的時候。這種中斷可能會導(dǎo)致組織的金錢損失或是人員生產(chǎn)率損失。
發(fā)明內(nèi)容
在可以由多個發(fā)布設(shè)備中的任一設(shè)備來產(chǎn)生時間相關(guān)(time-dependent)證書的分布式系統(tǒng)中,證書信息被產(chǎn)生以便包括第一和第二證書。第一證書可以是為當(dāng)前間隔計算的證書,所述當(dāng)前間隔是根據(jù)產(chǎn)生該證書信息的發(fā)布設(shè)備追蹤的本地時間確定的。第二證書可以是為在先間隔計算的證書,其中所述在先間隔是根據(jù)產(chǎn)生該證書信息的發(fā)布設(shè)備追蹤的本地時間確定的。除了第一和第二證書之外,證書信息還可以包括關(guān)于該證書信息是否是在在先間隔與當(dāng)前間隔之間的閾值數(shù)量的轉(zhuǎn)換(transition)時間以內(nèi)產(chǎn)生的指示。在這個證書轉(zhuǎn)換閾值以內(nèi),由于發(fā)布設(shè)備追蹤的本地時間存在差別,因此,不同的證書發(fā)布設(shè)備有可能產(chǎn)生不一致的證書。然而,在這個閾值之外,由于不同的發(fā)布設(shè)備的本地時間可以全都處于證書轉(zhuǎn)換之前或全都處于證書轉(zhuǎn)換之后,因此,不同的發(fā)布設(shè)備可以產(chǎn)生一致的證書。這個閾值時間量可以由圍繞轉(zhuǎn)換的時間窗口或是圍繞證書信息之間的轉(zhuǎn)換的間隔的其他任何適當(dāng)?shù)谋硎緛泶?。能夠訪問證書信息的設(shè)備可以基于證書是否是在轉(zhuǎn)換間隔以內(nèi)產(chǎn)生的來有選擇地使用證書。在一些實施例中,在轉(zhuǎn)換間隔以外可以使用第一證書。而在轉(zhuǎn)換間隔以內(nèi),第一或第二證書都是可以使用的。此外,當(dāng)設(shè)備基于證書產(chǎn)生信息時,如果該信息要由可能已經(jīng)從與用以產(chǎn)生該信 息的發(fā)布設(shè)備不同的發(fā)布設(shè)備接收到證書的設(shè)備來處理,那么可以使用第二證書。為了處理使用證書產(chǎn)生的接收到的信息,其中所述證書可能是由不同于用來處理該信息的發(fā)布設(shè)備的發(fā)布設(shè)備產(chǎn)生的,可以使用第一或第二證書來處理該信息。在一些實施例中,時間相關(guān)證書可以用適合分布式系統(tǒng)的技術(shù)來計算。時間相關(guān)證書可以是用兩種類型的間隔而為一個帳戶計算的,或者是為其他任何為之產(chǎn)生了證書的實體計算的。第一類型的間隔可以定義發(fā)布設(shè)備可以用它自己的本地時鐘追蹤的間隔。此類設(shè)備可以識別具有公共標(biāo)識符集合的第一類型的間隔,并且可以選擇用于每一個第一類型的間隔的密鑰,例如密碼密鑰。第二類型的間隔可以涉及帳戶,并且可以指示用于帳戶的證書有效的時段。對于每一個帳戶來說,第二類型的間隔可以是不同的,但是產(chǎn)生證書的發(fā)布設(shè)備可以依照第一類型的間隔來確定用于每一個賬戶的每一個第二類型的間隔的持續(xù)時間,由此,第二類型的間隔揭示了預(yù)定的(scheduled)證書刷新時間。為了產(chǎn)生用于帳戶的證書,設(shè)備可以依照第一類型的間隔來確定帳戶證書預(yù)定要改變的時間。舉例來說,該時間可以是第二類型的間隔的開端。產(chǎn)生證書的設(shè)備可以獲取與產(chǎn)生證書的其他設(shè)備共享的密鑰,其中所述密鑰在第一類型的間隔中是有效的。與關(guān)于帳戶的信息以及為之產(chǎn)生證書的時間相結(jié)合,密鑰可被組合在密碼函數(shù)中以便產(chǎn)生證書。該證書可以在當(dāng)前的第二類型的間隔中是有效的。為了確定在先間隔的證書,標(biāo)記了在先的第二類型的間隔的開端的第一類型的間隔可被識別,并且可以對于該該間隔重復(fù)所述計笪在一些實施例中,可以使用一種或多種技術(shù)來減小分布式系統(tǒng)中的過多計算負(fù)載,如果多個設(shè)備中的每一個要在以類似方式預(yù)定的回滾時間中為每一個帳戶計算新證書,那么所述過多計算負(fù)載可能就會發(fā)生。觸發(fā)證書再生的設(shè)備可以確定預(yù)定回滾時間,但是證書的實際生成有可能是在與預(yù)定的時間相差一個隨機(jī)間隔的時間偏移上發(fā)生的。在一些實施例中,這個隨機(jī)間隔可以由產(chǎn)生證書的發(fā)布設(shè)備確定。在其他實施例中,可以向使用證書的設(shè)備請求該證書,并且這些請求可以在時間上隨機(jī)分布,以避免多個請求在相同時間到達(dá)。
在一個方面中,本發(fā)明涉及一種包含了多個主機(jī)計算設(shè)備以及多個控制計算設(shè)備的系統(tǒng)。該主機(jī)計算設(shè)備托管(host) 了多個服務(wù),并且每一個控制計算設(shè)備被配置成為多個服務(wù)中的任何一個服務(wù)產(chǎn)生證書信息。該證書信息包括第一證書、第二證書以及指示。第一證書是基于控制計算設(shè)備的當(dāng)前本地時間而為多個時間間隔中的第一時間間隔確定的。而第二證書則是為多個時間間隔中的第二時間間隔確定的,第二時間間隔處于第一時間間隔之前。所述指示表明控制計算設(shè)備的本地時間是否處于第一時間間隔與第二時間間隔之間的閾值數(shù)量的轉(zhuǎn)換時間以內(nèi)。在另一個方面,本發(fā)明涉及一種在具有在分布式系統(tǒng)中發(fā)布時間相關(guān)證書的多個計算設(shè)備的群組中操作計算設(shè)備的方法。每一個計算設(shè)備在多個時間間隔中發(fā)布一致的證書,所述證書是由每一個計算設(shè)備根據(jù)計算設(shè)備上本地保持的本地時間發(fā)布的。該方法包括使用至少一個處理器來提供證書信息,其中所述證書信息包括第一證書、第二證書以及指示。第一證書是基于計算設(shè)備的當(dāng)前本地時間而為多個時間間隔中的第一時間間隔確定的。第二證書則是為多個時間間隔中的第二時間間隔確定的,其中所述第二時間間隔處于第一時間間隔之前。所述指示表明計算設(shè)備的本地時間是否處于第一時間間隔與第二時間間隔之間的閾值數(shù)量的轉(zhuǎn)換時間以內(nèi)?!ぴ诹硪粋€方面,本發(fā)明涉及至少一種包含計算機(jī)可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其中所述計算機(jī)可執(zhí)行指令在被運行時,對包含多個發(fā)布時間相關(guān)證書的控制計算設(shè)備的分布式系統(tǒng)中的主機(jī)計算設(shè)備進(jìn)行控制。所述多個控制設(shè)備中的每一個在多個時間間隔中發(fā)布一致的證書,所述證書是由每一個控制設(shè)備根據(jù)所述控制設(shè)備本地保持的本地時間發(fā)布的。該計算設(shè)備使用證書來執(zhí)行依照某種方法的驗證功能。該方法包括接收來自多個控制設(shè)備中的一個控制設(shè)備的證書信息,其中該證書信息包括第一證書、第二證書以及指示。第一證書是基于控制設(shè)備的當(dāng)前本地時間而為多個時間間隔中的第一時間間隔確定的。第二證書是為多個時間間隔中的第二時間間隔確定的,其中所述第二時間間隔處于第一時間間隔之前。該指示表明控制設(shè)備的本地時間是否處于第一時間間隔與第二時間間隔之間的閾值數(shù)量的轉(zhuǎn)換時間以內(nèi)。該方法還包括基于所述指示而在第一證書與第二證書進(jìn)行選擇,以便在驗證功能中使用。在另一個方面,本發(fā)明涉及一種包含多個計算設(shè)備的聯(lián)網(wǎng)系統(tǒng),其中每一個計算設(shè)備都具有相應(yīng)的本地定時源,并且每一個計算設(shè)備都被適配成識別多個間隔中的間隔,所述多個計算設(shè)備使用各自的本地定時源來追蹤公共持續(xù)時間的間隔。此外,每一個計算設(shè)備都通過基于與實體相關(guān)聯(lián)的證書回滾信息來選擇多個間隔中的一個間隔,并且執(zhí)行至少與該實體相關(guān)聯(lián)的選定間隔和信息的功能,從而為該實體計算證書。在另一個方面,本發(fā)明涉及一種操作多個計算設(shè)備中的一個計算設(shè)備來為多個帳戶中的每一個產(chǎn)生時間相關(guān)證書的方法。該方法包括追蹤時間以便識別多個間隔,以及使用至少一個處理器來產(chǎn)生用于帳戶的證書。這種證書的生成包括為所述帳戶確定多個間隔中的一個間隔,其中用于該帳戶的證書在所述間隔是最新近被調(diào)度來基于與帳戶相關(guān)聯(lián)的證書刷新信息而被改變的,確定用于所確定的間隔的密鑰,以及至少根據(jù)所述密鑰以及與帳戶相關(guān)聯(lián)的信息來計算證書。在另一個方面,本發(fā)明涉及至少一種包含計算機(jī)可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其中在被至少一個處理器運行時,所述計算機(jī)可執(zhí)行指令將執(zhí)行一種用于為實體計算證書的方法。該方法包括訪問用于該實體的證書刷新信息,其中該證書刷新信息包括起始時間以及證書回滾間隔。該方法還包括至少基于該起始時間和證書回滾間隔來計算預(yù)定的證書回滾時間,以及至少根據(jù)所計算的預(yù)定證書回滾時間以及與帳戶相關(guān)聯(lián)的信息來計算證書。在另一個方面,本發(fā)明涉及一種包括多個計算設(shè)備的聯(lián)網(wǎng)系統(tǒng),其中每一個計算設(shè)備都被適配成為多個實體中的每一個產(chǎn)生一致的證書,其中在適用于每一個實體的多個第一類型的間隔中的每一個間隔期間,為所述每一個實體產(chǎn)生的證書是不同的。每一個計算設(shè)備都通過追蹤公共持續(xù)時間的多個第二類型的間隔以及通過為實體計算證書來產(chǎn)生證書。計算用于實體的證書包括基于與該實體相關(guān)聯(lián)的證書回滾信息來選擇多個第二類型的間隔中的一個第二類型的間隔,所選擇的第二類型的間隔定義第一類型的間隔的開端,以及在與所選擇的第二類型的間隔規(guī)定的基準(zhǔn)時間偏離的時間,執(zhí)行密碼功能來產(chǎn)生用于實體的證書,其中所述證書在第一類型的間隔期間是有效的。在另一個方面,本發(fā)明涉及一種操作分布式計算機(jī)系統(tǒng)來提供時間相關(guān)證書的方法。該方法包括使用至少一個處理器來為一個或多個實體中的每一個重復(fù)產(chǎn)生證書,其中 每一個證書在相對于多個第二類型的間隔的子集所確定的第一類型的間隔中有效。生成證書的處理包括為一個或多個實體中的每一個確定用于為第二個第一類型的間隔重新產(chǎn)生證書的時間,其中該時間是相對于第一個第一類型的間隔的末端確定的,并且與第一個第一類型的間隔的末端偏移了一個隨機(jī)時間。在另一個方面,本發(fā)明涉及至少一種包含計算機(jī)可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其中在被具有多個控制器的分布式計算系統(tǒng)中的計算設(shè)備運行時,所述計算機(jī)可執(zhí)行指令將會執(zhí)行一種方法。該方法包括接收證書信息,所述證書信息包括至少一個證書和時間指示值,其中該時間指示值指定可以從多個控制器中的任何一個獲取更新證書的計劃時間。此外,該方法還包括在相對于所述計劃時間確定的隨機(jī)時間請求更新的證書。以上是關(guān)于所附權(quán)利要求定義的本發(fā)明的非限制性概述。
以下附圖并沒有打算按比例繪制。在附圖中,在不同的圖中示出的每一個相同或近似相同的組件都是用相同的數(shù)字表示的。為了清楚起見,并不是每一個組件都在每一個圖中進(jìn)行了標(biāo)記。在附圖中
圖IA是本發(fā)明的實施例在其中工作的分布式系統(tǒng)的示意 圖IB是示出了在執(zhí)行驗證功能期間處于分布式系統(tǒng)內(nèi)部的證書信息流的略 圖IC是示出了在執(zhí)行替換的驗證功能期間處于分布式系統(tǒng)內(nèi)部的證書信息流的略
圖2A是示出了在單個計算設(shè)備上發(fā)布時間相關(guān)證書的時間線的略 圖2B是示出了轉(zhuǎn)換間隔的略圖,其中在所述轉(zhuǎn)換間隔,每一個都發(fā)布時間相關(guān)證書的多個計算設(shè)備可以因為時鐘歪斜而發(fā)布不一致的證書;
圖2C是示出了圍繞證書的預(yù)定更新時間的對稱轉(zhuǎn)換間隔的略圖,其中在所述轉(zhuǎn)換間隔,計算設(shè)備可以因為始終歪斜而發(fā)布不一致的證書;
圖2D是示出了非對稱轉(zhuǎn)換間隔以及計算設(shè)備用來發(fā)布時間相關(guān)證書信息以便避免分布式系統(tǒng)中的不一致效應(yīng)的其他時間間隔的略 圖3是操作計算設(shè)備來發(fā)布時間相關(guān)證書信息以便避免分布式系統(tǒng)中的不一致效應(yīng)的方法的流程 圖4A是使用根據(jù)圖3的方法產(chǎn)生的證書信息來執(zhí)行涉及入站驗證請求的驗證功能的方法的流程圖; 圖4B是使用根據(jù)圖3的方法產(chǎn)生的證書信息來執(zhí)行涉及出站驗證請求的驗證功能的方法的流程 圖5A是產(chǎn)生時間相關(guān)證書信息的方法的流程圖,其中所述方法減小了在分布式系統(tǒng)內(nèi)部的計算設(shè)備上出現(xiàn)高計算需求的狀況的出現(xiàn)率;
圖5B是對分布式系統(tǒng)中使用證書信息的計算設(shè)備進(jìn)行操作的方法的流程圖,其中所述方法減少了在分布式系統(tǒng)內(nèi)部出現(xiàn)高計算負(fù)載的情形;
圖6是示出了計算時間相關(guān)證書的方法的流程圖;以及 圖7是本發(fā)明的實施例可在其上工作的典型計算設(shè)備的示意圖。
具體實施例方式發(fā)明人已經(jīng)認(rèn)識并意識到,在服務(wù)主機(jī)之類的設(shè)備從域控制器之類的多個發(fā)布設(shè)備中的任一發(fā)布設(shè)備獲取證書的分布式系統(tǒng)中,用于提供和/或使用證書信息的改進(jìn)技術(shù)可以降低在此類系統(tǒng)中出現(xiàn)差錯或中斷的風(fēng)險。在一些系統(tǒng)中,控制器可以提供時間相關(guān)證書,由此,即便控制器間的定時歪斜所造成的不一致性導(dǎo)致不同控制器產(chǎn)生可在絕對時間幀中的相同時間適用的不同證書,主機(jī)和/或控制器也可以成功執(zhí)行驗證功能。在一些實施例中,每一個服務(wù)或是要使用證書的其他實體可以具有一個在控制器上復(fù)制的帳戶。與該帳戶相關(guān)聯(lián)的信息可以揭示與證書相關(guān)聯(lián)的有效期間隔(validityinterval),由此,一旦通過了有效期間隔,那么每一個帳戶的證書可以改變。在每一個控制器保持它自己的本地時間的分布式系統(tǒng)中,不同的控制器可以在不同的時間改變證書。結(jié)果,當(dāng)在使用證書的控制器上執(zhí)行驗證功能的一部分的時候,另一部分在不同控制器上用不一致證書執(zhí)行的驗證功能有可能失敗。在分布式系統(tǒng)的一些實施例中,每一個控制器可以具有一種識別間隔的機(jī)制和一種為所述間隔產(chǎn)生證書的機(jī)制。例如,每一個控制器可以將時間分成間隔,并且用于服務(wù)的不同證書可被指派給每一個間隔。多個控制器中的每一個可以試圖通過執(zhí)行計算來為服務(wù)產(chǎn)生一致的證書,其中所述計算取決于其間產(chǎn)生證書的間隔。然而,每一個控制器可以追蹤其自身的本地時間,由此,不同控制器追蹤的本地時間之間的差值或歪斜可能導(dǎo)致不同的控制器在相同的絕對時間為該時間指派不同的間隔,并且相應(yīng)地產(chǎn)生不同的證書。在該情景中,第一控制器有可能識別出一個由第一控制器的本地時間量度的可適用時間間隔,而具有不同本地時間的第二控制器則有可能基于所述第二控制器的本地時間確定所適用的是不同的間隔。如果第一控制器和第二控制器確定所適用的是不同的時間間隔,那么第一控制器和第二控制器可以在相同的絕對時間實例提供不同的證書。結(jié)果,對于基于來自其中一個控制器的證書啟動的驗證功能而言,如果該驗證功能是基于來自另一個控制器的證書完成的,那么所述驗證功能可能不會產(chǎn)生預(yù)期結(jié)果。舉例來說,如果基于來自第一控制器的證書產(chǎn)生了用于服務(wù)的令牌,并且隨后將所述令牌提供給嘗試基于該令牌以及來自第二控制器的證書來驗證服務(wù)的設(shè)備,那么驗證功能的結(jié)果有可能得到一個結(jié)論,那就是證書無效。這種源于第一控制器和第二控制器在相同時間提供不同證書的結(jié)論可能導(dǎo)致驗證失敗,并且還會導(dǎo)致服務(wù)中斷。發(fā)明人已經(jīng)認(rèn)識并意識到,通過控制系統(tǒng)中的一個或多個設(shè)備來采取在圍繞其間不同證書有效的間隔之間的轉(zhuǎn)換的時間窗口期間產(chǎn)生一致的結(jié)果的行為,那么將可以避免這種中斷后果。為了支持這種行為,當(dāng)控制器產(chǎn)生證書信息時,每一個控制器都可以提供第一證書和第二證書。第一證書可以代表在當(dāng)前間隔適用的證書,所述當(dāng)前間隔則由產(chǎn)生該證書的控制器上的本地時間量度。第二證書可以代表在之前緊挨著的間隔中適用的證書,并且該間隔是由產(chǎn)生證書的控制器的本地時間量度的。此外,證書信息可以包括關(guān)于該證書信息是否是在轉(zhuǎn)換或轉(zhuǎn)換間隔周圍的時間窗口期間產(chǎn)生的指示,其中在所述轉(zhuǎn)換或轉(zhuǎn)換間隔期間,不同的分布式控制器可以基于其本地時間基準(zhǔn)來斷定其在不同的時間間隔中工作。可以訪問該證書信息的設(shè)備可以使用該指示來選擇使用證書中的哪一個。此 外,所選擇的證書還可以取決于將要使用該證書執(zhí)行的驗證功能的特性。例如,在指示信息表明證書不是在轉(zhuǎn)換間隔中產(chǎn)生的情景中,設(shè)備可以選擇一個證書,該證書代表產(chǎn)生證書信息的控制器所確定的適用于當(dāng)前間隔的證書。無論所要執(zhí)行的驗證功能具有怎樣的特性,該證書都可以被選擇。然而,如果證書是在轉(zhuǎn)換間隔期間產(chǎn)生的,那么設(shè)備可以基于要執(zhí)行的驗證功能的特性來選擇證書。舉例來說,如果驗證功能是出站驗證,例如打算通過執(zhí)行使用證書的密碼功能來產(chǎn)生令牌的功能,那么可以在轉(zhuǎn)換間隔中選擇第二證書。該選擇可以確保接收令牌的設(shè)備能夠向任何控制器核實該令牌,即便是尚未轉(zhuǎn)換到新間隔的控制器。相反,如果該功能是入站功能,例如涉及嘗試核實另一個設(shè)備提供的令牌的功能,那么在驗證令牌的時候可以接受第一證書或第二證書。相應(yīng)地,如果令牌是用來自尚未轉(zhuǎn)換到新間隔的控制器的證書產(chǎn)生的,那么在第一與第二證書之間選擇驗證令牌所依據(jù)的證書可以避免出現(xiàn)不正確的結(jié)果。現(xiàn)在轉(zhuǎn)到圖1A,該圖示出的是一個可以在其中執(zhí)行驗證功能的例示系統(tǒng)。在本示例中,該系統(tǒng)是包含產(chǎn)生證書的設(shè)備以及使用這些證書的其他設(shè)備的分布式系統(tǒng)。這些設(shè)備通過網(wǎng)絡(luò)進(jìn)行連接,由此它們可以交換證書信息以及依照其在分布式系統(tǒng)中的角色來執(zhí)行其他功能。應(yīng)該意識到的是,雖然產(chǎn)生證書的設(shè)備和使用證書的那些設(shè)備被圖示成在分布式系統(tǒng)中具有特定和不同的作用,但是這種區(qū)分并不是本發(fā)明所必需的。對本發(fā)明來說,產(chǎn)生或使用證書的設(shè)備的作用并不重要。在一些實施例中,舉例來說,產(chǎn)生證書的設(shè)備也可以使用這些證書。圖IA是包含一個或多個互連計算設(shè)備的分布式系統(tǒng)100的簡化圖示。顯示了四種類型的設(shè)備主機(jī),控制器,客戶機(jī)以及服務(wù)器。然而,設(shè)備的數(shù)量和類型僅僅用于例證目的,并且對本發(fā)明來說并不是至關(guān)重要的。示出了諸如主機(jī)102^10 和1023之類的主機(jī)。主機(jī)可以是計算設(shè)備,除了其它功能之外,所述計算設(shè)備向其他計算設(shè)備提供一個或多個服務(wù)。舉例來說,主機(jī)可以是企業(yè)網(wǎng)絡(luò)中的服務(wù)器,數(shù)據(jù)庫,或者可以是向其他計算設(shè)備提供數(shù)據(jù)和/或服務(wù)的其他任何設(shè)備。
圖IA還示出了系統(tǒng)100中的多個控制器設(shè)備。為了簡單起見,示出了兩個控制器,即控制器KM1和控制器1042??刂破骺梢詧?zhí)行不同的功能,包括但不局限于控制哪些設(shè)備可以訪問網(wǎng)絡(luò)或控制其他計算設(shè)備上的一個或多個行為。作為一個具體示例,控制器設(shè)備可以是域控制器,例如本領(lǐng)域已知的用于企業(yè)網(wǎng)絡(luò)的域控制器。可以對這其中的每一個控制器,以便為一個或多個實體發(fā)布供其自身或是其他計算設(shè)備使用的時間相關(guān)證書。這些證書可以用于驗證實體等原因,其中舉例來說,所述實體可以是用戶、帳戶或服務(wù)。在圖IA的示例中,為之發(fā)布了證書的實體可以對應(yīng)于用以控制對互連形成分布式系統(tǒng)的設(shè)備的受管理的網(wǎng)絡(luò)所進(jìn)行的訪問的帳戶。在主機(jī)上運行的每一個服務(wù)都可以憑借該帳戶來運行,由此,每一個服務(wù)都可以具有在分布式系統(tǒng)內(nèi)部認(rèn)可且為之發(fā)布了證書的身份。對于其他設(shè)備來說,無論是在分布式系統(tǒng)的內(nèi)部還是外部,所述設(shè)備都可以與主機(jī)和/或控制器交換數(shù)據(jù)或服務(wù)。例如,此類設(shè)備可以是客戶機(jī)106或服務(wù)器108,或者可以是其他任何向分布式系統(tǒng)100內(nèi)部的設(shè)備請求服務(wù)或者向分布式系統(tǒng)100內(nèi)部的設(shè)備提供服務(wù)的設(shè)備。在圖IA示出的示例中,客戶機(jī)106可以獲得來自控制器KM1的授權(quán)令牌, 以便與主機(jī)102i建立安全連接。相反,服務(wù)器108可以使用控制器1042來核實它從主機(jī)1022接收的令牌。在分布式系統(tǒng)100的一些實施例中,諸如主機(jī)或控制器之類的一個或多個設(shè)備可以復(fù)制數(shù)據(jù)和服務(wù)。復(fù)制的設(shè)備可以表明多個設(shè)備中的任何一個都能執(zhí)行功能。在這樣的情景中,雖然不同的設(shè)備可以具有數(shù)據(jù)或服務(wù)的不同實例,但是復(fù)制的目的可以是允許一個或多個實例在任何給定的時間為任何給定的請求提供一致的結(jié)果。除了其他原因之外,對于復(fù)制的系統(tǒng)來說,一種可能的動機(jī)可以是允許將服務(wù)請求路由到提供相同數(shù)據(jù)和/或服務(wù)的多個設(shè)備中的任一設(shè)備,以便將處理負(fù)載分布到多個設(shè)備上。請求方?jīng)]有必要知道哪一個特定設(shè)備執(zhí)行該服務(wù)。因此,請求方不能將請求定向到分布式系統(tǒng)中的特定設(shè)備。在這樣的例示情景中,設(shè)備集合中的一個或多個設(shè)備可以以相同的身份來運行服務(wù),并且可以采取行為以便能訪問一致的證書。作為這種被復(fù)制的系統(tǒng)的示例,在圖IA中,在主機(jī)102^102^1023上可以運行數(shù)據(jù)庫服務(wù),由此,處于主機(jī)上的所述數(shù)據(jù)庫的一個或多個實例可以采取行為,以便在任何時間點依照相同的安全原則來運行。在復(fù)制系統(tǒng)的這樣的實施例中,一個或多個控制器KM1和/或1042可以運行分布式證書生成服務(wù),以便嘗試在任何時間點產(chǎn)生一致的證書。然而在一些分布式系統(tǒng)中,產(chǎn)生一致的證書的任務(wù)有可能會是一項挑戰(zhàn)。例如,在一些名為多主設(shè)備的系統(tǒng)(multi-master system)的實施例中,控制器可以充當(dāng)對等體,并且每一個控制器可以依照它自己的本地時鐘和內(nèi)部狀態(tài)來獨立產(chǎn)生它自己的證書。但是,應(yīng)該意識到的是,本發(fā)明沒有必要局限于多主設(shè)備配置。作為替換,可以有單個(主)控制器產(chǎn)生證書并將其分發(fā)給其他(從屬)控制器。無論控制器如何協(xié)調(diào)證書生成處理,協(xié)調(diào)不同控制器產(chǎn)生并被不同主機(jī)使用的可能不一致的證書的難題都可能是存在的。舉例來說,不一致性有可能是由于控制器之間的本地時間基準(zhǔn)的差別而產(chǎn)生的,或者是因為傳輸延遲或其他那些可能導(dǎo)致不同控制器追蹤的本地時間產(chǎn)生差異的因素而產(chǎn)生的。在一些實施例中,不一致性有可能是通過在時間上擴(kuò)展產(chǎn)生證書的計算負(fù)載而被有意引入到系統(tǒng)中的。圖IB和IC給出了控制器之間的不一致的證書信息如何導(dǎo)致驗證失敗的示例。然而應(yīng)該意識到,這兩個示例僅僅是代表性的實施例,其絕不是為了進(jìn)行限制。不一致性有可能以多種方式中的任何方式產(chǎn)生,并且可以應(yīng)用這里描述的技術(shù)來避免這些以及其他類型的系統(tǒng)中的服務(wù)中斷。圖IB顯示了充當(dāng)控制器KM1和1042的兩個不同設(shè)備參與驗證功能的情景。這其中的每一個設(shè)備都可以是產(chǎn)生證書信息的任何適當(dāng)?shù)脑O(shè)備。在一些實施例中,控制器KM1和1042可以是域控制器。作為替換或補(bǔ)充,他們可以是Kerberos密鑰分發(fā)中心。然而應(yīng)該意識到,分布式系統(tǒng)100不必局限于這些選擇,并且可以由依照驗證方法交換信息的互連計算設(shè)備的任何適當(dāng)配置來實施。在圖IB的示例中,第一控制器KM1接收對于涉及證書的驗證功能的請求1121Q該請求可以從計算設(shè)備106隨機(jī)路由,其中所述計算設(shè)備106可以是代表用戶110行動的客戶機(jī),或者可以是其他任何請求驗證功能的設(shè)備。此外,該客戶機(jī)可以請求用于諸如帳戶之類的特定實體的驗證功能。所述驗證功能的目的可以是獲取用于與設(shè)備102之類的計算設(shè)備進(jìn)行的安全事務(wù)的授權(quán),其中所述計算設(shè)備102可以是主機(jī)或是其他任何提供服務(wù)的設(shè)備。例如,請求IU1可以是請求控制器KM1使用證書信息來產(chǎn)生可供客戶機(jī)106用以訪問 主機(jī)102上的別的服務(wù)的票據(jù)的請求。作為替換,請求1121可以是由控制器KM1已經(jīng)借助其他任何適當(dāng)?shù)氖侄位蚴菐в衅渌魏芜m當(dāng)?shù)哪康慕邮盏?,其中舉例來說,所述手段可以是確定性路由,所述目的可以是授權(quán)入站請求。然而一般來說,控制器從設(shè)備接收的請求可以是對于涉及證書的驗證功能的任何適當(dāng)?shù)恼埱蟆R坏┙邮盏秸埱驣U1,則控制器KM1可以使用多種手段來確定用于被請求的實體的證書,這其中包括但不局限于從其本地數(shù)據(jù)存儲器IU1中檢索證書信息或是計算一個證書生成函數(shù)。在一些實施例中,該證書生成函數(shù)可以是依賴于時間的,并且可以取決于控制器KM1追蹤的本地時間。無論控制器如何確定該證書信息,它都可以向客戶機(jī)106返回一個適當(dāng)?shù)捻憫?yīng)IH1。作為例示情景,如果系統(tǒng)使用的是基于Kerberos的驗證,那么響應(yīng)IH1可以是包含驗證令牌和加密密鑰的證書信息的密碼函數(shù)。在一些實施例中,一旦接收到響應(yīng)IH1,則客戶機(jī)106可以在包含被路由至主機(jī)102的請求116的后續(xù)驗證功能中使用接收到的信息,其中所述主機(jī)102可以是提供服務(wù)的設(shè)備。在這個實施例中,驗證功能可以包括對于設(shè)備106的驗證,但在其他實施例中,該驗證功能可以涉及證書的任何適當(dāng)?shù)拿艽a功能。一旦接收到請求116,則主機(jī)102然后可以通過向第二控制器1042發(fā)送對于驗證功能的后續(xù)請求1122來嘗試驗證該請求。例如,該驗證功能的特性可以是主機(jī)102訪問針對驗證請求116的證書信息,但其并不局限于此。第二控制器可以通過確定與請求IU1相關(guān)聯(lián)的相同帳戶的證書信息來嘗試執(zhí)行該驗證功能。舉例來說,控制器1042可以通過從它的本地存儲器1132中讀取或是通過計算證書生成函數(shù)來做出該確定。無論控制器1042如何確定證書信息,它都可以使用該證書信息來嘗試驗證功能,并且可以向主機(jī)102返回結(jié)果1142。然后,主機(jī)102可以向客戶機(jī)106返回回復(fù)118,其中所述回復(fù)可以準(zhǔn)許或拒絕驗證請求,或者也可以是其他任何適當(dāng)?shù)捻憫?yīng)。在一些實施例中,為使客戶機(jī)106接收來自主機(jī)102的服務(wù),可以要求第二控制器1042使用與第一控制器KM1使用的證書信息相一致的證書信息。然而,第一控制器KM1與第二控制器1042的內(nèi)部狀態(tài)的不同可能導(dǎo)致不同控制器具有不一致的證書信息,而這有可能導(dǎo)致驗證失敗。舉例來說,如果證書依賴于時間并且取決于第一控制器KM1和第二控制器1042上的不同的本地時間,那么有可能會發(fā)生上述情況。圖IB示出的前述示例描述的是這樣一個示例,其中主機(jī)102可以參與“入站”驗證功能,或者更一般地,主機(jī)102可以參與任何涉及到將證書應(yīng)用于從另一個設(shè)備接收的對象的適當(dāng)功能。如果執(zhí)行驗證功能的設(shè)備確定該對象是由一個設(shè)備使用所述執(zhí)行驗證功能的設(shè)備所應(yīng)用的相同證書產(chǎn)生的,那么該對象可被認(rèn)為是得到授權(quán)的。當(dāng)主機(jī)102和客戶機(jī)106從兩個不同的控制器獲取了用于相同帳戶的不一致的證書信息時,這時有可能會發(fā)生驗證失敗。在這種情況下,舉例來說,控制器KM1和1042可能使用顯著不同的本地時間基準(zhǔn)來產(chǎn)生時間相關(guān)證書。作為不一致的證書信息如何導(dǎo)致驗證失敗的另一個示例,圖IC示出了一個由主機(jī)102隨后向另一個設(shè)備108發(fā)送請求120的情景。該請求可以是一個要求訪問設(shè)備108上的諸如數(shù)據(jù)或應(yīng)用之類的服務(wù)的請求,并且設(shè)備108本身可以是服務(wù)器、數(shù)據(jù)庫或是其他任何提供服務(wù)的設(shè)備。舉例來說,如果來自主機(jī)102的請求120涉及針對設(shè)備108的“出站”驗證功能,那么有可能出現(xiàn)這種情景。 主機(jī)102可以向控制器1042發(fā)送一個對于驗證功能的請求11 ,其中該請求的目的是獲得與設(shè)備108進(jìn)行的安全事務(wù)的授權(quán)??刂破?042可以通過使用來自它本地存儲器1132的證書或者計算證書生成函數(shù)來執(zhí)行驗證功能,并且隨后向主機(jī)102返回恰當(dāng)?shù)捻憫?yīng)1142。與圖IB的“入站”情形相似,該響應(yīng)1142可以包括使用主機(jī)102在請求120中發(fā)送給設(shè)備108的證書加密的對象,然后,設(shè)備108可以嘗試獲取對于該對象的驗證。為了驗證接收到的對象,服務(wù)器108可以向第三控制器1043發(fā)送對于驗證功能的請求1123。與控制器KM1和1042 —樣,第三控制器1043可以使用多種手段來確定證書信息,例如從它的本地存儲器1133中讀取或是計算證書生成函數(shù)。該證書生成處理可以是依賴于時間的,由此,所述證書有可能依賴于產(chǎn)生證書的控制器1043追蹤的本地時間。基于該驗證功能的結(jié)果,控制器1043然后可以向設(shè)備108返回一個響應(yīng)1143。當(dāng)控制器1042和1043使用不一致的證書來執(zhí)行它們各自的驗證功能時,這時有可能發(fā)生驗證失敗。圖IB和IC全都顯示了證書信息的不一致性如何導(dǎo)致不期望的驗證失敗的示例。這種證書信息的不一致性可以是由不同的因素造成的。證書不一致性的一個可能的原因在于在一些分布式系統(tǒng)中,證書有可能周期性改變,除了其他原因外,其目的有可能是幫助保持其機(jī)密性。然而,系統(tǒng)中的不同部分有可能在相同的時間使用不同的證書,而這將會產(chǎn)生能導(dǎo)致非預(yù)期的驗證失敗的不一致性,即便是在接收有效證書的設(shè)備之間也是如此。圖2A示出了具有時間相關(guān)證書的例示控制器104的時間線圖表。在一些實施例中,特定的證書有可能只在某個時間長度上有效,并且有可能在該時間屆滿之后改變。圖2A示出了三個間隔202^202^2023,其中所述間隔可被稱為有效期間隔或回滾間隔,并且特定證書在所述間隔期間是有效的。然而,此類間隔的數(shù)量和名稱對本發(fā)明來說并不重要。此類間隔的長度可以是任何適當(dāng)?shù)某掷m(xù)時間,并且還可以是數(shù)天或數(shù)周,這取決于受保護(hù)的應(yīng)用或服務(wù)。舉例來說,更安全的服務(wù)可以具有更頻繁的證書更新以及更短的有效期間隔。而且,用于不同實體的這種類型的間隔可以具有不同的持續(xù)時間,并且可以是在不同的時間開始的。在一些實施例中,每一個有效期間隔202^202^2023都可以處于證書發(fā)生變化的時間之前和/或之后,其中所述時間在圖2A中用轉(zhuǎn)換時間204^204和2043示出。這些轉(zhuǎn)換時間的數(shù)量和名稱對于本發(fā)明而言并不重要,這些轉(zhuǎn)換時間可以代表發(fā)生了從較早的證書信息到較新的證書信息的變化的時間,或者可以代表證書信息中的其他任何適當(dāng)?shù)淖兓?。在分布式系統(tǒng)的一些實施例中,這些有效期間隔和轉(zhuǎn)換時間可以由控制器使用與為之產(chǎn)生了證書的帳戶或其他實體相關(guān)聯(lián)的刷新信息來確定。在一些實施例中,該刷新信息可以包括證書信息中的預(yù)定變化之間的時間。作為替換,在一些實施例中,刷新信息還可以包括創(chuàng)建帳戶或其他實體的時間,或是用于量度這些有效期間隔的其他任何適當(dāng)?shù)钠鹗紩r間。在諸如復(fù)制系統(tǒng)之類的一些實施例中,不同的控制器可以嘗試以同步方式來執(zhí)行證書更新,以便在整個分布式系統(tǒng)中保持一致的證書。然而,如果不同控制器追蹤的本地時間之間存在差別,那么同步證書更新可能是一個難題。在這樣的情景中,在任何給定時間,一些控制器有可能具有較早的證書,而其他控制器則有可能具有較新的證書。
圖2B示出了本地時間差別如何導(dǎo)致證書信息不一致的一個可能的示例。在該示例中顯示了三個控制器,即控制器KM1UCM2以及1043,然而確切的數(shù)量對于本發(fā)明而言并不重要。控制器可以確定預(yù)定的證書回滾時間,其中該時間打算相對于絕對時標(biāo)在同一時間發(fā)生的。然而,沒有一個控制器是相對于絕對時標(biāo)工作的,相反,每一個控制器都是依照它自己的本地時間工作的。雖然分布式系統(tǒng)可以嘗試同步控制器的本地時間,但是出于多種原因,在每一個控制器追蹤的本地時間之間有可能存在差別。結(jié)果,控制器有可能會在用時間2041、2042和2043表示的不同時間經(jīng)歷到證書轉(zhuǎn)換。這些時間可以代表從一個回滾間隔到另一個回滾間隔的可能轉(zhuǎn)換。如所示,用于第一控制器的第一和第二回滾間隔被標(biāo)記成間隔202n和20212,用于第二控制器的回滾間隔被標(biāo)記成間隔20221和20222,而用于第三控制器的回滾間隔則分別被標(biāo)記成間隔20231和20232。本地時鐘之間的差值或歪斜可以用對于相同的預(yù)定轉(zhuǎn)換在不同控制器上的轉(zhuǎn)換時間的差表示。如所示,第一控制器KM1與第二控制器1042之間的轉(zhuǎn)換時間差是用時間歪斜21212表不的;第一控制器KM1與第三控制器1043之間的轉(zhuǎn)換時間差是用時間歪斜21213表示的;而第二控制器1042與第三控制器1043之間的轉(zhuǎn)換時間差則是用時間歪斜21223表示的。在時間204,當(dāng)?shù)谝豢刂破鱇M1剛剛可以開始從一個證書轉(zhuǎn)換到下一個證書時,第二控制器1042有可能已經(jīng)轉(zhuǎn)換到下一個證書,而第三控制器1043則有可能仍在使用先前的證書。如所示,在一些實施例中,在預(yù)定轉(zhuǎn)換周圍可以存在一個時間間隔,其中在所述時間間隔期間,經(jīng)過不同控制器處理的證書請求可以返回不同的結(jié)果。這種不一致性可能導(dǎo)致非預(yù)期的授權(quán)失敗。然而應(yīng)該理解,圖2B僅僅表示不一致的證書如何可以在不同控制器上存在的一個可能實施例。圖2C示出了在一些實施例中,控制器如何可以在轉(zhuǎn)換時間附近使用證書差分處理來避免非預(yù)期的授權(quán)失敗。在一些實施例中,控制器可以將其時間線210分成另一種類型間隔的離散單元。這種類型的間隔可被稱為“紀(jì)元(印och)”,它可以具有可以短于有效期間隔的固定持續(xù)時間,但是確切的名稱和持續(xù)時間對本發(fā)明而言并不重要。為了簡單起見,在圖2C中僅僅標(biāo)記了前兩個紀(jì)元,標(biāo)記為ZOS1和2082。
每一個控制器可以依照這些紀(jì)元來追蹤時間。紀(jì)元的追蹤通??梢栽谒锌刂破魃弦匀魏吻‘?dāng)?shù)姆绞酵健O鄳?yīng)地,在所有的控制器上會有相應(yīng)的紀(jì)元。然而,由于每一個控制器都使用它自己的本地時間來確定每一個紀(jì)元的開端和結(jié)束,因此,紀(jì)元將會遭遇到與圖2B所示的歪斜相類似的歪斜。每一個控制器可以相對于這些紀(jì)元量度時間。例如,每一個有效期間隔可以在與紀(jì)元開端對準(zhǔn)的時間開始和停止。在一些實施例中,轉(zhuǎn)換時間可以對應(yīng)于紀(jì)元開端。如所示,轉(zhuǎn)換時間204^204和2043對應(yīng)于紀(jì)元3、6和9的開端。在一些實施例中,有效期間隔可以被表述成是整數(shù)個的紀(jì)元。在該示例中,每一個有效期間隔包括三個紀(jì)元,但是每一個有效期間隔的紀(jì)元的實際數(shù)量對于本發(fā)明而言并不重要。
在一些實施例中,在證書的每一個轉(zhuǎn)換時間周圍,控制器可以指定某個時間窗口或轉(zhuǎn)換間隔。在圖2C中顯示了三個這樣的被標(biāo)記成216ρ2162和2163的轉(zhuǎn)換間隔,但是這種轉(zhuǎn)換間隔的實際數(shù)量可以取決于相應(yīng)轉(zhuǎn)換的數(shù)量。轉(zhuǎn)換間隔可以采用多種方式來定義。作為示例,轉(zhuǎn)換間隔可以由來自證書有效期間隔之間的預(yù)定轉(zhuǎn)換的小于閾值時間量的所有時間確定。所述閾值可被設(shè)置為確保無論控制器上存在什么樣的時鐘歪斜,在任一控制器的預(yù)定轉(zhuǎn)換時間之前的所述閾值時間量之前,不會有其他控制器已經(jīng)經(jīng)歷到新證書的相應(yīng)轉(zhuǎn)換。同樣,在任一控制器的預(yù)定轉(zhuǎn)換時間之后的閾值時間量之前,所有其他控制器都會已經(jīng)經(jīng)歷到新證書的相應(yīng)轉(zhuǎn)換。在一些實施例中,該閾值可以是基于任何兩個控制器之間的最大歪斜估計來定義的。舉例來說,圖2B示出了最大時鐘歪斜218,在圖2B中,所述歪斜與控制器KM1和1043之間的歪斜是對應(yīng)的。確定最大時鐘歪斜218的處理可以采用多種方式進(jìn)行,包括但不局限于控制器周期性輪詢權(quán)威的時間源,并且取第一控制器輪詢的時間與最后一個控制器輪詢的時間之間的差值。無論如何估計最大歪斜218,所述歪斜均可用于指定圍繞轉(zhuǎn)換時間的閾值時間量。該閾值可以用多種方式確定,以使其可以指定一個足夠大的轉(zhuǎn)換間隔,由此,如果任一設(shè)備假設(shè)所有控制器都具有相同的證書,那么在轉(zhuǎn)換間隔之外是不會發(fā)生非預(yù)期的授權(quán)失敗的。更一般來說,該閾值可以依照任一恰當(dāng)?shù)姆绞绞褂茫员阒付ㄒ粋€轉(zhuǎn)換間隔,從而使得設(shè)備可以在轉(zhuǎn)換間隔以內(nèi)和以外采用不同的方式來產(chǎn)生和/或使用證書。在一些實施例中,轉(zhuǎn)換間隔的持續(xù)時間可以取決于使用證書的方式。在設(shè)備會在預(yù)定轉(zhuǎn)換之前和之后以不同方式使用證書的實施例中,轉(zhuǎn)換間隔可以在預(yù)定轉(zhuǎn)換之前和之后延長不同的時間量。相應(yīng)地,為了避免非預(yù)期的驗證失敗,轉(zhuǎn)換間隔沒有必要是對稱的。舉個例子,一旦涉及第二設(shè)備所產(chǎn)生的對象的驗證功能失敗,那么第一設(shè)備可以使用之前緊接著的證書來重復(fù)該驗證功能。如果第二設(shè)備尚未轉(zhuǎn)換并且是用先前證書來產(chǎn)生對象的,那么所述驗證將會成功。同樣,如果剛剛已經(jīng)轉(zhuǎn)換到新證書的任一設(shè)備在其轉(zhuǎn)換間隔結(jié)束之前繼續(xù)使用之前緊接著的證書,那么其他任何設(shè)備(無論該設(shè)備是否轉(zhuǎn)換到新證書)都能成功完成驗證功能。結(jié)合這種使用證書的協(xié)議,每一個控制器只需要追蹤預(yù)定轉(zhuǎn)換之后的轉(zhuǎn)換間隔。換句話說,在該實施例中,轉(zhuǎn)換間隔可以僅僅延伸至預(yù)定轉(zhuǎn)換時間之后而不是之前的時間。不管轉(zhuǎn)換間隔的長度和對稱性如何,在該轉(zhuǎn)換間隔以內(nèi),控制器都未必具有一致的證書信息。例如,一些控制器可能具有舊的證書,而其他控制器則有可能具有新證書,或者在證書信息之間還有可能存在其他形式的差異。因此,在一些實施例中,在這些特定的轉(zhuǎn)換間隔內(nèi)部,即使證書信息中可能存在不一致性,計算設(shè)備也可以用一種確保其他設(shè)備都能成功執(zhí)行驗證功能的方式來有選擇地使用時間相關(guān)的證書信息。在一些實施例中,如圖2C所示,轉(zhuǎn)換間隔的持續(xù)時間可以小于紀(jì)元的持續(xù)時間。例如,轉(zhuǎn)換間隔的長度可以是數(shù)分鐘或數(shù)秒,而紀(jì)元的長度則可以是數(shù)小時或數(shù)天。但是應(yīng)該意識到的是,對本發(fā)明而言,紀(jì)元和閾值的確切持續(xù)時間并不重要,并且它們中的任何一個可以根據(jù)分布式系統(tǒng)的特性而具有任何恰當(dāng)?shù)闹?。雖然證書信息的確切特性可以取決于所使用的安全協(xié)議,但在一些實施例中,證書信息可以包括三種信息與第一有效期間隔相對應(yīng)的第一證書;與第一有效期間隔之前的第二有效期間隔相對應(yīng)的第二證書;以及表明發(fā)布該證書的計算設(shè)備的本地時間是否處 于第一與第二間隔之間轉(zhuǎn)換的閾值時間量以內(nèi)的指示。后一種信息可以是表明第一證書是在轉(zhuǎn)換間隔期間產(chǎn)生的或者可能是在轉(zhuǎn)換間隔期間提供的信息的示例。用于確定在計算第一和第二證書的過程中使用的第一和第二有效期間隔的處理可以取決于證書生成時間。在一些實施例中,第一間隔可以是當(dāng)前間隔(包含證書生成時間的間隔)。作為替換,在一些實施例中,第一間隔可以是下一個間隔(包含證書生成時間的間隔之后的間隔)。在一些實施例中,對于發(fā)布證書的計算設(shè)備的本地時間是否處于第一與第二有效期間隔之間轉(zhuǎn)換的閾值時間量以內(nèi)的指示可以包括一個或多個時間指示值或定時值。在一些實施例中,可能有第一時間指示值和第二時間指示值。然而,這些值的數(shù)量可以根據(jù)所使用的驗證配置的特性而存在差別。例如,第一時間指示值可以代表能夠從多個計算設(shè)備中的任何一個獲取更新的證書的計劃時間。為了簡單起見,這個第一時間指示值可被稱為“恢復(fù)(comeback)”提示(hint)(或者簡稱為CB)。在一些實施例中,第二時間指示值可以代表在它之前沒有一個控制器提供更新證書的計劃時間。為了簡單起見,這個第二時間指示值可被稱為“無變化”提示(或者簡稱為NC)。這些值可以采用任何適當(dāng)?shù)姆绞絹泶_定。圖2D以及表I和2顯示了計算設(shè)備如何可以發(fā)布時間相關(guān)的證書信息的可能實施例。在這些特定實施例中,轉(zhuǎn)換間隔是以非對稱方式安置在轉(zhuǎn)換時間之前的,但是一般來說,轉(zhuǎn)換間隔可以具有關(guān)于轉(zhuǎn)換時間的任何類型的對稱性。表I表示其中計算設(shè)備可以產(chǎn)生新的證書信息或是替換舊的證書信息的實施例。舉例來說,如果在足夠長的時間里證書沒有被訪問,那么有可能發(fā)生這種情景。該確定可以基于各種判據(jù),舉例來說,其中一個判據(jù)可以是存儲器中的證書信息與圖2D中間隔202i之前的間隔相對應(yīng)。無論是怎樣的特定判據(jù)或動機(jī),計算設(shè)備都可以在任何點依照表I來決定產(chǎn)生新的證書信息。表2表示其中計算設(shè)備可以返回已有的已存儲證書信息或者可能還可以產(chǎn)生新的證書的情景。舉例來說,如果存在已存儲的證書信息并且依照任意數(shù)量的適當(dāng)判據(jù)認(rèn)為所述證書信息是當(dāng)前證書信息,那么有可能發(fā)生這種情景,其中舉例來說,所述適當(dāng)判據(jù)可以是證書信息的一部分與圖2D中的間隔202i相對應(yīng)。無論具有怎樣的具體判據(jù)或動機(jī),計算設(shè)備都可以在任何時間基于表2來決定返回證書信息。表I :產(chǎn)生新的證書信息或是替換舊的證書信息
權(quán)利要求
1.一種操作分布式計算機(jī)系統(tǒng)(100)來提供時間相關(guān)證書的方法,該方法包括 使用至少一個處理器(720)來為一個或多個實體中的每一個重復(fù)產(chǎn)生證書,每一個證書都在相對于多個第二類型的間隔(208。和(2082)的子集所確定的第一類型的間隔(202^,(202^或(2023)中有效,所述產(chǎn)生包括為一個或多個實體中的每一個確定為第二個第一類型的間隔產(chǎn)生證書的時間,所述時間是相對于第一個第一類型的間隔的末端確定的,其中該時間與第一個第一類型的間隔的末端偏移一個隨機(jī)時間。
2.權(quán)利要求I的方法,其中 該方法是在分布式計算機(jī)系統(tǒng)(100)的多個控制器中的一個控制器上執(zhí)行的;以及該方法還包括使用控制器上的本地定時源來追蹤時間,以便識別多個第二類型的間隔(208J 和(2082)。
3.權(quán)利要求2的方法,其中 分布式計算機(jī)系統(tǒng)(100)包括多個控制器;以及 證書是在多個控制器中的每一個控制器上基于所述控制器上追蹤的時間而被重復(fù)產(chǎn)生的,其中所述控制器使用該控制器上的本地定時源來追蹤所述時間以便識別多個第二類型的間隔(208J和(2082)。
4.權(quán)利要求I的方法,其中 第一類型的間隔(2(^ )、( 2022)或(2023)包括整數(shù)個第二類型的間隔(2(^ )和(2082)。
5.權(quán)利要求I的方法,其中 該方法是在分布式計算機(jī)系統(tǒng)(100)的控制器上執(zhí)行的;以及 生成證書的時間是由在控制器上運行的任務(wù)確定的。
6.—種聯(lián)網(wǎng)系統(tǒng)(100),包括 多個計算設(shè)備(101)、( 1042)和(1043),其中每一個計算設(shè)備都被適配成為多個實體中的每一個產(chǎn)生一致的證書,為每一個實體產(chǎn)生的證書在適用于該實體的多個第一類型的間隔(202),(20 )或(2023)中的每一個第一類型的間隔期間是不同的,其中每一個計算設(shè)備(104J、( 1042)和(1043)是通過以下處理來產(chǎn)生證書的 追蹤具有共同持續(xù)時間的多個第二類型的間隔(208P和(2082); 通過以下處理來計算用于實體的證書 基于與實體相關(guān)聯(lián)的證書刷新信息來選擇多個第二類型的間隔(208P和(2082)中的一個第二類型的間隔,所選擇的第二類型的間隔定義了第一類型的間隔的開端;以及 在與所選擇的第二類型的間隔定義的基準(zhǔn)時間(2042)偏移的時間,執(zhí)行密碼功能來產(chǎn)生用于所述實體且在第一類型的間隔期間有效的證書。
7.權(quán)利要求6的聯(lián)網(wǎng)系統(tǒng)(100),其中 每一個計算設(shè)備(101)、( 1042)或(1043)還被適配成隨機(jī)確定偏移。
8.權(quán)利要求7的聯(lián)網(wǎng)系統(tǒng)(100),其中 每一個計算設(shè)備(1040、( 1042)或(1043)包括域控制器。
9.權(quán)利要求7的聯(lián)網(wǎng)系統(tǒng)(100),其中 每一個計算設(shè)備(104J、( 1042)或(1043)通過有選擇地產(chǎn)生證書來響應(yīng)對用于實體的證書的請求,所述有選擇地產(chǎn)生包括 當(dāng)所述請求是在基準(zhǔn)時間(2042)的預(yù)定間隔(2162)以內(nèi)接收到時產(chǎn)生證書;以及 響應(yīng)于該請求,返回所產(chǎn)生的證書; 當(dāng)所述請求是在基準(zhǔn)時間(2042)的預(yù)定間隔(2162)以外接收到時 從數(shù)據(jù)存儲器(113P、( 1132)或(1133)中檢索證書;以及 響應(yīng)于該請求來返回所檢索的證書。
10.權(quán)利要求9的聯(lián)網(wǎng)系統(tǒng)(100),還包括 多個主機(jī)計算設(shè)備(102J、( 1022)和(1023),所述多個主機(jī)計算設(shè)備(102J、( 1022)和(1023)中的每一個都運行一個與證書相關(guān)聯(lián)的服務(wù)的實例,每一個主機(jī)計算設(shè)備(102P、(10 )和(1023)都被適配成產(chǎn)生請求。
11.至少一個包括計算機(jī)可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),當(dāng)被具有多個控制器的分布式計算機(jī)系統(tǒng)中的計算設(shè)備執(zhí)行時,所述計算機(jī)可執(zhí)行指令執(zhí)行如權(quán)利要求1-5中任何一個所述的方法。
全文摘要
一種分布式系統(tǒng),在該系統(tǒng)中,時間相關(guān)證書是由依照不同的本地時間工作的控制器提供的。在轉(zhuǎn)換間隔中,不同的控制器有可能在相同的絕對時間產(chǎn)生不同的證書,通過識別在轉(zhuǎn)換間隔期間產(chǎn)生的證書,避免了那些由于時間歪斜因而控制器產(chǎn)生不一致證書導(dǎo)致的差錯。在轉(zhuǎn)換間隔期間,控制器和其他設(shè)備可以基于驗證功能的特性而以不同的方式使用證書。每一個控制器都可以基于自己調(diào)度的更新或是來自其他設(shè)備的請求而對證書進(jìn)行周期性更新,由此,更新時間將被偏移隨機(jī)延遲,以免出現(xiàn)過多的網(wǎng)絡(luò)業(yè)務(wù)量??刂破骺梢曰谂c任何給定時間相關(guān)聯(lián)的經(jīng)密碼保護(hù)的密鑰以及識別與該證書相關(guān)聯(lián)的實體的信息來確定哪個證書在該時間有效。
文檔編號H04L29/06GK102904927SQ20121032092
公開日2013年1月30日 申請日期2012年9月3日 優(yōu)先權(quán)日2011年9月1日
發(fā)明者M.諾瓦克, P.J.利奇, 曾毅, S.辛哈, K.M.肖爾特, G.肯南 申請人:微軟公司