亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

認(rèn)證系統(tǒng)的制作方法

文檔序號:7737068閱讀:294來源:國知局
專利名稱:認(rèn)證系統(tǒng)的制作方法
認(rèn)證系統(tǒng)本發(fā)明涉及遠(yuǎn)程服務(wù)的認(rèn)證系統(tǒng)。目前,在互聯(lián)網(wǎng)或計算機(jī)以及通訊網(wǎng)絡(luò)中的許多遠(yuǎn)程服務(wù)通常都使用認(rèn)證它們用戶的裝置。最普遍的是,這種認(rèn)證由用戶以問候形式輸入標(biāo)識符和密碼來實現(xiàn)的。但是,這種簡單且用戶普遍接受的解決方式被認(rèn)為只能提供較低的安全性。例如,用戶選擇的密碼很容易被猜測出,并且專用的軟件程序能夠在幾分鐘內(nèi)找到大量用戶的密碼。因此,提出了旨在適用于嚴(yán)重問題(例如訪問銀行操作)的服務(wù)的安全認(rèn)證的多種解決方法。大部分這類解決方法根據(jù)使用特殊安全的器件,最普遍的是智能卡或者芯片卡, 其能夠作為存儲加密的密鑰且能進(jìn)行一定加密計算的電子保險箱。這類解決方法的缺點是用戶必須攜帶附加物體。此外,還必須提供接口器件,以便允許智能卡與這類需要魯棒性認(rèn)證的服務(wù)進(jìn)行通訊。因此,通過使用用戶已擁有的物體(例如用戶的手機(jī)、便攜式電腦或者PDA或者甚至是其個人電腦)來提供相當(dāng)于智能卡所具有的安全層級將是非常有利的。為了解決上述一個或多個缺點,用于認(rèn)證用戶的系統(tǒng),包括具有認(rèn)證實體(1)的認(rèn)證裝置(3),所述認(rèn)證裝置包括用于存儲至少一個狀態(tài)變量的裝置(11),以及可由用戶請求下激勵驅(qū)動的一次性訪問代碼的發(fā)生器(2),所述訪問代碼包括至少一個不可預(yù)測部分并且傳輸至用于核實的認(rèn)證實體,所述核實使用認(rèn)證實體來認(rèn)證用戶,其特征在于,所述狀態(tài)變量以隨機(jī)方法由所述認(rèn)證裝置主動地在各個新訪問代碼產(chǎn)生前執(zhí)行系統(tǒng)更新,一旦所述狀態(tài)變量已經(jīng)更新,所述發(fā)生器適用于通過所述至少一個狀態(tài)變量來計算所述訪問代碼,并且所述認(rèn)證實體通過使用所述認(rèn)證實體預(yù)先獲知的信息和由已傳輸訪問代碼表示的不可預(yù)測部分,在所述訪問代碼的至少部分核實中,來修改至少一個內(nèi)部變量的數(shù)值。這就有可能有效地處理與這類裝置去同步的問題,例如當(dāng)用戶沒有傳輸由具計數(shù)器器件所產(chǎn)生的一個或多個代碼或者器件采用電源或者時鐘設(shè)置不能保證隨著時間而變化的情況,諸如采用手機(jī)的情況。這種情況所產(chǎn)生的附加優(yōu)點是不需要外部重新同步機(jī)制的介入,例如用戶必須連接遠(yuǎn)程服務(wù)商以執(zhí)行重新同步的情況下,這些機(jī)制是昂貴的或者從安全性的觀點而言不是非常一致的情況,也就是說,從認(rèn)證系統(tǒng)有效性的觀點而言,例如在核實認(rèn)證的服務(wù)器授權(quán)計數(shù)器或時鐘大量可能性的數(shù)值,使得用戶可能不合理的使用將計數(shù)器或時鐘保持在這一范圍內(nèi)。此外,這種方法還有可能有利于處理在本領(lǐng)域所熟知的安全性問題,由認(rèn)證裝置中的器件所引起的安全性問題,這些認(rèn)證裝置是不依賴硬件安全元件的軟件程序,認(rèn)證裝置可以進(jìn)行復(fù)制和分析并且對系統(tǒng)的安全性進(jìn)行折衷;相似的,當(dāng)認(rèn)證裝置是要求用戶輸入短密鑰的軟件程序時、所述密鑰本領(lǐng)域技術(shù)人員較容易實現(xiàn)且不論認(rèn)證裝置是否存儲該密鑰都不需要與核實認(rèn)證服務(wù)器進(jìn)行通訊的情況下,這就有利于處理下述問題。具體的特征或?qū)嵤├秊? 各個狀態(tài)變量由單向函數(shù)h進(jìn)行更新,所述單向函數(shù)h具有作為輸入?yún)?shù)的至少一個專用于所述認(rèn)證裝置的密鑰。 至少一個可用的第一和一個第二認(rèn)證層級,例如訪問代碼根據(jù)第一或第二層級來計算,第二層級包括由用戶作為函數(shù)1 輸入?yún)?shù)所輸入的密鑰代碼; 認(rèn)證裝置包括由函數(shù)h更新的多個狀態(tài)變量,所述h包括一簇具有作為輸入?yún)?shù)的所述狀態(tài)變量的子函數(shù),使得由一個&子函數(shù)之一所更新的狀態(tài)變量不再被后者作為輸入?yún)?shù)使用; 其包括第一、第二和第三認(rèn)證層級,更新的狀態(tài)變量的數(shù)值隨著所應(yīng)用的認(rèn)證層級的函數(shù)而變化,因此 在第一認(rèn)證層級中更新一個狀態(tài)變量,其他兩個狀態(tài)變量作為&子函數(shù)的輸入?yún)?shù); 在第二認(rèn)證層級中更新兩個狀態(tài)變量,第三個狀態(tài)變量作為h子函數(shù)的輸入?yún)?shù);以及, 在第三認(rèn)證層級中更新三個狀態(tài)變量并且不使用任何狀態(tài)變量作為輸入變量。 其還包括認(rèn)證客戶端以及使用該客戶端的第三認(rèn)證層級,所述認(rèn)證客戶端包括密鑰并適用于根據(jù)由認(rèn)證裝置所產(chǎn)生的訪問代碼來產(chǎn)生第二訪問代碼,所述第二訪問代碼適用于通過認(rèn)證實體來認(rèn)證用戶。 發(fā)生器包括用于根據(jù)單向函數(shù)foe產(chǎn)生第一數(shù)值的裝置,所述單向函數(shù)to的輸入?yún)?shù)包括至少一個更新過的狀態(tài)變量。 發(fā)生器包括 單向函數(shù)Ex,用于產(chǎn)生第二數(shù)值并包括輸入?yún)?shù) 認(rèn)證裝置的密鑰;眷隨機(jī)數(shù)值 一個具有逆向函數(shù)的函數(shù),適用于疊加由函數(shù)foe和Ex所產(chǎn)生的第一和第二數(shù)值與逆向函數(shù)的函數(shù),疊加的數(shù)值表示訪問代碼并且逆向函數(shù)適用于根據(jù)訪問代碼來產(chǎn)生第一和第二數(shù)值。 認(rèn)證實體適用于以不同的方法來核實第二數(shù)值的有效性和第一數(shù)值的有效性; 在有效性的核實過程中,認(rèn)證實體更新內(nèi)部狀態(tài)。 函數(shù)foe至少一個輸入?yún)?shù)為先前訪問代碼產(chǎn)生步驟中由認(rèn)證裝置產(chǎn)生的不可預(yù)測信息項所更新的狀態(tài)變量。 認(rèn)證裝置和認(rèn)證實體各自包括時鐘,并且認(rèn)證裝置適用于在計算訪問代碼中使用參考時間和時鐘時間之間的時間間隙(time gap),并且僅當(dāng)認(rèn)證實體在涉及產(chǎn)生所述訪問代碼的確定時間間隔中接受訪問代碼時,認(rèn)證實體適用于核實訪問代碼。 因為系統(tǒng)允許對多個服務(wù)進(jìn)行用戶的認(rèn)證,訪問代碼由認(rèn)證裝置使用專用給定服務(wù)的代碼來產(chǎn)生,使得由認(rèn)證實體對其的核實僅對該服務(wù)進(jìn)行訪問。 所述認(rèn)證裝置適用于通過使用至少一個專用于服務(wù)、專用于認(rèn)證裝置和時間間隙的代碼來計算第一訪問代碼,以及認(rèn)證實體適用于計算專用于服務(wù)、專用于認(rèn)證裝置的第二訪問代碼,并將其傳輸至用戶,使得用戶可以將其與第一訪問代碼進(jìn)行比較,并且因此識別所確定的服務(wù),僅當(dāng)由認(rèn)證裝置計算第一訪問代碼在相對于由認(rèn)證實體計算第二密鑰代碼的時間的確定時間間隔中執(zhí)行并且所述專用于使用服務(wù)和認(rèn)證裝置的代碼都是相同時,則所述第一和第二訪問代碼是一致的。本發(fā)明將通過閱讀下列僅以實例方式給出的描述及其附圖得以更好的理解,附圖包括

