两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

提供斷開鑒別的系統(tǒng)和方法

文檔序號:6499463閱讀:255來源:國知局
專利名稱:提供斷開鑒別的系統(tǒng)和方法
技術(shù)領(lǐng)域
總的來說,本發(fā)明涉及密碼術(shù),具體而言,涉及用于計算機安全的系統(tǒng)。
背景技術(shù)
正如本領(lǐng)域所公知的,存在各種各樣的系統(tǒng)用于相對計算機和/或計算機網(wǎng)絡(luò)來鑒別用戶。例如,要登陸一臺計算機,用戶通常要鍵入口令。但是,正如本領(lǐng)域所公知的,僅靠口令的系統(tǒng)只能提供有限的安全級別。
其它已知的鑒別系統(tǒng)需要兩種識別要素。一種這樣的系統(tǒng)是由美國麻省Bedford的RSA安全公司提供的RSA SECURID系統(tǒng)。通常,該系統(tǒng)需要用戶從他擁有的鑒別令牌(token)形式的裝置輸入字母-數(shù)字個人身份號碼(PIN)和數(shù)據(jù)。服務(wù)器驗證所述令牌中服務(wù)器知道的用戶PIN及安全數(shù)據(jù)。該RSA SECURID系統(tǒng)已經(jīng)在授予Weiss的4,720,860號美國專利中概括描述,在這里將其引入作為參考。
鑒別令牌,例如RSA SECURID令牌,對于通過不安全通道相對于服務(wù)器來鑒別用戶而言正變得越來越普遍。鑒別令牌優(yōu)于使用標(biāo)準(zhǔn)口令的好處是多方面的,主要有減少了遭到假冒攻擊的風(fēng)險。假冒攻擊是指未被授權(quán)人員企圖通過安全服務(wù)器的鑒別,從而訪問例如公司網(wǎng)。
典型情況下,鑒別令牌與鑒別服務(wù)器,例如RSA安全ACE服務(wù)器,共享一些信息,這些信息一般不被其它實體所知,并且利用這些信息能夠產(chǎn)生和驗證某些鑒別字符串的至少一部分。該鑒別字符串通常還包括所述令牌的擁有者記住并同時存儲在服務(wù)器上的某些信息,或者是這些信息的函數(shù)。為了產(chǎn)生這一鑒別字符串,該鑒別可以是交互的,例如,詢問一響應(yīng)形式,或者是非交互的,例如不從服務(wù)器向用戶/令牌發(fā)送任何信息。
目前,構(gòu)成鑒別嘗試的所述信息是通過某些有可能不安全的通信線路發(fā)送的,例如通過無線或者有線網(wǎng)絡(luò)進(jìn)行發(fā)送。在一種普通情形里,擁有鑒別令牌的用戶希望訪問由服務(wù)器控制的某些資源。可以假定該服務(wù)器對于攻擊是安全的,因而也可以假定由該服務(wù)器存儲的秘密信息的安全不會遭到破壞,并且不可能被用于假冒該用戶的目的。上述資源可以是例如數(shù)據(jù)庫、電子郵件賬號、存儲單元或者處理能力。可以假定該資源不需要存儲對于產(chǎn)生鑒別字符串有用的任何信息,除非該資源與執(zhí)行驗證的服務(wù)器相同。
雖然這些系統(tǒng)對于結(jié)合遠(yuǎn)程鑒別服務(wù)器的用戶鑒別來說是有效的,但是當(dāng)所述鑒別服務(wù)器無法使用的時候這些系統(tǒng)可能無效,或者當(dāng)想要訪問的資源是令牌擁有者所擁有的計算機的時候這些系統(tǒng)不實用。在這種情況下,如果所述計算機能夠驗證鑒別碼,而不需要與遠(yuǎn)程鑒別服務(wù)器交互,那么這將是有益的。但是,如果該計算機丟失或者被偷竊,或者受到入侵者控制,那么該入侵者可能會獲取驗證信息,并使用該信息企圖針對遠(yuǎn)程鑒別服務(wù)器假冒該用戶(即令牌)。因此,雖然可以將某些信息存儲在計算機上以便能夠鑒別輸出令牌,但是這樣做不應(yīng)當(dāng)帶來不可接受的安全缺陷。
因此,需要克服上述缺點及其它缺點。

發(fā)明內(nèi)容
本發(fā)明提供一種用于斷開鑒別的系統(tǒng)。服務(wù)器將一系列驗證記錄下載到已經(jīng)通過服務(wù)器鑒別的計算機,例如膝上型電腦。在一個實施例中,所述記錄對應(yīng)于預(yù)定的一段時間。在另一個實施例中,所述記錄對應(yīng)于事件。所述記錄存儲在膝上型電腦中,并且包含與預(yù)定的這一段時間內(nèi)由鑒別令牌所輸出的數(shù)據(jù)相對應(yīng)的信息,例如口令。所述記錄以一種方式和格式存儲,這種方式和格式用于使攻擊者在給定的未來時間內(nèi)能夠發(fā)現(xiàn)令牌輸出的可能性最小化,從而防止通過膝上型電腦的鑒別和/或在重新連接到服務(wù)器后假冒用戶。
通常,驗證器對擁有能夠提供一個或者多個一次性通行碼(passcode)的鑒別令牌的用戶進(jìn)行鑒別。獲得驗證記錄并且獲得通行碼。然后確定該通行碼是否與驗證記錄一致,其中驗證記錄是參考通行碼的函數(shù)(reference passcode)。
在一個實施例中,所述記錄包括一些值,已經(jīng)使用單向函數(shù)對這些值進(jìn)行了加密、模糊化或者使得這些值不可讀出。散列(hash)函數(shù)是這種單向函數(shù)的一個例子。在一個特定的實施例中,散列算法接收給定時間的令牌輸出值作為輸入,所謂的鹽值(salt value),以及所謂的胡椒值(pepper value)。所得到的從服務(wù)器下載下來的散列輸出存儲在膝上型電腦上,作為記錄的一部分。可以將預(yù)定的那一段時間每個令牌輸出時間間隔的記錄存儲起來。如果該令牌輸出是由這個用戶提供的,并且該令牌數(shù)據(jù)、鹽值和胡椒值的散列與對應(yīng)于給定時間間隔的記錄匹配,那么這個用戶就通過了膝上型電腦的鑒別。


