專利名稱:登錄認(rèn)證方法和登錄簽名程序的制作方法
登錄認(rèn)證方法和登錄簽名程序
本發(fā)明涉及計算機(jī)軟件、網(wǎng)絡(luò)通信和信息安全技術(shù)領(lǐng)域。
技術(shù)背景 -
登錄,是用戶進(jìn)入和使用應(yīng)用系統(tǒng)特別是聯(lián)網(wǎng)服務(wù)系統(tǒng)的必由之路。在登錄界面上,用戶輸入登錄信 息(主要是帳戶信息,包括用戶名/帳號、口令/密碼,還可能有驗證碼之類的輔助信息),確認(rèn)之后接受
系統(tǒng)核驗。在網(wǎng)絡(luò)環(huán)境,尤其是在互聯(lián)網(wǎng)h,形形色色的間諜程序(指盜竊用戶信息的程序,如木馬程序 等)橫行肆虐,卻又十分隱密難以發(fā)現(xiàn),經(jīng)常在用戶不知不覺中竊取帳戶信息,侵犯用戶隱私和財產(chǎn)。這 已經(jīng)成為網(wǎng)絡(luò)社會的一大公害,極大地危及電子信箱、網(wǎng)上銀行、電子商務(wù)、電子政務(wù)、即時通信、網(wǎng)絡(luò) 游戲等各種聯(lián)網(wǎng)應(yīng)用的IC常秩序。
間諜程序竊取用戶登錄的帳戶信息,主要有四種手段 一是竊聽鍵盤,記錄按鍵和鼠標(biāo)操作信息;二 是偷窺屏幕,截取窗口界面圖象;三是攔截消息,獲取窗口輸入信息;四是掃描信道,在終端網(wǎng)絡(luò)適配器 設(shè)置混雜模式下析取,乃至在網(wǎng)上路由節(jié)點設(shè)備上過濾提取。本發(fā)明人此前提出的"登錄保護(hù)方法"(中 國發(fā)明專利申請?zhí)?00710196737.5),已經(jīng)敘述了若干現(xiàn)有技術(shù)背景。該項發(fā)明為保護(hù)用戶帳戶信息免被 盜用,提出于目標(biāo)登錄界面之外,用一代理程序收集用戶登錄信息,至少對其中密碼項施行加密變換,由 用戶操作指向目標(biāo)登錄界面上的具體子窗口位置,而通過窗口消息跨越線程發(fā)送到目標(biāo)登錄界面;還提出 主動為窗口歸屬線程動態(tài)搶占安裝防御性勾子(Hook)程序,競爭勾子鏈頭而屏蔽潛在危險勾子,阻止惡 意截獲窗口過程相關(guān)消息。該項發(fā)明著眼于終端登錄保護(hù)環(huán)節(jié),不失為一種有效之法,但不足之處是未顧 及通信傳輸環(huán)節(jié)的保護(hù)。由前述間諜程序的第四種手段可見,用戶帳戶信息還面臨在通信傳輸過程中失竊 的危險。解決這一問題的有效辦法是采用密碼協(xié)議,其中一種是稱為"挑戰(zhàn)-響應(yīng)(challenge-response)" 的認(rèn)證方法,由驗證方發(fā)送隨機(jī)數(shù)作為挑戰(zhàn),發(fā)起方對該隨機(jī)數(shù)加密并回傳作為響應(yīng),驗證方通過解密隨 機(jī)數(shù)而驗證對方身份。即使攻擊者竊取到期間的消息,但每次挑戰(zhàn)值都不同,因此響應(yīng)不致暴露秘密信息。 "通用電子信息網(wǎng)絡(luò)認(rèn)證系統(tǒng)及方法"(中國發(fā)明專利申請?zhí)?0123530.3),提出以"用戶帳號+密碼"為 基礎(chǔ),為用戶創(chuàng)建的電子信息提供網(wǎng)絡(luò)簽名及相應(yīng)的簽名驗證,同吋可為任意兩個用戶之間傳遞一個或多 個l 2 8比特位的隨機(jī)密鑰。"在客戶機(jī)-服務(wù)器環(huán)境中認(rèn)證客戶機(jī)的系統(tǒng)和方法"(中國發(fā)明專利申請?zhí)?200480019747,6),提出為代替現(xiàn)有基于口令/用戶ID的認(rèn)證過程,用包含客戶機(jī)公鑰證書和私鑰加密散列 值的客戶認(rèn)證信息擴(kuò)展第一 HTTP-請求頭部,既不改變HTTP-協(xié)議又簡化現(xiàn)有數(shù)字簽名認(rèn)證過程并允許不 同認(rèn)證過程并存。"一種實現(xiàn)自動簽名/驗證簽名功能的方法"(中國發(fā)明專利申請?zhí)?00710044738.8),提 出在網(wǎng)頁設(shè)置特定字段名稱,由網(wǎng)關(guān)檢測析取用戶輸入數(shù)據(jù)并對符合簽名/驗證簽名要求的再進(jìn)行簽名/驗 證簽名,然后傳輸給WEB服務(wù)器。
發(fā)明內(nèi)容
本發(fā)明提出的登錄認(rèn)證方法和登錄簽名程序, 一是為服務(wù)器方提供兼容口令認(rèn)證和簽名認(rèn)證的通行方 法,二是為終端(客戶機(jī))用戶設(shè)計通用便捷的輔助登錄簽名的實用程序。總的目的和用途是保護(hù)用戶的 帳戶信息不但在登錄輸入環(huán)節(jié)而且在通信傳輸過程都能免被他人蓄意盜用。
本發(fā)明首先提出一種登錄認(rèn)證方法。鑒于目前和今后較長時期內(nèi),傳統(tǒng)的口令認(rèn)證方式都還是最主要 流行的登錄認(rèn)證方式之一,本發(fā)明著眼于兼容該認(rèn)證方式,同時引入簽名認(rèn)證方式。本發(fā)明所說的簽名, 是指廣義的簽名即加密變換,核心意思是用給定密鑰對給定信息施行加密變換,而無論所釆用密碼算法是 對稱密碼體制還是非對稱(公鑰)密碼體制。本發(fā)明所說的對稱密碼體制,不但指加密和解密共用單 -密 鑰,而且指發(fā)起方和認(rèn)證方共用單一密鑰施行加密變換,而這樣的單一密鑰被稱為對稱密鑰。從服務(wù)器的 應(yīng)用系統(tǒng)(以下若無特別說明,均簡稱系統(tǒng))的角度來看,終端用戶登錄系統(tǒng)的過程可劃分為兩個階段 一是登錄受理階段,生成登錄界面并發(fā)送至終端,任由用戶填寫登錄信息然后提交;二是登錄驗證階段, 從終端用戶提交的登錄信息中提取用戶帳戶信息,檢驗判別其真實性.以決定是否確認(rèn)提供服務(wù)。本發(fā)明以實施"挑戰(zhàn)-響應(yīng)"認(rèn)證機(jī)制為基礎(chǔ),從設(shè)計呈現(xiàn)給用戶的登錄界面(窗口)入手。所設(shè)i卜的登錄界面, 除了包含傳統(tǒng)的用戶名(用戶ID)子窗口和口令(密碼)子窗口之外,至少還包含另一個指定的子窗口作 為挑戰(zhàn)子窗口,并且約定一個子窗口作為響應(yīng)子窗口。本發(fā)明所說的子窗口作為窗口中的基本構(gòu)件又稱控 件,典型的如文本編輯框控件。系統(tǒng)在登錄受理階段,于終端用戶每--7欠登錄時,即動態(tài)生成一條隨機(jī)消 息(典型的是-一個隨機(jī)數(shù), 一般是一個隨機(jī)符號串),在挑戰(zhàn)子窗口顯式地而不是隱蔽地給出,以便用戶 在登錄時對此隨機(jī)消息進(jìn)行簽名,并將由此生成的簽名信息填入響應(yīng)子窗口而能夠被服務(wù)器所收集。如此 設(shè)計的登錄界面,實際上兼容了U令認(rèn)證和簽名認(rèn)證這兩種認(rèn)證方式,可讓用戶白主選擇使用。[]令認(rèn)證 方式,是將用戶輸入的口令字與用戶在先于服務(wù)器有效登記的口令字作比對,或者分別以兩者為變量用某 個函數(shù)(如單向散列函數(shù))計算比較它們的映射值,從而得出認(rèn)證結(jié)論。簽名認(rèn)證方式,是對用戶的簽名 信息,取用用戶預(yù)先有效登記的密鑰將其解密后再與對應(yīng)隨機(jī)消息作比較,或者將用戶的簽名信息,與用 其有效登記的密鑰加密同一隨機(jī)消息得出的簽名信息相比較,從而驗證用戶簽名的有效性。
為了簡化登錄認(rèn)證兼容門令認(rèn)證和簽名認(rèn)證的實現(xiàn),本發(fā)明方法將用戶有效登記的n令字兼作兩用,
既用于驗證用戶輸入的口令,還作為對稱密鑰而用于驗證用戶的簽名;或者換言之,從用戶的角度來看,
用戶只要記住并登記單一 (即同樣的)口令字或密碼,就能夠同樣適用于口令認(rèn)證和簽名認(rèn)證。這正是本 發(fā)明方法的基本特征,而這一特征不受限于具體的實現(xiàn)方式。例如, 一種試圖規(guī)避木發(fā)明基本特征的可能 實施案是,于口令字段之外,增加一個稱之為"密鑰"之類的字段來輸入和/或存儲用戶登記的密碼,卻 容許或弓I導(dǎo)或暗示用戶可以登記同樣的口令/密鑰。盡管實施者或許聲稱不是共用口令字而是另外使用專
有密鑰進(jìn)行簽名認(rèn)證的,但卻并不能改變這樣的基本事實用戶用同樣的口令字或密鑰,就能夠同樣適用 于口令認(rèn)證和簽名認(rèn)證。因此,這類實施案也落入本發(fā)明特征的保護(hù)范圍。本發(fā)明方法推薦的優(yōu)選實施方 案,是無須對服務(wù)器應(yīng)用數(shù)據(jù)庫中既有的用戶注冊記錄結(jié)構(gòu)和內(nèi)容作任何改變,就只共用口令字作密鑰而 采用對稱密碼算法來實現(xiàn)簽名認(rèn)證。
在所設(shè)計的登錄界面上,挑戰(zhàn)子窗口屮的隨機(jī)消息只具有拾取閱讀意義,故可設(shè)置只讀屬性以免用戶 修改。響應(yīng)子窗口一般可以是一個新的獨立子窗口,但卻町加以巧妙安排而約定共用口令子窗口。這意味 著,口令子窗口既用于接收用戶輸入口令,又用于收集用戶簽名。為便于實現(xiàn)口令字的雙重作用,簽名處 理適宜采用對稱密碼體制的密碼算法。但這并不妨礙本發(fā)明還可兼容采用非對稱密碼體制的密碼算法,只 要預(yù)先在服務(wù)器登記用戶的公開密鑰,或者直接在簽名信息中附帶公開密鑰即可。為了擴(kuò)大簽名認(rèn)證的適 用性,系統(tǒng)可以列舉并實現(xiàn)多種密碼算法,以供用戶自由選擇或定制。對稱密碼算法如標(biāo)準(zhǔn)的DES、工DEA、 AES、GOST等,本發(fā)明還擴(kuò)充定義包括用單向散列函數(shù)如標(biāo)準(zhǔn)的MD5、 SHA-1等結(jié)合密鑰的消息鑒別碼(MAC) 算法;非對稱密碼算法如標(biāo)準(zhǔn)的RSA、 DSA等。用戶只有在選擇了簽名認(rèn)證方式之后,對密碼算法的選擇 才有意義。因此,在實現(xiàn)上可以如此安排,僅當(dāng)用戶明確選擇了簽名認(rèn)證,才顯示出可用密碼算法的列表 以供選擇。然而,出于兼容性和靈活性的考慮,本發(fā)明還容許用戶不明確選擇認(rèn)證方式,以盡可能方便用 戶登錄。尤其在登錄界面被設(shè)計成口令子窗口和響應(yīng)子窗口為同一子窗口的情形,其中輸入的內(nèi)容具有二 義性可能是用戶口令,也可能是用戶簽名。本發(fā)明的解決辦法是,由系統(tǒng)在登錄驗證階段,自行按口令 認(rèn)證和簽名認(rèn)證兩種方式分別嘗試進(jìn)行認(rèn)證,只要其中一種通過即確認(rèn)通過認(rèn)證。對于用戶的每一次登錄, 嘗試這兩種認(rèn)證方式的先后順序并不重要,關(guān)鍵是不要漏過而且也只需要其中一種成功的認(rèn)證。即使用戶 對認(rèn)證方式作出r明確選擇,也應(yīng)容忍用戶偶爾出現(xiàn)選擇錯誤卻登錄真實的情形。因此, 一種完備的實現(xiàn) 安排是,先按用戶選擇的認(rèn)證方式進(jìn)行認(rèn)證,若不能通過則再按另一種認(rèn)證方式進(jìn)行認(rèn)證。對于簽名認(rèn)證, 為了防止惡意利用舊的有效簽名信息實施重放攻擊,系統(tǒng)除了要驗證簽名信息之外,還必須(通常是先行) 檢驗對應(yīng)隨機(jī)消息以確信正是為本次認(rèn)證生成的而不是過期失效的。 一種可取的實際辦法是,系統(tǒng)對每--次動態(tài)生成的隨機(jī)消息或其校驗值(如CRC值)都要先作登記暫時存儲,并且不生成重復(fù)的隨機(jī)消息,而 一旦該隨機(jī)消息被驗證用過之后,或超時(比如10分鐘)未用過,則注銷它。要控制生成隨機(jī)消息不重 復(fù)而又便于檢索, 一個簡單的辦法是在隨機(jī)消息中加入一個足夠長(如4字節(jié))的遞增整數(shù)。
本發(fā)明還設(shè)計一種登錄簽名程序。本發(fā)明程序運行于終端,獨立于其他應(yīng)用系統(tǒng)程序及其呈現(xiàn)的登錄 界面(本發(fā)明稱之為目標(biāo)登錄界面),呈現(xiàn)自有操作界面,或者呈現(xiàn)提示信息,或者在自有操作界面上呈 現(xiàn)提示信息,以輔助用戶在目標(biāo)登錄界面上完成簽名。本發(fā)明程序運行時,引導(dǎo)并且判定用戶指向落定于目標(biāo)登錄界面上指定的挑戰(zhàn)子窗口,而后將簽名信息發(fā)送至目標(biāo)登錄界面上約定的響應(yīng)了窗口內(nèi)。所述指 向落定,是指先指向后落定的關(guān)聯(lián)操作,即先移動光標(biāo)或焦點至某個目標(biāo)子窗口,然后通過按鍵或按鈕進(jìn) 行確認(rèn),或者定時約定當(dāng)預(yù)定時間段(如2秒鐘)逝去即確認(rèn)。一種簡單直觀的指向落定,是移動鼠標(biāo)至 目標(biāo)子窗口,然后點擊(單擊或雙擊)鼠標(biāo)鍵(左鍵或右鍵)使得焦點落于該子窗口。還可以先用功能組 合鍵切換窗門,又通過按特定鍵(如Tab鍵前進(jìn),Shift+Tab組合鍵后退),于多個子窗口中游歷定位至目 標(biāo)子窗口使之獲得焦點,然后按特定鍵(如Enter鍵)或點擊特定按鈕確認(rèn)之。用輸入筆點選、屏幕手指 觸摸,亦視同鼠標(biāo)點擊。本發(fā)明程序優(yōu)選地,能夠操作控制硬件形態(tài)的密碼裝置,該密碼裝置可以是終端 自備的或終端外接的,其內(nèi)部包含至少一個內(nèi)置的特別密鑰,乃至包含并運行實現(xiàn)特定密碼算法的程序代 碼。本發(fā)明程序?qū)嵭羞@樣的簽名處理從密碼裝置中獲取內(nèi)部密鑰用于對隨機(jī)消息施行簽名即加密變換, 或者先傳入隨機(jī)消息,可選地還傳入一個由用戶輸入的外部保密字,再從密碼裝置中獲取簽名信息。隨機(jī) 消息來源于目標(biāo)登錄界面的挑戰(zhàn)子窗口 ,而外部保密字則由用戶通過本發(fā)明程序的自有操作界面輸入,或 者由用戶從密碼裝置上直接輸入(如果密碼裝置功能支持的話)。對于外接的密碼裝置,還可在其上設(shè)計 一個特定的確認(rèn)鍵,按此確認(rèn)鍵也可作為指向之落定操作。本發(fā)明程序的基本特征在于其一,由所述判 定用戶指向落定之操作反饋,自動從目標(biāo)登錄界面的挑戰(zhàn)子窗口拾取隨機(jī)消息,以供簽名處理而生成簽名 信息;其二,按預(yù)定簽發(fā)策略而導(dǎo)向定位于目標(biāo)登錄界面的響應(yīng)子窗口,導(dǎo)致發(fā)送簽名信息至其屮。用戶 指向落定的操作,導(dǎo)致操作系統(tǒng)使得目標(biāo)登錄界面窗口成為當(dāng)前活躍窗口 ,也使得所指向的子窗口獲得輸 入焦點。結(jié)果反饋為系統(tǒng)消息(如窗口消息)或狀態(tài)(如鼠標(biāo)或按鍵的狀態(tài)),本發(fā)明程序運用操作系統(tǒng) 消息機(jī)制或API,通過對消息的響應(yīng)或?qū)τ脩舨僮鲃幼鞯臋z測感知(如鼠標(biāo)點擊、鍵盤回車鍵按下、密碼 裝置上確認(rèn)鍵按下等),就能夠判定挑戰(zhàn)子窗口的位置并獲取窗口指針(Handle),然后通過對其發(fā)出請求 獲取文本的標(biāo)準(zhǔn)窗UJ消息或模擬剪貼操作,就能夠從中拾取隨機(jī)消息的文本。
關(guān)于簽名處理,本發(fā)明程序又設(shè)計如下選項之一項或多項的組合,也構(gòu)成本發(fā)明的附屬特征 一是, 所采用的密碼算法,可羅列并實現(xiàn)多種(即兩種以上),以供用戶自由選擇設(shè)定;二是,可預(yù)先設(shè)定長度 指標(biāo),依據(jù)該指標(biāo)來擴(kuò)展或限定簽名密鑰的長度,或擴(kuò)展或限定簽名信息的長度;三是,當(dāng)用戶所選定的 密碼算法屬于對稱密碼體制時,或當(dāng)系統(tǒng)從挑戰(zhàn)子窗口拾取的隨機(jī)消息為空時,則用前述的外部保密字與 密碼裝置內(nèi)部密鑰共同合成簽名密鑰。合成簽名密鑰的方法方式可以有多種多樣,總之是將外部保密字與 內(nèi)部密鑰作為兩個變量,并按一定算法加以混合處理而形成新的關(guān)聯(lián)密鑰。
關(guān)于簽發(fā)策略,本發(fā)明程序還設(shè)計下列選項之一項或多項的組合,也構(gòu)成本發(fā)明的附屬特征 一是, 以挑戰(zhàn)于窗口之前或之后游歷順序相鄰的另一個子窗口作為響應(yīng)子窗口; 二是,就以挑戰(zhàn)子窗口同時作為 響應(yīng)子窗口,而將簽名信息直接替換隨機(jī)消息或插入隨機(jī)消息;三是,在本次指向落定挑戰(zhàn)子窗口之后, 以隨后另一次指向落定的子窗口作為所述響應(yīng)子窗口 ;四是,當(dāng)指向落定的挑戰(zhàn)子窗口是口令子窗口時, 或當(dāng)從挑戰(zhàn)子窗口拾取的隨機(jī)消息為空時,則默認(rèn)即以此子窗口作為響應(yīng)子窗口,并且就以簽名密鑰作為 簽名信息。判定一個子窗口是否為口令子窗口的一種辦法,是以該子窗口作為編輯框控件類對象實例化之 后而執(zhí)行其成員函數(shù)GetPasswordCharO,檢測返回符號即可知。實現(xiàn)發(fā)送簽名信息至晌應(yīng)子窗口,具體 有三種傳送方式第一種是發(fā)送(Send),將簽名信息文本視為非隊列化消息,旁路消息隊列而直接調(diào)用 窗口過程,并等待其執(zhí)行完畢才返回;第二種是遞送(Post),只簡單地將簽名信息文本送入消息隊列便 立即返回,而任由線程的消息循環(huán)去完成后續(xù)的提取、分析消息和調(diào)用窗口過程;第三種是模擬鍵盤操作,
將簽名信息文本分解轉(zhuǎn)換為按鍵字符值序列而傳入鍵盤輸入隊列轉(zhuǎn)達(dá)線程輸入隊列。對于口令認(rèn)證方式, 宜采用前一種傳送方式以策安全,因為后兩種方式有被間諜程序(例如惡意鍵盤記錄程序)攔截竊取口令 字的風(fēng)險。而對于簽名認(rèn)證方式,三種傳送方式皆可用,由于簽名信息的動態(tài)隨機(jī)性,失竊風(fēng)險帶來的危 害性不大。
鑒于一些間諜程序可能利用勾子機(jī)制作為后門,將遂行盜竊行為的代碼作為勾子程序隱蔽地插入窗口 (例如目標(biāo)登錄界面窗口、本發(fā)明程序界面窗口)的歸屬線程,蓄意攔截獲取用戶信息(例如登錄信息)。 本發(fā)明程序的對策,是主動安裝防御性勾了,來克制惡意的勾子。防御性勾子程序的簡單形態(tài)是空的回調(diào) 函數(shù),其除了直接返回之外什么也無須做,不再調(diào)用勾子鏈上后續(xù)節(jié)點的其他勾子程序,使得它們失去激 活執(zhí)行的機(jī)會。可選地,既可為系統(tǒng)安裝以達(dá)監(jiān)護(hù)之目的,也可為本發(fā)明程序安裝而收自我防范之功效。在實現(xiàn)上,采取動態(tài)、反復(fù)安裝策略,與潛在間諜程序競爭勾子優(yōu)先權(quán),使得防御性勾子搶占并保持在勾 子鏈上頭節(jié)點,從而切斷間諜程序所安裝勾子的運行途徑。
本發(fā)明程序的典型實現(xiàn)方式,通常是作為一個獨立的實用程序使用,必要時,也可以作為操作系統(tǒng)功 能組成的一部分。不但可以在個人計算機(jī)、便攜式計算機(jī)上實現(xiàn),而且能夠在手持終端設(shè)備(如移動電話、 個人數(shù)字助理等)上實現(xiàn)。例如,在移動電話上實現(xiàn)的一種方案是內(nèi)置一個密碼裝置部件,其中存儲一 個內(nèi)部密碼;在操作菜單中增加一個"簽名"選項,在屏幕下方顯示輸入外部密碼(外部保留字)和操作 提示信息,用光標(biāo)鍵游歷指向或直接用手寫筆點擊指向目標(biāo)登錄界面的子窗口,定義一個按鍵或圖形按鈕 用于確認(rèn)落定操作??梢云诖?,本發(fā)明程序能夠植入移動電話等手持終端設(shè)備的操作系統(tǒng),而將成為這類 設(shè)備安全保密功能的一部分。
本發(fā)明的積極效果, 一方面,為服務(wù)方(服務(wù)器)提供了一種兼容口令認(rèn)證和簽名認(rèn)證的通行方法, 該方法明顯與設(shè)備(密碼裝置)無關(guān),為從弱認(rèn)證的口令認(rèn)證平穩(wěn)地和無縫地過渡到強(qiáng)認(rèn)證的簽名認(rèn)證, 指出了一條可行途徑;另一方面,還為終端(客戶機(jī))用戶設(shè)計了一種便捷有效的輔助登錄簽名的實用程 序,該程序顯然與應(yīng)用無關(guān),因而具有普適通用性,其最低目標(biāo),即使對于不實施本發(fā)明認(rèn)證方法的系統(tǒng) (即仍單純采用傳統(tǒng)口令認(rèn)證方式的系統(tǒng)),也能輕易實現(xiàn)口令字的隨意擴(kuò)展與保密輸送,從而增強(qiáng)用戶 帳戶的安全性。本發(fā)明能夠普遍適用于電子信箱、網(wǎng)上銀行、電子商務(wù)、電子政務(wù)、即時通信、網(wǎng)絡(luò)游戲, 以及各種管理信息系統(tǒng)凡是需要用戶登錄的場合。
圖1是本發(fā)明的示意圖。終端用戶(10)使用登錄簽名程序(20)輸入操作信息(12),操作信息(12) 可選地包括外部保留字和/或長度指標(biāo)數(shù)據(jù);登錄簽名程序(20)在收集的操作信息(12)被確認(rèn)之后, 向終端用戶U0)顯示提示信息(21),等待落定反饋(22)的到來;終端用戶(10)看到提示信息(21), 指向落定(15)于目標(biāo)登錄界面(50)上的挑戰(zhàn)子窗口 (510),導(dǎo)致操作系統(tǒng)發(fā)出落定反饋(22)相關(guān)事 件或狀態(tài);登錄簽名程序(20)在獲得落定反饋(22)之后,即從挑戰(zhàn)子窗口 (510〉自動拾取隨機(jī)消息 (52),又轉(zhuǎn)送至密碼裝置(30),連同該隨機(jī)消息(23)可選地還附帶傳送外部保留字和/或長度指標(biāo)數(shù) 據(jù);密碼裝置(30)接收到隨機(jī)消息(23)及可能附帶的外部保留字和/或長度指標(biāo)數(shù)據(jù),施行簽名即加 密變換,生成簽名信息(32)再回傳給登錄簽名程序(20);登錄簽名程序(20)從密碼裝置(30)獲取 簽名信息(32)之后,按照預(yù)定的簽發(fā)策略而導(dǎo)向定位于目標(biāo)登錄界面(50)上的響應(yīng)子窗口 (520),最 終導(dǎo)致發(fā)送簽名信息(25)至響應(yīng)子窗口 (520)中。另外,可選地,如虛線部分所示,登錄簽名程序(20) 還適時安裝勾子(24),憑借防御性勾子程序(40),既可進(jìn)行自我防范(42),又可實施目標(biāo)監(jiān)護(hù)(45)。 圖中連線的箭頭,表示傳遞或作用的方向。
圖2是本發(fā)明的登錄認(rèn)證方法中,登錄受理階段的流程圖。系統(tǒng)準(zhǔn)備就緒(1)之后,受理登錄請求 (2),動態(tài)生成隨機(jī)消息(3),顯式呈現(xiàn)于挑戰(zhàn)子窗口 (4),發(fā)送給終端用戶(5)之后,便返回(6)。
圖3是本發(fā)明的登錄認(rèn)證方法中,登錄驗證階段的流程圖。系統(tǒng)準(zhǔn)備就緒(1)之后,接收登錄信息 (2),從中提取簽名信息(3),并取用用戶有效登記口令字/密鑰(4),進(jìn)行口令認(rèn)證/簽名認(rèn)證(5),判 斷是否關(guān)聯(lián)一致(6),是(Y)則提供服務(wù)(7),否(N)則拒絕服務(wù)(8),然后返回(9)。其中,提供服 務(wù)(7)的過程本不屬于登彔驗證階段,納入圖中僅為圖示的完整性,可理解為過程入口之表示;拒絕服 務(wù)(8)通常只需告示用戶登錄無效。
圖4是本發(fā)明的登錄認(rèn)證方法的一個實施例,將在后面陳述的具體實施方式
中說明。
圖5、圖6均是本發(fā)明的登錄簽名程序的一個實施例,亦將在后面陳述的具體實施方式
中說明。
具體實施例方式
一、登錄認(rèn)證方法的實施方式。
參照圖4來說明。系統(tǒng)在登錄受理階段,呈現(xiàn)如本圖所示的界面窗口,標(biāo)題是"用戶登錄界面",標(biāo) 題欄右邊有關(guān)閉退出按鈕。用戶在此界面輸入登錄信息[用戶名]編輯框輸入用戶帳戶的名稱或代碼;[口 令/響應(yīng)]編輯框以密碼字符顯示,輸入用戶的口令字或作為響應(yīng)的簽名信息,取決于用戶對[簽名挑戰(zhàn)]復(fù)選框的勾選與否;若勾選了[簽名挑戰(zhàn)]復(fù)選框,則[口令/響應(yīng)]編輯框被換名為[簽名響應(yīng)],將輸入簽名 信息,并顯示[簽名挑戰(zhàn)]編輯框(只讀的)和[密碼算法]下拉列表框;若不勾選[簽名挑戰(zhàn)]復(fù)選框,貝'J[口 令/響應(yīng)]編輯框被換名為[口令],將輸入口令字,并隱藏[簽名挑戰(zhàn)]編輯框和[密碼算法]下拉列表框;系 統(tǒng)在[簽名挑戰(zhàn)]編輯框中呈現(xiàn)動態(tài)生成的隨機(jī)消息,供用戶拾取用于簽名處理以產(chǎn)生簽名信息,又在[密 碼算法]下拉列表框中羅列了所支持的密碼算法"①AES(高級加密標(biāo)準(zhǔn)/128/192/256b鑰)"、"②3DES(數(shù)據(jù) 加密標(biāo)準(zhǔn)/64/128/192b鑰)"、"③G()ST(俄羅斯標(biāo)準(zhǔn)/256b鑰)"、" MD5-MAC(MD5散列消息鑒別碼/128b 鑰)"、"⑤SHA-船C(安全散列消息鑒別碼/160b鑰)"選項,供用戶選擇。用戶在輸入上述登錄信息完畢之 后,點擊[登錄]按鈕提交給服務(wù)器,系統(tǒng)由此進(jìn)入登錄驗證階段按[用戶名]檢索提取對應(yīng)口令字,先與 [口令/響應(yīng)]比對,若不成功則再按用戶選擇的[密碼算法]計算驗證,只要其中一種通過就確認(rèn)登錄成功。 對于既有的基于口令認(rèn)證的系統(tǒng),要兼容過渡到簽名認(rèn)證,只需做兩點改進(jìn) 一是新增[簽名挑戰(zhàn)]編輯框 和[密碼算法]下拉列表框,同時復(fù)用[口令]密碼編輯框接收簽名消息;二是在原有的口令認(rèn)證流程中,插 入簽名認(rèn)證所涉及的隨機(jī)消息動態(tài)生成管理和按密碼算法計算驗證的代碼。因此,無須對原有數(shù)據(jù)庫和業(yè) 務(wù)流程作任何修改。而且,由于采用標(biāo)準(zhǔn)的密碼算法,所需的簽名認(rèn)證代碼可以實現(xiàn)為通用動態(tài)鏈接庫函 數(shù),容易被眾多系統(tǒng)所復(fù)用。
二、登錄簽名程序的實現(xiàn)方式。
參見圖5。展示的是所設(shè)計的登錄簽名程序,其操作界面之常態(tài)。窗口標(biāo)題是"登錄簽名程序",標(biāo)題 欄右邊有最小化按鈕和關(guān)閉退出按鈕。界面窗口的Z序被置于最頂層,得以浮現(xiàn)于目標(biāo)登錄界面窗口之上; 常態(tài)界面也設(shè)計得適當(dāng)小,盡量減少遮擋目標(biāo)登錄界面窗口的覆蓋面。[密碼]復(fù)選框和[定長]復(fù)選框供 用戶靈活選擇。[密碼]編輯框輸入外部保留字(用戶隨意確定的密碼),用于與密碼裝置內(nèi)置的密鑰合成 簽名密鑰,若未勾選,則僅用密碼裝置內(nèi)置的密鑰生成簽名密鑰;[定長]編輯框輸入-一個長度指標(biāo)數(shù)值, 用于擴(kuò)展或限定簽名密鑰的長度。用戶點擊[簽發(fā)]按鈕,本程序則隱藏本程序窗口,而在光標(biāo)位置附近跟 隨顯示一個"請指向雙擊簽名處..."黃色工具提示框,提請用戶指向點擊目標(biāo)登錄界面上的挑戰(zhàn)子窗口 (編輯框控件),使之活躍而獲得焦點;本程序監(jiān)測到鼠標(biāo)左鍵雙擊事件,則視為指向落定之反饋,便關(guān) 閉工具提示框,獲取當(dāng)前焦點所在子窗口的指針,進(jìn)而通過消息機(jī)制拾取其中的隨機(jī)消息,然后連同[密 碼]和[定長]傳入密碼裝置,再由后者進(jìn)行簽名后又回傳簽名信息。本程序隨即按預(yù)定的簽發(fā)策略而導(dǎo)向 定位于響應(yīng)子窗口,把簽名信息發(fā)送至其中。當(dāng)簽發(fā)策略被選定為"隨意指向"時,又在光標(biāo)位置附近跟 隨顯示一個"請指向點擊簽發(fā)去處..."綠色工具提示框,提請用戶指向點擊目標(biāo)登錄界面上的響應(yīng)子窗 口 (編輯框控件),使之活躍而獲得焦點;本程序監(jiān)測到鼠標(biāo)左鍵單擊事件,則視為指向落定之反饋,便 關(guān)閉工具提示框,獲取當(dāng)前焦點所在子窗口的指針,進(jìn)而通過消息機(jī)制發(fā)送簽名信息至其中。界面底部一 行,用于顯示操作提示和結(jié)果報告信息。[V]按鈕擴(kuò)展操作界面如圖6所示,同時該按鈕換名為[A]。
參見圖6。展示的是所設(shè)計的登錄簽名程序,其操作界面之?dāng)U展態(tài)。上面部分與圖5所示之常態(tài)幾乎 完全一致,例外的是,[A]按鈕收縮界面恢復(fù)為常態(tài)。其余的下面部分是一組選項卡功能窗口,圖中顯示 的是[設(shè)置]選項卡的全貌。[語言]下拉列表框羅列了 "①中文簡體"、"②中文繁體"、"③英文"等語言文 字選項,規(guī)定本程序的適用語言環(huán)境。[熱鍵]下拉列表框羅列"①[Ctrl+Alt+Shift]"、"② [Ctrl+Alt.+Space]"兩種組合鍵選項,用于切換本程序窗口之顯現(xiàn)/消隱。[簽發(fā)策略]下拉列表框羅列"① 任意指向(隨后點擊發(fā)送去處)"、"②原位替換(在簽名處全文)"、"③原位插入(在簽名處開頭)"、" 原位添加(在簽名處末尾)"、"⑤前進(jìn)另存(從簽名處前進(jìn)一框)"、"⑥后退另存(從簽名處后退一框)" 選項,決定響應(yīng)子窗口的導(dǎo)向定位。同時默認(rèn),當(dāng)簽名處是口令(密碼)框或其中隨機(jī)消息為空,則總釆 取第②項簽發(fā)策略。[密碼算法]下拉列表框羅列"①AES(高級加密標(biāo)準(zhǔn)/128/192/256b鑰)"、"②3DES(數(shù) 據(jù)加密標(biāo)準(zhǔn)/64/128/192b鑰)"、"③GOST(俄羅斯標(biāo)準(zhǔn)/256b鑰)"、" MD5-MAC(MD5散列消息鑒別碼/128b 鑰)"、"⑤SHA-MAC(安全散列消息鑒別碼/160b節(jié)"、"⑥RSA(公鑰簽名)"、."⑦DSA(數(shù)字簽名)"選項,作 為簽名所采用的密碼算法。當(dāng)[密碼算法]選中后兩項之一,即屬于非對稱密碼體制,則呈現(xiàn)[數(shù)字證書]下 拉列表框,不然屬于對稱密碼體制,則隱藏之。[數(shù)字證書]下拉列表框羅列此前導(dǎo)入的對應(yīng)密碼算法可用 之?dāng)?shù)字證書。[密鑰長度]編輯框是只讀的,用[密碼算法]當(dāng)前選項適用的密鑰長度值填充顯示,同時設(shè)置 為[定長]編輯框的缺省值。[窗口消隱]復(fù)選框,勾選表示在點擊[簽發(fā)]按鈕后即隱藏本程序窗口;[目標(biāo)監(jiān)護(hù)]復(fù)選框,勾選表示要為目標(biāo)登錄界面窗口的歸屬線程安裝防御性勾子程序;[自我防范]復(fù)選框,勾 選表示要為本程序窗口的歸屬線程安裝防御性勾子程序。[設(shè)定]按鈕,確認(rèn)保存當(dāng)前設(shè)置的所有選項,作 為本程序下次重新啟動時的初始設(shè)置。其他未詳細(xì)展示的選項卡的主要功能是[硬件],讀取顯示密碼裝 置的產(chǎn)品序列號、版本號和工作狀態(tài);[導(dǎo)入],在授權(quán)條件下,可選地更新本程序軟件、密碼裝置固件(固 化軟件)、私密鑰和數(shù)字證書;[關(guān)于],顯示本程序的版本和版權(quán)信息;[幫助],顯示操作使用指南。
從用戶角度看,要使用本登錄簽名程序,在實現(xiàn)了前述登錄認(rèn)證方法的系統(tǒng)上簽名登錄,只需作一次 性的口令變更(修改密碼),手工輸入原口令字(密碼),而直接在新口令處點擊簽名,即以新的簽名密鑰 取代了原口令字。于是,就能實現(xiàn)從口令認(rèn)證到簽名認(rèn)證的順利過渡。
權(quán)利要求
1. 一種登錄認(rèn)證方法,為應(yīng)用系統(tǒng)進(jìn)行用戶身份認(rèn)證,在呈現(xiàn)的登錄界面中,包含用戶名子窗口和口令子窗口,還包含指定的挑戰(zhàn)子窗口用于給出動態(tài)生成的隨機(jī)消息,以及約定的響應(yīng)子窗口用于收集用戶的簽名信息,兼容口令認(rèn)證和簽名認(rèn)證兩種認(rèn)證方式而讓用戶自主選擇,其特征在于,用戶有效登記的口令字,除被用于驗證用戶的口令外,還被作為對稱密鑰而用于驗證用戶的簽名,或者從用戶的角度看,用戶只要記住并有效登記單一口令字或密鑰,就能夠同樣適用于口令認(rèn)證和簽名認(rèn)證。
2、 根據(jù)權(quán)利要求1所述的方法,其特征是,所述響應(yīng)子窗口與所述口令子窗口為同一子窗口。
3、 根據(jù)權(quán)利要求1所述的方法,其特征是,所述認(rèn)證方式容許用戶不明確選擇,系統(tǒng)自行按所述兩 種方式分別嘗試進(jìn)行認(rèn)證,只要其中一種通過即確認(rèn)通過認(rèn)證。
4、 根據(jù)權(quán)利要求1 、 2和3所述的方法,其特征是,所述簽名認(rèn)證采用的密碼算法包含兩種以上, 可由用戶選擇或定制。
5 、 一種登錄簽名程序,獨立于應(yīng)用系統(tǒng)的目標(biāo)登錄界面而運行,呈現(xiàn)自有操作界面和/或提示信息, 引導(dǎo)并判定用戶指向落定于所述目標(biāo)登錄界面上指定的挑戰(zhàn)于窗口 ,而后將簽名信息發(fā)送至所述目標(biāo)登錄 界面上約定的響應(yīng)子窗口內(nèi),可選地,其操控終端自備的或外接的密碼裝置,以便從中獲取內(nèi)部密鑰用于 簽名,或者先傳入隨機(jī)消息、可選地和—個由用戶輸入的外部保密字,再從中獲取簽名信息,其特征在于,(1) 由所述判定用戶指向落定之操作反饋,自動從所述挑戰(zhàn)子窗口拾取隨機(jī)消息,以供簽名處理而 生成簽名信息;并且,(2) 按預(yù)定簽發(fā)策略而導(dǎo)向定位于所述響應(yīng)子窗口,導(dǎo)致發(fā)送簽名信息至其中。
6、 根據(jù)權(quán)利要求5所述的程序,其特征是,所述簽名處理采用的密碼算法包含兩種以上,可由用戶 選擇設(shè)定。
7、 根據(jù)權(quán)利要求5所述的程序,其特征是,所述簽名處理可預(yù)設(shè)長度指標(biāo),據(jù)以擴(kuò)展或限定簽名密 鑰的長度或簽名信息的長度。
8、 根據(jù)權(quán)利要求5所述的程序,其特征是,所述簽名處理包括,當(dāng)選定的密碼算法屬于對稱密碼體 制,或當(dāng)從所述挑戰(zhàn)子窗n拾取的隨機(jī)消息為空,則用所述外部保密字與所述內(nèi)部密鑰共同合成簽名密鑰。
9、 根據(jù)權(quán)利要求5、 6、 7和8所述的程序,其特征是,所述簽發(fā)策略包括,以所述挑戰(zhàn)子窗口之前 或之后游歷順序相鄰的子窗口作為所述響應(yīng)子窗口 。
10、 根據(jù)權(quán)利要求5、 6、 7和8所述的程序,其特征是,所述簽發(fā)策略包括,以所述挑戰(zhàn)子窗口作為 所述響應(yīng)子窗口 ,而將簽名信息替換或插入隨機(jī)消息。
11、 根據(jù)權(quán)利要求5、 6、 7和8所述的程序,其特征是,所述簽發(fā)策略包括,以隨后另一次指向落定 的子窗口作為戶萬述響應(yīng)子窗口 。
12、 根據(jù)權(quán)利要求5、 6、 7和8所述的程序,其特征是,所述簽發(fā)策略包括,當(dāng)所述指向落定的挑戰(zhàn) 子窗口是口令子窗口,或當(dāng)從所述挑戰(zhàn)子窗口拾取的隨機(jī)消息為空,則默認(rèn)以此了窗口作為所述響應(yīng)子窗 口,并以簽名密鑰作為簽名信息。
全文摘要
登錄認(rèn)證方法和登錄簽名程序,涉及計算機(jī)軟件、網(wǎng)絡(luò)通信和信息安全技術(shù)領(lǐng)域。系統(tǒng)呈現(xiàn)登錄界面除用戶名和口令子窗口,還有挑戰(zhàn)子窗口給出動態(tài)生成隨機(jī)消息,及約定響應(yīng)子窗口收集用戶簽名信息,兼容口令認(rèn)證和簽名認(rèn)證讓用戶自主選擇,登記口令字既驗證口令,又兼對稱密鑰驗證簽名,用戶記住登記單一口令字即可適用兩種認(rèn)證方式;登錄簽名程序獨立運行,引導(dǎo)判定用戶于目標(biāo)登錄界面上指向落定挑戰(zhàn)子窗口,自動從中拾取隨機(jī)消息經(jīng)密碼裝置簽名而生成簽名信息,再按預(yù)定簽發(fā)策略導(dǎo)向定位并發(fā)送簽名信息至響應(yīng)子窗口。本發(fā)明方法與硬件無關(guān),乃從弱口令認(rèn)證到強(qiáng)簽名認(rèn)證平穩(wěn)無縫過渡之通途;本發(fā)明程序與應(yīng)用無關(guān),普適通用而能有效保護(hù)用戶帳戶。
文檔編號H04L9/32GK101286848SQ20081010908
公開日2008年10月15日 申請日期2008年5月23日 優(yōu)先權(quán)日2008年5月23日
發(fā)明者周躍平, 霄 楊, 楊筑平 申請人:楊筑平