專利名稱:一種基于Windows內(nèi)核的反鍵盤記錄技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明設(shè)計(jì)一種基于Windows內(nèi)核的反鍵盤記錄技術(shù),主要應(yīng)用于信息安全領(lǐng)域,保護(hù)用戶網(wǎng)上沖浪時(shí)的賬戶密碼安全。
背景技術(shù):
隨著互聯(lián)網(wǎng)的普及,人們?cè)诨ヂ?lián)網(wǎng)上的活動(dòng)涉及到生活中的各個(gè)領(lǐng)域。每個(gè)網(wǎng)絡(luò)用戶都有一個(gè)或多個(gè)賬號(hào)密碼,通過賬號(hào)密碼用戶可以完成各種跟生活息息相關(guān)的業(yè)務(wù)辦理。因此賬戶密碼成為很多不法份子盜取的對(duì)象,并愈演愈烈。為了提高密碼的安全性,各大網(wǎng)絡(luò)服務(wù)提供商均提供了自身的密碼保護(hù)技術(shù)。反鍵盤記錄技術(shù)正是在用戶密碼不斷受到威脅的情況下產(chǎn)生的。它主要是保證賬戶密碼從輸入到服務(wù)器端驗(yàn)證整個(gè)過程的安全性。主要有以下幾種技術(shù)一.截獲鍵盤輸入后,對(duì)輸入信息進(jìn)行加密傳輸;二 .改變?cè)墟I盤輸入的傳輸流程,自己建立傳輸機(jī)制; 三.進(jìn)行實(shí)時(shí)監(jiān)控,一旦發(fā)現(xiàn)可疑進(jìn)程,提示用戶并查殺病毒。反鍵盤記錄技術(shù)最早是由各大殺毒軟件提供。殺毒軟件[3]主要是為整機(jī)提供一個(gè)安全防護(hù),當(dāng)殺毒軟件的實(shí)時(shí)監(jiān)控系統(tǒng),發(fā)現(xiàn)本機(jī)的某個(gè)進(jìn)程存在惡意特征行為,將提醒用戶存在可疑進(jìn)程,并在用戶授權(quán)情況下查殺病毒,從而為用戶密碼提供了一定程度的保護(hù)。后來,隨著越來越多的公司均提供網(wǎng)上業(yè)務(wù)辦理,針對(duì)不同的密碼登陸機(jī)制,出現(xiàn)了很多針對(duì)某一軟件的專業(yè)黑客盜號(hào)軟件。這類軟件由于技術(shù)針對(duì)性強(qiáng),可以躲過殺毒軟件的查殺,而且盜號(hào)效率高,危害性也更大。針對(duì)這種情況,有實(shí)力的網(wǎng)絡(luò)服務(wù)提供商紛紛在自己的登陸系統(tǒng)中提供自己的反鍵盤記錄技術(shù)。比較基礎(chǔ)的一種反鍵盤記錄技術(shù)是在獲得用戶輸入信息后,對(duì)信息進(jìn)行加密傳輸,在服務(wù)器端解密后再驗(yàn)證。這樣即使存在鍵盤記錄軟件,獲得的也是無價(jià)值的密文。剛開始各大銀行提供的網(wǎng)銀服務(wù)就是用的這種技術(shù),而且現(xiàn)在網(wǎng)銀的反鍵盤記錄技術(shù)也是在此基礎(chǔ)上改進(jìn)的。另一種技術(shù)要比上面那種復(fù)雜點(diǎn),也更安全。它主要是在底層獲得鍵盤輸入后,直接改變?cè)墟I盤信息的傳輸流程,通過自己的傳輸機(jī)制直接發(fā)送到應(yīng)用層。如QQ 使用的NP (NProtect)技術(shù)。NP技術(shù)是韓國人設(shè)計(jì)的一種較先進(jìn)的反鍵盤記錄技術(shù),但隨著人們對(duì)該技術(shù)的深入研究,已經(jīng)產(chǎn)生了破解QQ密碼保護(hù)機(jī)制的方案。本發(fā)明中設(shè)計(jì)的反鍵盤記錄技術(shù)基于Windows內(nèi)核數(shù)據(jù)結(jié)構(gòu),采用驅(qū)動(dòng)層和應(yīng)用層相結(jié)合的方式,從根本上屏蔽木馬對(duì)賬戶密碼的記錄,且做到整個(gè)保護(hù)過程對(duì)系統(tǒng)透明,兼容性好。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題針對(duì)用戶網(wǎng)絡(luò)服務(wù)的賬戶密碼頻繁被盜問題,在 Windows平臺(tái)上設(shè)計(jì)出一種更安全的賬戶密碼保護(hù)技術(shù)。該技術(shù)基于Windows內(nèi)核數(shù)據(jù)結(jié)構(gòu),重點(diǎn)是通過修改內(nèi)核數(shù)據(jù),使得鍵盤信息在傳輸過程中不流經(jīng)惡意軟件注冊(cè)的模塊,從而保護(hù)用戶賬戶密碼。針對(duì)Windows平臺(tái)特點(diǎn),分析了鍵盤信息從產(chǎn)生到被傳入登錄窗口的整個(gè)傳輸流程,并通過內(nèi)核調(diào)試技術(shù)得出鍵盤驅(qū)動(dòng)設(shè)備鏈和Windows消息鉤子鏈的數(shù)據(jù)結(jié)構(gòu),在此基礎(chǔ)上,進(jìn)一步設(shè)計(jì)和實(shí)現(xiàn)通用的反鍵盤記錄技術(shù)。本發(fā)明采用如下的技術(shù)方案一種基于Windows內(nèi)核的反鍵盤記錄技術(shù),包括下列步驟步驟一截獲用戶的鍵盤輸入,如果鍵盤信息是標(biāo)識(shí)的啟動(dòng)鍵,則啟動(dòng)反鍵盤記錄模塊;步驟二反鍵盤記錄模塊成功啟動(dòng)后,會(huì)掛起除系統(tǒng)進(jìn)程和本次登錄相關(guān)進(jìn)程以外的所有進(jìn)程;步驟三反鍵盤記錄技術(shù)會(huì)根據(jù)Windows鍵盤驅(qū)動(dòng)設(shè)備鏈結(jié)構(gòu),摘除與本次登錄不相關(guān)的鍵盤過濾設(shè)備,并將被摘除的鍵盤過濾設(shè)備信息保存;步驟四反鍵盤記錄技術(shù)會(huì)根據(jù)Windows消息鉤子鏈內(nèi)核數(shù)據(jù)結(jié)構(gòu),摘除與登錄進(jìn)程不相關(guān)的消息鉤子,并將被摘除的消息鉤子信息保存;步驟五賬戶密碼輸入完成后,用戶利用快捷鍵退出保護(hù)。反鍵盤記錄技術(shù)會(huì)將保存的鍵盤過濾設(shè)備信息、消息鉤子信息恢復(fù)。本發(fā)明是一種基于Windows內(nèi)核的反鍵盤記錄技術(shù),具有下列優(yōu)點(diǎn)第一,通用性。本發(fā)明的賬戶密碼保護(hù)技術(shù)可以適應(yīng)Windows平臺(tái)上的任何登錄接口,因此,該賬戶密碼保護(hù)模塊擁有較好的通用性;第二,透明性。用戶登錄結(jié)束后,內(nèi)核數(shù)據(jù)恢復(fù)模塊會(huì)將摘除的內(nèi)核信息恢復(fù),使得整個(gè)保護(hù)過程對(duì)系統(tǒng)透明;第三,穩(wěn)定性。用戶輸入賬戶密碼前,內(nèi)核數(shù)據(jù)摘除模塊會(huì)將摘除的鍵盤驅(qū)動(dòng)過濾設(shè)備信息、 Windows消息鉤子信息保存;用戶登錄完成后,內(nèi)核數(shù)據(jù)恢復(fù)模塊會(huì)將摘除的所有信息恢復(fù)。使得登錄前后系統(tǒng)內(nèi)核數(shù)據(jù)結(jié)構(gòu)前后一致。因而,也表現(xiàn)出較好的穩(wěn)定性;第四,高效性。本發(fā)明的賬戶密碼保護(hù)技術(shù)基于Windows內(nèi)核數(shù)據(jù)結(jié)構(gòu),采用驅(qū)動(dòng)層和應(yīng)用層相結(jié)合的方式,徹底解決了鍵盤過濾驅(qū)動(dòng)和Windows消息鉤子對(duì)用戶賬戶密碼的記錄,具有高效性。
圖1是本發(fā)明中賬戶密碼啟動(dòng)模塊的示意2是本發(fā)明中摘除內(nèi)核數(shù)據(jù)模塊的示意3是本發(fā)明中恢復(fù)內(nèi)核數(shù)據(jù)模塊的示意4是本發(fā)明基本架構(gòu)原理的示意圖
具體實(shí)施例方式為使本發(fā)明的目的、實(shí)現(xiàn)方案和優(yōu)點(diǎn)更為清晰,下面對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。其中步驟一具體按照如下方式執(zhí)行
主程序啟動(dòng)后,創(chuàng)建自己的鍵盤驅(qū)動(dòng)過濾設(shè)備并掛接在鍵盤設(shè)備鏈堆棧上。如果捕獲的用戶按鍵信息為標(biāo)識(shí)的快捷鍵(當(dāng)用戶啟動(dòng)登錄界面,在輸入賬戶密碼前會(huì)以快捷鍵的方式啟動(dòng)賬戶密碼保護(hù)模塊),則按步驟二進(jìn)行操作。所述步驟二的具體操作為主程序會(huì)有一張白名單(包含系統(tǒng)運(yùn)行必須的系統(tǒng)進(jìn)程列表)。主程序會(huì)枚舉當(dāng)前系統(tǒng)所有進(jìn)程,將不在白名單列表中和不是當(dāng)前主窗口進(jìn)程的所有進(jìn)程全部掛起(因?yàn)槟抉R總是在后臺(tái)運(yùn)行)。再按照步驟三、四進(jìn)行摘除內(nèi)核數(shù)據(jù)操作。所述步驟三的詳細(xì)執(zhí)行方式為第一,獲取當(dāng)前系統(tǒng)的鍵盤驅(qū)動(dòng)對(duì)象指針,枚舉系統(tǒng)的鍵盤驅(qū)動(dòng)設(shè)備。包括USB鍵盤驅(qū)動(dòng)設(shè)備和PS/2鍵盤驅(qū)動(dòng)設(shè)備;第二,針對(duì)枚舉到的每種鍵盤驅(qū)動(dòng)設(shè)備,再深度枚舉對(duì)應(yīng)設(shè)備堆棧上的鍵盤過濾驅(qū)動(dòng)設(shè)備鏈。對(duì)每個(gè)鍵盤過濾驅(qū)動(dòng)設(shè)備檢測是否是當(dāng)前登錄窗口進(jìn)程安裝。如果不是,摘除該鍵盤過濾驅(qū)動(dòng)設(shè)備,將其位置信息一同保存;如果是,不做處理。步驟四的Windows消息鉤子摘除模塊與步驟三的操作原理基本相同,只是操作的內(nèi)核數(shù)據(jù)對(duì)象是Windows消息鉤子鏈第一,記錄當(dāng)前登錄窗口按鍵信息的Windows消息鉤子鏈,保存在登錄窗口進(jìn)程的所有線程內(nèi)核數(shù)據(jù)結(jié)構(gòu)中。因此先枚舉登錄窗口進(jìn)程的所有線程;第二,對(duì)每個(gè)線程內(nèi)核數(shù)據(jù)結(jié)構(gòu),通過硬編碼的方式(因微軟未公開該結(jié)構(gòu))獲取消息鉤子所在數(shù)組。該數(shù)組中的每個(gè)元素是Windows某種消息鉤子鏈的頭指針;第三,根據(jù)獲得的消息鉤子鏈頭指針,遍歷該種消息鉤子鏈上的每個(gè)消息鉤子信息。如果安裝該鉤子信息的進(jìn)程不是登錄窗口進(jìn)程,將該鉤子信息及位置保存;如果是,不錯(cuò)處理。步驟五的內(nèi)核數(shù)據(jù)恢復(fù)模塊是將步驟三、四摘除的內(nèi)核數(shù)據(jù)恢復(fù),并將步驟二掛起的進(jìn)程恢復(fù)執(zhí)行第一,針對(duì)步驟三摘除的鍵盤過濾驅(qū)動(dòng)消息鉤子信息,步驟四摘除的Windows消息鉤子信息,根據(jù)保存的信息,將對(duì)應(yīng)的鍵盤過濾驅(qū)動(dòng)設(shè)備鏈、Windows消息鉤子鏈恢復(fù)成原貌;第二,根據(jù)保存的被掛起進(jìn)程上下文,恢復(fù)所有進(jìn)程至被掛起前狀態(tài)。 以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于Windows內(nèi)核的反鍵盤記錄技術(shù),步驟如下步驟一截獲用戶的鍵盤輸入,如果鍵盤信息是標(biāo)識(shí)的啟動(dòng)鍵,則啟動(dòng)反鍵盤記錄模塊;步驟二 反鍵盤記錄模塊成功啟動(dòng)后,會(huì)掛起除系統(tǒng)進(jìn)程和本次登錄相關(guān)進(jìn)程以外的所有進(jìn)程;步驟三反鍵盤記錄技術(shù)會(huì)根據(jù)Windows鍵盤驅(qū)動(dòng)設(shè)備鏈結(jié)構(gòu),摘除與本次登錄不相關(guān)的鍵盤過濾設(shè)備,并將被摘除的鍵盤過濾設(shè)備信息保存;步驟四反鍵盤記錄技術(shù)會(huì)根據(jù)Windows消息鉤子鏈內(nèi)核數(shù)據(jù)結(jié)構(gòu),摘除與登錄進(jìn)程不相關(guān)的消息鉤子,并將被摘除的消息鉤子信息保存;步驟五賬戶密碼輸入完成后,用戶利用快捷鍵退出保護(hù)。反鍵盤記錄技術(shù)會(huì)將保存的鍵盤過濾設(shè)備信息、消息鉤子信息恢復(fù)。
2.根據(jù)權(quán)利要求1中所述的基于Windows內(nèi)核的反鍵盤記錄技術(shù),其特征在于,所述步驟一中主程序時(shí)刻監(jiān)視鍵盤輸入,用戶在輸入賬戶密碼前,利用快捷鍵啟動(dòng)反鍵盤記錄模塊。
3.根據(jù)權(quán)利要求1中所述的基于Windows內(nèi)核的反鍵盤記錄技術(shù),其特征在于,所述步驟二中掛起與本次登錄不相關(guān)的進(jìn)程,防止木馬在步驟三、步驟四后,再次創(chuàng)建記錄賬戶密碼數(shù)據(jù)結(jié)構(gòu)。
4.根據(jù)權(quán)利要求1中所述的基于Windows內(nèi)核的反鍵盤記錄技術(shù),其特征在于,在步驟三中提出的摘除鍵盤驅(qū)動(dòng)設(shè)備鏈模塊具有如下優(yōu)點(diǎn)第一,提出了一種將鍵盤過濾驅(qū)動(dòng)設(shè)備鏈上與登錄進(jìn)程不相干的設(shè)備鏈摘除的思想, 與傳統(tǒng)的通過創(chuàng)建鍵盤過濾驅(qū)動(dòng)截獲鍵盤信息并保護(hù)的方式有本質(zhì)的區(qū)別;第二,該模塊對(duì)鍵盤信息本身無需采取任何保護(hù)措施(如加密、創(chuàng)建獨(dú)立傳輸通道), 從根本上解決了鍵盤過濾驅(qū)動(dòng)對(duì)鍵盤信息的截獲,較通用。
5.根據(jù)權(quán)利要求1中所述的基于Windows內(nèi)核的反鍵盤記錄技術(shù),其特征在于,在步驟四中針對(duì)Windows消息鉤子提出了一種高效的內(nèi)核防護(hù)模塊,它具有如下優(yōu)點(diǎn)第一,該模塊從內(nèi)核層分析Windows消息鉤子截獲按鍵信息原理,比一般的利用消息鉤子本身保護(hù)按鍵信息要簡單、高效;第二,分析出Windows消息鉤子內(nèi)核原理后,根據(jù)消息鉤子內(nèi)核鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),將不可疑消息鉤子從鏈表上摘除;第三,當(dāng)鍵盤信息流經(jīng)處理過的消息鉤子鏈時(shí),所有木馬軟件將無法截獲鍵盤信息;第四,該模塊從本質(zhì)上解決了,Windows消息鉤子技術(shù)對(duì)鍵盤信息的記錄,具有通用性。
6.根據(jù)權(quán)利要求1中所述的基于Windows內(nèi)核的反鍵盤記錄技術(shù),其特征在于,在步驟五中提出的用戶登錄結(jié)束后,對(duì)摘除的內(nèi)核數(shù)據(jù)結(jié)構(gòu)的回復(fù)。從而使整個(gè)保護(hù)過程對(duì)系統(tǒng)內(nèi)核透明,沒有任何第三方軟件兼容問題。
全文摘要
本發(fā)明涉及一個(gè)基于Windows內(nèi)核的反鍵盤記錄技術(shù),該技術(shù)的執(zhí)行過程可分為二階段第一階段內(nèi)核數(shù)據(jù)摘除。在用戶輸入賬戶密碼前,掛起與本次登錄無關(guān)的進(jìn)程,再根據(jù)Windows平臺(tái)鍵盤過濾驅(qū)動(dòng)及Windows消息鉤子記錄按鍵信息的工作原理,摘除木馬程序創(chuàng)建的鍵盤過濾驅(qū)動(dòng)設(shè)備和Windows消息鉤子,并將其位置保存;第二階段內(nèi)核數(shù)據(jù)恢復(fù)。用戶登錄完成后,將被摘除的內(nèi)核數(shù)據(jù)原樣恢復(fù),并執(zhí)行被掛起的進(jìn)程。該技術(shù)基于Windows按鍵信息在系統(tǒng)中的傳輸原理,通過修改內(nèi)核數(shù)據(jù)從根本上解決了惡意軟件對(duì)賬戶密碼的盜取。在利益的驅(qū)使下,賬戶密碼成為被盜取的重要目標(biāo),如何保護(hù)賬戶密碼安全是一個(gè)不可回避的問題,本發(fā)明提出的方法可以很大程度地保證用戶的上網(wǎng)安全。
文檔編號(hào)G06F3/023GK102222179SQ20101014594
公開日2011年10月19日 申請(qǐng)日期2010年4月13日 優(yōu)先權(quán)日2010年4月13日
發(fā)明者鄭勇 申請(qǐng)人:張彪, 鄭勇