通過下面結(jié)合附圖的詳細(xì)描述,將更全面地理解本發(fā)明,在這些附圖中圖1是根據(jù)本發(fā)明提供斷開鑒別的系統(tǒng)的框圖;圖2是說明本發(fā)明中基于時間的示例性信息的圖形表示,可以下載這些信息以提供斷開鑒別;圖3是示出本發(fā)明中斷開鑒別的示例性部件的框圖;圖4是根據(jù)本發(fā)明可以構(gòu)成斷開鑒別一部分的示例性記錄的文本表示;圖5是本發(fā)明中斷開鑒別另一個特征的圖形表示;圖6是本發(fā)明中斷開鑒別又一個特征的圖形表示。
具體實施例方式
本發(fā)明提供一種系統(tǒng),不能與鑒別服務(wù)器通信的時候,這種系統(tǒng)有利于在代理,例如膝上型個人電腦(PC)上進(jìn)行斷開鑒別。(斷開時間段之前)連接到鑒別服務(wù)器時,下載對應(yīng)于預(yù)定的一段時間的一系列驗證記錄至所述代理。在一個實施例中,所述代理存儲由鑒別服務(wù)器產(chǎn)生的,處理后例如散列處理后多個版本的一次性通行碼。
通常,驗證器鑒別擁有鑒別令牌的用戶,這些鑒別令牌能夠提供一個或者多個一次性通行碼。獲取是參考通行碼函數(shù)的驗證記錄。確定所提交的通行碼是否與這一驗證記錄一致,該通行碼可以作為時間、事件、詢問等的函數(shù)來產(chǎn)生,如同以下將詳細(xì)描述的一樣。在一個實施例中,斷開的用戶提交來自鑒別令牌的通行碼給驗證器,用于通過確定所提交的通行碼是否與對應(yīng)的驗證記錄一致來鑒別用戶。
在一個特定的實施例中,根據(jù)用戶時間的種子值或者基于序列的鑒別令牌,例如由RSA安全公司提供的RSA SECURID令牌,來產(chǎn)生基于時間的通行碼。驗證記錄可以在例如用戶旅行之前下載。也可以將它們下載下來供一次登陸會話期間使用,例如使用幾分鐘到幾小時。因此每個驗證記錄都是可以從種子值產(chǎn)生的參考通行碼的函數(shù)。
對于基于時間的令牌,一次性通行碼僅在短期內(nèi)有效,例如一分鐘。應(yīng)當(dāng)為每個令牌時間間隔下載一個記錄?;蛘邞?yīng)當(dāng)下載(可能是中間的)種子值這種下載信息,以允許所述記錄由驗證器本身產(chǎn)生,其中所述種子值應(yīng)當(dāng)在產(chǎn)生所述記錄之后刪除。這更適于涉及圖2所描述的導(dǎo)出分層種子的方案,因為與具有單一主種子而沒有中間種子值的方案相比,中間種子值生命期有限。令牌輸出的持續(xù)時間與在代理上感覺到的任何時間變化無關(guān),并且時間是由該令牌控制的。在斷開期間,代理可以對由用戶輸入的通行碼信息進(jìn)行散列處理,并比較存儲的散列通行碼以確定是否存在匹配的情形,從而鑒別用戶。也就是說,確定提交用于鑒別的通行碼是否與給定的驗證記錄一致,其中的驗證記錄是能夠由例如鑒別服務(wù)器產(chǎn)生的參考通行碼的函數(shù)。
圖1示出了根據(jù)本發(fā)明具有斷開鑒別功能的示例性系統(tǒng)100。代理102,例如個人計算機(PC),作為驗證器,可以通過可選網(wǎng)絡(luò)106與服務(wù)器104通信,供服務(wù)器進(jìn)行鑒別。用戶可以從鑒別令牌108提供個人身份號碼(PIN)和數(shù)據(jù)給代理102,代理102將此信息傳送給服務(wù)器104。通常,令牌108由控制代理102的用戶所擁有。令牌108中的信息可以由用戶例如通過鍵盤提供給代理102,或者可以通過例如有線或者無線通信線路自動提供。如果需要,同樣可以用各種方式將信息提供給令牌。該令牌也可以是在驗證器內(nèi)實施的“虛擬”軟件令牌。應(yīng)當(dāng)理解,該服務(wù)器可以相對于幾個時間間隔的記錄(和/或?qū)?yīng)于多個事件)來驗證令牌輸出,從而時鐘漂移或者其它同步喪失都不會使用戶喪失訪問服務(wù)器的能力。
在鑒別用戶之后,服務(wù)器104可以提供信息給代理102,能夠在有限的一段時間內(nèi)將這些信息用于用戶鑒別,如同下面將更加全面地說明的一樣。通過這種方式,未被授權(quán)的人訪問所述代理102和/或重新連接的時候?qū)Ψ?wù)器104成功假冒已授權(quán)用戶都不太可能。
可以支持各種令牌類型,包括基于時間的令牌,其中令牌輸出或者令牌碼是時間變量和令牌秘密(例如種子值)的函數(shù);詢問響應(yīng)令牌,其中令牌輸出或者響應(yīng)是提供給該令牌的詢問值和令牌秘密的函數(shù);基于事件的令牌,其中令牌輸出是事件計數(shù)器和令牌秘密的函數(shù),或者其中令牌輸出是令牌秘密的函數(shù),并且該秘密響應(yīng)某些事件而更新(例如按下令牌上的按鈕);以及涉及上述某些組合的令牌。也可以將令牌的狀態(tài)信息結(jié)合到令牌輸出的導(dǎo)出過程中,正如在M.Jakobsson和A.Juels于2003年11月26日提交的10/724,034號美國專利申請“Identity Authentication System and Methods”中進(jìn)一步描述的一樣,在這里將該申請引入作為參考。此外,一次性通行碼不需要由任何特定的函數(shù)產(chǎn)生;它們可以是存儲在令牌中并與鑒別服務(wù)器共享的隨機值。同時,該令牌本身不必是一個計算裝置;它也可能包括在其上印有通行碼的卡(可能是“刮掉”類型的)。應(yīng)當(dāng)理解,通行碼和鑒別字符串這些術(shù)語是可以互相交換使用的。
此外,可以將PIN附加到令牌輸出上或者包含在計算一次性通行碼的過程中。這一組合可以由令牌本身或者其它地方完成。也可以將PIN提供給所述令牌,并在該令牌產(chǎn)生輸出之前由該令牌進(jìn)行本地驗證。也可以應(yīng)用生物統(tǒng)計學(xué)在本地相對于令牌進(jìn)行鑒別。但是,這里所描述的方法不需要PIN或者生物測定。
圖2與圖1一起描述了根據(jù)本發(fā)明可以被下載用于斷開鑒別的信息。在一個特定的實施例中,鑒別令牌108包括產(chǎn)生年種子152a~m的根種子150,從年種子產(chǎn)生月種子154a~n。從月種子154產(chǎn)生日種子156a~o,然后是小時種子158a~p等等直到在所需的時間間隔產(chǎn)生唯一的值,例如每六十秒(一分鐘)160a~q??梢岳矛F(xiàn)有技術(shù)中公知的方式使用單向函數(shù)產(chǎn)生種子值。鑒別服務(wù)器104也可以產(chǎn)生這些值,以便能夠驗證令牌值。此外,還用這些值產(chǎn)生將被下載至代理的記錄。
如果用戶意識到將從服務(wù)器104斷開,那么可以由服務(wù)器給代理102下載以記錄為形式的鑒別信息,覆蓋預(yù)定量的時間,例如三天162。這些記錄每個都可以對應(yīng)于令牌的給定時間間隔。下載的信息應(yīng)當(dāng)使用戶能夠在這三天162內(nèi)訪問這臺計算機(代理102),直到利用服務(wù)器104重新鑒別。應(yīng)當(dāng)將下載的記錄存儲起來,從而對于未被授權(quán)人員例如偷竊膝上型電腦的人來說,要訪問該計算機和/或假冒該鑒別服務(wù)器的用戶是相當(dāng)困難的。顯然,在很多情況下攻擊者希望假冒用戶來訪問例如公司網(wǎng)。
應(yīng)當(dāng)理解,可以將本發(fā)明應(yīng)用于其中與鑒別令牌中的信息一起提供口令或者個人身份號碼(PIN)的實施例,以及詢問/響應(yīng)實施例。
下載的信息可以使用各種自動和手動機制進(jìn)行下載。但是,鑒別服務(wù)器應(yīng)當(dāng)驗證用戶是被授權(quán)下載所述信息。通常,將下載的信息作為記錄存儲在代理上,從而使代理能夠識別與每個記錄關(guān)聯(lián)的時間間隔。
在一個示例性的實施例中,下載的記錄對應(yīng)于預(yù)定的時間段。例如,被授權(quán)用戶可能有三天時間從服務(wù)器斷開。服務(wù)器可以下載記錄供這三天時間內(nèi)的鑒別。所述記錄可以包括對應(yīng)于詢問/響應(yīng)數(shù)據(jù)的信息。在一個實施例中,所述記錄包括加密數(shù)據(jù),這些加密數(shù)據(jù)對應(yīng)于鑒別令牌響應(yīng)詢問c在時間t的響應(yīng)At(c),這些數(shù)據(jù)將構(gòu)成該記錄的一部分。但是,詢問并不是必需的。如同以下進(jìn)一步描述的,也可以單獨使用基于時間的值。更一般地,可以將本發(fā)明應(yīng)用于如上所述的各種鑒別令牌類型。
應(yīng)當(dāng)理解,雖然假定了基于時間(在某些場合也可以是基于詢問的)的鑒別令牌,但是這里所描述的技術(shù)也能夠用于基于事件的和不是基于時間的其它實施例。例如,代替使令牌輸出與時間變量相關(guān),所述輸出可以與計數(shù)器相關(guān);因此記錄可以不直接對應(yīng)于時間段(例如三天),而是對應(yīng)于令牌輸出數(shù)量(例如300個令牌輸出)。為方便起見,下面將一般性地描述基于時間的實施例,但是轉(zhuǎn)換成基于事件或者基于序列的實施例,以及將詢問結(jié)合進(jìn)來,對于本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。符號At(c)的目的就是要表示這種替換。
雖然以下描述主要針對散列函數(shù)的使用,但是應(yīng)當(dāng)理解各種算法類型,包括單向算法和非單向算法都應(yīng)當(dāng)落在本發(fā)明的范圍之內(nèi)。正如這里所使用的,單向函數(shù)是指對其求逆實際上比計算它更困難的單向函數(shù)??梢允褂脴?biāo)準(zhǔn)散列函數(shù),例如SHA256(在聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)PUB 186-2,“Secure Hash Standard(SHS)”,2002年8月中給出了定義)。正如所公知的,使用散列構(gòu)造的迭代,例如1000次SHA256的連續(xù)迭代,來增加攻擊者的計算成本,同時保持用戶的開銷適度也是很有益的。此外,雖然總的來說是結(jié)合給單向函數(shù)提供基于時間的變量,例如令牌輸出,來描述本發(fā)明,但是應(yīng)當(dāng)理解所述變量也可以對應(yīng)于事件等等。
在一個特定的實施例中,下載的記錄包括At(c)以及在預(yù)定時間段例如三天內(nèi)每個令牌時間間隔的鹽值和胡椒值的散列。該鹽值與相關(guān)記錄一起存儲,而胡椒值則不存儲。對于不同的時間,鹽值可能不同。也可以下載信息,例如一個或者多個種子值,以便能夠產(chǎn)生所述記錄。
正如在這里所使用的,鹽值指的是這樣一個值,將它包含進(jìn)來作為要進(jìn)行散列處理(或者加密)的信息的一部分。例如可以作為具有預(yù)定比特數(shù)的隨機數(shù)來提供該鹽值。該鹽值可以與所述記錄一起存儲,或者為了減少存儲需求,可以從與一組記錄相關(guān)的主鹽值,以及與給定的記錄相關(guān)的其它信息產(chǎn)生它。正如本領(lǐng)域普通技術(shù)人員所理解的,鹽值能夠阻止詞典型的攻擊獲取安全值例如令牌輸出。由于鹽值對于不同的時間是不同的,因此攻擊者確定安全值要做的工作必須對每個時間間隔都做一遍,因為該鹽是散列數(shù)據(jù)的一部分。
正如在這里所使用的,胡椒指的是這樣一個值,它具有已知的或者可預(yù)測的比特數(shù),這個值是被散列處理的數(shù)據(jù)的一部分。但是,與鹽值不同,胡椒值不被存儲。還有,也不下載胡椒值。因此,計算可能的胡椒值,并為每個胡椒值計算散列函數(shù)。由于必須為可能的胡椒值計算散列函數(shù)以找出實際的值,胡椒減慢了詞典型攻擊。
在圖3所示的一個特定實施例中,對應(yīng)于時間t的給定記錄200包括對應(yīng)于散列函數(shù)輸出202的信息。散列函數(shù)的輸入包括時間t的令牌輸出,At(c)204,時間t的鹽值206,以及時間t的胡椒值208。當(dāng)試圖訪問計算機時,可以要求用戶提供令牌輸出At(c)204。應(yīng)當(dāng)理解,由于沒有存儲胡椒值208,因此對可能的胡椒值計算散列函數(shù)。雖然這些值中每個值的比特數(shù)可以變化,但是示例性的比特數(shù)包括At(c)的20比特,胡椒的10比特,以及鹽的21比特。將得到的散列函數(shù)202計算結(jié)果與給定時間的存儲記錄200進(jìn)行比較,以便找出正確的值,能夠訪問計算機。
應(yīng)當(dāng)理解,如果沒有詢問,則不存儲c。此外,如果沒有詢問,那么At不是c的函數(shù),不需要用戶輸入c到令牌中(或者,如果所述令牌具有有線或者無線通信鏈路,那么不需要該令牌接收詢問c)。應(yīng)當(dāng)理解,本發(fā)明可以應(yīng)用于詢問和非詢問的實施例。
不知道給定時間的令牌安全數(shù)據(jù)At(c)204并且不知道胡椒值208的情況下,為了計算散列函數(shù)輸出,對于20比特的At和10比特的胡椒,需要220×210=230數(shù)量級次數(shù)計算。如上所述,鹽值206是已知的,但是能夠防止對所有記錄的并行類型攻擊。
在又一個實施例中,個人身份號碼(PIN)值210(附圖3中以虛線形式示出)可以構(gòu)成將被散列處理的數(shù)據(jù)的一部分。如果PIN數(shù)據(jù)是13比特,那么對于每個時間間隔,攻擊者有計算次數(shù)的數(shù)量級為230×213=243這樣多的工作要做。并且如同以下更詳細(xì)描述的,這些操作必須在已下載記錄對應(yīng)的時間段截止之前完成。
在圖4所示的一個特定實施例中,使用被稱為SHA256的公開的256比特散列函數(shù)。從安全信息的輸入計算從SHA256散列函數(shù)的256比特輸出,這些安全信息來自鑒別令牌(即令牌輸出或者通行碼)、鹽以及可能的胡椒??梢詫HA256散列函數(shù)輸出的一部分與存儲記錄比較。在一個示例性實施例中,可以將SHA256輸出的最高128個有效位定義為h’(x),用于與存儲的記錄比較。如果輸入是正確的,那么這些散列結(jié)果之一的h’(x)(來自可能的胡椒值的結(jié)果)將匹配。
將正確胡椒值的SHA256散列函數(shù)輸出的最低128個有效位(h”(x))作為對視窗(Windows)口令的加密值解密的密鑰。通過這種方式,僅在從鑒別令牌輸入正確的安全信息之后,才能提取正確的視窗口令。
實例將時間分成多個間隔,每個間隔等于顯示一個令牌輸出的持續(xù)時間。一個記錄與每個這種時間段相關(guān)。在某個(任意)基線時間之后的第i個時間段被稱為時間i,并且與該時間段相關(guān)的記錄稱為rec_i。這些記錄是通過機器例如ACE服務(wù)器利用令牌種子的信息計算出來的。然后從該機器向可以被稱為驗證器的機器下載一批記錄,隨后該驗證器將執(zhí)行令牌輸出的脫機驗證。該驗證器典型情況下是膝上型電腦。
初始化過程(每次將要下載一批記錄時由鑒別服務(wù)器執(zhí)行)如下。例如,選擇在40和80比特之間固定長度的隨機鹽值salt_i。選擇在10和25比特之間固定長度的隨機值pepper_i。利用附加或者組合的正確PIN針對時間間隔i計算令牌,例如RSA SECURID的輸出。令它為val_i值,對于6數(shù)字令牌和4數(shù)字PIN它有34比特長??梢宰寁al_i僅為令牌輸出,在這種情況下將不通過散列記錄驗證PIN。計算值y=SHA256(pepper_i,salt_i,val_i)。讓A_i為y的第一部分,其中A_i是例如80與128比特之間的固定大小。讓B_i作為y的第二部分,它可以是128比特(但是不包含A_i的任何部分)。值A(chǔ)_i隨后被用于驗證鑒別嘗試的正確性,同時B_i提供能夠加密視窗口令,秘密密鑰或者對應(yīng)用于驗證器上有益的任何其它秘密信息的密鑰。這些信息,也稱為數(shù)據(jù)元素,被稱作M,并且使用B_i對M加密稱作E_i??梢允褂霉腁ES算法來加密M。如果M比128比特長,那么將在密碼塊鏈接(CBC)模式下使用密碼。令rec_i=(salt_i,A_i,E_i)。應(yīng)當(dāng)注意,pepper_i、val_i以及B_i這些量都不包含在所述記錄中,不發(fā)送給所述驗證器。
應(yīng)當(dāng)理解,所述信息M可以采用各種形式。除了已經(jīng)描述的用于對視窗口令解密的密鑰之外,所述信息可以是-用于對驗證器上的文件或者其它數(shù)據(jù)解密的例如高級加密標(biāo)準(zhǔn)(AES)的對稱密鑰加密系統(tǒng)的秘密密鑰-用于利用消息鑒別碼(MAC)鑒別數(shù)據(jù)的秘密密鑰-在非對稱(公開密鑰)加密系統(tǒng)例如RSA公開密鑰加密系統(tǒng)中用于對文件或者其它數(shù)據(jù)解密的私有密鑰-用于利用數(shù)字簽名方案鑒別數(shù)據(jù)的私有密鑰-用于針對例如其它計算機上的應(yīng)用進(jìn)行鑒別的秘密密鑰或者私有密鑰-用于解開其它密鑰(如上所述這些其它密鑰本身也可能是秘密密鑰或者私有密鑰)的秘密密鑰或者私有密鑰-用于保護敏感數(shù)據(jù),例如用戶概況信息(例如信用卡號碼)或者本地口令表的密鑰-任何敏感數(shù)據(jù)-視窗口令本身此外,代替利用值B_i對M加密,可以直接從B_i導(dǎo)出密鑰。也可以將值B_i本身用作密鑰。
鑒別過程如下。用戶輸入用戶名(可選)、當(dāng)前令牌碼以及PIN(可選),并且從這些數(shù)據(jù)獲取值val_i。驗證器選擇記錄rec_i以匹配基于用戶名(如果輸入)和時間的輸入。對pepper_i所有可能的值使用窮舉搜索(以任何需要的順序),計算值y=SHA256(pepper_i,salt_i,val_i)。比較第一部分(與A_i相同大小)與rec_i中的A_i以確定是否匹配。如果對于某些胡椒存在匹配,那么鑒別成功。在這種情況下,令B_i為y的第二部分。值B_i可以被用于對E_i解密以獲得M。
正如對于一次性通行碼所容易理解的,在令牌與驗證器之間有可能存在某些同步損失。例如參見授予Weiss的4,885,778號美國專利,在這里將它引入作為參考。因此,如果利用記錄rec_i的鑒別不成功,那么驗證器可以利用一個或者多個相鄰的記錄重試。也可以跟蹤在以前成功的鑒別中使用了哪些記錄,以便防止重新使用以前的令牌碼。
代替計算A_i值,驗證器也可以僅計算B_i值,并基于E_i的成功解密單獨鑒別該用戶。例如,如果加密操作包括冗余,例如填充或者在解密期間校驗的校驗和,或者如果本身加密的值M具有可以驗證的冗余,那么成功地解密確保了使用正確的密鑰B_i。這又給所提供的安全信息是正確的提供了保證。由于不計算或者存儲A_i值,該方法具有減少存儲和計算需求的好處。
作為另一個選擇,值M的成功使用可以是通過其驗證安全信息的手段。例如,如果值M是視窗口令(或者通過其對所述密碼解密的密鑰),那么該視窗口令可以由視窗操作系統(tǒng)作為確定所述安全信息是否正確的手段進(jìn)行驗證。除了增加正確性的保證之外,在沒有冗余地對所述值加密的情況下,該方法還具有必須使用所述值以便能夠進(jìn)行驗證的好處,從而有可能給其中使用了所述值的系統(tǒng)發(fā)出遭到攻擊的信號。也就是說,在不使用值M的情況下,獲得記錄的攻擊者不能確定對安全信息的猜測是否正確。
也可以將所述各種替代方式的元素組合起來,從而使正確性的確保來自于A_i的匹配、E_i的成功解密和/或M的成功使用。
在圖5所示的本發(fā)明的另一個方面里,可以“搖晃”散列函數(shù)的鹽值。在一個實施例中,以置換方式存儲每個散列記錄,如在第一列250中所示的,與列252中對應(yīng)的鹽值之間的關(guān)聯(lián)。也就是說,與散列輸出一起存儲的鹽值不是該散列輸出的鹽值。通過這種方式,對鹽值進(jìn)行測試以找出對應(yīng)于給定散列輸出的鹽值。應(yīng)當(dāng)理解,本領(lǐng)域普通技術(shù)人員已知的各種機制都可以用于置換這種鹽/散列關(guān)聯(lián)。
在圖5所示的又一個實施例中,鹽值被分成獨立存儲的第一部分salt1和第二部分salt2,如在列254中所示的。該第一和第二鹽部分被分開、置換和存儲。對于本領(lǐng)域普通技術(shù)人員來說很明顯,可以將該鹽分成任何數(shù)量的部分并以各種技術(shù)和方式進(jìn)行置換。此外很明顯存在大量可以使用的鹽和胡椒的混合。
實例作為“鹽罐”初始化過程的一部分,同時準(zhǔn)備某一數(shù)量n的記錄,例如1000個記錄。設(shè)置胡椒為空字符串(即不使用任何胡椒)。對于每個記錄,這樣做導(dǎo)致一個多元組(salt_i,val_i,A_i,B_i,E_i)。在這些多元組中,驗證器接收除了B_i之外所有的值。但是,在發(fā)送任意值過去之前,隨機地置換這n個salt_i值。不修改它們的比特串,而是僅修改與它們相關(guān)的記錄。在置換之后,存在格式為rec_i=(salt_i,A_i,E_i)的n個記錄,其中salt_i被用于指代置換到第i個位置的鹽。值A(chǔ)_i或者E_i不置換。
在驗證過程中,驗證器以窮舉方式嘗試salt_i值和A_i值的每個組合。它為每個這樣的鹽值計算值y=SHA256(salt_i,val_i),比較第一部分與所選記錄的A_i值。該過程將正確值y的計算“延遲”平均n/2倍,并且最壞的情況下延長n倍。因此這將對應(yīng)于10比特長度的胡椒值。產(chǎn)生更長的延遲而不必處理更多記錄的方法不言自明。
為了將計算成本平均增加n*n/2倍,將鹽值分解成相同大小的兩部分,然后每個這種部分與一個隨機記錄相關(guān)聯(lián),即這些半個獨立置換。于是記錄具有(salt_{i1},salt_{i2},A_i,E_i)的格式,其中salt_{il}是置換后的第一半,salt_{i2}是置換后的第二半。為了驗證令牌值,驗證器需要以窮舉方式搜索第一半和第二半鹽值的所有組合,這樣做平均要嘗試n*n/2次。通過將每個鹽分成甚至更小的部分,同時通過不將它們按第一半先存儲等順序存儲,而是對每個記錄按隨機順序存儲,能夠很容易地增加計算工作量。增加工作量的另外一種方式是引入必須同時搜索的“啞”記錄。
圖6示出了本發(fā)明的另一個方面,其中時間的流逝會增加攻擊者成功訪問計算機所需完成的工作量。在一個特定的實施例中,用戶下載例如三天的鑒別記錄。如上所述,成功攻擊需要243次計算。如果用戶在預(yù)定時間段,例如一天內(nèi)不登陸,那么第二天成功攻擊的工作量會增加到例如2×243。如果用戶兩天不登陸,那么工作量增加到4×243。雖然附加的工作也會增加對提供正確安全信息的用戶進(jìn)行鑒別所需的時間,但是對于每個后續(xù)的時間段,例如天,攻擊者所需完成的工作量都要加倍。用戶登錄的延遲可能是明顯的,但是應(yīng)當(dāng)是能夠接受的。
總之,鑒別真用戶時,與沒有使用這里所描述的本發(fā)明的技術(shù)那種情況相比,計算機的工作量應(yīng)當(dāng)大致相同(較少)。如果用戶在相對長的時間段內(nèi)沒有進(jìn)行過鑒別,那么計算成本上升是可以接受的。但是,該系統(tǒng)不應(yīng)當(dāng)允許攻擊者有大量的時間通過嘗試所有可能的組合來“分解”記錄。因此,對應(yīng)于未來時間間隔的記錄比那些對應(yīng)于當(dāng)前時間間隔的記錄更應(yīng)當(dāng)受到保護,因為攻擊者將有更多的時間來攻擊這些記錄。
應(yīng)該理解,試圖未經(jīng)授權(quán)訪問計算機的攻擊者會受到激勵用所需最低工作量獲得進(jìn)入。因此,對應(yīng)于下載的記錄,攻擊者不可能傾向于選擇直到接近預(yù)定時間段結(jié)尾,例如三天的結(jié)尾,才能夠恢復(fù)出令牌輸出的時間間隔。由于所需工作量,攻擊者能夠?qū)崿F(xiàn)攻擊的時間段長度有限。
還是參考圖6,在一個實施例中,每次成功登陸都提供給下一次登陸或者時間段的“提示”。在一個示例性實施例中,胡椒值的比特數(shù)對于用戶不登陸的每一天都增加。例如,在第一天胡椒值為10比特,對應(yīng)于243次計算的工作量,如上所述。如果用戶在第一天不登陸,胡椒值在第二天增加到11比特。如果用戶在第一天登陸,那么獲取第二天11比特胡椒中的1比特用于第二天,以便為第二天提供10比特的有效胡椒值。
如果用戶在第一天和第二天都不登陸,那么用于第三天的胡椒值增加到12比特,對應(yīng)于2×2×243的工作量。如果用戶在第一天和第二天沒有登錄的情況下確實打算在第三天登陸,那么由于對應(yīng)于增加的胡椒值的數(shù)量而增加的計算量,在獲得訪問的過程中的延遲會增加。但是,增加的延遲不應(yīng)是禁止性的。
應(yīng)當(dāng)理解,雖然將提供提示描述為獲取胡椒比特,但是考慮到這里所包含的說明,提供提示的方式可以按照對本領(lǐng)域普通技術(shù)人員來說顯而易見的方式,改變比特數(shù)量、時間、最后登陸日期、數(shù)值類型等。下面將把提示看作與胡椒獨立的變量,雖然它們也可以被實現(xiàn)為胡椒的一部分或者其它屬性。
在另一個實施例中,從胡椒值空間的被選部分或者搖晃后(shaken)鹽值的置換提供提示。例如,可以利用具有不等概率的隨機比特選擇胡椒空間的不等部分,這里的不等概率為邏輯“1”或者“0”。
實例對于時間間隔i,記錄rec_i=(A_i,Δ_i,salt_i)。還將時間分成更長的時間段,例如24小時間隔或者日歷日,用t做下標(biāo)。每個時間段t與hint_i值關(guān)聯(lián),這個值的長度可以在例如1~10比特范圍內(nèi)。時間間隔i所屬的較長時間段由t_i表示;幾個連續(xù)的時間間隔將屬于相同的較長時間段(例如1440個時間間隔,如果時間間隔是一分鐘并且較長的時間段是一天的話)。
當(dāng)接收輸入值val_i時,需要驗證它是否對應(yīng)于rec_i。這里假定val_i是較長時間段t_i的一部分,并且hint_{t_i-1}是已知的。如果用戶在前一個較長的時間段內(nèi)已被服務(wù)器成功地鑒別,那么該提示將是已知的。對于所有可能的pepper_i值,驗證器計算(A|B)=h(val_i,hint_{t_i-1},salt_i,pepper_i)這個量,其中h()表示散列函數(shù),其中A與A_i大小相同,salt_i是指間隔i的鹽值,pepper_i是指在間隔i的可能的胡椒值,并且B是指可以用作解密密鑰的散列輸出的一部分。將量A與值A(chǔ)_i進(jìn)行比較,如果匹配,就認(rèn)為(val_i,pepper_i)對應(yīng)于該時間間隔的記錄rec_i。
應(yīng)當(dāng)理解,可以使用值B來加密視窗口令或者其它數(shù)據(jù)以及下一個提示。足以對每個數(shù)據(jù)解密的信息可以作為字段E_i存儲在記錄中。也可以存儲延遲值Δ,從而當(dāng)它與B的某些部分進(jìn)行XOR(異或)運算以后,所述結(jié)果為未來的某些時間間隔產(chǎn)生提示。值Δ可以通過鑒別服務(wù)器來計算,并在某個以前的時間下載到計算機中。
如果值hint_{t_i-1}不是已知的,那么必須以窮舉法嘗試所有可能的值。給定遭到破壞的機器狀態(tài),對于“誠實”地使用這一系統(tǒng),以及對于攻擊者希望確定val_i這個量的攻擊,都是如此。
從值B計算所述提示。具體而言,hint_{t_i}=Δ_iXORB′,其中B’為B的一個比特(或者通過B獲得的一個比特)。因此,計算rec_i的一方設(shè)置Δ_i=B XOR hint_{t_i},其中hint_i是獨立于rec_i中的值選取的,XOR是指邏輯異或函數(shù)。與不知道hint_{t_i-1}這一提示的一方相比,這樣做允許知道hint_{t_i-1}的一方在下一個較長的時間段內(nèi)(A|B)的計算量“打折”。前者將不得不結(jié)合所有可能的胡椒來嘗試所有可能的提示;后者保持了前一次成功鑒別的提示,只需要嘗試所有可能的胡椒。因此,胡椒使每個人減速,提示僅僅使那些不知道他們的人減速。
在前面,為了得到與所述提示相關(guān)的計算量折扣,必須了解剛好是前一個較長時間段中給出的提示(也可以在當(dāng)前的時間段求出所述提示,但是沒有折扣,因為它可能與相同時間段內(nèi)用于其它記錄的提示相同)。在一個實施例中,希望給了解在較早的時間段接收到提示的人提供類似的好處。
如果提示的大小為10比特,那么可以給了解剛好是前一個較長時間段的提示值的一方10比特的折扣??梢越o了解最近兩個較長時間段的提示的一方9比特的折扣,可以給了解最近三個較長時間段的提示的一方8比特的折扣等等。這一點可以通過使hint_t=f(hint_{t-1},r_t)來實現(xiàn),其中r_t是一個隨機比特(或者在連續(xù)提示之間幫助的差異應(yīng)當(dāng)比1大的情況下,是幾比特)。在這里,f可以被選擇為LFSR(線性反饋移位寄存器)、單向函數(shù)或者適合組合輸入部分的其它機制。
上述描述對應(yīng)于這樣一個設(shè)置,其中計算工作量隨著自最后一個已知的提示以來的時間段數(shù)增大而指數(shù)變化。
如以下所描述的,也可以使計算工作量隨時間段數(shù)線性變化。在設(shè)置階段,系統(tǒng)為將在驗證器上存儲其記錄的每個較長時間段t產(chǎn)生隨機加密密鑰K_t。該系統(tǒng)定義Δ_i,從而使B_i′XORΔ_I給出隨機加密密鑰。在成功鑒別之后恢復(fù)密鑰K_t。使用日加密密鑰K_t,對相對小的比特串表M_1、M_2、…、M_T加密,其中對于第j個隨后時間段來說M_j是一個“掩碼”,并且T是在其之前成功鑒別導(dǎo)致“折扣”的時間段數(shù)量。每個值M_j是一個T比特串,其中每個比特對應(yīng)于可能的胡椒值空間的不同部分,其中所述胡椒可能出現(xiàn)在第j個隨后時間段;值M_j將設(shè)置j比特。這意味著已知的M值越新(給定前一次并且成功的鑒別嘗試),可能的胡椒值的搜索空間減少得越多,相應(yīng)地計算速度也就越快。
隨后,對于成功的鑒別嘗試,由驗證器導(dǎo)出字符串M_1…M_T,并按明文存儲。這樣做允許減少未來鑒別嘗試的計算成本。如果設(shè)置M_j的1比特,那么應(yīng)當(dāng)從空間的那一部分搜索胡椒,如果清楚的話,就不搜索。M_j將設(shè)置j比特,這意味著胡椒空間減少到下一個較長時間段其整個大小的1/T,對隨后的長時間段是2/T,對下一個是3/T等等。在連續(xù)的長時間段內(nèi)揭示的,對應(yīng)于給定的未來時間段的那些M_j值,應(yīng)當(dāng)比在前一個時間段內(nèi)揭示的那一個要清楚1比特,因而在不同的長時間段內(nèi)揭示的M_j值不給出不需要量的信息。
在一個實施例中,在用服務(wù)器鑒別之后,定期下載新的“長周期”記錄到驗證器中。所述掩碼應(yīng)當(dāng)工作新的一些較長時間段,這意味著服務(wù)器必須記住該掩碼。驗證器的第一次下載(這需要初始鑒別)可以包括掩碼的初始設(shè)置。
上述技術(shù)還為所謂的鹽罐(salt shaker)實施例工作;提示將與置換的鹽值一起被輸入到散列函數(shù)中,并且下一個提示將在該記錄中被加密。在一個替換實施例中,在鹽罐實施例的范圍內(nèi)的提示值刪除對應(yīng)于前一次成功鑒別嘗試的那些鹽部分,或者將這些部分標(biāo)記為已經(jīng)搜索過。然后,對未來的鑒別嘗試不搜索該記錄以及相關(guān)的鹽,從而為每個成功的鑒別嘗試提供特定的計算折扣??梢钥闯?,對于某一個有界的時間段,成功鑒別嘗試越多(與置換的那一組記錄相關(guān)),那么計算成本將會越低。
示例將時間劃分到天,例如24小時的時間段。例如,如果用戶在第一個24個小時周期內(nèi)成功地通過驗證器鑒別,那么對于之后開始的24小時周期,驗證令牌輸出應(yīng)當(dāng)并不“昂貴”;對于接下來的24小時周期更加不昂貴,并且對于相同的24小時周期來說極其不昂貴。
從范圍
中選擇胡椒值,其中maxpepper等于例如4095。該范圍可以分成四個部分,
,[1024…2047],[2048…3071],[3072…4095]。在這四個范圍中相同的一個范圍內(nèi)選擇給定日的所有胡椒值。一旦用戶已被驗證器成功鑒別,那么驗證器就知道這是哪一部分,從而相同日任何進(jìn)一步的嘗試在計算工作上都將僅花費它們通常所需花費的1/4。這是因為這樣一個事實,已知這一天晚些時候的胡椒來自這一天早些時候?qū)?yīng)的同一個范圍,并且驗證器記住了這一范圍。這對第二天不會提供折扣。但是,如果值M包含不用于第二天的胡椒的有關(guān)兩個間隔(四以外)的信息,那么允許以其花費的一半執(zhí)行第二天的所有鑒別嘗試。
此外,如果值M包含有關(guān)不用于第二天的后一天的一個胡椒間隔的信息,那么這對第二天的后一天將提供1/4的計算折扣。應(yīng)當(dāng)注意,兩天提示必須是第二天提示的子集,以便使兩個提示不會將成本減少到1/4,除非需要這樣。
以上的各種胡椒和鹽罐方法的優(yōu)點在于攻擊者的成本顯著地增加,而對產(chǎn)生記錄的成本只有適度的影響。如果在鑒別服務(wù)器處需要產(chǎn)生大量的記錄,那么這是有吸引力的,如果有許多用戶就會是這種情況,特別是對于其中頻繁產(chǎn)生新令牌輸出(例如每分鐘)的基于時間的鑒別令牌。但是,胡椒和鹽罐方法并不是必需的。一種替代的方法是使用迭代或者其它減慢的散列函數(shù)。這樣做也會極大的增加攻擊者的成本,盡管它會對產(chǎn)生具有更大的影響(由于與僅僅選擇胡椒或者鹽置換相比,產(chǎn)生記錄的一方也必須使用減慢的散列函數(shù))。
胡椒或者鹽罐方法的另一種替代方式是使用時間鎖難題(time-lock puzzle),例如在1996年2月MIT Laboratory for ComputerScience(麻省理工學(xué)院計算機科學(xué)實驗室)technical memo(技術(shù)備忘錄)MIT/LCS/TR-684中R.L.Rivest,A.Shamir以及D.A.Wagner的“Time-Lock Puzzles and Timed-Release Crypto”所描述的。時間鎖難題是能夠高效率地構(gòu)造的難題,但是它的求解卻需要大量的運算。作為一個例子,這個難題可能需要計算y=x^(2^k)mod n這個值,其中n是大的復(fù)合模量,x和k是給定的整數(shù)。構(gòu)造這個難題的一方還知道n的多個因子,因此知道phi(n),其中phi(n)是歐拉的totient函數(shù)。因此該方能夠高效率地按照y=x^r mod n計算y,其中r=2^k modphi(n)。但是,求解這個難題的那一方僅知道模量n,并不知道phi(n),因而必須執(zhí)行k次連續(xù)的模二次冪運算(modular squarings)。為此,輸入的x將代替散列函數(shù)的輸入;值k將作為控制成本的可變整數(shù);并且輸出y將代替散列函數(shù)的輸出。
時間鎖難題與胡椒或者鹽罐一樣具有相同的特征,即驗證的成本增加而不必極大地增加產(chǎn)生的成本。但是,在胡椒和鹽罐方法中,仍然存在攻擊者在比預(yù)期少的幾次操作中偶然正確地猜出胡椒或者鹽置換的可能性。在時間鎖難題方法中,與迭代散列方式類似,攻擊者實質(zhì)上必須執(zhí)行所需的所有步驟;不存在未知的東西需要猜測,只有靠工作才能做到。(但是,如果需要的話,可以容易地提供這種“未知的東西”,例如作為散列或者難題的輸入的附加部分;這將提供一種將提示結(jié)合到這些方法中的方式)。
在又一個實施例中,可以為在預(yù)定間隔過去以后其記錄已下載的時間的訪問提供“長期”提示。例如,如果下載30天時間段的記錄,并且用戶30天沒有登陸,那么用戶可能需要例如通過電話聯(lián)系鑒別服務(wù)器或者呼叫中心,以獲取進(jìn)一步的通行碼??梢詫⑺醋魇蔷o急訪問碼,它會相對較長。
在一個示例性實施例中,下載的記錄包括第一時間段例如頭30天以第一格式存儲的記錄,例如如上所述的,以及第二時間段例如后30天以第二格式存儲的記錄。在一個實施例中,第二個30天的記錄利用除上述加密外的緊急訪問碼進(jìn)行加密。通過這種方式,在獲取緊急訪問碼之后,用戶可以在第二個三十天的周期內(nèi)進(jìn)行鑒別。該緊急訪問碼可以被認(rèn)為是在第二個30天周期的時間間隔驗證散列的提示。也可以將該緊急碼用于允許訪問提示。
在一個替代實施例中,可以將相對較長的胡椒值,例如80比特,輸入到散列函數(shù)中。關(guān)于這80比特,驗證器可以最初給出胡椒的60比特,這60比特對于預(yù)定的時間段來說是相同的,例如歷月。下一個月的60比特是不知道的。下一個月的60比特可以通過例如經(jīng)過服務(wù)器鑒別或者通過能夠由呼叫中心提供的口頭電話通信獲得。
應(yīng)當(dāng)理解,所有的記錄可以一起加密,這將包括相對長緊急密鑰的用戶,例如128比特,或者單個記錄可以使用“擴展胡椒值”,其中擴展是緊急密鑰,并且對于30天周期的所有記錄來說是相同的。一旦給出緊急碼并且與所述記錄一起存儲,那么如果從來不存在任何胡椒值的擴展,胡椒搜索就與其將具有的一樣簡單。
作為進(jìn)一步的變形,在某些情況下為了鑒別,可以要求用戶使用不止一個令牌輸出。通過從兩個(或者更多)令牌輸出(典型地為連續(xù)的)中導(dǎo)出值val_i以及可選的PIN,很容易修改已經(jīng)描述的技術(shù)以適應(yīng)這種情況。作為一個例子,驗證器可以為第一個30天的時間段提供一組普通記錄(從單個令牌輸出中導(dǎo)出的),并為下一個30天提供一組修改的記錄(需要兩個令牌輸出)。通過這種方式,已斷開30多天的用戶仍然可以通過鑒別,但是僅僅在具有兩個令牌輸出的情況下才行;這將極大地增加攻擊者搜索下一個30天的正確令牌輸出所需要付出的成本,對存儲在驗證器上的未來記錄提供更強的適當(dāng)保護。實際上,利用這種強保護,有可能存儲一年或者更多未來的記錄,從而支持不確定的斷開時間段。但是,在許多情況下,管理政策可能會要求用戶偶爾通過服務(wù)器鑒別,以驗證用戶保持被授權(quán)使用斷開的機器??梢詫⑦@些鑒別過程下載的附加提示結(jié)合到未來的記錄中以加強該政策。
上述提示機制同樣可以有利地應(yīng)用在這里。修改過的記錄組也可以包含加密的提示,從而當(dāng)用戶在第二個30天的周期內(nèi)利用兩個令牌輸出進(jìn)行鑒別時,獲取允許在那30天利用單個令牌輸出實現(xiàn)隨后鑒別的提示。實現(xiàn)這一特征的一種方式是具有第二個30天的兩個記錄組一個要求也包含加密提示的兩個令牌輸出的修改記錄組;以及一個要求單個令牌輸出加提示的普通記錄組。在第二個30天的周期之前給攻擊者增加的成本仍然保留,因為攻擊者將需要猜測兩個正確的令牌輸出,或者一個正確的令牌輸出和提示(該提示可能相對較長)。但是,一旦用戶在第二個30天的周期內(nèi)利用兩個令牌輸出成功通過鑒別,將給出該時間段的提示,之后用戶可以利用單個令牌輸出進(jìn)行鑒別。
類似的結(jié)構(gòu)適用于多個時間段,從而每次用戶輸入一個新的時間段,都要求兩個令牌輸出。作為一種情況,最初可能要求用戶輸入用于第一時間段的兩個令牌輸出。來自在前時間段的提示也可以以各種方式與這一結(jié)構(gòu)結(jié)合,如果用戶足夠近的時候或者十分頻繁地利用一個令牌輸出通過鑒別,或許因此不再需要兩個令牌輸出。
結(jié)合兩個令牌輸出使用的修改記錄僅需要產(chǎn)生所述提示,不需要實現(xiàn)兩個令牌輸出的立即鑒別;這是上述原理的一個例子,其中令牌輸出的正確性可以由從所述記錄中恢復(fù)的值M的使用來確定。這里的值M將是所述提示。在從兩個令牌輸出中恢復(fù)候選提示之后,驗證器將隨后相對于普通記錄使用該提示來驗證一個或者兩個令牌輸出。該方法具有修改的記錄不必包括A_i值,而是僅包括E_i值(以及可能的鹽,如果如上所述它不是從主鹽導(dǎo)出的話)的優(yōu)點。很清楚這些修改記錄的E_i值可以簡單地作為普通記錄的其它字段存儲,而不是具有兩個單獨的記錄組。
在本發(fā)明的另一個方面,在產(chǎn)生所述記錄時只使用用戶PIN的一部分,以便增加假冒攻擊失敗的可能性并提供檢測假冒攻擊的機會。如上所述,攻擊者有可能獲取給定時間的鑒別令牌的安全信息。通過僅使用一部分用戶PIN,攻擊者不可能從所述記錄中獲取正確PIN的完整值。隨后,攻擊者可能試圖針對鑒別服務(wù)器假冒該用戶。由于攻擊者還不具有正確PIN的完整值,因此鑒別服務(wù)器可以檢測到該攻擊。將會理解到,可以修改PIN信息的存儲以平衡鑒別服務(wù)器的安全性和膝上型電腦的安全性。
例如,如果PIN具有四個數(shù)字,可以僅使用兩個數(shù)字。攻擊者有可能獲取該記錄中的兩個數(shù)字,但是,其它兩個數(shù)字仍然未知,并且攻擊者不得不猜測。在一個實施例中,攻擊者必須猜測正確的PIN以獲取視窗口令,例如該密碼本身與至少一部分PIN結(jié)合。這使得攻擊者獲取視窗口令更困難。
安全威脅在于攻擊者可能在成功搜索之后獲知PIN,然后使用該PIN去通過安全服務(wù)器的鑒別。通過在斷開機器上僅使用一部分PIN,攻擊者不能獲得整個PIN。應(yīng)當(dāng)理解用戶仍然可以每次輸入完整的PIN以產(chǎn)生相同的用戶經(jīng)歷,但是在計算使用之前可以忽略部分PIN。
雖然這里所描述的某些實施例涉及視窗口令,但是應(yīng)當(dāng)理解本發(fā)明還可以應(yīng)用于在登陸過程中要求用戶提供識別信息的其它操作系統(tǒng)。
在另一個實施例中,可以為相同的時間間隔存儲多個記錄。每個記錄可以對應(yīng)于一個正確的令牌輸出,但是僅有一個記錄具有正確的PIN。例如,對于給定的時間間隔可以存在多個記錄,例如三個,其中三個記錄中的兩個具有錯誤的PIN。攻擊者不知道正確的PIN,可能在嘗試在線假冒通過鑒別服務(wù)器時試圖從該三個記錄中猜測正確的PIN。由于攻擊者有可能猜測錯誤,因此減少了假冒攻擊成功的機會(在這里,對所有記錄使用相同的一組錯誤PIN,否則攻擊者將能夠區(qū)分出正確的PIN和錯誤的PIN,因為正確的PIN將出現(xiàn)在許多記錄中,而錯誤的PIN不會)。
應(yīng)當(dāng)理解,可以方便地對各種參數(shù)進(jìn)行修改以滿足特定應(yīng)用的需要。例如,PIN的大小,錯誤記錄的數(shù)目,輸入到散列中的PIN部分的大小等等,都可以根據(jù)需要進(jìn)行調(diào)整。PIN的這一“部分”本身可以是該PIN的任意函數(shù),而不只是子串,從而類似的PIN很可能產(chǎn)生不同的部分,從而減少用戶由于鍵入錯誤提供與正確的PIN具有相同部分的錯誤PIN的機會。同時,當(dāng)例如通過異或構(gòu)造值val_i時,如果將這個PIN的一部分與令牌輸出結(jié)合,那么PIN的該部分將不能恢復(fù)(除非攻擊者通過其它一些方式不能得到真的令牌輸出)。(同樣參見授予Weiss的美國專利5,168,520)。
此外,如果攻擊者提供正確的安全信息(令牌輸出)和錯誤記錄之一中“壞的”PIN,或者具有所述正確部分否則就是錯誤的這樣一個PIN,鑒別服務(wù)器就能夠很容易地檢測到企圖的假冒。這可以用作有人企圖假冒攻擊的無聲警報。應(yīng)當(dāng)理解,授權(quán)用戶無意中提供正確令牌輸出數(shù)據(jù)與一個錯誤記錄中的PIN,或者具有正確的部分否則便是錯誤PIN的這種可能性極其低或者可以使它極其低。
此外,如果鑒別服務(wù)器檢測到某些類型的不合常規(guī),那么服務(wù)器可以延遲并請求下一個令牌輸出。這樣做將會給攻擊者增加更多的負(fù)擔(dān),攻擊者不得不同時求出下一個令牌輸出。應(yīng)當(dāng)理解,該服務(wù)器可以根據(jù)包含日時、IP地址、主叫ID信息、最后登錄時間、在接收到下載記錄后旅途中第一次登陸等等各種因素,延遲和/或請求附加的安全信息。也就是說,服務(wù)器可能基于某些類型的不合常規(guī)使代理經(jīng)受進(jìn)一步的仔細(xì)檢查。此外,服務(wù)器可能隨機地延遲和/或請求令牌輸出,例如時間的百分之十。
實例驗證器為每個時間段i存儲一小組記錄rec_{ij}。在這里,對于一個j值,記錄rec_{ij}等于前一個描述的值rec_i,而對其它值不是。對于其它j值,錯誤的PIN與令牌輸出組合以獲得正討論的記錄的val_i。這意味著驗證器嘗試使用正確的令牌輸出和一小組PIN來接受鑒別嘗試,其中這些當(dāng)中僅有一個將是用于通過服務(wù)器鑒別的正確PIN。驗證器沒有任何方式來確定是否使用過正確的PIN,但是如果任何記錄rec_{ij}匹配就允許訪問。如果驗證器被攻擊者破壞,通過足夠的計算努力,攻擊者有可能計算出某些時間段的值val_i,但是不會知道PIN的值。因此,如果攻擊者試圖在未來的時間段嘗試通過鑒別服務(wù)器的鑒別來假冒用戶,就能夠檢測到安全性缺口,因為服務(wù)器知道,與一小組錯誤PIN之一結(jié)合使用正確令牌輸出意味著服務(wù)器被破壞。這就使得服務(wù)器能夠采取行動,這些行動可以包括警告用戶,限制對用戶帳戶的訪問,限制對與該令牌相關(guān)資源的訪問等等。
上述實施例是在非交互式令牌的范圍內(nèi)描述的。應(yīng)當(dāng)理解,本發(fā)明可以很容易地擴展到使用詢問響應(yīng)協(xié)議的令牌。對于這種令牌,每個記錄rec_i(或者rec_{ij})都包含將發(fā)送至令牌的隨機詢問,以及值A(chǔ)_i,這個值可以是對該詢問的正確應(yīng)答的函數(shù)。
本發(fā)明提供了允許用戶通過沒有連接到安全服務(wù)器的部分安全機的鑒別的系統(tǒng)。部分安全是指有可能受到攻擊者控制的機器。為了能夠驗證鑒別字符串,該部分安全機(驗證器)存儲了允許驗證某些鑒別字符串的信息,這些信息是以交互式還是非交互式方式產(chǎn)生的信息都行。如果驗證器被攻擊者破壞,例如可以是惡意軟件程序或者計算機竊賊,那么系統(tǒng)能夠限制這一損害。具體地說,存儲在驗證器上的信息不允許攻擊者成功地假冒該用戶來訪問其它機器,不管該機器是安全的還是部分安全的。在可能受到這些假冒攻擊的范圍內(nèi),它們可行的持續(xù)時間被及時限制。此外,執(zhí)行這種假冒嘗試需要大量的計算努力,有可能使得在假冒嘗試有意義的時間內(nèi)這樣做是不經(jīng)濟的。
此外,試圖提取秘密信息并進(jìn)行假冒嘗試可能導(dǎo)致已經(jīng)發(fā)生這種情況被發(fā)現(xiàn)。具體地說,作為前一個違反驗證器安全性的結(jié)果,攻擊者與之通信的服務(wù)器可能發(fā)現(xiàn)鑒別企圖已經(jīng)發(fā)生;這就使得服務(wù)器能夠限制該用戶對資源的訪問,或者提醒該用戶和其他人出現(xiàn)了這些問題。
作為一般的安全手段,在記錄中和/或在散列函數(shù)的輸入中包含用于不同目的的附加信息是有幫助的,在加密協(xié)議工程中這是一種標(biāo)準(zhǔn)實施方式。例如,可以包含用戶名、令牌序列號、驗證器的標(biāo)識符和/或提供這一批信息的鑒別服務(wù)器的標(biāo)識符。這在以下描述的幾個實施例中是都是有益的。
在給定的驗證器中使用用于不同用戶的多批記錄,和/或用于同一用戶的多批不同令牌。還有,如果用戶在不同鑒別服務(wù)器處使用同一個令牌,那么每個鑒別服務(wù)器都可以為該令牌提供其自己的一批記錄,或者不同的鑒別服務(wù)器可以共享同一批記錄。
如同以上討論的,驗證器典型地是與鑒別服務(wù)器斷開了某一段時間的膝上型電腦。但是,在更一般的設(shè)置中,驗證器可以是任何想要鑒別用戶而不必連接到鑒別服務(wù)器的計算機。應(yīng)當(dāng)將術(shù)語“斷開”理解為表示(a)驗證器不必連接到鑒別服務(wù)器來執(zhí)行鑒別;以及(b)驗證器不必具有存儲在用戶鑒別令牌中的任何秘密的一個副本。第一個方面使得鑒別系統(tǒng)具有高可用性和可伸縮性;第二個方面限制了攻擊對驗證器的影響。
可以想象其中存在多個驗證器的系統(tǒng),每個驗證器都能夠鑒別一個或者多個用戶。每個驗證器都周期性地為一個或者多個用戶和/或令牌獲取一批記錄。從而使驗證器能夠在有限的時間段內(nèi)對用戶鑒別。如果驗證器不同于用戶的計算機,那么用戶的鑒別字符串將被提供給該驗證器;作為一個典型的例子,用戶可以將該鑒別字符串提供給用戶的計算機,該計算機隨后將該字符串轉(zhuǎn)發(fā)至驗證器,有可能是通過網(wǎng)絡(luò)。從這個意義上講,用戶計算機和驗證器不與該網(wǎng)絡(luò)斷開,但是它們在鑒別意義上來說是斷開的,因為它們在鑒別操作期間不需要連接到鑒別服務(wù)器。
下面為了清楚起見,“驗證器”是根據(jù)這里所描述的方法為了某個目的而鑒別用戶的裝置,而“用戶計算機”是用戶通過它與系統(tǒng)中的其它計算機,包括驗證器,交互的裝置。如上所述,“鑒別服務(wù)器”是與用戶鑒別令牌共享秘密的服務(wù)器。
在其它實施例中,斷開的鑒別系統(tǒng)使用“預(yù)訂”模型,其中驗證器直接從鑒別服務(wù)器周期性地下載或者接收多批記錄。例如,可以每天提供多批記錄給驗證器。
在B.M.Jakobsson和小B.S.Kaliski于2003年7月31日提交的第10/631,989號美國專利申請“Method and Apparatus for Graph-BasedPartition of Cryptographic Functionality”中描述了一種典型的預(yù)訂模型,在這里將其引入作為參考,其中它允許驗證器在有限的時間段內(nèi)鑒別用戶。在Jakobsson-Kaliski的專利申請中,驗證器提供中間種子,從這個中間種子可以導(dǎo)出和驗證其它種子和/或鑒別值,例如令牌輸出。但是在這里,給驗證器提供令牌輸出的散列值(或者從中可以產(chǎn)生它們的信息),并通過這些散列值鑒別用戶。在Jakobsson-Kaliski的專利申請中具有中間種子的驗證器可以產(chǎn)生散列值的子集供本地使用,和/或?qū)⑺鼈兲峁┙o其它驗證器。
在另一個實施例中,系統(tǒng)包括“會話”模型,其中驗證器僅在用戶用鑒別服務(wù)器成功鑒別之后獲取給定用戶的一批記錄。由該批覆蓋的時間段典型地將對應(yīng)于單個用戶會話的長度,例如幾分鐘到幾小時,取決于安全政策。驗證器在會話期間通過該批記錄可以重新鑒別用戶,而不需另外連接到鑒別服務(wù)器。
可以在用戶成功鑒別之后直接由鑒別服務(wù)器將這一批記錄提供給一個或者多個驗證器,與預(yù)訂模型類似。
該批記錄也可以通過用戶計算機間接提供給一個或者多個驗證器。在用戶成功地通過鑒別服務(wù)器的鑒別之后,該批記錄將提供給用戶計算機。該用戶計算機將立即或者隨后將該批記錄轉(zhuǎn)發(fā)至驗證器。
多批記錄可以包含在例如由鑒別服務(wù)器發(fā)布的SAML聲明(assertion)中(參見“Security Assertion Markup Language(SAML)vl.l”,Organization for the Advancement of Structured InformationStandards(OASIS),2003年8月)。所述記錄給驗證器提供從用戶獲取“擁有證據(jù)”的一種手段,即確認(rèn)用戶繼續(xù)擁有與聲明連接的鑒別憑證(在這種情況下為令牌)。
驗證器還可以以“委托(delegation)”的形式相互分配所述批。作為一個例子,應(yīng)用服務(wù)器可以分配一批記錄給另一個應(yīng)用服務(wù)器,從而使后者也能夠鑒別用戶,既可以為了提高可用性,又可以為了其本地目的。作為另一個例子,用戶的桌上型電腦可以分配一批記錄給用戶的膝上型電腦。批的轉(zhuǎn)發(fā)可以進(jìn)一步持續(xù)到一串驗證器。
多個批的分配采用某種手段來鑒別這個批是正確的,也就是說,它對應(yīng)于令牌的實際鑒別字符串。否則,攻擊者有可能通過構(gòu)造聲稱其與用戶相關(guān)的新的一組記錄來假冒用戶,但是攻擊者知道這組記錄的鑒別字符串,并換成提供這批記錄到驗證器。因此,應(yīng)當(dāng)包含數(shù)據(jù)鑒別例如消息鑒別碼(MAC)或者數(shù)字簽名,其中MAC或者數(shù)字簽名密鑰與鑒別服務(wù)器或者可以信任的另一官方機制相關(guān)。驗證器在接收或者使用一批記錄之前將檢查MAC或者數(shù)字簽名的正確性。也可以使用從鑒別服務(wù)器到驗證器的安全服務(wù)器鑒別通道。
每個記錄都可以具有自己的MAC或者數(shù)字簽名作為證據(jù),雖然這樣做會給計算、存儲和傳輸方面增加開銷。完整的一批記錄也可以具有單個MAC或者簽名,但是這可能需要在驗證器之間傳輸整個批,并且不提供委托中同樣多的粒度。(例如,驗證器可能希望僅委托幾小時價值的記錄給其它驗證器,但是批本身可以跨越一整天。這種更詳細(xì)方式的一個優(yōu)點在于限制了記錄的暴露,從而減少了攻擊者從中獲得記錄以開始搜索令牌輸出的機會)。
作為在簽署單獨的記錄與簽署完整批之間的折中,可以有利地應(yīng)用各種散列型構(gòu)造。例如,每個記錄都可以被看作散列樹的一片樹葉。通過標(biāo)準(zhǔn)技術(shù)將樹葉集合成散列樹,以及將簽名或者M(jìn)AC應(yīng)用至樹根。通過這種方式,可以在驗證器之間交換樹葉的任何子集(即記錄),以及從子集到根的路徑以及單個MAC或者簽名。葉的內(nèi)容,每層的孩子的數(shù)量,以及樹的層數(shù)都可以改變,就象在標(biāo)準(zhǔn)技術(shù)里能夠理解的一樣。作為一個例子,可以將一個小時價值的記錄采集到一片樹葉中去,并且24個散列樹葉一起構(gòu)成簽署的一個日根(a daily root)。這將在小時的基礎(chǔ)上給出粒度,這樣做對許多應(yīng)用來說都是足夠的。
還應(yīng)當(dāng)注意涉及單獨驗證器的方法與B.Kaliski和M.Nystrom的“Password Protection Module”(2004年7月28日提交的臨時專利申請,具有美國臨時專利申請?zhí)?0/591,672),以及B.Kaliski和M.Nystrom的,標(biāo)題也是“Password Protection Module”(2004年7月2日提交的臨時專利申請,具有美國臨時專利申請?zhí)?0/584,997)中的密碼散列方法兼容,在這里將它們引入作為參考。利用應(yīng)用標(biāo)識符對口令(或者更普遍地,鑒別字符串)進(jìn)行散列處理以產(chǎn)生得到保護的口令,然后將其提供給應(yīng)用(應(yīng)用標(biāo)識符是專用于應(yīng)用組中一個給定應(yīng)用的字符串,例如網(wǎng)址、URL或者應(yīng)用的域名)。
散列處理步驟能夠防止遭到破壞的應(yīng)用直接接收所述口令,然后它能夠?qū)⒖诹钷D(zhuǎn)發(fā)至合法應(yīng)用。當(dāng)如上建議涉及多個驗證器時,最好提供得到保護的口令(即得到保護的鑒別字符串)給驗證器。這樣做同樣能夠防止遭到破壞的驗證器濫用獲得的信息在其它驗證器處假冒該用戶。因此提供的記錄對于驗證器都不相同,因為它們將基于受到保護的鑒別字符串,而后者取決于應(yīng)用標(biāo)識符以及令牌輸出。
可以方便地將Kaliski-Nystrom中建議的確認(rèn)碼作為通過記錄保護的敏感數(shù)據(jù)的一部分。由于不知道鑒別字符串,這將防止獲得記錄的攻擊者針對驗證器進(jìn)行假冒。
這里描述的斷開鑒別方法在其支持的鑒別結(jié)構(gòu)方面特別靈活。雖然斷開機器本身的鑒別使用了令牌輸出,但是在已經(jīng)成功地完成鑒別之后,可以恢復(fù)在其它應(yīng)用處進(jìn)行鑒別可能使用的密鑰或者其它敏感數(shù)據(jù)。例如,可以恢復(fù)私有簽名密鑰,其可以用在標(biāo)準(zhǔn)的基于公開密鑰的鑒別協(xié)議,例如SSL/TLS(參見T.Dierks和C.Allen的“The TLSProtocol Version 1.0”,IETF RFC 2246,1999年1月),或者作為SAML聲明的“擁有證據(jù)”。這樣,用戶可以利用標(biāo)準(zhǔn)的公開密鑰技術(shù)在應(yīng)用處鑒別,同時僅擁有一次性通行碼鑒別令牌,與其它方法相比,減少了危害斷開機器上私有簽名密鑰的風(fēng)險。(作為對比,在其它方法中,用戶可以通過鑒別令牌在可信服務(wù)器處鑒別,然后下載簽名私有密鑰,接下來在用戶計算機上存儲、解密。在這里該方法是有利的,因為該私有密鑰利用從令牌輸出導(dǎo)出的值進(jìn)行了加密,因而獲得對用戶計算機上數(shù)據(jù)訪問的攻擊者不能容易地恢復(fù)該私有密鑰)。
在使用私有密鑰在其它應(yīng)用處進(jìn)行鑒別的情況下,可以每個記錄有單獨一個私有密鑰,每批記錄有單獨一個私有密鑰,或者在這兩者之間。由于對應(yīng)的公開密鑰需要對所述應(yīng)用可用,利用每批一個私有密鑰(因此每批單獨一個公開密鑰)的方法在對許多簽名方案的密鑰管理方面是有利的。但是,某些簽名方案具有每個記錄單獨一個私有密鑰,而每批仍舊只有一個公開密鑰的屬性。
作為一個例子,例如象編輯為M.Wiener,M.Bellare和S.Miner的“A Forward-Secure Digital Signature Scheme”,Advances inCryptology-Crypto’99 Proceedings,Lecture Notes in Computer Science(計算機科學(xué)演講筆記)第1666卷,Springer,1999中的轉(zhuǎn)發(fā)安全簽名方案,具有一個公開密鑰和一連串私有密鑰,其中后面的私有密鑰可以從早期的密鑰計算出來,但是反過來不行(驗證器可以確定在連續(xù)的可能的私有密鑰中使用的私有密鑰的位置)。這是有利的,因為能夠防止給定晚些時候被損害的一個私有密鑰的情況下,攻擊者偽造表現(xiàn)為較早的簽名。為此,可以為整個批預(yù)先計算各個私有密鑰,然后利用連續(xù)的記錄進(jìn)行保護。與通常的轉(zhuǎn)發(fā)安全序列相比,這里最好是顛倒私有密鑰的順序,從而損壞給定時間間隔的私有密鑰的攻擊者僅僅能夠計算較早時間間隔的私有密鑰。假定后面時間間隔的敏感數(shù)據(jù)比較早的時間間隔具有更強的保護,如上所述,這種方法為私有密鑰提供了較好的兩級防護。
在這里也可以采用Merkle或者散列樹簽名方案(參見斯坦福大學(xué)電子工程系1979年R.Merkle的博士論文“Secrecy,Authentication,and Public Key Systems”;還有編輯是M.Joye,Topics inCryptology-CT-RSA 2003 Proceedings,Lecture Notes in ComputerScience(計算機科學(xué)演講筆記)第2612卷中,M.Jakobsson,F(xiàn).T.Leighton,S.Micali和M.Szydlo的“Fractal Merkle Tree Representationand Traversal”,Springer,2003),既然它也具有單個公開密鑰(樹根),而對于不同的簽名操作具有不同的私有密鑰(樹葉集合),例如對每個記錄。這種方案向前和向后都是安全的;單個私有密鑰的損害不會導(dǎo)致能夠計算出任何一個方向上任何其它私有密鑰。
可以支持許多其它鑒別協(xié)議。例如,為了在應(yīng)用處鑒別,可以恢復(fù)共享對稱密鑰。共享密鑰例如可以是Kerberos鑒別系統(tǒng)中的密鑰。作為另一個例子,可以恢復(fù)會話狀態(tài),從中可以恢復(fù)SSL/TLS會話?;謴?fù)出來的敏感數(shù)據(jù)也可以是“虛擬”或者“軟”鑒別令牌的種子,然后可以使用其輸出在其它應(yīng)用處進(jìn)行鑒別。作為另一個例子,可以恢復(fù)不同令牌的令牌輸出。此外,敏感數(shù)據(jù)可以包括散列函數(shù)的輸入,其中所述散列函數(shù)的輸出可以用于其它應(yīng)用,并提供輸入作為在該應(yīng)用處進(jìn)行鑒別的證據(jù)。
作為另一個例子,B_i值本身可以用作同時共享記錄的另一個驗證器的“鑒別證據(jù)”,例如視窗域控制器。用戶計算機將提供從給定的令牌輸出獲得的B_i值給所述另一個驗證器,該另一個驗證器將確定B_i值是否能夠?qū)⑵銭_i值的副本正確地解密。
用于鑒別協(xié)議的敏感數(shù)據(jù)的又一個例子將是SAML聲明或者其它已簽署值,可以將它呈現(xiàn)給其它應(yīng)用作為用戶鑒別的證據(jù)。可以由鑒別服務(wù)器提供一個或者多個SAML聲明,并對不同的時間間隔對它們加密。在驗證器處成功的鑒別將恢復(fù)這些聲明,這些聲明將被提供給其它應(yīng)用。這樣做為驗證器提供了“自發(fā)布”性能,其中在驗證器處很容易獲得一系列預(yù)計算聲明,而不用與鑒別服務(wù)器交互。因此該聲明有可能具有較短的生命期,因此比普通由鑒別服務(wù)器發(fā)布的聲明要“新”,同時保持相對較長的會話。(例如,日??梢酝ㄟ^驗證器從鑒別服務(wù)器下載一組記錄,保護僅具有一小時生命期的會話。用戶每天僅僅需要與鑒別服務(wù)器交互一天,并且一小時將需要在驗證器處鑒別一次以獲取新的聲明)。
按照小B.S.Kaliski的第6,085,320和6,189,098號美國專利“Client/Server Protocol for Proving Authenticity”,不必對整個SAML聲明加密。相反,僅僅加密驗證該聲明必需的信息就足夠了,例如該聲明的簽名,或者散列函數(shù)的輸入,其中散列函數(shù)的輸出是該聲明的一部分。
根據(jù)上述實施例,本領(lǐng)域技術(shù)人員將會理解本發(fā)明進(jìn)一步的特征和優(yōu)點。因此,本發(fā)明并不局限于已經(jīng)特別表示和描述的部分,而是由所附的權(quán)利要求書表示。在這里明確地將這里引用的所有公開物和參考物整體引入作為參考。
權(quán)利要求
1.一種方法,用于在驗證器處鑒別擁有鑒別令牌的用戶,該鑒別令牌能夠提供一個或者多個一次性的通行碼,該方法包括獲取驗證記錄;獲取提交以鑒別該用戶的通行碼;以及確定所提交的通行碼是否與所述驗證記錄一致,其中所述驗證記錄是參考通行碼的函數(shù)。
2.如權(quán)利要求1所述的方法,其中所述驗證器為個人計算機。
3.如權(quán)利要求1所述的方法,其中所述驗證器為應(yīng)用服務(wù)器。
4.如權(quán)利要求1所述的方法,其中所述一次性通行碼是作為令牌秘密的函數(shù)產(chǎn)生的。
5.如權(quán)利要求4所述的方法,其中所述驗證器與所述令牌秘密隔離。
6.如權(quán)利要求4所述的方法,其中所述令牌秘密是響應(yīng)事件而更新的。
7.如權(quán)利要求1所述的方法,其中所述一次性通行碼是作為時間變量的函數(shù)產(chǎn)生的。
8.如權(quán)利要求1所述的方法,其中所述一次性通行碼是作為事件變量的函數(shù)產(chǎn)生的。
9.如權(quán)利要求1所述的方法,其中所述通行碼是作為詢問值的函數(shù)產(chǎn)生的。
10.如權(quán)利要求1所述的方法,其中所述一次性通行碼是作為PIN的函數(shù)產(chǎn)生的。
11.如權(quán)利要求1所述的方法,其中用于產(chǎn)生所述一次性通行碼的函數(shù)包括從所述令牌秘密產(chǎn)生令牌碼,并將該令牌碼與所述PIN結(jié)合。
12.如權(quán)利要求1所述的方法,其中所述一次性通行碼是作為存儲在鑒別服務(wù)器上的令牌秘密的函數(shù)產(chǎn)生的。
13.如權(quán)利要求1所述的方法,其中所述鑒別服務(wù)器產(chǎn)生所述參考通行碼的至少一部分。
14.如權(quán)利要求12所述的方法,其中所述令牌秘密存儲在所述鑒別令牌中。
15.如權(quán)利要求1所述的方法,其中所述鑒別令牌產(chǎn)生所提交的通行碼的至少一部分。
16.如權(quán)利要求1所述的方法,其中一個或者多個令牌碼存儲在所述鑒別令牌中,并且所述提交的通行碼是作為所述令牌碼之一的函數(shù)而獲得的。
17.如權(quán)利要求1所述的方法,其中所述驗證記錄是從鑒別服務(wù)器獲取的。
18.如權(quán)利要求17所述的方法,其中所述鑒別服務(wù)器產(chǎn)生所述驗證記錄。
19.如權(quán)利要求17所述的方法,其中所述驗證記錄是從中介物獲得的,其中所述中介物從所述鑒別服務(wù)器獲取所述驗證記錄。
20.如權(quán)利要求19所述的方法,其中所述中介物是個人計算機。
21.如權(quán)利要求19所述的方法,其中所述中介物是應(yīng)用服務(wù)器。
22.如權(quán)利要求1所述的方法,其中所述驗證記錄是作為包含多個驗證記錄的數(shù)據(jù)結(jié)構(gòu)的一部分而獲得的。
23.如權(quán)利要求1所述的方法,其中所述驗證記錄是作為被鑒別數(shù)據(jù)結(jié)構(gòu)的一部分而獲得的。
24.如權(quán)利要求23所述的方法,其中所述被鑒別數(shù)據(jù)結(jié)構(gòu)是SAML聲明。
25.如權(quán)利要求1所述的方法,其中所述驗證記錄存儲在所述驗證器中。
26.如權(quán)利要求1所述的方法,其中所述提交的通行碼的至少一部分是通過用戶交互獲得的。
27.如權(quán)利要求1所述的方法,其中所述提交的通行碼的至少一部分是通過有線和/或無線通信鏈路獲得的。
28.如權(quán)利要求1所述的方法,其中所述提交的通行碼的一致性是相對于多個驗證記錄確定的。
29.如權(quán)利要求1所述的方法,其中用于產(chǎn)生所述驗證記錄的所述函數(shù)包括密碼散列函數(shù)。
30.如權(quán)利要求29所述的方法,其中所述密碼散列函數(shù)被多次迭代。
31.如權(quán)利要求29所述的方法,其中用于產(chǎn)生所述驗證記錄的函數(shù)包括密碼時間鎖難題(a cryptographic time-lock puzzle)。
32.如權(quán)利要求29所述的方法,其中所述驗證記錄包括參考散列通行碼,其中所述參考散列通行碼是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
33.如權(quán)利要求32所述的方法,還包括對所述提交的通行碼應(yīng)用所述單向函數(shù)以獲得散列通行碼;將所述散列通行碼與所述參考散列通行碼進(jìn)行比較;以及至少部分地基于所述比較是否成功來確定一致性。
34.如權(quán)利要求1所述的方法,其中所述驗證記錄包括加密的數(shù)據(jù)元素,其中所述加密的數(shù)據(jù)元素是利用密鑰對數(shù)據(jù)元素進(jìn)行加密的結(jié)果,其中所述密鑰是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
35.如權(quán)利要求34所述的方法,還包括對提交的通行碼應(yīng)用所述單向函數(shù)以獲取密鑰;利用該密鑰對所述加密的數(shù)據(jù)元素進(jìn)行解密以恢復(fù)該數(shù)據(jù)元素;以及至少部分地基于該解密操作是否成功來確定一致性。
36.如權(quán)利要求34所述的方法,還包括對提交的令牌碼應(yīng)用所述單向函數(shù)以獲取密鑰;利用該密鑰對加密的數(shù)據(jù)元素進(jìn)行解密以恢復(fù)該數(shù)據(jù)元素;使用該數(shù)據(jù)元素;以及至少部分地基于該數(shù)據(jù)元素的使用是否成功來確定一致性。
37.如權(quán)利要求34所述的方法,其中所述數(shù)據(jù)元素包括視窗口令。
38.如權(quán)利要求34所述的方法,其中所述數(shù)據(jù)元素包括用于另一個鑒別操作的胡椒值的至少一部分。
39.如權(quán)利要求34所述的方法,其中所述數(shù)據(jù)元素包括用于另一個鑒別操作的提示值。
40.如權(quán)利要求34所述的方法,其中所述數(shù)據(jù)元素包括第二密鑰。
41.如權(quán)利要求40所述的方法,還包括獲取第二加密數(shù)據(jù)元素,其中所述第二加密數(shù)據(jù)元素是利用所述第二密鑰對第二數(shù)據(jù)元素進(jìn)行加密的結(jié)果。
42.如權(quán)利要求41所述的方法,其中所述第二數(shù)據(jù)元素包括視窗口令。
43.如權(quán)利要求41所述的方法,其中所述第二數(shù)據(jù)元素包括提示值。
44.如權(quán)利要求41所述的方法,其中所述數(shù)據(jù)元素包括敏感數(shù)據(jù)。
45.如權(quán)利要求1所述的方法,其中用于產(chǎn)生所述驗證記錄的函數(shù)的輸入也包括PIN值的函數(shù)。
46.如權(quán)利要求45所述的方法,其中所述PIN值的函數(shù)包含比整個PIN值少的信息,從而有不止一個PIN值與所述驗證記錄一致。
47.如權(quán)利要求46所述的方法,其中從錯誤的PIN產(chǎn)生的驗證記錄也存儲在所述驗證器中。
48.如權(quán)利要求1所述的方法,其中用于產(chǎn)生所述驗證記錄的函數(shù)的輸入也包括鹽值。
49.如權(quán)利要求48所述的方法,其中所述驗證記錄包括所述鹽值。
50.如權(quán)利要求48所述的方法,其中所述鹽值的一部分或者全部包含在另一個驗證記錄中。
51.如權(quán)利要求50所述的方法,還包括測試與一個或者多個其它驗證記錄中鹽值的一致性。
52.如權(quán)利要求1所述的方法,其中用于產(chǎn)生所述驗證記錄的函數(shù)的輸入也包括胡椒值。
53.如權(quán)利要求52所述的方法,還包括對一個或者多個可能的胡椒值測試一致性。
54.如權(quán)利要求1所述的方法,其中用于產(chǎn)生所述驗證記錄的函數(shù)的輸入也包括提示值。
55.如權(quán)利要求55所述的方法,其中所述提示值是從一個或者多個其它鑒別操作恢復(fù)的。
56.如權(quán)利要求1所述的方法,在(a)之前還包括,對所述驗證記錄進(jìn)行加密以產(chǎn)生加密的驗證記錄,其中(a)還包括獲取解密密鑰;以及對加密的驗證記錄進(jìn)行解密以恢復(fù)該驗證記錄。
57.如權(quán)利要求56所述的方法,其中所述解密密鑰是從緊急訪問碼導(dǎo)出的。
58.如權(quán)利要求56所述的方法,其中所述解密密鑰是從另一個驗證操作中恢復(fù)的密鑰導(dǎo)出的。
59.如權(quán)利要求1所述的方法,其中用于產(chǎn)生所述驗證記錄的函數(shù)的輸入還包括第二參考通行碼的至少一部分。
60.如權(quán)利要求59所述的方法,其中(c)還包括測試所述驗證記錄與所述參考通行碼和第二參考通行碼的至少一部分的一致性。
61.如權(quán)利要求1所述的方法,其中所述鑒別令牌是在計算機上實現(xiàn)的軟件令牌。
62.如權(quán)利要求1所述的方法,還包括隨著時間的流逝而增加在攻擊中確定所述驗證記錄與通行碼的一致性所需的工作量。
63.一種服務(wù)器,包括處理器,用于處理作為參考通行碼函數(shù)的多個驗證記錄;以及接口,用于從所述服務(wù)器下載所述多個記錄到代理,以使所述代理能夠確定提交的通行碼是否與所述驗證記錄中給定的一個一致,所述驗證記錄用于鑒別擁有能夠提供通行碼的鑒別令牌的用戶。
64.如權(quán)利要求63所述的服務(wù)器,其中所述參考通行碼是作為所述令牌秘密的函數(shù)產(chǎn)生的。
65.如權(quán)利要求63所述的服務(wù)器,其中所述參考通行碼是作為時間變量、事件變量以及詢問值中一個或者多個的函數(shù)產(chǎn)生的。
66.如權(quán)利要求63所述的服務(wù)器,其中所述多個驗證記錄是從中介物獲得的。
67.如權(quán)利要求63所述的服務(wù)器,其中所述驗證記錄包括參考散列通行碼,其中所述參考散列通行碼是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
68.如權(quán)利要求67所述的服務(wù)器,其中對提交的通行碼應(yīng)用所述單向函數(shù)以獲得散列通行碼,該散列通行碼用于與所述參考散列通行碼進(jìn)行比較,以至少部分地基于該比較是否成功來確定一致性。
69.如權(quán)利要求63所述的服務(wù)器,其中所述驗證記錄包括加密的數(shù)據(jù)元素,其中所述加密的數(shù)據(jù)元素是利用密鑰對數(shù)據(jù)元素進(jìn)行加密的結(jié)果,其中所述密鑰是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
70.一種計算機,包括存儲器,用于存儲作為參考通行碼的函數(shù)產(chǎn)生的多個驗證記錄;以及處理器,連接至該存儲器,以確定提交到該計算機的通行碼是否與所述多個鑒別記錄中給定的一個一致,以鑒別鑒別擁有能夠提供通行碼的鑒別令牌的用戶。
71.如權(quán)利要求70所述的計算機,其中所述參考通行碼是作為所述令牌秘密的函數(shù)產(chǎn)生的。
72.如權(quán)利要求70所述的計算機,其中所述參考通行碼是作為時間變量、事件變量以及詢問值中一個或者多個的函數(shù)產(chǎn)生的。
73.如權(quán)利要求70所述的計算機,其中所述多個驗證記錄是從鑒別服務(wù)器獲得的。
74.如權(quán)利要求70所述的計算機,其中所述驗證記錄包括參考散列通行碼,其中所述參考散列通行碼是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
75.如權(quán)利要求74所述的計算機,其中對提交的通行碼應(yīng)用所述單向函數(shù)以獲得散列通行碼,該散列通行碼用于與所述參考散列通行碼比較,以至少部分地基于該比較是否成功來確定一致性。
76.如權(quán)利要求75所述的計算機,其中所述驗證記錄包括加密的數(shù)據(jù)元素,其中所述加密的數(shù)據(jù)元素是利用密鑰對數(shù)據(jù)元素進(jìn)行加密的結(jié)果,其中所述密鑰是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
77.一種產(chǎn)品,包括存儲介質(zhì),其中存儲了指令,由機器執(zhí)行時導(dǎo)致以下過程通過以下過程在驗證器中鑒別擁有能夠提供一個或者多個一次性通行碼的鑒別令牌的用戶獲取驗證記錄;獲取提交以鑒別該用戶的通行碼;以及確定提交的通行碼是否與所述驗證記錄一致,其中所述驗證記錄是參考通行碼的函數(shù)。
78.如權(quán)利要求77所述的產(chǎn)品,其中所述參考通行碼是作為所述令牌秘密的函數(shù)產(chǎn)生的。
79.如權(quán)利要求78所述的產(chǎn)品,其中所述參考通行碼是作為時間變量、事件變量以及詢問值中一個或者多個的函數(shù)產(chǎn)生的。
80.如權(quán)利要求77所述的產(chǎn)品,其中所述驗證記錄包括參考散列通行碼,其中所述參考散列通行碼是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
81.如權(quán)利要求80所述的產(chǎn)品,其中對提交的通行碼應(yīng)用所述單向函數(shù)以獲得散列通行碼,該散列通行碼用于與所述參考散列通行碼比較,以至少部分地基于該比較是否成功來確定一致性。
82.如權(quán)利要求77所述的產(chǎn)品,其中所述驗證記錄包括加密的數(shù)據(jù)元素,其中所述加密的數(shù)據(jù)元素是利用密鑰對數(shù)據(jù)元素進(jìn)行加密的結(jié)果,并且其中所述密鑰是對所述參考通行碼應(yīng)用單向函數(shù)的結(jié)果。
全文摘要
在用于斷開鑒別的系統(tǒng)中,將對應(yīng)于預(yù)定時間段內(nèi)給定的鑒別令牌輸出的驗證記錄、事件序列和/或詢問組下載至驗證器。這些記錄包括對給定鑒別令牌輸出的加密或者散列信息。在一個使用時間間隔的實施例中,對于每個時間間隔,令牌輸出數(shù)據(jù)、鹽值以及胡椒值都被散列處理,并與該時間間隔的驗證記錄進(jìn)行比較。在比較成功之后,用戶可以訪問該計算機。也可以提供PIN值作為該散列函數(shù)的輸入??梢詫⒃撋⒘泻瘮?shù)輸出的一部分用作對加密的(視窗)口令或者其它敏感信息解密的密鑰。
文檔編號G06F21/00GK1879072SQ200480033059
公開日2006年12月13日 申請日期2004年9月10日 優(yōu)先權(quán)日2003年9月12日
發(fā)明者安德魯·納諾普洛斯, 卡爾·阿克曼, 皮爾斯·鮑內(nèi)斯, 威廉·杜安, 馬庫斯·雅各布松, 布特·卡利斯基, 德米特里·帕爾, 沙恩·D·賴斯 申請人:Rsa安全公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
冷水江市| 宝鸡市| 方城县| 维西| 汾西县| 静海县| 赤壁市| 大邑县| 黄平县| 临潭县| 星座| 洮南市| 巴彦淖尔市| 遂宁市| 广安市| 壤塘县| 德昌县| 增城市| 通山县| 金山区| 新野县| 宁晋县| 鹿泉市| 和田县| 三台县| 屏南县| 屯留县| 榆林市| 民县| 东乌| 南宁市| 丹东市| 八宿县| 资溪县| 酉阳| 平果县| 库伦旗| 广安市| 贡嘎县| 古交市| 延安市|