專利名稱:用于驗(yàn)證口令的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及驗(yàn)證口令的方法,以及用于口令驗(yàn)證的設(shè)備和軟件,例如用于信用卡事務(wù)處理或用于硬件或網(wǎng)站登錄的驗(yàn)證。
有人預(yù)測(cè),電子商務(wù)是人們使用因特網(wǎng)的主要理由之一。目前,在線事務(wù)處理的發(fā)展的主要障礙,是由于TCP/IP的開(kāi)放特性而使信用卡和口令被暴露的安全問(wèn)題。信用卡問(wèn)題的主要原因是偷盜和非法拷貝信用卡。這些問(wèn)題直接與當(dāng)前信用卡所使用的口令系統(tǒng)的問(wèn)題有關(guān)。
許多公司已經(jīng)試圖找到為信用卡和在線事務(wù)處理提供安全解決方案的方法。經(jīng)常提出的是硬件解決方案,但是這些方案既昂貴,也不盡完善,因?yàn)樗鼈兛赡鼙豢截惢蚴芎诳凸簟4送?,因特網(wǎng)上流動(dòng)的任何數(shù)據(jù),無(wú)論是否被加密過(guò),都可能被他人截獲或者可能被再使用。加密之所以有用是因?yàn)槿藗儾荒苊靼准用艿臄?shù)據(jù),但是從技術(shù)上講,在因特網(wǎng)上,任何加密的數(shù)據(jù)都能“按現(xiàn)狀”被再使用。
Choonyeol Yu在Nikkei Electronics Asia(2000年4月)中已經(jīng)提出了一種動(dòng)態(tài)口令算法,作為一種通過(guò)簡(jiǎn)單地改變口令的算法而在用于信用卡安全的計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)的軟件解決方案。以前的系統(tǒng)允許每次用相同的字母數(shù)字輸入作為口令,而所述系統(tǒng)則是動(dòng)態(tài)的,根據(jù)信用卡何時(shí)何地被使用而自動(dòng)地變更口令。利用按照時(shí)間點(diǎn)和/或地點(diǎn)等而變化的變量的特性來(lái)設(shè)置口令。時(shí)間點(diǎn)包括年、月、日、小時(shí)、分、秒,甚至納秒;而地點(diǎn)則包括地區(qū)碼、郵政編碼、主機(jī)IP地址、公司名稱等等。
在連接到銀行服務(wù)器的日期和時(shí)刻的要送入的實(shí)際數(shù)值數(shù)字是這樣計(jì)算的“靜態(tài)口令(x+)變量。
圖1表示設(shè)置口令的方法以及口令的使用方法。參看該圖,圖中顯示的主口令10有一個(gè)第一部分(或字段)11和一個(gè)第二部分(或字段)12。例如,將主口令設(shè)定為1234。將主口令的各部分與可變的因素聯(lián)合起來(lái),以確定要在一個(gè)給定時(shí)間輸入的實(shí)際口令。本例中,第一部分11將與一個(gè)以小時(shí)計(jì)的時(shí)間因素聯(lián)合,第二部分12將與一個(gè)以月份計(jì)的時(shí)間因素聯(lián)合。因此,例如,當(dāng)用戶希望在2月5日10點(diǎn)鐘輸入口令時(shí),小時(shí)因素是10,月份因素是2(表示二月)。將這些因素與口令的對(duì)應(yīng)部分相加,使得在該日的該時(shí)刻要輸入的口令為2236。類似地,在10月5日的15:00,要被輸入的口令是2746。
以上技術(shù)能解除用戶的擔(dān)憂,即口令可能在銀行被用戶以外的他人獲知、或者在因特網(wǎng)上被黑客獲知。然而還是有這樣的問(wèn)題,即如果欺詐者或黑客不但獲知了主口令,而且也獲知了隨后產(chǎn)生口令的方案,則安全性就有風(fēng)險(xiǎn)。額外的安全措施是有益的。
本發(fā)明的一個(gè)目的是提供防止口令被接收者或偷聽(tīng)者再使用的額外安全保護(hù)。
按照本發(fā)明的第一個(gè)方面,提供一種驗(yàn)證口令的方法,該口令能以一連串的實(shí)例的形式提供,并具有第一字段集合和第二字段。第一字段集合包含以下的至少一個(gè)(a)靜態(tài)字段,它對(duì)每個(gè)口令實(shí)例都不變;(b)動(dòng)態(tài)字段,它根據(jù)外來(lái)數(shù)據(jù)而隨著每個(gè)口令實(shí)例而改變。第二字段(在本文中被稱作“滯后字段”或“帶歷史的動(dòng)態(tài)字段”)被安排成含有該口令的在先實(shí)例的一個(gè)函數(shù)的數(shù)據(jù)(或口令的在先實(shí)例中的數(shù)據(jù)),該方法包含接收一個(gè)當(dāng)前提供的口令實(shí)例;進(jìn)行一個(gè)比較操作,其中,利用自從口令的一個(gè)在先實(shí)例的驗(yàn)證以來(lái)所保留的數(shù)據(jù),對(duì)當(dāng)前提供的口令實(shí)例的第二字段進(jìn)行比較。
通過(guò)這些方法,一個(gè)口令的一個(gè)實(shí)例(或者甚至是該口令和用于構(gòu)造新口令的算法)只能有效使用一次,而不能被再使用??诹钅鼙还蚕硪怨┮淮涡允褂茫瑫r(shí)防止接收者再次使用口令。即使知道任何方案和必需的外部數(shù)據(jù)(如地點(diǎn)和時(shí)間),也不足使口令的一個(gè)新實(shí)例被生成。
第一字段集合最好包含一個(gè)靜態(tài)字段和一個(gè)動(dòng)態(tài)字段。對(duì)于動(dòng)態(tài)字段來(lái)說(shuō),比較的步驟可包含接收具有下列形式的外部數(shù)據(jù),即日期和/或時(shí)間和/或地點(diǎn)數(shù)據(jù)和/或機(jī)器IP地址等。
在成功的比較之后,為了下一個(gè)口令實(shí)例的比較而保留數(shù)據(jù)。所保留的數(shù)據(jù)可包含口令的當(dāng)前提供的實(shí)例的接收實(shí)例日期和時(shí)間的其中之一,以及/或者可包含當(dāng)前提供的口令實(shí)例的至少一部分。此外或者作為替代,從當(dāng)前提供的口令實(shí)例的實(shí)例的接收的地點(diǎn)中導(dǎo)出的所保留的數(shù)據(jù)(例如,所保留的數(shù)據(jù)可以由地點(diǎn)名中的字符的個(gè)數(shù)組成)。
比較的步驟最好包含至少生成被生成的口令實(shí)例的第二字段;并比較當(dāng)前提供的口令實(shí)例的第二字段與被生成的口令實(shí)例的第二字段。
按照本發(fā)明的另一個(gè)方面,提供一種設(shè)備,諸如膝上型電腦、個(gè)人數(shù)字助理(PDA)、或客戶機(jī)-服務(wù)器裝置對(duì),以用于接收和驗(yàn)證口令,該口令能以一連串的實(shí)例的形式提供。該設(shè)備包含輸入裝置,用于輸入當(dāng)前提供的口令實(shí)例;比較裝置,用于進(jìn)行一個(gè)比較操作,其中,利用自從口令的一個(gè)在先實(shí)例的驗(yàn)證以來(lái)所保留的數(shù)據(jù),對(duì)當(dāng)前提供的口令實(shí)例的滯后字段(帶歷史的動(dòng)態(tài)字段)進(jìn)行比較。
在設(shè)備是諸如膝上型電腦或PDA這類獨(dú)立裝置的情況下,輸入裝置可以是鍵盤(pán)或小鍵盤(pán)。在設(shè)備是連網(wǎng)的裝置的情況下,輸入裝置可以是網(wǎng)絡(luò)上的另一個(gè)裝置。在后一種情況下,輸入裝置與比較裝置的距離遙遠(yuǎn),可以提供加密裝置,用于對(duì)從輸入裝置向比較裝置發(fā)送的口令進(jìn)行加密。
一個(gè)存儲(chǔ)器,最好是在比較裝置中,在成功的比較后保留數(shù)據(jù),以用于口令的下一個(gè)實(shí)例的比較。
所描述的并要求保護(hù)的本發(fā)明,可以用一種上面有存儲(chǔ)的指令和數(shù)據(jù)的數(shù)據(jù)載體的形式提供。如下文詳細(xì)說(shuō)明的那樣,這些指令和數(shù)據(jù),在被裝入適當(dāng)?shù)挠?jì)算機(jī)的存儲(chǔ)器中并且在一個(gè)當(dāng)前提供的口令的實(shí)例被提供時(shí),使計(jì)算機(jī)執(zhí)行一個(gè)比較操作,其中,利用自口令的一個(gè)在先實(shí)例的驗(yàn)證以來(lái)所保留的數(shù)據(jù),對(duì)當(dāng)前提供的口令的實(shí)例的滯后字段(帶歷史的動(dòng)態(tài)字段)進(jìn)行比較。
僅僅作為例子,現(xiàn)在參考附圖來(lái)描述本發(fā)明的優(yōu)選實(shí)施例的其它方面和詳情。
圖1表示現(xiàn)有技術(shù)的一種動(dòng)態(tài)口令的選定方案的方法。
圖2表示按照本發(fā)明第一實(shí)施例的具有滯后的動(dòng)態(tài)口令分配的方法。
圖3表示按照本發(fā)明第二實(shí)施例的具有帶有歷史的動(dòng)態(tài)字段的口令的結(jié)構(gòu)。
圖4表示按照本發(fā)明第二實(shí)施例的具有帶有歷史的動(dòng)態(tài)字段的口令的使用。
圖5表示用于接收按照本發(fā)明的口令的硬件裝置。
圖6是表示在諸如圖5的裝置中的軟件的操作的流程圖。
參看圖2,圖中所示的一種主口令100具有五個(gè)字段101至105。字段101是動(dòng)態(tài)的,是一個(gè)日期字段。字段102是動(dòng)態(tài)的,是一個(gè)小時(shí)字段。字段103和104是滯后字段,其中前一個(gè)(字段103)是一個(gè)在先日期字段,第二個(gè)(字段104)是一個(gè)在先小時(shí)字段。字段105是一個(gè)靜態(tài)字段。在主口令的下方,表明了一個(gè)當(dāng)前口令110,該口令是按以下方式從主口令導(dǎo)出的。在所給的例子中,口令110是在2月21日14:15生成的。在這個(gè)實(shí)例中,將用日期中的日數(shù)字來(lái)修改日期字段101,用時(shí)間中的小時(shí)數(shù)字來(lái)修改小時(shí)字段102。在所給的例子中,主口令是1234567890。
在2月21日14:15生成口令110的方法是,把21與字段101中的值相加,得出33,將14與字段102中的值相加,得出48?!霸谙热掌凇弊侄?13從主口令100(在本案例中這是上一個(gè)有效口令)的日期字段101中取值,“在先小時(shí)”字段114從主口令100的小時(shí)字段102中取值。靜態(tài)字段115不變,而是取口令100的靜態(tài)字段105中的值90。這樣,新的口令是3348123490。
進(jìn)一步向下看圖,第三口令120是以類似的方式生成的。日期和小時(shí)字段121及122是用當(dāng)前日期和當(dāng)前小時(shí)(即輸入該新的口令時(shí)的日期和小時(shí))從主口令的日期和小時(shí)字段101及102導(dǎo)出的。“在先日期”字段123和“在先小時(shí)”字段124則分別是從在先口令110的日期字段和小時(shí)字段導(dǎo)出的。重復(fù)該方法,以生成第四口令130,它同樣具有從主口令100導(dǎo)出的字段和從在先口令120導(dǎo)出的字段。
所示的安排的一個(gè)主要優(yōu)點(diǎn)是,其具有“一次性使用”的特點(diǎn),這使得有可能與他人共享口令,而不用擔(dān)心口令被濫用。例如,如果用戶A把口令110連同使用口令的算法一起給用戶B,用戶B將被告知輸入“日期+12、小時(shí)+34、123490”。這樣,如果用戶B在2月21日14:15使用口令,用戶B將生成口令3348123490并能訪問(wèn)受保護(hù)的賬號(hào)、設(shè)備或域(domain);然而,用戶B并不知道,字段113、114和115-即數(shù)字123490并不是一個(gè)靜態(tài)字段。用戶B將不能再次使用該口令,即使他在相同的日期相同的鐘點(diǎn)試圖使用該口令。
用戶必須記住在先使用的日期和時(shí)間才能再使用該口令。用戶在每次使用之后必須對(duì)口令作微小的修改。這會(huì)對(duì)用戶這一方面要求一些額外的智力努力,但是顯著地增強(qiáng)了安全性。
作為對(duì)使用日期和時(shí)間的替代選擇,可以在字段101和102的其中之一中輸入上次使用的地點(diǎn)。輸入這個(gè)信息的一個(gè)簡(jiǎn)單方法是計(jì)算上次使用的地點(diǎn)的地點(diǎn)名稱中字母的個(gè)數(shù)。例如,如果上次使用的地點(diǎn)是Banglore,這有9個(gè)字母,因此將把這個(gè)數(shù)字與主口令中的基數(shù)中相加。
當(dāng)然,可以通過(guò)增加額外的字段使該方案更復(fù)雜,或者通過(guò)使用更少的字段而簡(jiǎn)化該方案。
轉(zhuǎn)至圖3,所示的是按照本發(fā)明的一個(gè)替代性實(shí)施例的口令的結(jié)構(gòu)。該口令被劃分為動(dòng)態(tài)和靜態(tài)兩部分。動(dòng)態(tài)部分包括帶有歷史的動(dòng)態(tài)部分和不帶歷史的動(dòng)態(tài)部分。因此,有一個(gè)是靜態(tài)的字段201,帶有歷史的動(dòng)態(tài)字段的一連串的字段202,以及不帶歷史的動(dòng)態(tài)字段的一連串的字段203。
帶有歷史的動(dòng)態(tài)字段使用以下關(guān)系被更新的。
Pi的DH0=F0(Pi-1,Ei-1)Pi的DH1=F1(Pi-1,Ei-1),...,Pi的DHn=Fn(Pi-1,Ei-1)。
其中,Pi、Pi-1分別是當(dāng)前的和在先的口令。Ei-1是在先登錄會(huì)話(session)的事件記錄,諸如登錄的時(shí)間/日期。F0、F1、Fn是簡(jiǎn)單函數(shù),就是說(shuō),對(duì)應(yīng)DH0...DHn有n+1個(gè)存儲(chǔ)(歷史)函數(shù),每個(gè)與一個(gè)在先口令(Pi-1)和一個(gè)在先登錄會(huì)話的事件記錄(Ei-1)有關(guān)。
不帶歷史的動(dòng)態(tài)字段用以下關(guān)系來(lái)定義。
D1=f1(v1,v2,...)D1=f1(v1,v2,...)Dm=fm(v1,v2,...)其中v1,v2...是變量,它們按照時(shí)間點(diǎn)和地點(diǎn)等而改變。
第二實(shí)施例的用法將參照?qǐng)D4而說(shuō)明。
在圖4中,主口令被表示為具有帶歷史的第一動(dòng)態(tài)字段(DH0)301(在此案例中是一個(gè)時(shí)間字段)、靜態(tài)字段302、帶歷史的第二動(dòng)態(tài)字段(DH1)303、帶歷史的第三動(dòng)態(tài)字段(DH2)304、不帶歷史的第一動(dòng)態(tài)字段(D1)305和不帶歷史的第二動(dòng)態(tài)字段(D2)306。
當(dāng)主口令300被生成時(shí),帶歷史動(dòng)態(tài)字段(DH0至DH2)被設(shè)定為0,因?yàn)闆](méi)有歷史。主口令300在3月3日(3March)17:31在Bangalore被生成,用這個(gè)數(shù)據(jù)來(lái)設(shè)定不帶歷史的動(dòng)態(tài)字段305和306。在本例中,算法用英文月份名中的字母的個(gè)數(shù)和地點(diǎn)中的字母的個(gè)數(shù)作為動(dòng)態(tài)數(shù)據(jù)。因此,字段305被設(shè)定為05,字段306被設(shè)定為09。
在下一次使用時(shí),需要生成口令310。在本例中,口令310要在2月7日(2February)18:23在Mumbai生成。在用于生成字段311的函數(shù)F0時(shí),要求用戶記得上一次輸入口令的準(zhǔn)確時(shí)間,就是說(shuō),要求使用在先登錄的會(huì)話的事件記錄。將上一次輸入的時(shí)間的時(shí)間字段中的分鐘與主口令300中的字段DH0(即字段301)相加。在本例中,上一次主口令是在下午5點(diǎn)31分生成的,因此通過(guò)插入31而生成字段311。(注意字段311同樣可以通過(guò)把31與主口令300中的字段301的值相加而生成)。字段312是靜態(tài)的,保持不變。字段313是個(gè)帶歷史的動(dòng)態(tài)字段,它接受在先有效口令-本例中為主口令300-的字段304中的值。字段314也是帶歷史的動(dòng)態(tài)字段,使用在先有效口令300的在先有效字段305中的值。字段315和316如前面一樣,是通過(guò)插入月份名中的字母的個(gè)數(shù)(本例中月份是February,個(gè)數(shù)值為8)和地點(diǎn)名中的字母的個(gè)數(shù)(本例中地點(diǎn)是Mumbai,個(gè)數(shù)值為6)而生成的。就這樣,口令310是使用在先口令中的字段、在先口令的輸入時(shí)間的信息以及當(dāng)前口令的輸入時(shí)間和地點(diǎn)的信息生成的。
在以后的時(shí)間和不同的地點(diǎn),通過(guò)與所示的類似的算法,可以生成另一個(gè)的口令320。同樣,用戶需要記得在先口令被輸入時(shí)的準(zhǔn)確到分鐘的時(shí)間。
當(dāng)然,函數(shù)F0、F1...Fn和f1、f2...fm可以比本例中所用的多少更復(fù)雜一些。例如,對(duì)于字段311,不一定要記得上一個(gè)口令的輸入的準(zhǔn)確分鐘,而是可以使用上一個(gè)口令的輸入的日子或月份,或者當(dāng)前登錄的時(shí)間?;蛘?,可以與圖2的算法一樣,通過(guò)數(shù)值的相加而不是插入數(shù)值,即把一個(gè)值與主口令中的對(duì)應(yīng)字段的值相加,來(lái)生成字段311、315和316。
用來(lái)驗(yàn)證口令的系統(tǒng),使用與用戶所用的算法相對(duì)應(yīng)的口令生成算法或者簡(jiǎn)化的算法。參看圖2的例子,驗(yàn)證系統(tǒng)有一個(gè)與用戶的日歷和時(shí)鐘同步的日歷和時(shí)鐘,使得驗(yàn)證系統(tǒng)知道用戶試圖登錄時(shí)的日期和時(shí)刻,并且在任何驗(yàn)證中都能對(duì)口令的全部5個(gè)字段進(jìn)行比較。
驗(yàn)證可以與加密一起使用,為此將一個(gè)密鑰傳送給用戶,用戶將口令加密,并將其發(fā)送給系統(tǒng),系統(tǒng)在進(jìn)行比較前將口令解密。
在圖4中給出的例子中,系統(tǒng)記錄口令300的輸入時(shí)間,以便為在下一次輸入口令310時(shí)對(duì)字段311進(jìn)行比較做好準(zhǔn)備??梢蕴峁?以下更詳細(xì)描述的)手段,讓驗(yàn)證系統(tǒng)能識(shí)別口令的輸入地點(diǎn),由此計(jì)算輸入地點(diǎn)的字母的個(gè)數(shù),以便對(duì)口令310中的字段316進(jìn)行比較。
最好對(duì)所有輸入的字段進(jìn)行比較或驗(yàn)證。這避免錯(cuò)誤數(shù)據(jù)擴(kuò)散到其它字段,導(dǎo)致后來(lái)的登錄失敗。
在另一個(gè)實(shí)施例中,口令包含一個(gè)隨機(jī)滯后(RH)字段和一個(gè)隨機(jī)無(wú)所謂(RD)字段。當(dāng)前口令的“隨機(jī)滯后”字段含有一個(gè)數(shù)據(jù)它是“在先”口令的隨機(jī)無(wú)所謂字段的函數(shù),而當(dāng)前口令的隨機(jī)無(wú)所謂字段是一個(gè)隨機(jī)值。按照這個(gè)實(shí)施例提供的是一種用于口令驗(yàn)證的簡(jiǎn)單而安全的解決方案。隨機(jī)滯后字段可如下地被表達(dá)為一個(gè)函數(shù)FRH=F(RD’),其中RD’是口令的在先實(shí)例中的無(wú)所謂字段。
第二個(gè)字段(“隨機(jī)無(wú)所謂字段”)是用戶隨機(jī)輸入的數(shù)據(jù)。這個(gè)字段被稱作隨機(jī)無(wú)所謂字段,是因?yàn)樗梢允怯脩翎槍?duì)口令的特定實(shí)例而隨機(jī)輸入的任何字符集(其長(zhǎng)度被限制到一個(gè)最大值)。對(duì)于口令的當(dāng)前實(shí)例來(lái)說(shuō),這個(gè)字段被認(rèn)為是一個(gè)“無(wú)所謂的”字段。這個(gè)字段將在口令的以后實(shí)例中被使用,以用函數(shù)F告知RH字段。
主口令有兩個(gè)字段,即隨機(jī)滯后字段和隨機(jī)無(wú)所謂字段。當(dāng)前口令200以下述方式從口令100中導(dǎo)出。
主口令有一個(gè)隨機(jī)無(wú)所謂字段12573。為了構(gòu)造當(dāng)前口令的隨機(jī)滯后字段,例如將函數(shù)取成F=abs(RD’-1111)。
利用這個(gè)函數(shù),隨機(jī)滯后字段由計(jì)算為12573-1111=11462。用戶隨機(jī)地輸入的隨機(jī)無(wú)所謂字段是43509。因此,口令變成1146243509。這個(gè)隨機(jī)無(wú)所謂字段是口令的當(dāng)前實(shí)例的隨機(jī)無(wú)所謂字段??诹铗?yàn)證算法對(duì)當(dāng)前的實(shí)例化來(lái)說(shuō)只要忽略這個(gè)字段,并且只是為了生成口令的將來(lái)實(shí)例化中的隨機(jī)滯后字段而存儲(chǔ)這個(gè)值。類似地,口令的下一個(gè)實(shí)例的隨機(jī)滯后字段被計(jì)算為43509-1111=42398。在這個(gè)實(shí)例中,用戶輸入的隨機(jī)無(wú)所謂字段是34524,這是一個(gè)隨機(jī)選擇的數(shù)字,因此口令變成4239834524??诹畹南乱粋€(gè)實(shí)例遵循類似的程序而生成。
在這個(gè)案例中,用戶需要記得在口令的在先實(shí)例中輸入的隨機(jī)無(wú)所謂字段以及用于生成隨機(jī)滯后字段的函數(shù),這二者在本案例中是比較容易記得的。這個(gè)口令驗(yàn)證提供額外的安全性,因?yàn)樗傻目诹罹哂懈叨鹊碾S機(jī)性。滯后行為也提供額外的安全性。同時(shí),口令的生成也非常簡(jiǎn)單。幾乎與靜態(tài)口令一樣簡(jiǎn)單。
現(xiàn)在參看圖5,所示的是一個(gè)用于口令輸入和驗(yàn)證的系統(tǒng),包含用戶裝置500和服務(wù)器501。用戶裝置有一個(gè)數(shù)據(jù)輸入裝置510,諸如小鍵盤(pán)或鍵盤(pán),并有處理器511、存儲(chǔ)器512、時(shí)鐘513、以及與網(wǎng)絡(luò)端口515相連的網(wǎng)絡(luò)接口514。服務(wù)器501有處理器520、存儲(chǔ)器521、時(shí)鐘522以及與網(wǎng)絡(luò)端口524相連的網(wǎng)絡(luò)接口523。網(wǎng)絡(luò)端口515和514通過(guò)網(wǎng)絡(luò)(未予示出)互相連接。
在操作中,用戶裝置500的用戶與服務(wù)器501建立通信,在建立通信時(shí),服務(wù)器501要求用戶輸入口令。在要求用戶輸入口令時(shí),服務(wù)器501可以向用戶裝置500傳送一個(gè)密鑰,以便用戶裝置可以返回一個(gè)加密的口令。用戶裝置500的用戶構(gòu)造口令,并通過(guò)輸入裝置510輸入口令。用戶可以通過(guò)存儲(chǔ)在存儲(chǔ)器512中的數(shù)據(jù)以及由時(shí)鐘513提供的時(shí)間和日期,在構(gòu)造口令的過(guò)程中得到輔助,在構(gòu)造口令時(shí)用戶所得到的輔助的程度,與用戶裝置500是否是用戶通過(guò)其為這個(gè)系統(tǒng)輸入口令的唯一裝置有關(guān)。在輸入口令后,處理器511用服務(wù)器501提供的密鑰加密該口令,并通過(guò)接口514將該口令傳遞到服務(wù)器501;該口令在接口523被接收,被處理器520解密,然后被處理器520與在存儲(chǔ)器位置521a中存儲(chǔ)的主口令數(shù)據(jù)和在存儲(chǔ)器位置521b中存儲(chǔ)的在先口令數(shù)據(jù)相比較。在先口令數(shù)據(jù)可能是在先口令,或者可能包括在先口令的輸入的日期或地點(diǎn)。微處理器520用主口令數(shù)據(jù)和在先口令數(shù)據(jù)來(lái)構(gòu)造期望的口令,并在解密的被接收口令與本地構(gòu)造的口令之間進(jìn)行比較。如果具有匹配,則向用戶裝置500發(fā)送回一個(gè)驗(yàn)證消息,通知用戶驗(yàn)證已經(jīng)成功,并提供對(duì)口令保護(hù)的服務(wù)(無(wú)論是服務(wù)器501提供的還是其它某個(gè)系統(tǒng)提供的)的訪問(wèn)。
在要求了解登錄的地點(diǎn)的驗(yàn)證系統(tǒng)中,服務(wù)器501能通過(guò)端口515的TCP/IP號(hào)來(lái)確定用戶500的位置。服務(wù)器501能進(jìn)行對(duì)TCP/IP號(hào)的查找,確定地點(diǎn)名稱并對(duì)地點(diǎn)名中的字母的個(gè)數(shù)進(jìn)行計(jì)數(shù),以方便驗(yàn)證。
轉(zhuǎn)至圖6,所示的是一個(gè)在服務(wù)器501上執(zhí)行的過(guò)程。該過(guò)程在步驟600開(kāi)始,其中服務(wù)器501準(zhǔn)備好接受來(lái)自用戶裝置500的用戶的登錄。當(dāng)用戶進(jìn)行登錄時(shí),該登錄在步驟601被接收,這觸發(fā)兩個(gè)同時(shí)的操作。第一,登錄的時(shí)間和/或地點(diǎn)被記錄在服務(wù)器501的存儲(chǔ)器521中的事件日志中(步驟602)。第二,過(guò)程前進(jìn)到步驟603,主口令和在先口令分別從存儲(chǔ)器位置512a和521b被取回,在先登錄的時(shí)間數(shù)據(jù)從事件日志中被取回。然后,在步驟604,用在步驟602中記錄的時(shí)間和/或地點(diǎn)數(shù)據(jù)、在步驟603中取回的主口令和在先口令以及事件日志中的時(shí)間數(shù)據(jù),構(gòu)造新的口令。在步驟605,將這個(gè)新構(gòu)造的口令與新從用戶接收的口令比較。如果有匹配(步驟606),則將新口令記錄(步驟607)在存儲(chǔ)器位置521b中供將來(lái)使用,并且在步驟608中準(zhǔn)予訪問(wèn)。如果在步驟606中沒(méi)有匹配,則向用戶發(fā)回一個(gè)出錯(cuò)消息(步驟610)。
在構(gòu)造口令的復(fù)雜任務(wù)中,可以利用用戶裝置500的時(shí)鐘513和/或存儲(chǔ)器512輔助用戶。如果系統(tǒng)被安排得使得服務(wù)器501總是被從用戶裝置500訪問(wèn),這是特別有用的。這樣,用戶就能被用戶裝置500提示以便在適當(dāng)?shù)膸v史的動(dòng)態(tài)字段、靜態(tài)字段和不帶歷史的動(dòng)態(tài)字段中輸入適當(dāng)?shù)臄?shù)據(jù)。作為另一個(gè)提供方便的特點(diǎn),可以將在存儲(chǔ)器512中存儲(chǔ)的數(shù)據(jù)自動(dòng)地移入這些字段的一些或全部。這樣,例如,可以把口令分解成完全要由用戶記憶的部分,用戶必須記住如何構(gòu)造的部分,以及根據(jù)存儲(chǔ)器512和/或時(shí)鐘513自動(dòng)構(gòu)造的部分。
在所有情況中,在網(wǎng)絡(luò)上傳送的加密的口令都是動(dòng)態(tài)的,這樣,即使被偷聽(tīng)者截獲,也不危及安全。
設(shè)備500和501可以壓縮成為單一的設(shè)備,例如膝上計(jì)算機(jī),同時(shí)該系統(tǒng)可以用于對(duì)該獨(dú)立設(shè)備的帶口令的訪問(wèn)。
以上描述了一種口令生成和驗(yàn)證的方法,以及各種用于生成口令的軟件算法、用于驗(yàn)證口令的軟件程序以及用于提供對(duì)設(shè)備和服務(wù)的口令驗(yàn)證的訪問(wèn)的設(shè)備和系統(tǒng)。第一個(gè)描述的實(shí)施例只使用了在先口令中的歷史數(shù)據(jù),而第二個(gè)實(shí)施例則使用事件日志數(shù)據(jù)(例如上次登錄的時(shí)間)和當(dāng)前登錄數(shù)據(jù)(例如當(dāng)前登錄的地點(diǎn))。上述的發(fā)明可應(yīng)用于國(guó)防裝置,其中需要高度的安全性,而在一次行動(dòng)期間可能需要進(jìn)行間歇的口令驗(yàn)證,其中每次口令都不同。本發(fā)明也適用于電子商務(wù),其中,不斷改變的口令的特點(diǎn)具有提供極大增強(qiáng)的安全性的優(yōu)點(diǎn)。上述的發(fā)明具有的優(yōu)點(diǎn)是,口令可以明確地被與另一人分享,并保證接收者只能使用口令一次。
單一的處理器或單元可以完成權(quán)利要求中所要求的若干裝置的功能。所要求的單一的裝置可以由若干個(gè)裝置以聯(lián)網(wǎng)的方式實(shí)現(xiàn)。當(dāng)某元素被描述為包含一個(gè)或多個(gè)元素或步驟時(shí),“包含”一詞并不排除其它的元素或步驟。不定冠詞“一個(gè)”并不排除多個(gè)。所屬領(lǐng)域的普通熟練人員明了本發(fā)明的其它優(yōu)點(diǎn),并且在本發(fā)明的范圍內(nèi)可以對(duì)本發(fā)明作出進(jìn)一步修改。
權(quán)利要求
1.一種驗(yàn)證口令的方法,該口令能以一連串的實(shí)例的形式提供,并具有第一字段的集合(201,203)和第二字段(113,114,202,311,313,314),其中,第一字段的集合包含以下的至少一個(gè)(a)靜態(tài)字段(105,201或302),它對(duì)每個(gè)口令的實(shí)例都不變,(b)動(dòng)態(tài)字段(101,102,203,305或306),它根據(jù)外來(lái)數(shù)據(jù)而隨著每個(gè)口令的實(shí)例而改變,并且其中第二字段被安排成含有歷史數(shù)據(jù),歷史數(shù)據(jù)是驗(yàn)證的在先實(shí)例的一個(gè)函數(shù),該方法包含接收一個(gè)當(dāng)前提供的口令實(shí)例(110或310);和進(jìn)行一個(gè)比較操作(605),其中,利用自從口令的一個(gè)在先實(shí)例驗(yàn)證以來(lái)所保留的數(shù)據(jù)對(duì)當(dāng)前提供的口令實(shí)例的第二字段(113,114,202,311,313或314)進(jìn)行比較。
2.按照權(quán)利要求1的方法,其中,歷史數(shù)據(jù)是一個(gè)在先口令的函數(shù)。
3.按照權(quán)利要求1或2的方法,其中,歷史數(shù)據(jù)是一個(gè)在先驗(yàn)證實(shí)例的事件記錄的函數(shù)。
4.按照權(quán)利要求1、2或3的方法,其中,第一字段的集合包含一個(gè)靜態(tài)字段(201)和一個(gè)動(dòng)態(tài)字段(203)。
5.按照權(quán)利要求4的方法,其中,對(duì)于動(dòng)態(tài)字段,進(jìn)行一個(gè)比較操作的步驟包含接收具有下列形式的外部數(shù)據(jù)日期和/或時(shí)間和/或地點(diǎn)數(shù)據(jù)和/或客戶機(jī)的因特網(wǎng)協(xié)議地址。
6.按照前述權(quán)利要求的任何一項(xiàng)的方法,進(jìn)一步包含,在成功的比較之后,為了下一個(gè)口令實(shí)例的比較而保留數(shù)據(jù)。
7.按照權(quán)利要求6的方法,其中,所保留的數(shù)據(jù)(602)包含當(dāng)前提供的口令實(shí)例的實(shí)例的接收的日期和時(shí)間的其中之一。
8.按照權(quán)利要求6的方法,其中,所保留的數(shù)據(jù)(602)是從當(dāng)前提供的口令實(shí)例的實(shí)例的接收的地點(diǎn)中導(dǎo)出的。
9.按照權(quán)利要求6的方法,其中,所保留的數(shù)據(jù)包含當(dāng)前提供的口令實(shí)例的至少一部分。
10.按照前述權(quán)利要求的任何一項(xiàng)的方法,其中,比較的步驟包含生成(604)至少是被生成的口令實(shí)例的第二字段;和把當(dāng)前提供的口令實(shí)例的第二字段與被生成的口令實(shí)例的第二字段相比較(605)。
11.按照權(quán)利要求1的方法,其中,口令進(jìn)一步具有一個(gè)包含偽隨機(jī)數(shù)據(jù)的第三字段。
12.按照權(quán)利要求11的方法,偽隨機(jī)數(shù)據(jù)由用戶輸入。
13.按照權(quán)利要求11或12的方法,其中,所保留的數(shù)據(jù)是第三字段的內(nèi)容。
14.按照權(quán)利要求6和13的方法,其中,包含保留第三字段的內(nèi)容。
15一種用于接收和驗(yàn)證口令的設(shè)備,該口令能以一連串的實(shí)例的形式提供,并有第一字段的集合(201,203)和第二字段(202),其中,第一字段的集合包含以下的至少一個(gè)(a)靜態(tài)字段(201),它在每個(gè)口令的實(shí)例中不變,(b)動(dòng)態(tài)字段(203),它根據(jù)外來(lái)數(shù)據(jù)而隨著每個(gè)口令的實(shí)例而改變,并且其中第二字段(202)被安排成含有歷史數(shù)據(jù),歷史數(shù)據(jù)是驗(yàn)證的在先實(shí)例的一個(gè)函數(shù),該設(shè)備包含輸入裝置(500),用于輸入當(dāng)前提供的口令實(shí)例;比較裝置(501),用于進(jìn)行一個(gè)比較操作,其中,利用自從口令的一個(gè)在先實(shí)例的驗(yàn)證以來(lái)所保留的數(shù)據(jù)對(duì)當(dāng)前提供的口令實(shí)例的第二字段進(jìn)行比較。
16.按照權(quán)利要求15的設(shè)備,其中,歷史數(shù)據(jù)是一個(gè)在先口令的函數(shù)。
17.一種數(shù)據(jù)載體,其上有存儲(chǔ)的指令和數(shù)據(jù),當(dāng)指令和數(shù)據(jù)被裝入適當(dāng)?shù)挠?jì)算機(jī)(501)的存儲(chǔ)器(521)中并且與一個(gè)當(dāng)前提供的口令的實(shí)例一起被提供時(shí)—該口令能以一連串的實(shí)例的形式提供,并有第一字段的集合(201,203)和第二字段(202),其中,第一字段的集合包含以下的至少一個(gè)(a)靜態(tài)字段(201),它在每個(gè)口令的實(shí)例中不變,(b)動(dòng)態(tài)字段(203),它根據(jù)外來(lái)數(shù)據(jù)而隨著每個(gè)口令的實(shí)例而改變,并且其中第二字段(202)被安排成含有數(shù)據(jù),該數(shù)據(jù)是驗(yàn)證的在先實(shí)例的一個(gè)函數(shù)—使計(jì)算機(jī)執(zhí)行一個(gè)比較操作(605),其中,利用自口令的一個(gè)在先實(shí)例的驗(yàn)證以來(lái)保留的數(shù)據(jù)對(duì)當(dāng)前提供的口令的實(shí)例的第二字段進(jìn)行比較。
全文摘要
一種由若干字段(101-105)構(gòu)成的口令,能以一連串的實(shí)例(100,110,120,130)的形式提供。這些字段包含以下的至少一個(gè)(a)靜態(tài)字段(105),它在每個(gè)口令實(shí)例中不變,(b)動(dòng)態(tài)字段(101,102),它根據(jù)外來(lái)數(shù)據(jù)而隨著每個(gè)口令實(shí)例而改變。此外,有一個(gè)“滯后”字段(或“帶歷史的動(dòng)態(tài)字段”103、104),它含有是口令的在先實(shí)例的一個(gè)函數(shù)的數(shù)據(jù)。當(dāng)當(dāng)前提供的口令實(shí)例(110)被輸入/接收時(shí),進(jìn)行一個(gè)比較操作,其中,利用自口令的一個(gè)在先實(shí)例的驗(yàn)證以來(lái)所保留的數(shù)據(jù)(101,102)對(duì)當(dāng)前提供的口令實(shí)例的滯后字段(113,114)進(jìn)行比較。
文檔編號(hào)G06F21/31GK1806217SQ200480016817
公開(kāi)日2006年7月19日 申請(qǐng)日期2004年6月15日 優(yōu)先權(quán)日2003年6月19日
發(fā)明者N·艾羅蒂尤杜帕, B·托馬斯 申請(qǐng)人:皇家飛利浦電子股份有限公司