圖1是根據(jù)本發(fā)明一個實施例的認(rèn)證系統(tǒng)的示意圖;圖2A、2B和2C是根據(jù)圖1所示系統(tǒng)的三種不同選擇的操作示意圖;圖3是由圖1所示系統(tǒng)的認(rèn)證裝置計算訪問代碼的流程圖;圖4是由圖1所示系統(tǒng)的認(rèn)證客戶計算訪問代碼的流程圖;圖5是由圖1所示系統(tǒng)的認(rèn)證實體核實訪問代碼的流程圖;參考圖1,認(rèn)證系統(tǒng)包括作為認(rèn)證服務(wù)器的認(rèn)證實體1、一個或多個認(rèn)證裝置3和一個或多個認(rèn)證客戶端5。認(rèn)證裝置3和認(rèn)證客戶端5由系統(tǒng)用戶擁有。服務(wù)器7作為認(rèn)證管理器,用于實現(xiàn)認(rèn)證裝置、客戶端和實體使用的安全和多項服務(wù)所需的接口和功能,后者選擇性地作為該闡述的第三方。認(rèn)證實體1和認(rèn)證管理器7可以組合在同一物理服務(wù)器中,也可以不組合在同一物理服務(wù)器中。認(rèn)證裝置3包括可編程計算和用戶接口裝置9。用戶接口具體包括用于輸入密鑰密碼的裝置(例如數(shù)值鍵盤),以及用于顯示和/或傳輸訪問代碼M的裝置。具體地說,訪問代碼M直接通過數(shù)據(jù)鏈接傳輸至認(rèn)證實體,或由用戶觀察認(rèn)證裝置的顯示器并隨后由該用戶在認(rèn)證窗口中輸入或者口述傳輸,或者采用DTMF調(diào)制方式傳輸至例如語音服務(wù)器。認(rèn)證裝置還包括用于存儲一個或多個狀態(tài)變量i、j、k以及用于各個裝置獨有的密鑰Kl的裝置11。例如,認(rèn)證裝置3可在具有編程執(zhí)行裝置(例如Java虛擬機(jī))的手機(jī)中進(jìn)行編程??蛻舳?還包括可編程計算和用戶接口裝置13和用于與認(rèn)證實體1傳輸數(shù)據(jù)(例如通過因特網(wǎng))的裝置15。具體地說,客戶端5包括用于存儲各個客戶端獨有的密鑰1(3的裝置17,該密鑰可選擇公共密鑰加密算法的私人/公共密鑰對(pK3,sK3)的類型??蛻舳?通??稍谟嬎銠C(jī)上執(zhí)行,例如臺式計算機(jī)、筆記本計算機(jī)、便攜式計算機(jī)(pocket computers) 或手機(jī)。認(rèn)證管理器7是認(rèn)證裝置3和認(rèn)證實體1之間的智能接口。該接口在下文所描述的認(rèn)證協(xié)議中透明的并且可選擇性應(yīng)用于后者。然而,在真實環(huán)境中,認(rèn)證管理器提供在其環(huán)境中易于操作且有效運作認(rèn)證系統(tǒng)所需的功能,即其用戶和服務(wù)可使用認(rèn)證系統(tǒng)為用戶提供它們服務(wù)的訪問。因此,認(rèn)證管理器7可明確地提供下述功能 實體的訪問控制,用于管理使用認(rèn)證系統(tǒng)的服務(wù)下載發(fā)布(loading spreading)、、認(rèn)證、連接和請求的管理和安全; 處理由這些實體發(fā)出的對這些服務(wù)的認(rèn)證請求路由選擇、由靜態(tài)或動態(tài)數(shù)據(jù)增強(qiáng)、響應(yīng); 處理由這些實體發(fā)出的管理或監(jiān)督的請求,無論該請求是否與系統(tǒng)或與最終用戶相關(guān)創(chuàng)建密鑰并且激活可以應(yīng)用的帳戶(例如,對由初始“惰性(inert) ”認(rèn)證裝置所產(chǎn)生密鑰的安全傳輸應(yīng)用Diffie-Hellmarm類型的算法)、添加或刪除服務(wù)(例如遠(yuǎn)程服務(wù)、遠(yuǎn)程使用支付卡或會員卡、權(quán)限管理等); 認(rèn)證客戶端的控制訪問認(rèn)證、下載發(fā)布連接及請求的管理和安全; 處理由認(rèn)證客戶端所發(fā)出的管理終端用戶賬戶的請求權(quán)限管理、服務(wù)請求、裝置或認(rèn)證/識別客戶端的增加、刪除或管理、帳戶恢復(fù)裝置的增加或管理; 在線請求的訪問控制和處理(特別是用戶帳戶的恢復(fù))認(rèn)證、下載發(fā)布、請求的處理;以及, 認(rèn)證系統(tǒng)的管理功能。除了計算裝置20以外,認(rèn)證實體1還包括裝置22,用于為各個認(rèn)證裝置和各個認(rèn)證客戶端存儲密鑰K1、密鑰K3,或者采用公共密鑰加密方法的公共密鑰PK3、認(rèn)證裝置的狀態(tài)變量i、j、k的對稱狀態(tài)變量ii、jjik,采用離散方式、誤差計數(shù)器和優(yōu)選的數(shù)據(jù)堆棧π 方式對應(yīng)于用戶密鑰密代碼的常數(shù)密鑰。參照圖2Α、2Β及2C闡述認(rèn)證系統(tǒng)和認(rèn)證協(xié)議的操作。具有服務(wù)的用戶的認(rèn)證通過傳輸由認(rèn)證實體1認(rèn)證的訪問代碼CA來執(zhí)行。如果該碼有效,則認(rèn)證實體允許該用戶訪問所請求的服務(wù)。認(rèn)證系統(tǒng)包括用于由認(rèn)證裝置所產(chǎn)生的訪問代碼的三種選擇Α、Β和C所反映的三種操作模式訪問代碼。選擇A和B產(chǎn)生用于認(rèn)證使用認(rèn)證系統(tǒng)的服務(wù)的訪問代碼。如圖2Α所示,選擇A 允許具有因素1的認(rèn)證,其基于認(rèn)證裝置所具有的密鑰Κ1。如圖2Β所示,選擇B允許具有因素2的認(rèn)證認(rèn)證裝置具有密鑰Kl且由持有人輸入密鑰C。如圖2C所示,選擇C產(chǎn)生用于連接認(rèn)證客戶端的訪問密鑰CA1,該認(rèn)證客戶端執(zhí)行了將訪問代碼CA2傳輸至認(rèn)證實體的操作,由認(rèn)證裝置計算而產(chǎn)生不同的訪問代碼。選擇C 允許具有因素3的認(rèn)證認(rèn)證裝置具有密鑰Kl以及如選擇B中由持有人所輸入的密鑰C, 和認(rèn)證客戶端具有密鑰Κ3或者sK3/pK3密鑰對。為選擇授權(quán)使用而做出的選擇的抉擇通常是由用戶所決斷的,因為C不具有A和B 相同的功能從持有者的觀點而言,C用于連接認(rèn)證客戶端,同時A和B用于系統(tǒng)所使用的服務(wù)的授權(quán)。使用A而不使用B的決定或者相反的決定也是取決于持有者。選擇A產(chǎn)生獨有的鏈接至認(rèn)證裝置的訪問代碼,使得獲得該裝置的攻擊者可作為持有者讓自己通過。選擇B 產(chǎn)生與認(rèn)證裝置和持有者為獲得訪問代碼而輸入的個人密鑰相關(guān)的訪問代碼。持有者的個人密鑰不存儲在認(rèn)證裝置中,但是僅當(dāng)用戶輸入正確的個人密鑰時,產(chǎn)生的訪問代碼才會正確。然而,系統(tǒng)的某些條件可能迫使用戶使用一種選擇而不是另一種。特別是,認(rèn)證裝置執(zhí)行與多種選擇的同步和異步使用相關(guān)的多種檢測,并且如果需要能夠根據(jù)這些檢測通過強(qiáng)制執(zhí)行選擇B來替換選擇A強(qiáng)制持有者的個人密鑰的輸入。這些條件將在下文中進(jìn)行闡述,尤其是參考系統(tǒng)誤差的管理。如圖3所示,用于選擇χ的認(rèn)證裝置產(chǎn)生訪問代碼包括下述步驟 產(chǎn)生步驟S30,用于產(chǎn)生偽隨機(jī)數(shù)randx ; 計算步驟S32,用于通過具有例如狀態(tài)變量k、密鑰K1和隨機(jī)數(shù)randx之一作為輸入?yún)?shù)的函數(shù)Ex來計算第一數(shù)M1,,,且表示為M1, x = Ex (k,K1,randx)公式 1 計算步驟S34,用于通過具有例如輸入?yún)?shù)狀態(tài)變量j、k、密鑰K1、隨機(jī)數(shù)randx 以及在選擇A中省略的CODE碼數(shù)的函數(shù)Fx計算狀態(tài)變量i、j和k的新數(shù)值iMW、Jnew和 knew,以及選擇性地包括與認(rèn)證裝置關(guān)聯(lián)的序列號SNO的函數(shù),且表示為(inew,jnew, knew) = Fx (j,k,Kl,CODE, SN(),randx) 公式 2 計算步驟S36,用于通過具有例如新計算得到的狀態(tài)變量inew、jnew和knew以及在參考時間與計算訪問代碼的執(zhí)行時間之間的時間間隔At的時間函數(shù)P的結(jié)果作為輸入?yún)?shù)的第三函數(shù)來計算第二數(shù)M2, x,且表示為M2, x = Gx (inew,jnew,knew,P (At))公式 3 計算步驟S38,用于通過函數(shù)C0nCatx(M1YM2Yrandx)計算訪問代碼,使之有可能根據(jù)訪問代碼來產(chǎn)生M1YM2Yranc^ concat,是其輸入?yún)?shù)連接串的雙射函數(shù),其反函數(shù)是標(biāo)記為S^arerx的函數(shù)。concat,可選擇性地具有密碼的性質(zhì),例如作為實施部分所執(zhí)行的安全分析所建議的對稱密鑰加密算法的應(yīng)用。此外,(3011(^、可選擇性地由交錯位的連接至輸入?yún)?shù),從而有利于持有者的訪問代碼的輸入錯誤不影響一個其他的獨立輸入?yún)?shù)。索引χ表示選擇A、B或C,并且Ea對應(yīng)選擇A使用的函數(shù)E的版本。通常,函數(shù)Ex、Fx和&為單向函數(shù),也就是說,即使知道結(jié)果也不能夠反向獲得輸入?yún)?shù)。哈希函數(shù)是編碼系統(tǒng)所熟知的單向函數(shù)的一個例子。函數(shù)Ex、Fx和&不作加密(它們是認(rèn)證裝置和認(rèn)證實體所公知的)。特別是,函數(shù)Ex用于核實訪問代碼的發(fā)生器是否具有認(rèn)證裝置。各個步驟將進(jìn)行詳細(xì)的闡述,尤其對根據(jù)所選擇的選擇類型的操作的特有特征。對于公式1,Ea和&既不是i也不是j的函數(shù),Ec也不是狀態(tài)變量的函數(shù),也就是說,不是i或j或k的函數(shù)。需要明確的是,如果Ea或&是j的函數(shù),則在選擇B中受到不成功的黑客行為后, 有可能對初始內(nèi)部狀態(tài)的多次迭代來實施對持有者的個人密鑰的強(qiáng)行攻擊。這種攻擊可能不能由認(rèn)證實體檢測到,因為j已經(jīng)在第一次不成功的嘗試之后由認(rèn)證實體進(jìn)行了更新, 正如下文中所闡述的那樣,當(dāng)用于攻擊所使用的個人密鑰不正確時,那么匪i也是不正確的。然而,如果Ea為j的函數(shù),這種內(nèi)部狀態(tài)的去同步將損害到持有者的使用(損失步驟的風(fēng)險)。相似的,如果E。為k的函數(shù),這種內(nèi)部的去同步將損害到持有者的使用(損失步驟的風(fēng)險)。另一方面,當(dāng)E。不是k的函數(shù)時,將不會出現(xiàn)問題,因為 當(dāng)通過認(rèn)證客戶端傳送的情況中MM1對選擇C正確時,該認(rèn)證客戶端必然為持有者;以及, 對攻擊者而言,不可能在不具有持有者的認(rèn)證客戶端的情況下來測試具有選擇 C的持有者的個人密鑰的數(shù)值。對公式2,函數(shù)Fx用于更新內(nèi)部狀態(tài)i、j和k且具有下述特別特征。Fa返回單一數(shù)值且僅更新內(nèi)部狀態(tài)i。Fb返回一對數(shù)值且僅更新i和j。F。返回三個數(shù)值且更新i、j和K。然而,F(xiàn)a不是i的函數(shù),以及Fb既不是i也不是j的函數(shù),F(xiàn)c既不是i也不是j又不是K的函數(shù)。也就是說,函數(shù)Fx不具有它們所更新的作為輸入函數(shù)的狀態(tài)變量。有利的是,在計算訪問代碼之前執(zhí)行更新,以對持有者最小化去同步的影響。正如下文所闡述的,認(rèn)證裝置在產(chǎn)生各個訪問代碼時無條件地更新其內(nèi)部狀態(tài),同時除非認(rèn)證成功,認(rèn)證實體通常不更新對應(yīng)的內(nèi)部狀態(tài)。CODE數(shù)值對應(yīng)于常數(shù)e或當(dāng)使用模式B或C時由用戶輸入的密鑰代碼c的哈希值。值得注意的是,選擇A的函數(shù)Fa不必須使用e作為參數(shù)。因而,內(nèi)部狀態(tài)同時更新 采用隨機(jī)的方式(使用randx),并且可通過傳輸?shù)脑L問代碼觀察到;以及, 通過使用密鑰Kl和C,或者甚至j和k的確定但保密的方式,但是不能通過傳輸訪問代碼觀察到。因此, 伴隨選擇A的i的正確更新需要獲知j、k和Kl (Fa密鑰參數(shù)); 伴隨選擇B的i和j的正確更新需要獲知k、Kl和c ; 伴隨選擇C的i、j和k的正確更新需要獲知ΚΙ、K3和C。參考公式3,函數(shù)Gx為單向函數(shù)并且完全取決于相同的參數(shù)inew、jnew、knew和 P (At)。關(guān)于函數(shù)Fx和(^的選擇的唯一額外要求是不論持有者使用選擇的序列(x(n), x(n-l),…),它們的復(fù)合組合G χ (η) °Ρχ (η) °GX (n-1)〇FX (n-1)〇… 不收斂(converge)于由固定點(或周期)。如果使用安全(選擇性阻截)哈希函數(shù)(例如MD5、SHA256等)作為單向函數(shù),則該需求不是真正的需求條件。值得注意的是,這些函數(shù)的參數(shù)不收斂于任何子集,因為隨機(jī)數(shù)值!^!!(^插入在各個訪問代碼的產(chǎn)生過程中,并且如果函數(shù)的組合自身不能收斂于函數(shù)意義,因此這些函數(shù)的結(jié)果較難收斂于一個數(shù)值或數(shù)值周期。數(shù)值Δ t定義為時間間隔,用于分隔先前訪問請求tref和當(dāng)前請求t。函數(shù)P為At的函數(shù),At可由下述方法根據(jù)第二函數(shù)λ確定λ (At) = E(At/52)modN2 (公式 4)若λ ( Δ t)彡 γ M,則 ρ ( Δ t) = λ (At)否貝1J,則 P ( Δ t) = λ ( Δ t) + σ (公式 5)式中ΥΜ、δ 2、N2和ο必須為正整數(shù)。δ 2為編碼間距且δ 2. N2為λ的偽周期。 具體地說,隊可選擇為任意大的整數(shù),例如可由認(rèn)證裝置表示的最大整數(shù),并因而被下述計算省略。在這種情況下,EO指定為較小的整數(shù)。σ為隨意選擇且需要足夠大,即大于 ΥΜ+β,其中Ym和β為本文下述部分所定義的確切正整數(shù)。根據(jù)公式1至3,可明確至多4個參數(shù)在各個訪問代碼請求中更新i、j、k和t,ef 可以選擇其對應(yīng)這類訪問代碼請求的時間作為數(shù)值。因此,如果認(rèn)證裝置檢測到訪問代碼沒有被使用,例如因為用戶鍵入取消鍵,則這4個參數(shù)可以保持它們在訪問代碼請求之前的狀態(tài)。如圖4所示,在選擇C的情況下,由認(rèn)證裝置產(chǎn)生的訪問代碼轉(zhuǎn)移至認(rèn)證客戶端。認(rèn)證客戶端通過步驟40通過對訪問代碼使用函數(shù)s印are。計算數(shù)值(M1 ;M2 ; rand)并且隨后計算數(shù)值 步驟S42,M’ i等于Ed(K3 M1,。),即如果訪問代碼輸入正確且其確實包括持有者的認(rèn)證客戶端時,則為Ed(k ;K3 ;randc); 步驟 S44,Μ’ 2 等于 Gd (K3 ;M2,。),即在相同條件下為 Gd (inew ; Jnew ; knew ;K3 ; P (At))。隨后,在步驟S46中,由認(rèn)證客戶端傳輸?shù)脑L問代碼CA2為concat。(Μ' , ;Ψ 2 ; randc)。K3為認(rèn)證客戶端所相關(guān)的密鑰。因為訪問代碼由電子裝置傳輸至認(rèn)證實體,這里不限制由認(rèn)證客戶端所計算和傳輸?shù)脑L問代碼的長度。這樣,根據(jù)本發(fā)明的實施例,函數(shù)(^d 和&可為同時被認(rèn)證客戶端與認(rèn)證實體所獲知的單向函數(shù),或者為采用非對稱加密方法的消息M’工和Μ’ 2分別的簽名函數(shù),其中K3作為私人密鑰sK3。在這第二種情況下,認(rèn)證實體具有與SK3相關(guān)的公共密鑰pK3,以便核實簽名的有效性,即所已傳輸?shù)脑L問代碼的有效性。非對稱加密與使用單向函數(shù)和使用對認(rèn)證客戶及認(rèn)證實體端獲知密鑰的方法相比的優(yōu)點在于即使認(rèn)證實體被破解(compromised)時仍舊安全(認(rèn)證實體不具有產(chǎn)生M’ ! 或Μ’ 2的裝置,僅用于核實它們是否正確)。對于已滿足的認(rèn)證管理器具有適用且傳統(tǒng)的安全性,則有可能具有選擇C的認(rèn)證作為操作基礎(chǔ),所述操作基礎(chǔ)對整個系統(tǒng)的安全性非常敏感(例如,持有者的個人密鑰代碼的變換、持有者的認(rèn)證裝置的管理等)。非對稱加密的使用可拓展至在本發(fā)明實施例的選擇A和選擇B,其中將認(rèn)證裝置所產(chǎn)生的訪問代碼傳輸至認(rèn)證實體,且不通過持有者的輸入或語音方式,或在實施例中未充分考慮和提及的簽名方法,使得所產(chǎn)生的訪問代碼可由持有者傳輸至認(rèn)證實體。如圖5所示,認(rèn)證實體通過執(zhí)行下述步驟核實所接收到的訪問代碼 檢測步驟S50,用于檢測認(rèn)證實體系統(tǒng)時鐘的當(dāng)前時間以及記錄tt本身的數(shù)值; 循環(huán)返回步驟S52,用于如果認(rèn)證客戶端已傳輸訪問代碼時,所選擇的類型循環(huán)返回至已獲知的選擇C。否則,實體檢測選擇B,然后A,最后C。 確定步驟S54,用于根據(jù)選擇來確定CODE。對選擇A,不使用CODE或者CODE為常數(shù),而對其它選擇,則CODE為密鑰代碼的哈希數(shù)值; 計算步驟S56,用于通過對訪問代碼運用函數(shù)s印arA來計算數(shù)值(Μ^,ρΜ^,,、 rrandx); 計算步驟S58,用于通過使用函數(shù)Ex和(^以及由認(rèn)證實體具有的密鑰來計算數(shù)值MM’ iyMM’ 2,x,密鑰對稱于認(rèn)證裝置所具有的密鑰,而對選擇C而言由認(rèn)證客戶端所具有密鑰。同時,還使用認(rèn)證實體的可能參考時間ttMf與時間tt之間的時間間隙Att以及使用函數(shù)Fx來計算狀態(tài)變量ii、jj和Ick。 核實步驟S60,S62,用于核實匪LpMM2ix以及對應(yīng)的匪,^x、匪,2,x。該步驟和先前步驟通常對應(yīng)于采用具有密鑰的對稱加密中的代碼的核實; 如果訪問代碼被核實,除了訪問服務(wù)以外,在步驟S64中,認(rèn)證實體更新內(nèi)部變量ii、j j、Ick和ttref,使之與認(rèn)證裝置保持同步。可以理解的是,系統(tǒng)的特別敏感的要素是保持認(rèn)證裝置與認(rèn)證實體的同步。為此目的,下文將闡述初始同步時鐘的問題,因此有可能獲得一個在兩者之間具有相同數(shù)值的時間間隙的時間tref、ttMf、t和tt。具體的說,這有利于使系統(tǒng)在兩個時鐘的差異之間具有魯棒性??杉僭O(shè)^Pmin為訪問代碼至認(rèn)證實體的最小傳輸時間,即持有者的輸入時間加上傳輸時間,在該實施過程中持有者必須輸入訪問代碼;· Pval為確認(rèn)所產(chǎn)生的訪問代碼有效過程的時間;· Pfflax為大于Pval的時間,且超過Pmax如果持有者沒有在此之前完成,那么可以合理的認(rèn)為持有者不再傳輸訪問代碼,則可獲知該代碼不再有效;眷乜為最小時間以及tM為最大時間,且在這個最大時間中可以合理的認(rèn)為如果第一次失敗之后,持有者將作出第二次認(rèn)證嘗試。下述內(nèi)容需明確· α =Ε((Ρν -ρ_)/δ2);· β =E((Pfflax-Pfflin)/52);· Yffl = E(tffl/52);· y M = E (tM/ δ 2).這就給出了At= Att+Δ。-At,式中 Δ t = tt_t 且 Δ。= ttref_tref。我們可從上式中推導(dǎo)出λ (At) = λ (Att)+E(A),式中 Δ = (r+Δ。-Δ t) / δ 2 且 彡r < δ2。我們假SPmin< Δο< Pvalo可能出現(xiàn)三種情況 如果在有效的時間中由認(rèn)證實體接收訪問代碼,即Pmin < At < Pval,則可得到 E (-(Pval-Pmin)/δ 2) <Ε(Δ) < l+E((Pval-Pmin)/S2),且因為 Ε(Δ)為整數(shù),則最終獲得- α彡Ε(Δ)彡α ; 如果在有效時間之后但在最大輸出時間之前接收到訪問代碼,即Pval < At < Pfflax,則可得到E (- (Pmax-Pmin) / δ2)<Ε(Δ)<1;且因為Ε(Δ)為整數(shù),則最終獲得- β 彡 Ε(Δ) ^ 0 ; 最后,如果Δ t在tm和tM秒之間,則得到Y(jié) m彡λ ( Δ t)彡Y M。相反,如果λ (At)-λ (Att)等于一相關(guān)整數(shù)a,則E((r+A0-At)/52) = a,BPa^ (r+A0-At)/52 < a+1因此Pmin-(1+a) · δ 2 < Δ t < Pval+(1-a) · δ 2這是對上述驗證的三種情況的結(jié)果 如果認(rèn)證實體認(rèn)為訪問代碼有效使得-α彡Ε(Δ) ( α,則在Pval+(1+α ). δ2 之后接收到的訪問代碼將不再認(rèn)為有效。 如果雖然超過計時,但認(rèn)證實體認(rèn)為訪問代碼為真使得-β彡Ε(Δ)彡-α-1, 則在ρ_+α+β). δ2之后接收到的訪問代碼將不會認(rèn)為為真。 如果認(rèn)證實體認(rèn)為訪問代碼有效使得YmS λ (At) ^ ΥΜ,則如果其是在前一訪問代碼產(chǎn)生之后在Ym. \和(YM+1). S2之間的時刻所產(chǎn)生的,那么即使在去同步的情況下仍舊可以保持訪問代碼的有效性。然而,如果在Pval后接收到訪問代碼,則必須對tt進(jìn)行校正,使得在接收下一個訪問代碼時,條件Pmin < AciC Pval仍然保持有效。這情況等效于如果λ (At)-λ (Att)等于一相關(guān)整數(shù)a使得Pval彡P(guān)min-(1+a). δ2,即如果α彡-α-l。因此,對a ε [-β ;-α-1] 而言,tt在具有數(shù)值tt+(a+a). δ 2的訪問代碼認(rèn)證操作的末端進(jìn)行更新。值得注意的是, 該校正 不檢測所有超時輸入的情況,因為Pval和Pmax之間的輸入可能會得到Ε(Δ) ε [-β ;0]的結(jié)果;現(xiàn)在未檢測超時輸入會產(chǎn)生“斷裂”(disruption),可在下個步驟中致使排斥有效的訪問代碼和及時輸入(雖然不具有大的概率)。然而,可能通過接受有效的碼使得Ε(Δ) = α+l以防范這個問題,其表示對認(rèn)證實體進(jìn)行附加計算; 當(dāng)超過計時的輸入被檢測到且如上述進(jìn)行校正,則不需完全或系統(tǒng)地控制斷裂。然而,在實際操作中,當(dāng)tt的校正在上述兩個認(rèn)證嘗試的一個過程中完成時,通過接受代碼為有效的使得Ε(Δ) ε [α+1 ;β]可防范這個問題,在上述兩個認(rèn)證嘗試中,訪問代碼被認(rèn)為為真,其表示對認(rèn)證實體進(jìn)行忽略附加計算,這種情況不具有大的概率。最后,例如ο > ΥΜ+β,上述驗證的第三種情況與其余兩種情況完全不同。如果這種條件不能滿足,則上述兩種情況可能在某些情況下不能被區(qū)分開,盡管導(dǎo)致不同步的或在超過計時后的正確輸入因而無效,認(rèn)證實體隨意地確定訪問代碼是否有效,并因此也隨意地確定是否執(zhí)行t、ef的校正。認(rèn)證裝置的時鐘的絕對精度是無用的,因為唯一值得關(guān)注的是時間差異;同樣,在認(rèn)證裝置時鐘和認(rèn)證實體時鐘之間的差異也是不重要的,因為它以差異計算進(jìn)行了簡化。認(rèn)證裝置的時鐘在長時間周期中的相對精度也是不必需的,因為持有者將會在這個時間階段中或在最差的情況(第一個訪問代碼不被認(rèn)為是真的)中具有所使用的認(rèn)證裝置。然而,重要的是由持有者使用的認(rèn)證裝置的時鐘在其“正?!笔褂昧考壷芷谥械南鄬缺WC了在認(rèn)證裝置時鐘和認(rèn)證實體時鐘之間引入的最大差異至多為Pval量級。在實際操作中,不對該時鐘進(jìn)行約束。除了由上述方法解決時鐘同步問題以外,可以理解的是,在生產(chǎn)環(huán)境中,系統(tǒng)必須具有對按鍵錯誤和黑客企圖的魯棒性,從而保證狀態(tài)變量i、j、k去同步,同時保持訪問代碼的安全性。為此,在所示實施例中,使用了選擇A,B和C的混合體,根據(jù)某些環(huán)境保留訪問代碼的使用和狀態(tài)i、j、k的更新的歷史記錄。認(rèn)證裝置具有標(biāo)記optionB。如果使用選擇B或C,則標(biāo)記optionB設(shè)置為FALSE。如果認(rèn)證裝置意識到認(rèn)證嘗試使用對未通過選擇A所產(chǎn)生的訪問代碼(例如,持有者可能在認(rèn)證裝置上具有一個選擇,用于指示認(rèn)證嘗試的失敗),則內(nèi)部狀態(tài)optionB設(shè)置為TRUE。在下述情況下強(qiáng)制執(zhí)行選擇B(因此取代由持有者所選擇的選擇A) 對選擇A的認(rèn)證嘗試失敗如果這個失敗情況是在認(rèn)證裝置和認(rèn)證實體之間的內(nèi)部狀態(tài)j去同步的情況,則使用選擇B允許重新同步。這個情況不由認(rèn)證實體進(jìn)行檢測 (在不考慮選擇的認(rèn)證失敗后,不排斥選擇A產(chǎn)生的訪問代碼); 選擇A連續(xù)使用的數(shù)值超出了在系統(tǒng)設(shè)計過程中所設(shè)置的閾值。其目的在于限制有效訪問代碼的數(shù)值,這樣可無須輸入持有者的密鑰而產(chǎn)生,特別是在認(rèn)證裝置被盜的情況下。選擇和附加的是,對認(rèn)證裝置的訪問必須受一個簡單密碼的限制。這個檢測的第二目的在于保證內(nèi)部狀態(tài)j的最小刷新速度。相似的檢測由具有稍小于嚴(yán)格閾值的認(rèn)證實體來執(zhí)行,使得如果選擇B不能在認(rèn)證裝置一側(cè)很快強(qiáng)制執(zhí)行,而不發(fā)生認(rèn)證的錯誤; 在設(shè)定時間周期中選擇A的連續(xù)使用數(shù)值大于在系統(tǒng)設(shè)計過程中所設(shè)定的閾值。這一目的是相似的,該檢測更具體地針對于認(rèn)證裝置被盜情況下阻止具有選擇A的訪問代碼的“防御性存儲”。該檢測還能夠由認(rèn)證實體來實施,用于核實諸如λ ε [Ym ; Ym]的為選擇A所產(chǎn)生的可靠的訪問代碼構(gòu)成的連續(xù)認(rèn)證嘗試的數(shù)值不超過在系統(tǒng)設(shè)計過程中所設(shè)置的閾值。在選擇B的連續(xù)失敗的情況下(并且失敗的次數(shù)滿足一定數(shù)量)這可能僅為持有者標(biāo)識符或選擇B的數(shù)據(jù)塊的輸入重復(fù)錯誤導(dǎo)致的結(jié)果,認(rèn)證裝置建議持有者重新產(chǎn)生認(rèn)證裝置的密鑰以對選擇B去阻止。具有兩個認(rèn)證要素(認(rèn)證裝置和持有者的個人密鑰代碼)的去阻止概率的數(shù)值也可由內(nèi)部狀態(tài)erreUrCOdeB的特性通過認(rèn)證實體進(jìn)行檢測,并且限制在稍大于seuilcodq的數(shù)值。超過這個數(shù)值,則選擇B可能就不能僅通過認(rèn)證裝置的操作進(jìn)行去阻止;為此目的,持有者必須使用選擇C和認(rèn)證客戶端。上述檢測尤其有可能使之(并不是他們的唯一目的)檢測內(nèi)部狀態(tài)的重新更新的速度。還必須保證已產(chǎn)生的訪問代碼可以再次產(chǎn)生的極小概率,因為幾乎可以確認(rèn)進(jìn)行嘗試攻擊。對選擇C而言,如果正在執(zhí)行公式G。和產(chǎn)生隨機(jī)數(shù)rand。,則三元組(i、j、k)的可能數(shù)值是與可能隨機(jī)字rand。的數(shù)值Rand。相同(即假設(shè)!^(^λ (At)是固定的訪問代碼的數(shù)值)。因此,該實施方式一方面必須選擇足夠大的Rand。,另一方面在認(rèn)證客戶端上檢測密鑰代碼c的重建頻率是充分高的,例如強(qiáng)制在與認(rèn)證客戶端的一些連接之后的c的重建頻率等于Rand。/P。,其中P。是在系統(tǒng)設(shè)計過程中所設(shè)置的閾值。如果認(rèn)證裝置不能存儲在兩個c重建之間所使用的rand。數(shù)值,則P。必需設(shè)置成第二次產(chǎn)生相同數(shù)值rand。的概率非常小。“紀(jì)念日理論” (anniversaries theorem)指出該閾值是非常小的,因此,在該實施例中,Rand。本身就相對較小并且需要優(yōu)先使用,以便防止對于Rand。的重建而言c的重建頻率過快,偽隨機(jī)發(fā)生器的特性保證了在沒有沖突風(fēng)險的情況中,可以產(chǎn)生rand。的大部分?jǐn)?shù)值Rand。。然后,認(rèn)證實體存儲在兩個c重建之間由選擇C(或隨機(jī)字rand。)產(chǎn)生的訪問編碼,并且拒絕已經(jīng)使用的訪問代碼(或由已經(jīng)使用的隨機(jī)字rand。產(chǎn)生的訪問代碼)。對于選擇B,如果正在執(zhí)行公式Gb和產(chǎn)生隨機(jī)數(shù)值randBJlJ可能的數(shù)值對(i,j) 的數(shù)值(即假設(shè)k、ΚΙ、C、λ (At)是固定的訪問代碼的數(shù)值)等于可能的隨機(jī)字randBm 數(shù)值RandB。因此,實施例必須一方面選擇足夠大的RandB,另一方面檢查滿足k的重建頻率 (作為最小數(shù)值)。然后,認(rèn)證實體存儲在兩個k重建之間由選擇B (或隨機(jī)字randB)產(chǎn)生的訪問代碼,并且拒絕已經(jīng)使用的訪問代碼(或由已經(jīng)使用的隨機(jī)字randB產(chǎn)生的訪問代碼)。對于選擇A,如果正在執(zhí)行公式Ga和產(chǎn)生隨機(jī)數(shù)值randA,則可能的內(nèi)部狀態(tài)i的數(shù)值(即假設(shè)j、k、Kl、c,λ (At)為固定的訪問代碼的數(shù)值)等于可能的隨機(jī)字randAm 數(shù)值RandA。因此,該實施例必須一方面選擇足夠大的RandA,另一方面檢查j的重建頻率 (作為最小數(shù)值)是否充分滿足,上述是通過使用強(qiáng)制選擇B的檢測機(jī)制之一來實施的。認(rèn)證實體存儲在兩個j重建之間由選擇A(或隨機(jī)字randA)產(chǎn)生的訪問代碼,并且拒絕已經(jīng)使用的訪問代碼(或由已經(jīng)使用的隨機(jī)字randA產(chǎn)生的訪問代碼)。因此,在認(rèn)證裝置和認(rèn)證實體之間的內(nèi)部狀態(tài)i、j、k和tref的同步由下述方法實施 更改為“更高的”選擇,例如在認(rèn)證失敗的情況下,從選擇A更改到選擇B (艮口, 重新同步除了 i、j、k以外的更多內(nèi)部狀態(tài)); 認(rèn)證實體將Ml為正確而M2為不正確的訪問代碼存儲于訪問代碼接收存儲器的數(shù)據(jù)堆棧η中; 檢測有效但由認(rèn)證實體超時接收到的或不能對應(yīng)必要選擇的訪問代碼;·由認(rèn)證實體有條件地根據(jù)所提供的認(rèn)證訪問代碼來更新內(nèi)部狀態(tài); 限制訪問代碼λ ε [Ym; YJ的認(rèn)證,即在另一個訪問代碼考慮到第一訪問代碼沒有被認(rèn)證實體所接收的情況,而立即產(chǎn)生。這一范圍內(nèi)的裝置有可能在持有者單一鍵出錯的情況中避免任何去同步,也就是 當(dāng)持有者提示認(rèn)證裝置如果這樣的選擇存在,則不傳輸所產(chǎn)生的訪問代碼; 對于需要認(rèn)證的服務(wù),產(chǎn)生的訪問代碼或者持有者的標(biāo)識符的不正確傳輸。在這些情況下,認(rèn)證實體接收非訪問代碼或不認(rèn)為其是由持有者發(fā)出; 對于選擇B或C的使用,不正確的個人代碼的輸入; 訪問代碼的超時傳輸; 不正確選擇的使用。在由多次鍵入錯誤導(dǎo)致去同步的情況中,重新同步在最壞的情況下通過持有者做出的第二次正確認(rèn)證嘗試來保證。這一范圍內(nèi)的裝置有可能在另一方面避免由于訪問嘗試而引起的任何去同步 如果攻擊者具有認(rèn)證裝置或者復(fù)制品,但是沒有持有者的個人密鑰或持有者的認(rèn)證客戶端,包括對選擇A而言,因為如果選擇A的認(rèn)證成功,則數(shù)據(jù)堆棧π不被清空;以及此外; 如果攻擊者不具有認(rèn)證裝置。然而,可以理解的是,在認(rèn)證實體中,防止攻擊可能去同步和保護(hù)是指用于核實訪問代碼的算法為了考慮這些風(fēng)險而進(jìn)行了修改。χ、η、λ在他們各自定義組合中以同中心算法循環(huán)變化(χ變換最大,然后是η,接著是λ)·χ示出訪問代碼產(chǎn)生的選擇,如果訪問代碼已經(jīng)由認(rèn)證客戶端傳輸,則仍為選擇C,否則持續(xù)為B、A和C; 對于存儲在π中的各個數(shù)值t、,n而言,Attn = tt_t、,n的索引η由最近存儲的數(shù)值開始(當(dāng)前指定為ttMf);· λ為在下述中連續(xù)為正或零整數(shù)■ [ σ +λ (Δ ttn) - α ; σ + λ ( Δ ttn) + α +1]■選擇 B 和 C 的[Ym ; ΥΜ]■僅當(dāng)在訪問代碼確認(rèn)可信的前兩次認(rèn)證嘗試之一的過程中已經(jīng)對ttref進(jìn)行了校正時,[σ + λ ( Δ ttn) + α +2 ; σ + λ ( Δ ttn) + β ]■ [ σ +λ (Δ ttn) - β ; σ +λ (Δ ttn)-α -1]盡管較為復(fù)雜,但是,由認(rèn)證實體做出的計算數(shù)值實際上仍對認(rèn)證裝置的正常使用有很大的限制 匪u的1至3次計算用于確定產(chǎn)生訪問代碼所使用的選擇X,因為當(dāng)發(fā)現(xiàn)與^1, ,匹配,則不考慮隨后的選擇;·ΜΜ2,χ,η,λ的1至2α+1次計算用于確定λ的校正數(shù)值(參數(shù)選擇例如可以為 α = 1或者因此相關(guān))。計算可以為更多次數(shù)的 當(dāng)訪問代碼的輸入超時直至ΜΜ2,χ,η,λ的附加計算,即典型的參數(shù)選擇為 2 ; 如果由攻擊者使用認(rèn)證裝置來產(chǎn)生具有選擇A的連續(xù)訪問代碼直至 Oa+l)*SeUilA的附加計算,其中seuilA是認(rèn)證實體所接受的選擇A產(chǎn)生的連續(xù)訪問代碼的最大數(shù)值; 如果在認(rèn)證裝置被盜后的攻擊嘗試,或如果由持有者不正確地輸入個人密鑰代碼直至Oa+l)*(Seuil。。deA+SeUil。。deB)的附加計算,或如果用戶(攻擊者或持有者) 還具有持有者的認(rèn)證客戶端時,則甚至可達(dá)(2 α +l)*(seuilcodeA+seuilcodeB+seuiIcodec) 0 SeUil。。M表示在鎖定該選擇使用前的認(rèn)證實體可接受的連續(xù)錯誤(在選擇χ中)的最大數(shù)值。當(dāng)形成累加時,則這些數(shù)值相乘,但是因為這些數(shù)值是相互獨立的,這樣累加的發(fā)生概率較低。在任何情況下,由具有持有者認(rèn)證裝置的攻擊所直接引起的附加計算唯一原因為其在最壞的情況中導(dǎo)致執(zhí)行Oa+l)*(SeUil。。deA+SeUil。。deB)的附加計算,并且如果大小設(shè)置正確,則難以對認(rèn)證系統(tǒng)拒絕的服務(wù)形成攻擊,這正是本發(fā)明的目的。在這些循環(huán)中,執(zhí)行下述步驟· CODE選取適用選擇A的數(shù)值e,并且適用選擇B和C的密鑰哈希數(shù)值(hash value)H (cc)?!?(MMljx ;MM2jx ;rrandx)的數(shù)值通過對訪問代碼使用函數(shù)^pari5x進(jìn)行計算。當(dāng)訪問代碼是由認(rèn)證實體通過認(rèn)證客戶端獲得的,則函數(shù)s印are。提供匪,i和匪,2 和MM2 然后分別根據(jù)MM’工和MM’ 2通過使用非對稱加密方法和公共密鑰pK3或?qū)ΨQ密鑰Κ3進(jìn)行計算。 表示為匪,u的整數(shù)如同Ex (kk ;rrandx)進(jìn)行計算;眷核實匪^x的有效性· seuil在Seuilmin處進(jìn)行初始化; 如果tt_ttlast < seuil并且訪問代碼還沒有通過認(rèn)證客戶端進(jìn)行傳輸, 如果對選擇χ而言匪,u和匪u相等,并且randx還沒有被用于該選擇,則 erreurM1設(shè)置為0,seuil設(shè)置為Seuilmin,ttlast設(shè)置為tt,tt被加入數(shù)據(jù)堆棧^。對堆棧增加tt通過避免與認(rèn)證實體相關(guān)認(rèn)證裝置的任何去同步限制持有者對該機(jī)制的可能影響; 否則,不對erreurM1進(jìn)行加值,且如果erreurM1彡seuilM1,則seuil設(shè)置為實施例所允許的最大數(shù)值; 在任何情況中,拒絕認(rèn)證以及停止核實訪問代碼的操作。該機(jī)制旨在如果自最后訪問代碼檢測開始的時間小于seuil時,在沒有檢測任何訪問代碼的情況下通過拒絕來避免在訪問代碼上強(qiáng)制執(zhí)行的攻擊。 如果tt_ttlast彡seuil或者訪問代碼已經(jīng)通過認(rèn)證客戶端傳輸 如果對于選擇χ而言匪,i, x和^1, x相等,并且randx還沒有用于該選擇,則 erreurM1設(shè)置為0,seuil設(shè)置為Seuilmin,ttlast設(shè)置為tt,訪問代碼的認(rèn)證操作將在下文闡述; 否則,不對erreui~M1進(jìn)行加值,拒絕認(rèn)證,停止操作,并且如果 erreurM1彡seuilmaxM1,則seuil設(shè)置為由實施例允許的最大數(shù)值。 如果對應(yīng)選擇A的索引χ和erreur。。deA的數(shù)值大于seuil。。deA,則停止訪問代碼的核實操作,拒絕認(rèn)證; 如果對應(yīng)選擇B的索引χ和erreur。。deB的數(shù)值大于seuil。。deB,則停止訪問代碼的核實操作,拒絕認(rèn)證; 如果對應(yīng)于選擇C的索引χ和訪問代碼已經(jīng)通過認(rèn)證客戶端提供,并且 erreurcodeC的數(shù)值大于seuil。。-,則停止訪問代碼的核實操作,拒絕認(rèn)證; 所述(iinew ;Jjnew ;kknew)采用上述 Fx (jj ;kk ;Kl ;code ;SN() ;rrandx)數(shù)值進(jìn)行計算(X的各個新的數(shù)值); 標(biāo)記為匪,2,x,n,A的數(shù)值如同(^iinew ;JJnew ;kknew ; λ )進(jìn)行計算。 如果匪’ 2,χ,η,λ和MM2,χ相等,則訪問代碼對選擇X,參數(shù)η和λ是可信的,并且在選擇X的協(xié)助下,對其進(jìn)行存儲,或者存儲字randx。其他選擇和參數(shù)的分析不再繼續(xù)。在更新內(nèi)部狀態(tài)和下述步驟后終止操作 以數(shù)值(iinew ;Jjnew ;kknew)來更新(ii ;jj ;kk); 除了選擇A以外清空數(shù)據(jù)堆棧; 對于對應(yīng)選擇A的索引χ而言,erreur。。deA設(shè)置為0 ; 對于對應(yīng)選擇B的索引χ而言,erreur。。deA和erreur。。deB設(shè)置為0 ; 對于對應(yīng)選擇C的索引χ而言,并且如果訪問代碼已經(jīng)通過認(rèn)證客戶端提供,則 erreurcodeA> erreurcodeC 和 Θη·Θ ιι·Μ(ω 設(shè)置為 0 ; 如果χ不對應(yīng)于所期望的選擇,則拒絕認(rèn)證并且僅執(zhí)行下述檢測參如果λ在[σ+λ (Attn)-α ; σ+λ (Attn) + a+l]中,或?qū)τ谶x擇B或C而言在[Ym ; Ym]中,則接受認(rèn)證,并且不進(jìn)行下述的檢測;參如果λ在[σ+λ (Attn) + a+2 ;σ+λ (Δ η) + β]中并且ttref校正在認(rèn)證代碼被認(rèn)為可信的兩次先前的認(rèn)證嘗試中的一次過程中完成,則接受認(rèn)證,并且不進(jìn)行下述的檢測;參如果λ 在[σ + λ ( Δ ttn) - β ; σ + λ ( Δ ttn) _ a -1]中,則拒絕認(rèn)證并且 ttref 通過數(shù)值tt+(a-p). δ2更新(包括π)。 如果匪’ Iuj和匪^不相等,算法循環(huán)由λ、η、χ的其他數(shù)值繼續(xù)。如果不能獲得相等的情況,則訪問代碼是不可信的并且拒絕認(rèn)證。通過下述方法更新內(nèi)部狀態(tài),以終止訪問代碼的認(rèn)證操作 僅對于對應(yīng)選擇B的索引X,以數(shù)值(iinew ;Jjnew ;kknew)來更新(ii ; jj ;kk); 將tt加入數(shù)據(jù)堆棧中; 對于對應(yīng)選擇A的索引X,將erreur。。deA增加一個單位; 對于對應(yīng)選擇B的索引X,將erreur。。deB增加一個單位; 對于對應(yīng)選擇C的索引X,并且如果訪問代碼已經(jīng)通過認(rèn)證客戶端應(yīng)用,則將 erreur。。fejf加一個單位。 如果和^1, x相等,但MM2不會等于MM2, χ, η, λ,則訪問代碼無效,但是在某些情況中有一更新內(nèi)部狀態(tài)ii、jj和kk的數(shù)值。在選擇A的情況中,這樣表示沒有風(fēng)險或數(shù)值,因此不執(zhí)行更新。在選擇B的情況中,該更新表示 安全協(xié)議沒有安全性風(fēng)險希望與下一認(rèn)證步驟同步的攻擊實際上將必須提供準(zhǔn)確的個人代碼,不論是否執(zhí)行更新; 沒有特別的去同步的風(fēng)險; 沒有對個人代碼強(qiáng)制攻擊的風(fēng)險如果由內(nèi)部狀態(tài)更新將導(dǎo)致這樣的情況,在下一個認(rèn)證嘗試的過程中,使得MM1和MM1, x不再相等(理論上,由“多次迭代”的攻擊是可能的),但是MM1既不取決于ii也不取決jj,它們是僅為選擇B所更新的兩個內(nèi)部狀態(tài); 具有優(yōu)勢,因為狀態(tài)jj根據(jù)H(C)進(jìn)行更新,則成功獲得認(rèn)證裝置(或者甚至對其進(jìn)行逆向工程)的攻擊者不再具有對于選擇A的成功認(rèn)證,因為其至少有一次嘗試,如果他不知道持有者的密鑰,那么這樣通過選擇B的情況就一定不會成功。在選擇C的情況中,分析稍微有些不同,并且導(dǎo)致不更新內(nèi)部狀態(tài)ii、jj、kk。特別是,在這類更新之后,如果選擇A或B由攻擊者使用,則MM1和^1, x不再相等(因為是k的公式),其中理論上允許對個人密鑰代碼進(jìn)行“多次迭代”強(qiáng)行實施的攻擊,并且不能被認(rèn)證實體檢測到。如果滿足下述3個條件,則訪問代碼可被知道它的攻擊者使用-持有者之前沒有對其使用過;-攻擊者在訪問代碼有效期之前或在上述已經(jīng)選擇為任意大小的偽周期之后的核實過程中使用;-同時,持有者沒有對產(chǎn)生大于由攻擊者所更新的輸入訪問代碼的更多內(nèi)部狀態(tài)的選擇輸入訪問代碼。除了認(rèn)證裝置被盜的情況以外,這還需要攻擊者監(jiān)聽認(rèn)證信道,并且在持有者嘗試前執(zhí)行到達(dá)認(rèn)證實體的攻擊。如果持有者的嘗試沒有被禁止或不正確的導(dǎo)向,則攻擊只能通過迅速代替持有者的嘗試來執(zhí)行因此,在一個實施例的情況中,認(rèn)證實體必須知道怎樣檢測,以及拒絕對同一持有者通過同一訪問代碼幾乎同時的認(rèn)證請求。因此,上述能有效處理技術(shù)問題的系統(tǒng)和協(xié)議可以對它們進(jìn)行設(shè)置,它們允許 一種對與持有者完全屏蔽潛在復(fù)雜性的使用,特別注意的是,它能維持內(nèi)部狀態(tài)的同步并且更新這些內(nèi)部狀態(tài); —種強(qiáng)力認(rèn)證,其既不使用保護(hù)認(rèn)證裝置密鑰數(shù)據(jù)的物理裝置(例如智能卡), 也不使用將信息從認(rèn)證實體傳輸至認(rèn)證裝置的技術(shù)裝置,還不需要在認(rèn)證裝置中使用穩(wěn)定的時鐘。本發(fā)明已經(jīng)參考附圖和上文作了詳細(xì)的闡述。上文中的闡述必須視為作為一種說明,并且給出了實施例,并且本發(fā)明不限制于上述說明。許多變化實施例都是可能的。在第一變化例中,系統(tǒng)包括操作選擇B相似的選擇B’。在k的去同步情況中,不可能要求用戶使用選擇C,因為它不能完成這樣的操作并且“屏蔽”方法也不能完成這樣的操作,因為這必須能區(qū)分出認(rèn)證實體上的多種選擇。然后,由認(rèn)證裝置和認(rèn)證實體進(jìn)行類似于 C選擇來執(zhí)行選擇B’,特別是對變量的更新,但是作為選擇B來使用,即通過持有者輸入密鑰代碼而不是通過認(rèn)證客戶端輸入密鑰代碼的情況。在選擇B認(rèn)證失敗的情況下,如果認(rèn)證裝置因此獲得信息,則強(qiáng)制執(zhí)行選擇B’。選擇B’還用于強(qiáng)制保證內(nèi)部狀態(tài)k的最小更新速度。此外,認(rèn)證實體檢測選擇B’的合理使用。在第二變化例中,用于計算字M2的函數(shù)&還是沒有更新初始狀態(tài)的函數(shù)。更具體的說,Dj 的函數(shù)(除了 inew,Jnew 和 knew 以外);Uk 的函數(shù)(除了 inew,Jnew 和 knew 以外);· Gc 為 j 和 k 的函數(shù)(除了 inew,Jnew 和 knew 以外)。該變化例的目的在于用戶個人密鑰代碼不能成為強(qiáng)制攻擊的目標(biāo),即使在攻擊者實施認(rèn)證裝置的逆向工程的情況下。我們可以具體假設(shè),該逆向工程已經(jīng)開始進(jìn)行,因此攻擊者在給定時刻清楚地獲知I、SN和(i、j、k)。如果攻擊者接著嘗試獲得由持有者通過選擇C計算的有效訪問代碼,那么在理論上攻擊者可以很容易實現(xiàn)對持有者個人密鑰代碼的強(qiáng)制攻擊,因為選擇的訪問代碼僅基于K1和SN(可由逆向工程獲得),P (At)(它可對其作一些假設(shè))以及H (C)。攻擊包括嘗試通過改變c和P (At)來重新產(chǎn)生訪問代碼的數(shù)值而不再需要認(rèn)證實體的傳輸,并因此不需要后者檢測的可能。如果,另一方面,不論所使用的選擇如何,訪問代碼是在訪問代碼中的一個或多個沒有傳輸?shù)膬?nèi)部狀態(tài)的函數(shù),并且不僅是取決于逆向工程能夠訪問的常數(shù)數(shù)值,而且還是攻擊者在他執(zhí)行強(qiáng)制攻擊時必須考慮的常數(shù)數(shù)值。在一個實際的實施例中,由個人密鑰代碼可能數(shù)值所產(chǎn)生兩個內(nèi)部狀態(tài)的可能數(shù)值遠(yuǎn)大于(通常大于2~50)可能的訪問代碼(可能不包括字rancU的數(shù)值,這就是說,強(qiáng)制攻擊將為所有可能的個人密鑰代碼數(shù)值提供多個結(jié)果(內(nèi)部狀態(tài)的數(shù)值以及P (ΔΟ的偽(plausible)數(shù)值),因此使得攻擊者難以區(qū)分該數(shù)值。實際上,如果攻擊者假設(shè)攻擊者已經(jīng)獲得的訪問代碼正是在逆向工程操作后所產(chǎn)生的,也就是說,通過改變字randx(小于未知的內(nèi)部狀態(tài))來實現(xiàn)攻擊;在該變化例的典型實施方法中,在逆向工程后產(chǎn)生訪問代碼的2至3個步驟之后,個人密鑰代碼變得難以區(qū)分,強(qiáng)制攻擊產(chǎn)生每個個人密鑰代碼的可能數(shù)值。如果所使用的函數(shù)Fx是“充分映射的”(sufficiently injective),即使是從第一步驟開始也有相當(dāng)?shù)目赡?,?qiáng)制攻擊可由攻擊者產(chǎn)生很多能夠直接使用的結(jié)果(通常5個)。因此,僅可能保留的強(qiáng)制攻擊的可能性包括在逆向工程之后,或相同的在黑客截取在逆向工程和強(qiáng)制攻擊之間所產(chǎn)生的所有訪問代碼(字randx),攻擊者攔截由持有者計算的第一訪問代碼,各種這類情況都是在技術(shù)上可行的,但不是非常的現(xiàn)實。在該第二變化例中,沒有更新的內(nèi)部狀態(tài)(i、j、k)由內(nèi)部狀態(tài)h在foe的計算過程中替換。該變化例的目的在于降低對具體可能發(fā)生在第二變化例中的去同步狀況的敏感度,同時提供如同第二變化例的相同安全性的優(yōu)勢。為此目的,在步驟η中對h的更新籍助于單向函數(shù)F通過下述方法來實施hnew = F (h ;randn_nl),式中randn_nl為步驟Ii-Ii1所產(chǎn)生的隨機(jī)密鑰,其中Ii1必須為正整數(shù)。這樣的更新條件也是根據(jù)認(rèn)證裝置沒有在步驟H-Ii1所產(chǎn)生的不傳輸?shù)脑L問代碼的直接或間接的指示。在一個相反的情況下,hnew = h,不更新內(nèi)部狀態(tài)。在這方面,服務(wù)器必須在Ii1個步驟中存儲密鑰數(shù)值,并且在有可能的Ii12數(shù)值中檢測的數(shù)值,使之有可能解釋已傳輸?shù)拇a。因此,該變化例在某些情況中增加了有效代碼的數(shù)值,并且在實施例中,必須分析代碼的長度能否滿足保證所需安全性的等級。該變化例的另一個優(yōu)點涉及選擇不重新執(zhí)行直接檢測的選擇C或B’,由通過為這些選擇增加rand 的重新使用的周期進(jìn)行簡單的最小化,在實踐中,h不是周期性的。在該第二變化例中的第二種變化例中,內(nèi)部狀態(tài)h和內(nèi)部狀態(tài)k只是僅有的一種狀態(tài),因此k籍助于函數(shù)f而不是函數(shù)Fx來進(jìn)行更新。在第三變化例中,認(rèn)證裝置可以產(chǎn)生專用于服務(wù)s的訪問代碼并且僅對后者認(rèn)證有效,或者用于所有服務(wù)且不需要專用訪問代碼的有效通用的訪問代碼。整數(shù)ms可通過如下進(jìn)行定義或者計算 常數(shù)e,如果持有者已經(jīng)做出了通用訪問代碼的默認(rèn)選擇,則該常數(shù)可以省略; 整數(shù)Φ3,如果持有者已經(jīng)選擇了專用于服務(wù)s的訪問代碼。在這樣的變化例中,用于核實認(rèn)證實體的算法包括基于隊的可能數(shù)值的在選擇循環(huán)與時間間隙循環(huán)之間的附加中間循環(huán),其中s為表示使用認(rèn)證系統(tǒng)服務(wù)的索引,通過能夠產(chǎn)生當(dāng)前已分析的訪問代碼的服務(wù)開始,即e,Φ3,…。因此,在服務(wù)選擇存在錯誤的情況中,計算的數(shù)值可以增加至個附加的計算,在這種情況中必須提供專用的訪問代碼,S為考慮了持有者的這類服務(wù)的數(shù)值。在已經(jīng)核實M,i, x和Μ,2, x有效的情況后,如果s不對應(yīng)所產(chǎn)生訪問代碼的服務(wù), 則拒絕該認(rèn)證,但是認(rèn)證實體如同認(rèn)證過程已經(jīng)正確執(zhí)行一樣更新其內(nèi)部狀態(tài),使得與認(rèn)證裝置保持同步。值得注意的是,如果整數(shù)ms由函數(shù)&使用,而不是由函數(shù)Fx使用。在第四變化例中,對于專用服務(wù)而言,認(rèn)證實體為其提供了零時代碼,專用于該服務(wù)以及持有者的認(rèn)證裝置,持有者可將其與在提供訪問代碼之前顯示在持有者認(rèn)證裝置上的代碼進(jìn)行比較。認(rèn)證實體計算諸如Δ tt,其中tt表示由認(rèn)證實體的內(nèi)部時鐘測量的數(shù)值,以及ttMf為在數(shù)據(jù)堆棧π中最新存儲的數(shù)值。提供給持有者用于服務(wù)s的相互認(rèn)證代碼如同D(jj ;kk ;SN ;ms ; μ (Att))進(jìn)行計算。然后,認(rèn)證裝置可以顯示必須精確重新產(chǎn)生的代碼,其由請求認(rèn)證服務(wù)s來提供, 值得注意的是,當(dāng)s請求專用訪問代碼時,使得認(rèn)證裝置的持有者能夠確定他是由s授權(quán)的并且沒有尋求模仿S服務(wù)的。為此目的,在并行于認(rèn)證實體計算的方法,計算諸如t_tref的Δ t,其中t表示由認(rèn)證裝置內(nèi)部時鐘所測量的數(shù)值,并且由用于服務(wù)s的認(rèn)證裝置顯示例如D(j ;k;Kl ;SNO ; ms;U (At))的相互認(rèn)證代碼。D為單向函數(shù)。μ為所定義的At的編碼函數(shù),因此μ (At)為在[Δ t ; Δ t+n δ Μ]間隙中q. η δ Μ+ δ ‘類型的特有數(shù)值,其中· q為正或零整數(shù)數(shù)值;· η為在系統(tǒng)設(shè)計時所選擇的正或零的數(shù)值;· δ M = Qval+Pval,δ m = Qmin+Pmin,δ Q = Qval-Qmin,δ ρ = Pval-Pmin ;· 0彡δ ' <ηδΜ為在系統(tǒng)設(shè)計時任意選擇的;^Qmin為在由認(rèn)證實體計算相互認(rèn)證代碼時間與由認(rèn)證裝置計算互相認(rèn)證代碼時間之間可接受的最小時間。如果接受持有者可以在從服務(wù)s處請求相互認(rèn)證代碼之前在認(rèn)證裝置上顯示相互認(rèn)證代碼,則如果必要的話Qmin可以為負(fù)數(shù)。在時間Qmin之前,相互認(rèn)證代碼可以不為正確數(shù)值;· Qval為在由認(rèn)證實體計算相互認(rèn)證代碼的時間與由認(rèn)證裝置計算互相認(rèn)證代碼時間之間可接受的最大時間。在時間Qval之后,相互認(rèn)證代碼可以不為正確數(shù)值;· Pval為訪問代碼的最小有效時間;· Pfflin為用于傳輸由認(rèn)證裝置產(chǎn)生的訪問代碼的最小時間。Pval和Pmin已經(jīng)在時間間隔的管理的內(nèi)容中闡述。這里ttref~tref= φ+φ0禾口t-tt = -φ+φ”式中φ0ε [Pmin; Pvat],φ^ [Qmin; Qval],并且φ為任意差值且假設(shè)為常數(shù),但是可以偶爾在認(rèn)證實體和認(rèn)證裝置的時鐘之間變化。由此,我們可推導(dǎo)出 At-Att = (p0+(pt,所以 At-Att ε [ δ m ; δ J 0 對于給定的(pot= cp0+(pt,
μ (Att)與μ (At)不相同的可能性P(CPot)等于φο/ηδΜ。假設(shè)仉和恥在它們各自的定義域中平均的分布,則μ (Att)和μ (At)不相同的可能性等于在P(Cp0t)/(5P^Q)的[Pmin ; Pval] x[Qfflin ;Qval]的整數(shù),即(1+δω/δΜ)/2η。已經(jīng)增加η的選擇提高了相互認(rèn)證代碼正確的概率;其還可以增加該碼為常數(shù)的周期。這不能構(gòu)成一個確實的問題,因為,一方面,其包含用于獲得大于使得顯示的與提供的相互認(rèn)證代碼一致的0. 95概率的幾分鐘;另一方面,因為模仿s的服務(wù)不能預(yù)先獲知持有者將在幾分鐘的特定時間段中嘗試進(jìn)行認(rèn)證。一種處理可能和不確定結(jié)果的改進(jìn)實施例包括諸如訪問代碼的相互認(rèn)證代碼,其包括隨機(jī)(“質(zhì)疑”)部分,并且其由持有者在不一定接受它的認(rèn)證裝置上輸入。這種方法是可靠的,但是對于持有者而言較復(fù)雜,首先要求在認(rèn)證裝置上進(jìn)行輸入,其次進(jìn)行請求認(rèn)證的服務(wù),對于消費者的應(yīng)用而言可能過于復(fù)雜。當(dāng)由服務(wù)s提供并經(jīng)認(rèn)證實體顯示的相互認(rèn)證代碼是一致時,持有者可以輸入允許其進(jìn)行自身與服務(wù)s確認(rèn)的訪問代碼。當(dāng)不是這樣的情況(概率小于(1+δω/δΜ)/2η或認(rèn)證裝置和認(rèn)證實體的去同步)時,持有者可以在兩者之間進(jìn)行選擇 “刷新”由服務(wù)提供且由認(rèn)證裝置顯示的代碼。新的代碼一方面通過反轉(zhuǎn)δ, 的“相位”另一方面如同用于計算At和Att的參考時間進(jìn)行計算和提供/顯示,第一相互認(rèn)證代碼的計算瞬間,因為參考時間在代碼新刷新的情況下沒有變化。這樣的選擇可以解決在認(rèn)證裝置和認(rèn)證實體之間At去同步的情況,并且甚至當(dāng)不是在去同步的情況下,μ (Att)和μ (At)在這樣的情況中是不同的。在后一種情況中,可能會存在著概率 (1+δ ω/δ Μ)/2η的問題,因為At和Att已經(jīng)進(jìn)行了更新。一個新的刷新操作(變化相位但是不再變化參考時間)必然將解決這個問題;這個操作在一方面沒有解決在認(rèn)證裝置和認(rèn)證實體之間內(nèi)部狀態(tài)(j、k或δ,)去同步的情況,如果在提供/顯示的認(rèn)證代碼保持連
0續(xù)刷新的時間,那么持有者必須依賴下面的選擇在第一刷新后,這些代碼在兩個數(shù)值間交替; 獲得由認(rèn)證裝置顯示的偽訪問代碼,由與選擇B’相似的B”產(chǎn)生,使得能夠執(zhí)行連續(xù)的認(rèn)證,但是在認(rèn)證裝置和認(rèn)證實體之間的內(nèi)部狀態(tài)進(jìn)行重新同步(例如,S ’與 rancV的奇偶校驗進(jìn)行重新同步,同時在持有者個人密鑰正確輸入的條件下,At、j和k通過認(rèn)證協(xié)議的選擇B”重新同步),并且因此使得能夠提供/顯示一致的相互認(rèn)證代碼。由認(rèn)證實體考慮的B”除了在可信的代碼的情況中接受認(rèn)證的確定以外,在B’的所有其他情況下都是一致的。在第五變化例中,認(rèn)證裝置能夠顯示·由持有者輸入?yún)?shù)的函數(shù)代碼; 內(nèi)部狀態(tài)i、j、k的函數(shù)代碼;· SNO的函數(shù)代碼; 密鑰Kl的函數(shù)代碼,甚至是如果由持有者再次輸入情況下的H(C)的函數(shù)代碼。所述代碼具有不同的函數(shù)和顯示類型,顯示類型本身能夠從包含由用戶輸入的參數(shù)信息項的特性預(yù)先確定的多種形式中進(jìn)行選擇,或者從后者的計算中獲得。例如,在與服務(wù)成功的認(rèn)證之后,為了保護(hù)防止針對可能已經(jīng)成功但沒有監(jiān)測到的“中間人”攻擊的特別敏感的操作,為持有者提供IP地址且其預(yù)先已經(jīng)進(jìn)行編碼并以掩碼的特性進(jìn)行變化。這樣的掩碼由認(rèn)證實體提供,并且為內(nèi)部狀態(tài)的單向函數(shù),并專用于持有者和持有者的認(rèn)證裝置。然后,認(rèn)證裝置“清晰”地在持有者顯示器的瀏覽器中必須輸入的IP地址,以能夠繼續(xù)進(jìn)行操作,一個新的認(rèn)證可能由服務(wù)來請求,因為它是一個先進(jìn)行的會話。認(rèn)證裝置在傳輸信息不可能會被攻擊者攔截的條件下,具有允許其計算掩碼或其逆變換的所有要素,并因此將其應(yīng)用于已輸入的參數(shù)中,以便獲得原始的信息。另外,如果 “中間人”攻擊是較為普遍并且影響到了訪問提供者的路由而不僅是由持有者使用的“DNS” 緩存,則由認(rèn)證裝置顯示的多功能代碼可以用于執(zhí)行在持有者網(wǎng)絡(luò)瀏覽器與服務(wù)提供商網(wǎng)站之間的會話加密。在第六變化例中,存儲在認(rèn)證客戶端中的密鑰K3 (或者密鑰對pK3/sK3)籍助于認(rèn)證實體獲知的密鑰的特性進(jìn)行加密,在各個認(rèn)證客戶端的成功認(rèn)證中進(jìn)行更新,并且僅當(dāng)已傳輸?shù)脑L問代碼(通常由選擇C產(chǎn)生)正確時,將其提供至認(rèn)證客戶端。需要注意的是,所示出的實施例依賴于對訪問代碼透明的傳輸信道輸入數(shù)據(jù)項用于在其初始狀態(tài)中的接收,并且進(jìn)行傳輸?shù)耐瑫r不考慮其可能執(zhí)行的變換。本領(lǐng)域的技術(shù)人員可以簡單地將該實施例用于半透明的信道中,例如http協(xié)議的http摘要認(rèn)證模式的使用。在權(quán)利要求中,“包括”一字不排除其他要素,且不定冠詞“一個/ 一”不排除多個。
權(quán)利要求
1.一種用于認(rèn)證的用戶的系統(tǒng),包括具有認(rèn)證實體(1)的認(rèn)證裝置(3),所述認(rèn)證裝置包括用于存儲至少一個狀態(tài)變量的裝置(11),以及可在用戶請求下激勵驅(qū)動的一次性訪問代碼的發(fā)生器O),所述訪問代碼包括至少一個不可預(yù)測的部分并且傳輸至用于核實的認(rèn)證實體,所述核實使用所述認(rèn)證實體來認(rèn)證用戶,其特征在于 所述狀態(tài)變量以隨機(jī)方法由所述認(rèn)證裝置主動地在各個新訪問代碼產(chǎn)生前執(zhí)行系統(tǒng)更新; 一旦所述狀態(tài)變量已經(jīng)更新,所述發(fā)生器適用于通過所述至少一個狀態(tài)變量來計算所述訪問代碼;以及 所述認(rèn)證實體設(shè)置成通過使用所述認(rèn)證實體預(yù)先獲知的信息和由已傳輸訪問代碼表示的不可預(yù)測部分,在所述訪問代碼的至少部分核實中,來修改至少一個內(nèi)部變量的數(shù)值。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述認(rèn)證裝置包括至少三個狀態(tài)變量,并且所述認(rèn)證實體包括一一對應(yīng)于認(rèn)證裝置狀態(tài)變量的同一和相同數(shù)量的內(nèi)部狀態(tài)變量,以及所述系統(tǒng)包括第一、第二和第三認(rèn)證層級,各個認(rèn)證層級使用不同方法,以便更新至少三個狀態(tài)變量中的至少一個,所述的三種方法在認(rèn)證裝置和認(rèn)證實體中所共有。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于 在第一認(rèn)證層級中,至少三個狀態(tài)變量之中的一個,稱為第一狀態(tài)變量,由第一單向函數(shù)(U進(jìn)行更新,所述第一單向函數(shù)(Fu)具有作為輸入?yún)?shù)的其它狀態(tài)變量,在每個訪問代碼產(chǎn)生之前由認(rèn)證裝置產(chǎn)生至少一個專用于認(rèn)證裝置的密鑰和一個隨機(jī)密鑰; 在第二認(rèn)證層級中,在至少三個狀態(tài)變量之中的所述第一狀態(tài)變量和第二狀態(tài)變量由第一單向函數(shù)O^1, F2.2)分別進(jìn)行更新,所述單向函數(shù)具有作為輸入?yún)?shù)的其它狀態(tài)變量,至少一個專用于認(rèn)證裝置的密鑰、隨機(jī)密鑰、和在認(rèn)證裝置根據(jù)該第二層級產(chǎn)生各個訪問代碼之前由用戶輸入的信息項、以及在認(rèn)證實體上專用于用戶的密鑰代碼; 在第三認(rèn)證層級中,所述至少三個狀態(tài)變量由第一單向函數(shù)(Fu,F(xiàn)3.2,F(xiàn),3)分別進(jìn)行更新,所述第一單向函數(shù)(Fu,F(xiàn),2, F,3)具有作為輸入?yún)?shù)的至少一個專用于認(rèn)證裝置的密鑰、隨機(jī)密鑰、在認(rèn)證裝置根據(jù)第三層級所產(chǎn)生的各個訪問代碼之前由用戶輸入的信息項,以及在認(rèn)證實體上專用于用戶的密鑰。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,在所述第一認(rèn)證層級中,由認(rèn)證裝置產(chǎn)生的隨機(jī)密鑰不能重新使用同一和相同的數(shù)值,同時第二或第三層級不能被認(rèn)證裝置使用, 并且在第二層級中,所述隨機(jī)密鑰不能重新使用相同的數(shù)值,同時第三層級不能被認(rèn)證裝置使用。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述認(rèn)證裝置選擇必須根據(jù)至少一個法則確定特性的法則集合進(jìn)行使用的認(rèn)證層級,所述法則表現(xiàn)出,如果認(rèn)證裝置具有諸如用戶明確選擇的信息的直接項,或諸如在足夠接近的時間里由用戶重復(fù)使用的認(rèn)證裝置的信息非直接項,且至少可以滿足先前產(chǎn)生的訪問代碼沒有被認(rèn)證實體認(rèn)為是有效的,那么如果該要求的層級還不是第三層級時,則必須使用其它更高要求的認(rèn)證層級。
6.根據(jù)權(quán)利要求3至5中任一所述的系統(tǒng),其特征在于,所述發(fā)生器包括用于各個認(rèn)證層級根據(jù)第二單向函數(shù)(Gx)產(chǎn)生第一數(shù)值(MM2,x)的裝置,所述第二單向函數(shù)( )的輸入?yún)?shù)包括至少一個已更新的狀態(tài)變量。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述發(fā)生器包括適用各個認(rèn)證層級的 第三單向函數(shù)(Ex),用于產(chǎn)生第二數(shù)值(MM1J并且包括作為輸入?yún)?shù)的 認(rèn)證裝置的密鑰 隨機(jī)數(shù)值 一個具有逆向函數(shù)的函數(shù),用于將由第二和第三函數(shù)(Gx,Ex)產(chǎn)生的第一和第二數(shù)值與由認(rèn)證裝置產(chǎn)生的隨機(jī)密鑰相疊加,所述疊加數(shù)值表示訪問代碼并且逆向函數(shù)適用于允許認(rèn)證實體根據(jù)訪問代碼獲得第一數(shù)值、第二數(shù)值和的隨機(jī)密鑰。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述認(rèn)證實體適用于以不同的方法核實第二數(shù)值(MM1J的有效性和第一數(shù)值(MM2,x)的有效性。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,在有效性的核實過程中,所述認(rèn)證實體更新內(nèi)部狀態(tài)。
10.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述認(rèn)證裝置和所述認(rèn)證實體各自具有至少一個相互對應(yīng)且與第一和第二狀態(tài)變量不同的狀態(tài)變量,并且所述狀態(tài)變量籍助于單向函數(shù)的特性進(jìn)行更新,所述單向函數(shù)是例如該狀態(tài)變量的當(dāng)前數(shù)值和在由所述發(fā)生器產(chǎn)生訪問代碼的先前步驟中由所述認(rèn)證裝置產(chǎn)生的隨機(jī)密鑰的函數(shù)。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述認(rèn)證裝置和認(rèn)證實體各自包括時鐘和用于產(chǎn)生第一數(shù)值(MM2,x)的裝置,所述裝置適用于使用認(rèn)證裝置獲知的參考時間的確切數(shù)值與認(rèn)證裝置時鐘的當(dāng)前之間間隙的函數(shù),并且僅當(dāng)認(rèn)證實體在該認(rèn)證實體獲知一個或多個參考時間的確切數(shù)值對應(yīng)的確定時間間隔中接收到的訪問代碼,所述認(rèn)證實體適用于的訪問代碼的核實,并且當(dāng)?shù)诙?shù)值(MM1J有效時,用于更新其本身的一個或多個參考時間的測試。
12.根據(jù)上述任一權(quán)利要求所述的系統(tǒng),其特特征在于,由于所述系統(tǒng)允許對多個服務(wù)的用戶的認(rèn)證,訪問代碼由認(rèn)證裝置使用專用于特定服務(wù)的代碼來產(chǎn)生,使得通過認(rèn)證實體對其的核實過程僅對所述服務(wù)進(jìn)行訪問。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述認(rèn)證裝置適用于通過使用至少一個專用于服務(wù)、專用于認(rèn)證裝置和時間間隙的代碼來計算第一訪問代碼,以及認(rèn)證實體適用于計算專用于服務(wù)、專用于認(rèn)證裝置的第二訪問代碼,并將其傳輸至用戶,使得用戶可以將其與第一訪問代碼進(jìn)行比較,并且因此識別所確定的服務(wù),僅當(dāng)由認(rèn)證裝置計算第一訪問代碼在相對于由認(rèn)證實體計算第二密鑰代碼的時間的確定時間間隔中執(zhí)行并且所述專用于使用服務(wù)和認(rèn)證裝置的代碼都是相同時,則所述第一和第二訪問代碼是一致的。
14.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,還包括認(rèn)證客戶端(5),所述認(rèn)證客戶包括密鑰以及適用于根據(jù)由認(rèn)證裝置產(chǎn)生的訪問代碼來產(chǎn)生第二訪問代碼,所述第二訪問代碼適用于認(rèn)證具有認(rèn)證實體的用戶。
全文摘要
本發(fā)明涉及用于用戶的系統(tǒng),用處理在認(rèn)證實體(1)上認(rèn)證的裝置(3),所述認(rèn)證裝置包括用于存儲至少一個狀態(tài)變量的裝置(11)和根據(jù)用戶請求激發(fā)驅(qū)動的一次性使用的訪問代碼發(fā)生器(2),所述訪問代碼包括至少一個不可預(yù)測部分并傳輸至認(rèn)證實體進(jìn)行核實,所述核實在認(rèn)證實體中認(rèn)證用戶,其特征在于,狀態(tài)變量以隨機(jī)的方法通過并且根據(jù)認(rèn)證裝置的激勵驅(qū)動在任何新的訪問代碼產(chǎn)生之前進(jìn)行系統(tǒng)性的更新;其中一旦其被更新,則發(fā)生器用于使用狀態(tài)變量來計算訪問代碼;認(rèn)證實體用于在訪問代碼至少部分核實期間通過使用認(rèn)證實體先前獲知的信息和由傳輸?shù)脑L問代碼表示的不可預(yù)測部分來修改至少一個內(nèi)部狀態(tài)變量的數(shù)值。
文檔編號H04L9/32GK102187619SQ200980141641
公開日2011年9月14日 申請日期2009年10月6日 優(yōu)先權(quán)日2008年10月15日
發(fā)明者迪迪?!づ辶_特 申請人:英-韋博技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1