專利名稱:用于用戶認證的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于用戶認證的方法和裝置。本發(fā)明尤其涉及生成一次用口令(single-use password)。
背景技術(shù):
使用口令認證已為人所知。口令由用戶保密持有以確保第三方?jīng)]有相同的訪問權(quán)限。生成口令的能力作為一種驗證并且由一裝置或者管理設(shè)備接收,該裝置或者管理設(shè)備作為用戶訪問的授權(quán)方。該口令技術(shù)組成那些稱為“薄弱的”認證系統(tǒng)的一部分。
這種方法的一個缺點與該認證信息的靜態(tài)特性有關(guān)一第三方可能破解該口令,隨后他便具有與該用戶相同的訪問權(quán)限。一次用口令系統(tǒng)(或者“一次性口令”以后將其簡稱為OTP)提供了這一問題的一個解決方案,該系統(tǒng)內(nèi)口令僅在一次處理中有效。
在這樣的系統(tǒng)之中,異步或者詢問(challenge)/應(yīng)答類型的系統(tǒng)已為人所知。當一用戶希望被一服務(wù)器認證時,該服務(wù)器生成一詢問(例如隨機地),并將其發(fā)送至該用戶。該用戶在一客戶端裝置上捕獲該詢問。這一裝置隨后由哈西函數(shù)(hash函數(shù))和加密算法生成OTP。該用戶發(fā)送該OTP至該服務(wù)器,該服務(wù)器具有用于其驗證的所有有用信息,隨后該用戶被認證。
同步系統(tǒng)同樣為人所知,在該系統(tǒng)中操作通常保持相同,除了該詢問與實時對應(yīng)(這是固有的)或者與該裝置內(nèi)置的一計數(shù)器對應(yīng)(例如一個每次使用都累加的數(shù)值)。該客戶端裝置是例如該用戶持有的一認證標志,其用于生成口令以允許該服務(wù)器認證該用戶。一個認證標志可具有各種形式卡片,微型計算器,鑰匙環(huán),等等。后一技術(shù)更為簡單,因為該用戶無需鍵入該詢問。盡管如此,它需要該客戶端裝置與該服務(wù)器之間的同步。
例如,雙因素身份認證系統(tǒng)(RSA SecurID system)包括基于時間和一共享密鑰生成一次用口令的一客戶端裝置(例如一標志)。更獨特地,所討論的該裝置包含與一每60秒生成一個編碼的算法結(jié)合的一個唯一的對稱密匙。結(jié)合一私人用戶編碼,這種類型的裝置允許實現(xiàn)有力的驗證。因為所得數(shù)字是動態(tài)的,且難以預(yù)知。因此黑客難以破解該對應(yīng)于一特殊時刻的編碼。一種特殊技術(shù)用于使每一裝置與該安全服務(wù)器同步。
這種系統(tǒng)的第一個缺點是該客戶端裝置有規(guī)則間隔地生成口令,這有時是不必要的,甚至與某些應(yīng)用軟件不兼容。而且,這也消耗能源。
另一缺點在于任何捕獲該共享密鑰的攻擊者都可以再生該口令。因此函數(shù)炸彈攻擊(fork bomb attack,也稱為hi-jacking)成為一種風險。事實上,認證發(fā)生在連接的時刻。一旦通過這一認證,驗證將不再存在,因為認證總是正確的。轉(zhuǎn)換一例如該TCP/IP類型或這一DTMF傳輸?shù)耐ㄓ嵰彩强赡艿摹R坏┰撧D(zhuǎn)換被實施,該服務(wù)器與該攻擊者對話,并且該攻擊者會利用該受害者的會話。
因此,需要一種針對上述缺點的簡單的解決方案。
發(fā)明內(nèi)容
本發(fā)明涉及一種用于通過服務(wù)器的用戶認證方法,包括提供帶有變量K、t、x的加密函數(shù)的客戶端裝置,其中K是該服務(wù)器和該客戶端裝置共享的密鑰;t是與時間有關(guān)的變量;以及x是具有至少兩個值的變量,由該客戶端裝置計算用于x第一值的該函數(shù)第一值,以用于該服務(wù)器執(zhí)行的用戶認證驗證的步驟;以及由該客戶端裝置計算用于x第二值的該函數(shù)第二值,以用于該服務(wù)器執(zhí)行的用戶認證驗證的步驟。
在該優(yōu)選實施例中,根據(jù)本發(fā)明的方法包括一個或者多個下列特征
根據(jù)本發(fā)明的方法還包括,在該第一計算步驟之后的步驟提供該第一值給該服務(wù)器;由該服務(wù)器認證該用戶,使用所提供的第一值;以及發(fā)送用戶請求至該服務(wù)器,該方法還包括,在該第二計算步驟之后的步驟提供該服務(wù)器該第二值的至少一部分;以及由該服務(wù)器使用所述第二值的至少一部分驗證該用戶認證;根據(jù)本發(fā)明的認證方法還包括,在該計算步驟之間的一個步驟該用戶從該服務(wù)器接收包括該第二值至少一部分的一詢問;在一個和/或其他的計算步驟中,該函數(shù)使用變量K、t、x的一鏈接值;該變量x是一位編碼變量;以及該函數(shù)包括一個哈西函數(shù)。
本發(fā)明還涉及一設(shè)有變量K、t、x的加密函數(shù)的用戶認證裝置K是與服務(wù)器共享的密鑰;t是與時間有關(guān)的變量;以及x是具有至少兩個值的變量,該裝置包括用于所述至少兩個x值中的一個或另一個的函數(shù)值計算工具。
在所述優(yōu)選實施例中,根據(jù)本發(fā)明的裝置包括一個或者多個下列特征根據(jù)本發(fā)明該裝置還包括該用戶改變該變量x的工具;以及該用戶通過該裝置計算該函數(shù)值的激活工具;該改變和激活工具是集成的;根據(jù)本發(fā)明的裝置還包括顯示函數(shù)值的工具,包括顯示器的不同分離部分,該裝置能夠在各個顯示部分中顯示函數(shù)的各部分。
該計算工具能夠使用變量K、t、x的鏈接值計算函數(shù)值;以及該變量x是一位編碼變量。
本發(fā)明其他特征和優(yōu)點將在下文結(jié)合本發(fā)明給出的實施例和附圖詳細說明,給出這些實施例的目的僅在于示例本發(fā)明。附圖中圖1是根據(jù)本發(fā)明的一實施例示出方法的步驟的流程圖;以及圖2示出根據(jù)本發(fā)明一客戶端裝置的例子。
具體實施例方式
本發(fā)明提出一種用于用戶認證的方法和裝置,所述方法和裝置基于一個加密函數(shù)使用一共享密鑰和一個時間變量,以生成一次用口令。該函數(shù)還基于另外的一個變量,如果需要該變量值可以由該用戶改變。這個值的改變在例如由該服務(wù)器發(fā)出詢問之后發(fā)生,該詢問可由該用戶的一請求生成。一方面,該口令被改變的時刻無法預(yù)知。另一方面,該自變量的值變化,并因此該函數(shù)值變化。考慮到加密函數(shù)的一般特性,函數(shù)炸彈攻擊更難以像針對常規(guī)的OTP系統(tǒng)那樣發(fā)揮作用。該用戶優(yōu)選地可以僅僅傳送該新口令的一部分,這是根據(jù)來自該服務(wù)器的一個簡化的詢問。實質(zhì)上這改進了該系統(tǒng)的工效因素?;诟鶕?jù)本發(fā)明的方法的原則允許用戶認證的簡化,尤其是響應(yīng)用戶請求這一點。
參閱圖1,該方法提供了由客戶端設(shè)備執(zhí)行的函數(shù)f(K,t,x)第一值的計算步驟(步驟S30)。
變量K該服務(wù)器和該客戶端裝置共享的一密鑰;這典型地涉及一密鑰,也就是通常只有所述兩個對應(yīng)端才了解的唯一密鑰。如本領(lǐng)域普通技術(shù)人員所知,該加密安全取決于這一共知密鑰的機密性。
變量t以這樣或那樣的方式與時間相關(guān)。典型地,這是一實時變量。為了避免在后繼服務(wù)器側(cè)的驗證出現(xiàn)同步問題,如本領(lǐng)域普通技術(shù)人員所知,可以例如分配時隙。同樣可以將變量t作為在每一次連接后增量的一個數(shù)來實施(因此隨時間發(fā)展)。本領(lǐng)域普通技術(shù)人員了解實施該密鑰和時間變量的各種技術(shù)。
根據(jù)本發(fā)明,該函數(shù)也取決于該變量x,該變量x至少具有兩個值。為此,并且根據(jù)一變量,該變量可為一個一位編碼變量,下面將給出一個這樣的例子。
函數(shù)f為一函數(shù),典型地適于加密或者散列法或者也適于消息認證編碼或者MAC。其優(yōu)選為一哈西函數(shù)或者雙哈西函數(shù)(例如MD5,SHA或者SHA的擴展),包括一散列算法。如本領(lǐng)域普通技術(shù)人員所知,這一函數(shù)使一個大值集的若干值對應(yīng)于一縮小的值域。該算法允許所生成的初始消息的消息分類。
更確切地,一哈西函數(shù)f需要f(n)≠f(m)意味著n≠m,并且f(n)=f(m)很可能意味著n=m。如果n所在的集大于f的值集,那么f的值集的特性很難被估計。事實上,在密碼文中,查詢一函數(shù)f以獲知用于該散列值f(n)的任何n,隨后將很難(也就是技術(shù)上不可能或者不太可能)計算出一個滿足f(n)=f(m)的m。
在一尤其簡單而有效的實施例中,該函數(shù)使用變量K、t和x的一鏈接值(concatenated value)。所執(zhí)行的計算可對應(yīng)于f(C=t K x)≡f(K,t,x)。
考慮到的該散列級,變量x可為例如一附加位。將x在一附加位上編碼是尤其簡單而有利的,因為這有效地提供了兩個可能的該變量x的值。
舉例說明,該時間變量可用一字節(jié)編碼,如數(shù)字11001010。該密碼或者該密鑰例如可以為一個字符串值1011001010100111101010101100001010(用粗體示出以區(qū)別其他值)。也可以查詢它以組成(i)f(K,t,x=0)=f(1100101010110010101001111010101011000010100);或者(ii)f(K,t,x=1)=f(1100101010110010101001111010101011000010101)。
執(zhí)行上述計算步驟獲得x的第一值,例如x=0。
如果必要,該計算步驟后接一個提供f(K,t,x=0)的一結(jié)果給該服務(wù)器的步驟(步驟S40)。根據(jù)所構(gòu)想的硬件配置,這個結(jié)果可以通過任何方式提供給該服務(wù)器。這一結(jié)果尤其可以在確認用戶后由該客戶端裝置發(fā)送,當該裝置與該服務(wù)器連接(例如利用一USB端口,通過一客戶端計算機經(jīng)互聯(lián)網(wǎng)連接該服務(wù)器)。在一變體中,該結(jié)果通過該客戶端裝置顯示,借此用戶自己可以將該結(jié)果發(fā)送給該服務(wù)器,尤其當該裝置未連接時。
因此根據(jù)本發(fā)明的方法包括使用等同于上述計算的計算結(jié)果用戶認證的步驟(步驟S50)。具體地,該服務(wù)器了解該密鑰、時間或者時隙,因此具有認證該用戶所必需的信息、第一時間。本領(lǐng)域普通技術(shù)人員了解這樣一個原則,這里除了該變量x變換該自變量,而且隨后函數(shù)f的值也被變換。
優(yōu)選地,當一用戶向該服務(wù)器發(fā)出一個請求(步驟S80),或者,在這個請求之后(步驟S70),該用戶向該服務(wù)器傳送函數(shù)f第二值的至少一部分,該函數(shù)f的第二值由該客戶端裝置計算用于x的第二值(例如上述x=1)。該x值的改變可以由該用戶自己執(zhí)行。參照圖2這一點將被描述。
隨后根據(jù)相同的認證原則該服務(wù)器可自行驗證該認證。因此對該用戶請求的隨后訪問可以服從于由該服務(wù)器執(zhí)行的認證驗證。
應(yīng)當注意的是,根據(jù)這個原則,該裝置不必通知該用戶每個可能生成的滿足x=0的新口令。該用戶只需在必要時呼叫該裝置。因此,該用戶可以例如在第一時間呼叫或者控制該裝置以認證自己(x=0),隨后在第二時間呼叫該裝置發(fā)布新口令(x=1),該新口令允許該服務(wù)器驗證該認證。
一個應(yīng)用的實例是一用戶遠程管理銀行帳戶。該用戶在第一時間由該銀行服務(wù)器認證(例如在步驟S50中)。該認證允許他訪問有關(guān)他的銀行賬戶的信息。然后,當該用戶希望執(zhí)行對其賬戶的操作時(用戶請求),在該用戶正確響應(yīng)該服務(wù)器所發(fā)布的一詢問的條件下,該服務(wù)器可以提交該操作的確認(也就是接收該請求)。
服務(wù)器發(fā)布關(guān)于f(K,t,x=1)的一詢問。這個詢問由該用戶接收(步驟S90)。
優(yōu)選地,該服務(wù)器可以發(fā)布一個僅僅與f(K,t,x=1)結(jié)果的一部分相關(guān)的詢問,例如僅僅關(guān)于所述結(jié)果的兩個數(shù)字(這在實踐中,確保對該認證的驗證得到有效保護)。因此該用戶只有少數(shù)的字符傳送到該服務(wù)器。因此該方法的工效因素得到了改進。
而且,發(fā)送到該服務(wù)器的結(jié)果的一部分可由該服務(wù)器隨機選擇。例如,根據(jù)隨機(因此不可預(yù)知)程序,該服務(wù)器可以問詢與其通訊的該結(jié)果的前兩個數(shù)字,或者下兩個等等。這進一步減小破解的可能。為此,將結(jié)合圖2描述一非常有利的裝置。
當該用戶正確響應(yīng)該詢問,他的請求可以被接受(步驟S140)。
圖2示出根據(jù)本發(fā)明的客戶端裝置10的一個例子。如上所示這個裝置允許用戶認證以及該認證的驗證。
該裝置裝配有計算該函數(shù)f(K,t,x)值的工具,該函數(shù)用于所述x的至少兩個值中的一個或另一個。該裝置還包括用于改變變量x的用戶工具16。以例如一個簡單的按鈕的形式提供該工具。按壓此按鈕可使x=0變?yōu)閤=1。
該裝置10還包括激活該裝置計算該函數(shù)值的用戶激活裝置16;以及函數(shù)值的顯示裝置20。該工具可為例如一液晶顯示器。
因此在一實施例中,該裝置可以默認顯示一個對應(yīng)于該密鑰和該連接或者該實時變量(例如一實時時隙)的口令。這個口令允許他在任何指定時刻由該服務(wù)器認證。之后,該服務(wù)器響應(yīng)一詢問,該用戶按該按鈕。該x值隨后轉(zhuǎn)變。
優(yōu)選地,該改變和初始工具16是集成的;因此,當該用戶按該按鈕16時,他同時將f(K,t,x=1)的計算結(jié)果顯示出來。
同樣優(yōu)選地,該顯示工具包括分離的顯示部分23-25。這些部分可以例如由顯示屏20上的分區(qū)部分獲得或者由分離的屏幕提供。本領(lǐng)域普通技術(shù)人員會尋求在所述部分之間間隔字符的顯示的實例,以便更易于閱讀。
而且,該裝置可在各個顯示部分23,24,25中顯示該函數(shù)值的部分。因此該用戶可獲一相關(guān)上述方法的工效裝置。如上所述,該服務(wù)器可在這些部分之一上顯示該詢問。例如該詢問可以是“在部分A中輸入顯示的兩個數(shù)字”。在此詢問之后,在該圖所示的例子中,該用戶必須鍵入數(shù)字89。
參考上述應(yīng)用的例子,典型的關(guān)聯(lián)銀行帳戶的操作的詢問可以是查看你的余額,按跳過(bypass)鍵16并且輸入字母C下出現(xiàn)的數(shù)字;以及預(yù)定新的支票簿,按跳過(bypass)鍵16并且輸入字母B下出現(xiàn)的名字。
根據(jù)替換實施例,該裝置可包括對應(yīng)字母的帶有十個不同顯示部分的LCD,例如ABCDEFGHIJ。
在一個變體中,該詢問可為暗示的。例如,根據(jù)一個預(yù)設(shè)的或者是通過默認方式帶給用戶的一程序,一個來自用戶銀行賬戶的轉(zhuǎn)賬操作暗中與提供一數(shù)字顯示在部分A上相關(guān)聯(lián)。這種情況中,在發(fā)出請求的同時,該用戶提供給該服務(wù)器對應(yīng)數(shù)字(例如通過在一個請求框中鍵入這個數(shù)字)。
根據(jù)另一變體,該裝置還包括連接該服務(wù)器的工具12,用于發(fā)送該函數(shù)值給該服務(wù)器,例如一USB端口12。因此當該客戶端裝置連接該服務(wù)器時,提供該函數(shù)f(K,t,x)的值可從該客戶端裝置被直接發(fā)送,例如通過一用戶私人計算機和互聯(lián)網(wǎng)。
若必要,只需發(fā)送f(K,t,x=0)的值給該服務(wù)器認證。相反,為了提高安全性,該裝置可設(shè)計為f(K,t,x=1)的值僅僅在該顯示器上可得。
根據(jù)另一變體,該裝置可設(shè)有兩個不同的主顯示部分(例如,兩個不同的LCD)。一個可顯示f(K,t,x=0)的值,而另一個可顯示f(K,t,x=1)的值。這樣,該值f(K,t,x=0)的值和f(K,t,x=1)的值都可以顯示并且該用戶可在任何時刻看到每一個值。因此沒有必要通過一個專門的動作激活f(K,t,x=1)的計算。因此,也沒有必要給該裝置裝配一個按鈕。而且,在每個主顯示部分中,該裝置可以通過顯示部分23,24,25的方式,在不同的顯示子部分中顯示該函數(shù)f值的部分。
本發(fā)明將因此適于應(yīng)用在償付終端上。例如,可查詢一個對應(yīng)所執(zhí)行的交易總量的詢問,例如在一個商店中。
而且,本發(fā)明并不限于上述變體,而可為本領(lǐng)域普通技術(shù)人員容易獲得的該主題下的許多其他的變化形式。通過示例的方式,有可能執(zhí)行能夠容錯的一哈西函數(shù)。同樣還可能使用服從于私人靜態(tài)口令確認的客戶端裝置等。
權(quán)利要求
1.一種用于通過服務(wù)器的用戶認證方法,包括提供帶有變量K、t、x的加密函數(shù)的客戶端裝置,其中K是該服務(wù)器和該客戶端裝置共享的密鑰;t是與時間有關(guān)的變量;以及x是具有至少兩個值的變量,由該客戶端裝置計算用于x第一值的該函數(shù)第一值,以用于該服務(wù)器執(zhí)行用戶認證驗證的步驟(S30);以及由該客戶端裝置計算用于x第二值的該函數(shù)第二值,以用于該服務(wù)器執(zhí)行用戶認證驗證的步驟(S80,S110)。
2.根據(jù)權(quán)利要求1所述的方法,其還包括在該第一計算步驟(S30)之后的步驟提供該第一值給該服務(wù)器(S40);由該服務(wù)器使用所提供的第一值認證該用戶(S50);以及發(fā)送用戶請求至該服務(wù)器(S70,S80),該方法還包括,在該第二計算步驟之后的步驟提供該服務(wù)器該第二值的至少一部分(S110,S80);以及由該服務(wù)器使用所述第二值的至少一部分驗證該用戶認證(S50)。
3.根據(jù)權(quán)利要求1或2所述的方法,其還包括在該計算步驟(S30)和(S80,S110)之間的一個步驟該用戶從該服務(wù)器接收包括該第二值至少一部分的詢問(S90)。
4.根據(jù)權(quán)利要求1至3中任意一項所述的方法,其特征在于在一個和/或其他的計算步驟(S30)、(S80,S110)中,該函數(shù)使用變量K、t和x的一鏈接值。
5.根據(jù)權(quán)利要求1至4中任意一項所述的方法,其特征在于該變量x是一位編碼變量;
6.根據(jù)權(quán)利要求1至5中任意一項所述的方法,其特征在于該函數(shù)包括哈西函數(shù)。
7.一種設(shè)有變量K、t、x的加密函數(shù)的用戶認證裝置,其中K是與服務(wù)器共享的密鑰;t是與時間有關(guān)的變量;以及x是具有至少兩個值的變量,該裝置包括用于所述至少兩個x值中的一個或另一個的函數(shù)值計算工具。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,該裝置還包括由該用戶改變該變量x的工具(16);以及由該用戶激活通過該裝置計算該函數(shù)值的工具(16)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,該改變和激活工具是集成的。
10.根據(jù)權(quán)利要求7,8或9所述的裝置,其特征在于,該裝置還包括顯示函數(shù)值的工具(20),包括顯示器的不同分離部分(23-25),該裝置能夠在各個顯示部分(23-25)中顯示函數(shù)值的各部分。
11.根據(jù)權(quán)利要求7至10中任意一項所述的裝置,其特征在于,該計算工具能夠使用變量K、t、x的鏈接值計算函數(shù)值。
12.根據(jù)權(quán)利要求7至11中任意一項所述的裝置,其特征在于,該變量x是一位編碼變量。
全文摘要
本發(fā)明包括一種用于通過服務(wù)器的用戶認證方法,包括提供帶有變量K、t、x的加密函數(shù)的客戶端裝置,其中K是該服務(wù)器和該客戶端裝置共享的密鑰;t是與時間有關(guān)的變量;以及x是具有至少兩個值的變量,由該客戶端裝置計算用于x第一值的該函數(shù)第一值,以用于該服務(wù)器執(zhí)行的用戶認證驗證的步驟(S30);以及由該客戶端裝置計算用于x第二值的該函數(shù)第二值,以用于該服務(wù)器執(zhí)行的用戶認證驗證的步驟(S80,S110)。本發(fā)明還涉及一種設(shè)有計算所述函數(shù)值的工具的用戶認證裝置。
文檔編號H04L9/30GK101090322SQ20071011107
公開日2007年12月19日 申請日期2007年6月13日 優(yōu)先權(quán)日2006年6月13日
發(fā)明者戴維·納卡什 申請人:英格尼可公司