專利名稱::具有私密保護及口令找回功能的身份認證方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于計算機網(wǎng)絡(luò)安全技術(shù),具體涉及一種具有私密保護及口令找回功能的身份認證方法。
背景技術(shù):
:如今,人們越來越依賴于網(wǎng)絡(luò),各種各樣的網(wǎng)絡(luò)服務(wù)正在逐步滲透到人們的學(xué)習(xí)、生活、工作之中。但出于各種各樣的原因,人們使用某個網(wǎng)絡(luò)服務(wù)時往往需要先注冊一個賬號,然后在登錄服務(wù)網(wǎng)站時要輸入此賬號及相應(yīng)的口令。出于安全的考慮,一個人對于不同的服務(wù)網(wǎng)站,往往要設(shè)計不同的賬號口令,例如,你絕不會將你的銀行帳號口令用于你的QQ。在網(wǎng)絡(luò)服務(wù)遍地開花的今天,一個人擁有5、6個甚至更多的賬號并不稀奇。而且,不少網(wǎng)站規(guī)定了獨特的賬號與口令的設(shè)計規(guī)則,使得用戶不能按自己的習(xí)慣"^殳計賬號與口令。同時,一個經(jīng)常發(fā)生且令人頭疼的問題也隨之而來,這就是口令的遺忘。尤其是那些不經(jīng)常使用的郵箱或其他賬號,其口令更易遺忘。為了使用戶不至于因忘了口令而不能繼續(xù)使用已有的賬號,也為了服務(wù)器在清除用戶長期不用的廢棄賬號時,盡可能少地連同用戶希望繼續(xù)使用的賬號一起清除掉,不少服務(wù)器設(shè)置了"口令找回"功能。歸納起來,有以下幾種方法1注冊時用戶提供某個郵箱地址,"找回口令"時,由服務(wù)器將新口令發(fā)到此郵箱中。2注冊時設(shè)置"問題"與"答案",欲"找回口令"時,用戶根據(jù)顯示的問題,輸入答案,若答案正確,則用戶可重新設(shè)定口令或由服務(wù)器返回口令。3借助其他通信方式。例如,注冊時用戶提供手機號,"找回口令"時,由服務(wù)器將新口令發(fā)到用戶手機中。4同時提供上述各種方法,用戶可選擇使用。方法l十分簡便,但存在以下問題首先,其要求用戶提供一個郵箱地址,這是一個極大的限制和不便,因為有相當一部分人是不經(jīng)常使用電子郵件甚至從來不使用電子郵件的。對于不經(jīng)常使用電子郵件的用戶來說,其郵箱的口令更容易被遺忘。其次,發(fā)到用戶郵箱的口令顯然只能是明文或?qū)嵸|(zhì)上是明文的,這是一個極大的安全隱患。此外,由于一個人的郵箱、QQ等需要與其他人交往的賬號是近于公開的,若采用這種方法極易被人搞惡作劇,甚至成為一種新的安全問題。所以,這類網(wǎng)絡(luò)服務(wù)不宜釆用這種方法。方法2目前也存在安全問題。這主要是問題答案以明文存儲或者采用對稱密鑰加密算法加密,易遭受來自品行不端的網(wǎng)絡(luò)管理員的攻擊。方法3就目前而言,相對比較安全,但不夠方i^更,而且許多人并不愿意向網(wǎng)站提供自己的手機號。從口令的安全性需求出發(fā),口令安全需要能夠抵御各種網(wǎng)絡(luò)攻擊。首先是保密性。對口令而言,保密性應(yīng)當是除了用戶本人外,其他任何人在任何條件下都無法知曉此口令,即口令應(yīng)當具備個人隱私的特性。其次是具有絕對的認證性,即能夠抵御各種主動攻擊,保證在服務(wù)器端得到的口令信息,是直接來自于用戶本人的。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種在進行網(wǎng)絡(luò)注冊及口令找回時,對用戶身份認證的方法。本發(fā)明的技術(shù)方案為具有私密保護及口令找回功能的身份認證方法,它是在用戶進行網(wǎng)絡(luò)注冊和/或登陸時,對用戶輸入的原始數(shù)才務(wù)進行數(shù)據(jù)溶合隱去原始數(shù)據(jù);再利用單向散列函數(shù)對數(shù)據(jù)溶合所得到的數(shù)據(jù)進行加密,然后僅將變換結(jié)果傳輸?shù)椒?wù)器端,服務(wù)器程序在用戶注冊時存儲這些變換結(jié)果,在用戶登錄或找回口令時將此變換結(jié)果與注冊時所存儲的結(jié)果進行比對來認證用戶身份。所述用戶進行網(wǎng)絡(luò)注冊時采用數(shù)據(jù)溶合技術(shù)隱去原始的"問題"與"答案"私密數(shù)據(jù);利用單向散列函數(shù)對數(shù)據(jù)溶合所得到的"問題"與"答案"數(shù)據(jù)進行加密,然后僅將變換結(jié)果傳輸?shù)椒?wù)器端然后將變換結(jié)果傳輸?shù)椒?wù)器端;服務(wù)器程序存儲此變換結(jié)果到用戶賬號記錄中;所述由客戶端程序?qū)嵤┫铝胁僮?l)由用戶選擇一個服務(wù)器給出的"問題"并輸入"答案";U)采用數(shù)據(jù)溶合方法將"賬號"、"問題"與"答案"溶合,隱去原始的"答案"數(shù)據(jù);(3)釆用單向散列函數(shù)加密由"問題"與"答案"等數(shù)據(jù)溶合所得到的數(shù)據(jù),然后將變換結(jié)果傳輸?shù)椒?wù)器端;服務(wù)器程序存^f渚此變換結(jié)果到用戶賬號記錄中。用戶執(zhí)行找回"口令,,程序時,由客戶端程序?qū)τ脩糨斎氲目诹钫一?問題,,"答案,,施行與注冊時相同算法的處理,然后將變換結(jié)果傳輸?shù)椒?wù)器端;服務(wù)器程序根據(jù)賬號及此變換結(jié)果與用戶賬號記錄中的數(shù)據(jù)進行比對,實現(xiàn)用戶身份的認證,認證比對結(jié)果一致通過,則啟動口令重置流程,否則作無效處理通過上述方法,使找回口令所需的"問題"與"答案,,數(shù)據(jù)成為網(wǎng)絡(luò)管理員不可見的,從而可抵御來自品行不端的網(wǎng)絡(luò)管理員或其他可看到"答案"的人士的攻擊。同時,本發(fā)明也是一套完整的能夠滿足口令安全性需求的口令認證方法。本發(fā)明以上述技術(shù)為核心,由相互關(guān)聯(lián)的數(shù)據(jù)庫框架結(jié)構(gòu)、注冊方法、登錄方法、口令找回方法幾部分組成。A.數(shù)據(jù)庫框架結(jié)構(gòu)從保密及私密保護角度分,用戶信息分為明文與私密信息兩大類型。明文信息包括用戶必須向網(wǎng)站提供的"真實"信息,如用戶真實身份等;私密信息包括用戶登錄賬號、口令、口令找回問題答案等。一般情況下,只需一張表存^c這些信息。表結(jié)構(gòu)及各字段屬性如下表所示。<table>tableseeoriginaldocumentpage7</column></row><table>說明1用戶實名的含義與作用根據(jù)服務(wù)性質(zhì)而變。例如,網(wǎng)上銀行必是用戶的真實姓名,而QQ只是一個化名而已。2登錄賬號是否加密可隨服務(wù)性質(zhì)而變。加密可進一步加強安全性。3身份證號不唯一,意味著同一個用戶可使用多個賬號。4未設(shè)口令找回問題字段。本發(fā)明采取在注冊及找回口令時,由服務(wù)器提供若干標準問題,用戶僅選擇一個問題給出答案即可。實際上,本系統(tǒng)允許用戶給出任意的結(jié)果。如此可給攻擊者增加難度。B.數(shù)據(jù)溶合與單向散列函數(shù)"加密"1.數(shù)據(jù)溶合的概念數(shù)據(jù)溶合指將兩組或更多的數(shù)據(jù)溶合成一組新的數(shù)據(jù);欲從新數(shù)據(jù)推導(dǎo)出原數(shù)據(jù)是計算上不可行的。針對本發(fā)明所描述的口令找回問題的數(shù)據(jù)溶合模型有以下一般形式Y(jié):R(公開數(shù)據(jù),共享秘密數(shù)據(jù),私密數(shù)據(jù))或者Y二R(公開數(shù)據(jù),有限集合數(shù)據(jù),無限集合數(shù)據(jù))其中,第一個參數(shù)(公開數(shù)據(jù))至少對網(wǎng)絡(luò)管理員是公開的,可取用戶登錄賬號;第2個參數(shù)(有限集合數(shù)據(jù))指從若干個預(yù)置數(shù)據(jù)中取一個數(shù)據(jù),本發(fā)明中即由服務(wù)器提供的標準問題中用戶所選擇的問題;第3個參數(shù)(無限數(shù)據(jù)集合)即問題的答案。具體的算法R不限于下列所描述的一種,但須滿足以下條件(l)欲從Y導(dǎo)出參數(shù)3在計算上是不可行的;(2)Y總有足夠的長度(3)對于不同的參數(shù),出現(xiàn)Y相同的概率極小。2.數(shù)據(jù)溶合算法R的描述設(shè)公開數(shù)據(jù)A二Aw-A-2.........AAA。((數(shù)據(jù)長度為m字節(jié)),參數(shù)有限集合數(shù)據(jù)B二BhB^.........B朋。((數(shù)據(jù)長度為n字節(jié)),參數(shù)無限集合數(shù)據(jù)C二ChCv—2.........Gd"((數(shù)據(jù)長度為v字節(jié))。設(shè)Y二YwYj-2.........Y^Y。(數(shù)據(jù)長度為J字節(jié),為描述簡單起見,取J為固定值16)設(shè)D二dwdx—2.........ckW。(數(shù)據(jù)長度為X比特,X^X7。此處,X=112。以下均以J46進行描述))①若V=l,則擴展C到2字節(jié)長,即C=C0b7C0b6C0b5C0b4Cob3C0b2CoblCob0C0b0C0blC0b2C(Jb3C0b4C0b5C0b6C0b7,中,Cob7^^"h^Co的弟7位,依次類推,同時V變?yōu)?;②若V^14,則D二C,3d2.........CsdC。否則,擴展到14字節(jié)。例如,當V二13時,D=C13C12.........C2dCod3;又如,當V二3時,DK^dCoCAQAdQAdCoCA③Yk:AkaBkbCKC式中ka=DVKmodmkb=DVKmodnKC=DVKmodv其中,DVk是取自D中的7比特無符號整數(shù)DVk=d7K+6d7K+5d7K+4d7K+3d7K+2d7K+ld7K+o3.單向散列函數(shù)"加密,,與SHA-1算法利用單向散列函數(shù)的單向性變換,即可"加密"源數(shù)據(jù)。當源數(shù)據(jù)滿足一定條件時,即使網(wǎng)絡(luò)管理員或攻擊者獲得了變換結(jié)果,亦無法導(dǎo)出源數(shù)據(jù),從而無法實施攻擊。本方案建議采用SHA-l算法或安全性更強的SHA-224或SHA-256算法。SHA算法由美國國家標準和技術(shù)協(xié)會(NIST)與美國國家安全局(NSA)設(shè)計,并且被美國政府采納,成為美國國家標準,于1993年頒布。SHA-1是其改進版,于1995年頒布。以下是根據(jù)本發(fā)明的具體需要經(jīng)過刪減的該算法的處理流程,分為4個步驟步驟l:構(gòu)造512bit分組。首先,對輸入的數(shù)據(jù)進行填充,使得數(shù)據(jù)位長度為448。填充比特串的最高位補一個l,其余位補O。其次,將64比特加在報文后表示報文的原始長度。為方便描述,將此分組記為16個32位字的組合(W。,W"W2,w3,w4,w5,w6,w7,ws,w9,w10,w,w12,w13,w14,w15)步驟2:初始化MD緩存。一個160位MD緩沖區(qū)用以保存中間和最終散列函數(shù)的結(jié)果。它可以表示為5個32位的寄存器(A,B,C,D,E)。初始化為A=67452301B=EFCDAB89C=98BADCFED=10325476E=C3D2E1F0并按big-endianformat(大端格式)存儲。步驟3:處理分組。這是此算法的核心,包括4次循環(huán),每次循環(huán)又包含20個循環(huán)處理步驟。4次循環(huán)具有相似的結(jié)構(gòu),但每次循環(huán)使用不同的基本邏輯函數(shù),分別記為f"f2、f3和"。第i次循環(huán)中每一次小循環(huán)的運算邏輯為A,B,C,D,E—(E+fi(t,B,C,D)+S5(A)+Ut+Kt),A,S30(B),C,D其中fi線C,D)定義為t函數(shù)名運算0《t《19(BAC)V(BAD)20《t《39f2B0C〇D40《t《59f3(BAC)V(BAD)V(CAD)60《t《79t4B0C〇D表中,A:與運算;V:或運算;非運算;0:異或運算。S'=32bit參數(shù)循環(huán)左移L位。Ut=當t《15時,取分組的第t個字,即Ut=Wt;當t>16時,按下式計算Ut=S'(Ut-16〇Ut-140Ut.8〇Ut-3)式中S':32bit參數(shù)循環(huán)左移l位;0:異或運算。Kt=一個額外的常數(shù)值,如下表所示。t0《t《195A82793920《t《396ED9EBA140C8F1BBCDC60《t《79CA62C1D6+=模232加法運算。步驟4:輸出。輸出160位緩沖區(qū)MD的值。該方法利用數(shù)據(jù)溶合和利用單向散列函數(shù)對用戶輸入的原始"問題,,"答案"數(shù)據(jù)進行加密,大大提高了用戶數(shù)據(jù)的私密性,使得網(wǎng)絡(luò)管理員不易攻擊,大大增加了網(wǎng)絡(luò)安全,避免用戶數(shù)據(jù)被盜造成用戶的損失,適用于各種網(wǎng)絡(luò)用戶進行網(wǎng)絡(luò)注冊和/或登陸,特別是QQ網(wǎng)絡(luò)注冊和/或登陸,及口令找回,這樣能有效地避免QQ號及Q幣的被盜。圖1用動態(tài)鏈"l妄庫方式實施本發(fā)明時的網(wǎng)絡(luò)應(yīng)用系統(tǒng)示意圖。圖2用可執(zhí)行應(yīng)用程序方式實施本發(fā)明時的網(wǎng)絡(luò)應(yīng)用系統(tǒng)示意圖。圖3用腳本程序方式實施本發(fā)明時的網(wǎng)絡(luò)應(yīng)用系統(tǒng)示意圖。圖4用戶注冊流程圖。圖5用戶登錄流程圖。圖6找回口令流程圖。具體實施方式1.動態(tài)《連4妄庫方式(通用方式)如圖l所示,客戶機應(yīng)用進程的cslog子進程與服務(wù)器端的一個sslog子進程協(xié)同完成本發(fā)明所描述的注冊、登錄、口令找回各個過程。服務(wù)器端可同時擁有多個sslog子進程。cslog子進程通過調(diào)用cslog.dll庫函數(shù)生成;sslog子進程通過調(diào)用sslog.dll庫函數(shù)生成。動態(tài)鏈接庫分為2個庫文件,不妨命名為cslog.dll與sslog.dll。其中,cslog.dll包括客戶端的注冊、登錄、口令找回3個才莫塊czhuce、cdenglu、cklzh;sslog.dll包括服務(wù)器端的4個模塊szhuce、sdenglu、sklzh及idatabase。除idatabase外,每個模塊^皮調(diào)用時作為一個線程運行,而idatabase^是供與用戶數(shù)據(jù)庫的接口及相關(guān)設(shè)置,包括網(wǎng)絡(luò)參數(shù)設(shè)置。用本方式實施時,可在服務(wù)器與客戶端傳遞服務(wù)器隨才幾產(chǎn)生的隱含附加數(shù)據(jù),例如時間戳,以抵御重放攻擊、替身攻擊;替身攻擊指使用偽造的客戶端動態(tài)鏈接庫模塊替代原模塊的攻擊方式。亦可強制用戶使用軟鍵盤輸入,以抵御客戶端間諜軟件盜取用戶輸入數(shù)據(jù)?;诒緦嵤┓绞降膽?yīng)用系統(tǒng)可以是客戶/服務(wù)器模式,也可以是瀏覽器/服務(wù)器模式。若在cslog.dll與sslog.dll各增加一個"設(shè)置與協(xié)商"才莫塊,則可實現(xiàn)由用戶選擇具體的加密變換算法及抵御攻擊的措施,提升系統(tǒng)的靈活性。2可執(zhí)4亍應(yīng)用程序方式如圖2所示,客戶機應(yīng)用進程的cslog子進程(或模塊)與服務(wù)器端的一個sslog子進程協(xié)同完成本發(fā)明所描述的注冊、登錄、口令找回各個過程。服務(wù)器端可同時擁有多個sslog子進程。用可執(zhí)行應(yīng)用程序方式實施的系統(tǒng)構(gòu)成見附圖2。本實施方式采用客戶/服務(wù)器模式,分為客戶程序與服務(wù)器程序2個應(yīng)用程序。不妨命名為cslog.exe與sslog.exe。其中,cslog.exe程序包括客戶端的注冊、登錄、口令找回3個才莫塊czhuce、cdenglu、cklzh及其它應(yīng)用模塊;sslog.exe禾呈序包括月良務(wù)器端對應(yīng)的3個才莫塊szhuce、sdenglu、sklzh及其它應(yīng)用模塊。用本方式實施時,可在服務(wù)器與客戶端傳遞服務(wù)器隨機產(chǎn)生的隱含附加數(shù)據(jù),例如時間戳,以抵御重放攻擊、替身攻擊;替身攻擊指使用偽造的客戶端動態(tài)鏈接庫模塊替代原模塊的攻擊方式。亦可強制用戶使用軟鍵盤輸入,以抵御客戶端間諜軟件盜取用戶輸入數(shù)據(jù)。3腳本程序方式如圖3所示,本實施方式采用瀏覽器/服務(wù)器才莫式,包4舌客戶端腳本與服務(wù)器端腳本。不妨以ASP腳本為例,將與注冊、登錄、口令找回對應(yīng)^f腳本文4牛分另l]命名為zhucel.asp、zhuce2.asp、denglu.asp、klzh.asp等。其中,注冊過程用2個腳本文件,分作兩個階段實現(xiàn),是為了降低實現(xiàn)難度。用戶注冊算法及流程,如圖4所示,1用戶進入注冊頁面第一頁。2用戶在客戶端填寫用戶身份數(shù)據(jù)及用戶登錄賬號。3用戶發(fā)出"提交"命令。4在客戶端對用戶填寫的數(shù)據(jù)進行完備性、合法性、合理性檢測。若有問題,給出相應(yīng)提示并返回l。5在客戶端使用單向散列函數(shù)對用戶登錄賬號進行加密變換。注冊到服務(wù)器的賬號實際上就是這種經(jīng)過了變換的賬號。(若應(yīng)用服務(wù)器需要原始的賬號,則取消本步驟)。6上傳用戶身份數(shù)據(jù)及賬號數(shù)據(jù)到服務(wù)器端,同時保持客戶端原始數(shù)據(jù)。7服務(wù)器進行賬號沖突性檢測,若有沖突,給出相應(yīng)提示并返回2,令用戶修改或重新輸入數(shù)據(jù);若無沖突,則創(chuàng)建新賬號。8服務(wù)器發(fā)出進入用戶注冊頁面第二頁指令。9呈現(xiàn)用戶注冊頁面第二頁。IO用戶在客戶端繼續(xù)填寫口令、確認口令,選擇口令找回問題并填寫答案。11用戶發(fā)出"提交"命令。12在客戶端對用戶填寫的口令、確認口令進行有效性及一致性檢測,對口令找回問題答案進行有效性檢測。若有問題,給出相應(yīng)提示并返回10。13在客戶端順序進行數(shù)據(jù)溶合計算YPW^R(賬號,系統(tǒng)常量,口令)、YANS=R(賬號,問題,答案),及單向散列函數(shù)計算,即ZPW=SHA1(YPW)、ZANS=SHA1(YANS),對口令、口令找回問題答案等進行加密變換。此處的系統(tǒng)常量指應(yīng)用程序設(shè)定的永久性的秘密常量。14上傳ZPW、ZANS等數(shù)據(jù)到服務(wù)器端,存入步驟7所建賬號記錄中。注意對于使用ASP/JSP—類腳本語言的算法實現(xiàn),第二次上傳凄t據(jù)到服務(wù)器時,需包含賬號數(shù)據(jù)。一個簡單且對用戶友好的解決辦法是在第二頁表單中設(shè)置一個隱藏對象,用來存放服務(wù)器從第一次上傳時獲得的賬號數(shù)據(jù)。用戶登錄算法及流程,如圖5所示1客戶端向服務(wù)器端發(fā)出服務(wù)請求。2服務(wù)器向請求客戶發(fā)出進入登錄頁面指令,同時附上校驗碼圖傳^(使用校驗碼技術(shù)抵御自動輸入攻擊)或/和加蓋時間戳(抵御重放攻擊)。3用戶進入登錄頁面。4用戶在客戶端輸入賬號及口令。5用戶發(fā)出"提交"命令。6在客戶端使用單向散列函數(shù)對用戶登錄賬號進行加密變換。(若應(yīng)用服務(wù)器需要原始的賬號,則取消本步驟)。7在客戶端順序進行數(shù)據(jù)溶合計算YPW二R(賬號,系統(tǒng)常量,口令),及單向散列函數(shù)計算ZPW=SHA1(YPW),對口令進行加密變換。此處的系統(tǒng)常量指應(yīng)用程序設(shè)定的永久性的秘密常量。8上傳數(shù)據(jù)到服務(wù)器端。服務(wù)器端查找賬號與口令均吻合的記錄。若有則繼續(xù);若沒有則給出4是示并返回2口令找回算法及流程如圖6所示1客戶端向服務(wù)器端發(fā)出服務(wù)請求。2服務(wù)器向請求客戶發(fā)出進入口令找回頁面指令,同時附上校驗碼圖像(使用校驗碼技術(shù)抵御自動輸入攻擊)或/和加蓋時間戳(抵御重放攻擊)。3用戶進入登錄頁面。4用戶在客戶端選擇口令找回問題,并輸入賬號、口令找回問題答案、新口令、確認新口令。5用戶發(fā)出"提交"命令。6客戶端系統(tǒng)對新口令、確認新口令進行有效性及一致性檢驗,若有問題,則給出提示并返回4。7在客戶端使用單向散列函數(shù)對用戶登錄賬號進行加密變換。(若應(yīng)用服務(wù)器需要原始的賬號,則取消本步驟)。8在客戶端順序進行數(shù)據(jù)溶合計算YPW^R(賬號,系統(tǒng)常量,'口令)、YANS=R(賬號,問題,答案),及單向散列函數(shù)計算,即ZPW-SHA1(YPW)、ZANS=SHA1(YANS),對口令、口令找回問題答案等進行加密變換。此處的系統(tǒng)常量指應(yīng)用程序設(shè)定的永久性的秘密常量。9上傳數(shù)據(jù)到服務(wù)器端。10服務(wù)器端查找賬號與口令找回問題答案均吻合的記錄。若有則繼續(xù);若沒有但輸入未達到規(guī)定次數(shù)者則給出提示并返回2,否則關(guān)閉網(wǎng)頁。為徹底防止試探性輸入攻擊可將輸入次數(shù)存放在數(shù)據(jù)庫中,設(shè)置新口令時置0,每次找回l俞入時加l。11服務(wù)器將新口令存入該賬號記錄。本發(fā)明并不限于上述描述的內(nèi)容,具體實現(xiàn)時可進行一定的修改,例如,各圖中均未對賬號進行加密,具體實現(xiàn)時可根據(jù)系統(tǒng)需要取舍。圖4、圖6中的問題表中的問題是永久性的,只能在表尾添加新問題,而不能刪除、修改或插入。圖5、圖6中的函數(shù)參數(shù)sysc即
發(fā)明內(nèi)容中所述的系統(tǒng)常量,而出錯處理應(yīng)當向客戶端返回相應(yīng)的信息,且一般應(yīng)給予用戶有限次的重試才幾會。權(quán)利要求1、一種具有私密保護及口令找回功能的身份認證方法,它是在用戶進行網(wǎng)絡(luò)注冊和/或登陸時,對用戶輸入的原始數(shù)據(jù)進行數(shù)據(jù)融合隱去原始數(shù)據(jù);再利用單向散列函數(shù)對數(shù)據(jù)溶合所得到的數(shù)據(jù)進行加密,然后僅將變換結(jié)果傳輸?shù)椒?wù)器端,服務(wù)器程序在用戶注冊時存儲這些變換結(jié)果,在用戶登錄或找回口令時將此變換結(jié)果與注冊時所存儲的結(jié)果進行比對來認證用戶身份。2.如權(quán)利要求1所述具有私密保護及口令找回功能的身份認證方法,其特征在于所述用戶輸入的數(shù)據(jù)包括帳號、口令、問題與答案中的一種或一種以上。3、如權(quán)利要求1所述具有私密保護及口令找回功能的身份認證方法,其特征在于用戶進行網(wǎng)絡(luò)注冊時釆用數(shù)據(jù)溶合技術(shù)隱去原始的"問題"與"答案"私密數(shù)據(jù);利用單向散列函數(shù)對數(shù)據(jù)溶合所得到的"問題"與"答案"數(shù)據(jù)進行加密,然后僅將變換結(jié)果傳輸?shù)椒?wù)器端;服務(wù)器程序存儲此變換結(jié)果到用戶賬號記錄中;用戶執(zhí)行找回"口令,,程序時,由客戶端程序?qū)τ脩糨斎氲目诹钫一?問題""答案"施行與注冊時相同算法的處理,然后將變換結(jié)果傳輸?shù)椒?wù)器端;服務(wù)器程序才艮據(jù)賬號及此變換結(jié)果與用戶賬號記錄中的數(shù)據(jù)進行比對,實現(xiàn)用戶身^f分的認證,認證比對結(jié)果一致通過,則啟動口令重置流程,否則作無效處理。4、如權(quán)利要求1所述具有私密保護及口令找回功能的身份認證方法,其特征在于用戶注冊時,由客戶端程序?qū)嵤┫铝胁艈鬃?l)由用戶輸入自擬的"問題,,及"答案,,,并將"問題,,數(shù)據(jù)以明文存入服務(wù)器端的數(shù)據(jù)庫中;(2)采用數(shù)據(jù)溶合方法將"賬號"、"問題"與"答案"溶合,隱去原始的"答案,,數(shù)據(jù);(3)釆用單向散列函數(shù)加密由"問題"與"答案"等數(shù)據(jù)溶合所得到的數(shù)據(jù),然后將變換結(jié)果傳輸?shù)椒?wù)器端;服務(wù)器程序存儲此變換結(jié)果到用戶賬號記錄中;用戶執(zhí)行找回口令程序時,由服務(wù)器提供用戶注冊時存在數(shù)據(jù)庫中的問題,提示用戶輸入答案。然后由客戶端程序?qū)τ脩糨斎氲目诹钫一貑栴}答案施行與注冊時相同算法的處理,然后將變換結(jié)果傳輸?shù)椒?wù)器端。服務(wù)器程序根據(jù)賬號及此變換結(jié)果與用戶賬號記錄中的數(shù)據(jù)進行比對,實現(xiàn)用戶身份的i^證,認證通過比對結(jié)果一致,則啟動口令重置流程,否則作無效處理。5、如權(quán)利要求1所述具有私密保護及口令找回功能的身份認證方法,其特征在于在用戶注冊時,由客戶端程序?qū)嵤┫铝胁僮?l)由用戶選擇一個服務(wù)器給出的"問題"并輸入"答案";(2)采用數(shù)據(jù)溶合方法將"賬號"、"問題"與"答案"溶合,隱去原始的"答案,,數(shù)據(jù);(3)采用單向散列函數(shù)"加密"由"問題"與"答案"等數(shù)據(jù)溶合所得到的數(shù)據(jù),然后將變換結(jié)果傳輸?shù)椒?wù)器端。服務(wù)器程序存儲此變換結(jié)果到用戶賬號記錄中。用戶執(zhí)行找回口令程序時,由服務(wù)器提供用戶注冊時存在數(shù)據(jù)庫中的問題,提示用戶輸入答案。然后由客戶端程序?qū)τ脩糨斎氲目诹钫一貑栴}答案施行與注冊時相同算法的處理,然后將變換結(jié)果傳輸?shù)椒?wù)器端。服務(wù)器程序才艮據(jù)賬號及此變換結(jié)果與用戶賬號記錄中的數(shù)據(jù)進行比對,實現(xiàn)用戶身份的認證,認證比對結(jié)果一致通過,則啟動口令重置流程,否則作無效處理。6、如權(quán)利要求l、3、4、5中的任意項所述具有私密保護及口令找回功能的身份認證方法,其特征在于數(shù)據(jù)溶合方法為Y二R(公開數(shù)據(jù),共享秘密數(shù)據(jù),私密數(shù)據(jù))或者Y二R(公開數(shù)據(jù),有限集合數(shù)據(jù),無限集合數(shù)據(jù))其中,參數(shù)公開數(shù)據(jù)指至少對網(wǎng)絡(luò)管理員或系統(tǒng)管理人員是公開的,且一般情況下,其他第三方也是可見的;參數(shù)共享秘密數(shù)據(jù)指只有系統(tǒng)與用戶雙方可見的數(shù)據(jù),有限集合數(shù)據(jù)指從若干個預(yù)置數(shù)據(jù)中取一個數(shù)據(jù);無限數(shù)據(jù)集合即只有用戶一方掌握的私密數(shù)據(jù)。其算法是設(shè)公開數(shù)據(jù)A二AM—A-2.........AAA。((數(shù)據(jù)長度為m字節(jié)),共享秘密數(shù)據(jù)B=Bn—.........B朋。((數(shù)據(jù)長度為n字節(jié)),私密數(shù)據(jù)C二a—(v-2.........C2C'C0((數(shù)據(jù)長度為v字節(jié))。設(shè)Y二Y:-Jj-2.........Y2Y,Y。(數(shù)據(jù)長度為J字節(jié),為描述簡單起見,取J為固定值16)設(shè)D二dwdx-2.........dAdo(數(shù)據(jù)長度為X比特,X二JX7,此處,X=112。以下均以J二16進行描述))①若V=l,則擴展C到2字節(jié)長,即C=C0b7C0b6Cob5C0b4C0b3C0b2C0biC0boC0b0CobiC0b2Cob3C0b4Cob5C0b6Cob7,中,Cob7^^不Co的弟7位,依次類推,同時V變?yōu)?;②若V〉14,則D二d3d2.........C2dC。否則,擴展到14字節(jié);例如,當V二13時,D=C13C12.........C2CiC0Ci3;又如,當V二3時,D-CudCoCsCiCiACiCoC^dCoQiCi③Yk二AkaBkbCKc式中<formula>formulaseeoriginaldocumentpage4</formula>其中,DVk是取自D中的7比特無符號整數(shù):<formula>formulaseeoriginaldocumentpage4</formula>全文摘要本發(fā)明公開了一種具有私密保護及口令找回功能的身份認證方法。它是在用戶進行網(wǎng)絡(luò)注冊和/或登陸時,對用戶輸入的原始數(shù)據(jù)進行數(shù)據(jù)溶合隱去原始數(shù)據(jù);再利用單向散列函數(shù)對數(shù)據(jù)溶合所得到的數(shù)據(jù)進行加密,然后僅將變換結(jié)果傳輸?shù)椒?wù)器端,服務(wù)器程序在用戶注冊時存儲這些變換結(jié)果,在用戶登錄或找回口令時將此變換結(jié)果與注冊時所存儲的結(jié)果進行比對來認證用戶身份。該方法利用數(shù)據(jù)溶合和利用單向散列函數(shù)對用戶輸入的原始“問題”“答案”數(shù)據(jù)進行加密,大大提高了用戶數(shù)據(jù)的私密性,使得網(wǎng)絡(luò)管理員不易攻擊,大大增加了網(wǎng)絡(luò)安全,避免用戶數(shù)據(jù)被盜造成用戶的損失,適用于各種網(wǎng)絡(luò)用戶進行網(wǎng)絡(luò)注冊和/或登陸。文檔編號H04L9/32GK101145911SQ20071005370公開日2008年3月19日申請日期2007年10月30日優(yōu)先權(quán)日2007年10月30日發(fā)明者程元斌申請人:江漢大學(xué)