專利名稱:ActiveX庫的防止鍵盤記錄編輯器的制作方法
技術(shù)領(lǐng)域:
一種具有ActiveX格式的用于Web瀏覽器和應(yīng)用程序的安全程序,包括軟件安全輸入窗口,無需附加的硬連線裝置而使用常規(guī)的鍵盤就可以防止泄露鍵盤數(shù)據(jù)。
因此,本發(fā)明保護(hù)Web瀏覽器或應(yīng)用程序上的鍵盤數(shù)據(jù)。
背景技術(shù):
本發(fā)明涉及安全程序,具體涉及一種用于防止泄露鍵盤數(shù)據(jù)的安全程序。
在因特網(wǎng)上保護(hù)鍵盤數(shù)據(jù)的常規(guī)技術(shù)包括由Safetek(www.esafetek.com)在2001年1月發(fā)布的產(chǎn)品“Kis”以及使用輸入裝置(或方法)而不是基于Java的虛擬鍵盤用以代替鍵盤數(shù)據(jù)輸入的裝置。但是,由于前者在硬件基礎(chǔ)上保護(hù)鍵盤數(shù)據(jù),它需要附加的預(yù)先確定的裝置,因此,很難在例如因特網(wǎng)上提供大量通用服務(wù),而后者(即使用附加輸入裝置的保護(hù)方法),由于用戶不熟練以及使用不便,使用并不廣泛。因此,盡管迫切需要在因特網(wǎng)上保護(hù)包括重要個人信息的鍵盤數(shù)據(jù),但尚未有投放市場的通用產(chǎn)品。
本發(fā)明使用一個鍵盤來安全而方便地處理輸入數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明的目的是當(dāng)用戶在因特網(wǎng)上輸入個人信息、撰寫電子郵件或生成文檔時防止由于黑客造成的鍵盤數(shù)據(jù)的泄露。
為實現(xiàn)本發(fā)明,需要一種鍵盤數(shù)據(jù)保護(hù)功能和Web瀏覽器支持功能。
為進(jìn)行鍵盤數(shù)據(jù)保護(hù),首先,從硬連線的鍵盤向鍵盤設(shè)備驅(qū)動程序傳輸掃描代碼時,必須防止泄露仍然位于I/O端口60H的鍵盤數(shù)據(jù)。但是,由于通用應(yīng)用程序的硬連線屬性以及Windows的屬性,通用應(yīng)用程序可能無法正確地控制泄露,要防止上述泄露,要使用一個可以訪問環(huán)0(Ring0)的虛擬設(shè)備驅(qū)動程序(VxD)。
其次,當(dāng)鍵盤設(shè)備驅(qū)動程序?qū)呙璐a轉(zhuǎn)換成鍵盤數(shù)據(jù)并將其傳輸?shù)较到y(tǒng)消息隊列時,轉(zhuǎn)換后的鍵盤數(shù)據(jù)可能被包含API鉤子函數(shù)(hooking)和消息鉤子函數(shù)的外部程序泄露。由于此進(jìn)程(USER.EXE)包括在Windows默認(rèn)的操作系統(tǒng)中并且它可能不能通過通用方法進(jìn)行保護(hù),需要支持不使用Windows默認(rèn)的系統(tǒng)的另一種鍵盤輸入方法。
第三,必須防止在將鍵盤數(shù)據(jù)傳輸?shù)剿钁?yīng)用程序期間的數(shù)據(jù)泄露。黑客可能攔截或監(jiān)視應(yīng)用程序所使用的API或消息以泄露鍵盤數(shù)據(jù)。因此,需要創(chuàng)建一種用于安全地把鍵盤數(shù)據(jù)傳輸?shù)綉?yīng)用程序的技術(shù)。
為了在Web瀏覽器上使用鍵盤數(shù)據(jù),首先,需要使用Web瀏覽器所支持的HTML文檔描述一個安全輸入窗口。由于該安全輸入窗口并不遵從Windows默認(rèn)的鍵盤操作系統(tǒng),它需要通過與Web瀏覽器協(xié)作的特定方法來實現(xiàn)。
其次,它需要支持低層任務(wù),包括與Web瀏覽器上的虛擬設(shè)備驅(qū)動程序VxD進(jìn)行通信并控制硬件(因為根據(jù)本發(fā)明的安全輸入窗口使用一個安全鍵盤驅(qū)動程序),以及直接控制硬連線鍵盤以實現(xiàn)該安全輸入窗口。
包括在此并構(gòu)成說明書的一部分的附圖示出了本發(fā)明的一個實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1示出了根據(jù)本發(fā)明的一個優(yōu)選實施例的鍵盤數(shù)據(jù)安全系統(tǒng)的整體配置;圖2示出了根據(jù)本發(fā)明的一個優(yōu)選實施例的安全輸入窗口的鍵盤數(shù)據(jù)流程圖;
圖3示出了根據(jù)本發(fā)明的一個優(yōu)選實施例的安全鍵盤驅(qū)動程序與ActiveX之間的數(shù)據(jù)流程圖;圖4示出了根據(jù)本發(fā)明的一個優(yōu)選實施例對其應(yīng)用了安全輸入窗口的Web瀏覽器;以及圖5示出了根據(jù)本發(fā)明的一個優(yōu)選實施例對其應(yīng)用了安全輸入窗口的示例性HTML源文件。
具體實施例方式
在以下詳細(xì)說明中,簡單地通過發(fā)明者所構(gòu)想的最佳方式的示例的方式,示出和說明了本發(fā)明的優(yōu)選實施例。如將認(rèn)識到的那樣,可以在不偏離本發(fā)明的情況下對本發(fā)明的各個顯著方面進(jìn)行修改。因此,附圖和說明應(yīng)被看作本質(zhì)上是示例性的,而不是限制性的。
根據(jù)本發(fā)明的一個優(yōu)選實施例的基本操作原理是不使用MicrosoftWindow標(biāo)準(zhǔn)鍵盤,而是使用一個安全鍵盤驅(qū)動程序和一個安全輸入窗口以安全地將用戶輸入的鍵盤數(shù)據(jù)傳輸?shù)絎eb瀏覽器。
圖1示出了根據(jù)本發(fā)明的一個優(yōu)選實施例應(yīng)用到一個Web瀏覽器的鍵盤數(shù)據(jù)安全系統(tǒng)的整體配置。
將順序地說明Microsoft Windows的正常鍵盤處理。從鍵盤硬件101產(chǎn)生的電信號被提供給主板的8255,該電信號以掃描代碼表示并被提供給虛擬鍵盤驅(qū)動程序VKD102。取決于鍵盤類型的不同掃描代碼由VKD 102轉(zhuǎn)換成用作操作系統(tǒng)的標(biāo)準(zhǔn)的鍵盤信息。該鍵盤信息被傳輸?shù)礁鶕?jù)USER.EXE而被激活的虛擬機(jī)VM,USER.EXE被存儲在系統(tǒng)消息隊列中并且是操作系統(tǒng)的環(huán)3部分。存儲在VM中的鍵盤數(shù)據(jù)通過一個線程消息隊列103(104)被傳輸?shù)絎eb瀏覽器105以執(zhí)行一個鍵輸入任務(wù)。
但是,根據(jù)本發(fā)明的一個優(yōu)選實施例的安全輸入窗口的鍵輸入任務(wù)是以不同于上述常規(guī)說明的方式實現(xiàn)的。
關(guān)于在安全輸入窗口中鍵入安全任務(wù)的原理,從鍵盤硬件101產(chǎn)生的電信號被提供給主板的8255,該電信號以掃描代碼表示并被提供給虛擬鍵盤驅(qū)動程序(VKD)102。在此以后,虛擬鍵盤驅(qū)動程序102調(diào)用表示用于用戶定義的鍵管理的鉤子函數(shù)(用戶重新定義的函數(shù))VKD_Filter_Keyboard_input。當(dāng)進(jìn)位被設(shè)置并從虛擬鍵盤驅(qū)動程序102調(diào)用的鉤子函數(shù)返回時,虛擬鍵盤驅(qū)動程序102忽略鍵盤消息并終止后續(xù)的鍵盤消息處理。安全鍵盤驅(qū)動程序中的鉤子函數(shù)將鍵盤數(shù)據(jù)存儲在其隊列中,設(shè)置一個進(jìn)位并返回該進(jìn)位。因此,鍵盤消息并不傳輸?shù)较到y(tǒng)消息隊列、線程消息隊列和Web瀏覽器,由此防止了通過消息攔截泄露鍵盤數(shù)據(jù)。在本實例中,鉤子函數(shù)被提供給安全鍵盤驅(qū)動程序并由其管理。
安全鍵盤驅(qū)動程序重新定義了VKD_Filter_Keyboard_input以防止消息攔截。但是,在上述任務(wù)后,掃描代碼仍然保留在主板的8255中。由于8255的特性,掃描代碼跟蹤數(shù)據(jù)可能無法通過一般的方法擦除。因此,對鍵盤硬件進(jìn)行控制以便擦除保留在8255中的掃描代碼跟蹤數(shù)據(jù)。
至于擦除跟蹤數(shù)據(jù)的方法,當(dāng)鉤子函數(shù)調(diào)用安全鍵盤驅(qū)動程序的VKD_Filter_Keyboard_input時,將輸出一個鍵盤硬件的通用控制命令(啟用鍵盤[F4H])到端口60h,當(dāng)接收到控制命令時,鍵盤硬件將啟用鍵盤(初始已啟用),擦除存儲在鍵盤硬件中的鍵盤數(shù)據(jù)并輸出一個確認(rèn)(FAh)到8255。在此過程中,存儲在鍵盤硬件中的鍵盤數(shù)據(jù)被擦除,端口60h的跟蹤數(shù)據(jù)被更改為另一個值FAh,并因此,掃描代碼跟蹤數(shù)據(jù)也被擦除。通過使用本過程,防止了使用鍵盤端口掃描攔截鍵盤數(shù)據(jù)。
至于將存儲在安全鍵盤驅(qū)動程序的鍵盤數(shù)據(jù)隊列中的鍵盤數(shù)據(jù)傳輸?shù)骄哂蠥ctiveX格式的安全輸入窗口110的方法,在安全輸入窗口中定期監(jiān)視安全鍵盤驅(qū)動程序的隊列的狀態(tài)以便接收存儲的鍵盤數(shù)據(jù)。當(dāng)接收到鍵盤數(shù)據(jù)后,安全輸入窗口將掃描代碼格式的鍵盤數(shù)據(jù)轉(zhuǎn)換成字符進(jìn)行存儲,并將其顯示在屏幕上以便用戶檢查輸入狀態(tài)。
當(dāng)用戶在安全輸入窗口中輸入數(shù)據(jù)并按下一個傳輸按鈕和一個檢查按鈕以進(jìn)行到下一個任務(wù)時,Web瀏覽器112通過腳本參考安全輸入窗口的數(shù)據(jù)屬性111以繼續(xù)執(zhí)行由腳本指定的任務(wù)。
圖2示出了用于虛擬鍵盤驅(qū)動程序和安全鍵盤驅(qū)動程序之間接口和管理的流程圖。當(dāng)用戶按下鍵盤按鍵時,鍵盤接收來自8255的鍵盤數(shù)據(jù)以產(chǎn)生一個鍵盤中斷并調(diào)用步驟S201中的虛擬鍵盤驅(qū)動程序。被調(diào)用的虛擬鍵盤驅(qū)動程序讀取存儲鍵盤數(shù)據(jù)的端口60H的值,將其存儲在一個預(yù)定的寄存器中,并調(diào)用下一個VKD_Filter_Keyboard_input的鉤子函數(shù)210。表示安全鍵盤驅(qū)動程序具有一個功能的鉤子函數(shù)210確定安全鍵盤驅(qū)動程序是否被激活,當(dāng)安全鍵盤驅(qū)動程序沒有被激活時,鉤子函數(shù)210被終止。它還使用上述方法擦除鍵盤端口60h的鍵盤數(shù)據(jù)蹤跡并在安全鍵盤驅(qū)動程序被激活時將鍵盤數(shù)據(jù)存儲在其隊列中。然后,它指定一個進(jìn)位以便虛擬鍵盤驅(qū)動程序不使用該鍵盤數(shù)據(jù),然后它被終止。
調(diào)用鉤子函數(shù)時,虛擬鍵盤驅(qū)動程序檢查該進(jìn)位以執(zhí)行現(xiàn)有的虛擬鍵盤驅(qū)動程序或忽略輸入的鍵盤數(shù)據(jù)。
圖3示出了用于通過安全輸入窗口與安全鍵盤驅(qū)動程序之間的接口處理鍵盤數(shù)據(jù)的流程圖。該安全輸入窗口使用了一個定時器來周期性地與步驟S301中的安全鍵盤驅(qū)動程序通信(函數(shù)DeviceIoControl)以接收步驟S303中的安全鍵盤數(shù)據(jù)。
圖4示出了一個對其應(yīng)用了安全輸入窗口404并參考了圖5的HTML代碼的示例性的Web瀏覽器405,。參見圖4,當(dāng)用戶使用鍵盤401在瀏覽器405的安全輸入窗口404中輸入一個Web地址并按下按鈕406時,用戶被鏈接到相應(yīng)的Web頁面。
圖5示出了示例性的Web頁面的HTML代碼,其中包括用于以HTML代碼格式描述輸入安全輸入窗口的鍵盤數(shù)據(jù)的方法501以及用于以HTML格式處理輸入安全輸入窗口的鍵盤數(shù)據(jù)的方法502。
以HTML格式描述安全輸入窗口是按照ActiveX格式進(jìn)行的,并且安全輸入窗口的數(shù)據(jù)參考遵循ActiveX屬性格式。
如隨后的實例502中所示的安全輸入窗口在HTML代碼中表示為OBJECT。
<OBJECTclassid=”clsidC1BF8F0F-05BA-497C-AEDA-F377E0867B3C”
name=”akl1”codebase=”http//localhost/AKLE ditXControl.cab#version=1,0,89,9”width=350height=23align=centerhspace=0vspace=0>
<param name=”Value”value=”www.yahoo.com”>
<param name=”Border”value=”2”>
<param name=”BorderLeftcolor”value=”0”>
<param name=”BorderRightcolor”value=”0”>
<param name=”BorderTopcolor”value=”0”>
<param name=”BorderBottomcolor”value=”0”>
<param name=”BorderStyle”value=”1”>
<param name=”Font”value=”MS Sans Serif”>
<param name=”Size”value=”56”>
</OBJECT>
(參考文檔http//msdn.microsoft.com/workshop/author/dhtml/reference/objects/OBJECT.asp)下一個實例501描述了一種用于以HTML代碼參考輸入安全輸入窗口的鍵盤數(shù)據(jù)的方法。
<script language=”javascript”>
function geturl(){var ak=http//+akl1.value;
window.open(ak)}</script>
在以上代碼中,調(diào)用akl1.value以參考安全輸入窗口的數(shù)據(jù)。
1.本發(fā)明的優(yōu)選實施例保護(hù)由因特網(wǎng)上的用戶輸入的鍵盤數(shù)據(jù)以提高因特網(wǎng)相關(guān)產(chǎn)業(yè)的可靠性并催化所述產(chǎn)業(yè)。
因特網(wǎng)業(yè)務(wù),包括網(wǎng)上銀行、因特網(wǎng)游戲、Web郵件、Web內(nèi)容和安全文檔撰寫,基本上都需要用戶使用鍵盤。泄露的鍵盤數(shù)據(jù)可能會對公司的因特網(wǎng)業(yè)務(wù)造成巨大的混亂和損害。
因此,使用安全鍵盤輸入窗口防止鍵盤數(shù)據(jù)的泄露提高了因特網(wǎng)業(yè)務(wù)的可靠性并催化了因特網(wǎng)業(yè)務(wù),它將降低由鍵盤數(shù)據(jù)泄露造成的直接損失和損害。
2.本優(yōu)選實施例并不以與免疫程序類似的方式處理惡意程序,而是應(yīng)對攔截,因此,本優(yōu)選實施例可以針對新的程序和未檢測出的攔截程序保護(hù)用戶的鍵盤數(shù)據(jù)。
3.如果沒有新的攔截技術(shù),使用現(xiàn)有的攔截工具黑客無法竊取鍵盤數(shù)據(jù),這縮小了黑客的活動領(lǐng)域。
4.本優(yōu)選實施例提供了一個軟件安全系統(tǒng),它通過系統(tǒng)的安全級別被降低時立即提高安全級別來恢復(fù)安全級別,由此增加了鍵盤數(shù)據(jù)保護(hù)的可靠性并獲得了因特網(wǎng)相關(guān)業(yè)務(wù)的可靠性。
盡管結(jié)合當(dāng)前被認(rèn)為是最實用和優(yōu)選的實施例對本發(fā)明進(jìn)行了說明,應(yīng)當(dāng)理解,本發(fā)明并不限于所公開的實施例,相反,旨在覆蓋包括在所附的權(quán)利要求書的精神和范圍內(nèi)的各種修改和等效布置。
權(quán)利要求
1.一種用于擦除跟蹤數(shù)據(jù)以防止泄露鍵盤數(shù)據(jù)的安全鍵盤驅(qū)動程序。
2 一種包括可與權(quán)利要求1的安全鍵盤驅(qū)動程序協(xié)同運行的安全函數(shù)的ActiveX控件。
3.一種用于攔截虛擬鍵盤驅(qū)動程序的安全鍵盤驅(qū)動程序,包括一個代替正常鍵盤驅(qū)動程序處理例程(內(nèi)核)的附加鍵盤消息處理例程。
4.一種包括可與權(quán)利要求3的安全鍵盤驅(qū)動程序協(xié)同運行的安全函數(shù)的ActiveX控件。
全文摘要
一種具有ActiveX格式的用于Web瀏覽器和應(yīng)用程序的安全程序,包括軟件安全輸入窗口,無需附加的硬連線裝置而使用常規(guī)的鍵盤就可以防止泄露鍵盤數(shù)據(jù)。因此,本發(fā)明保護(hù)Web瀏覽器或應(yīng)用程序上的鍵盤數(shù)據(jù)。
文檔編號G06F21/00GK1547690SQ02816598
公開日2004年11月17日 申請日期2002年6月20日 優(yōu)先權(quán)日2001年8月29日
發(fā)明者南忠熙 申請人:泰克豪斯有限公司, 南忠熙