專利名稱:通過(guò)直接控制鍵盤控制器確保鍵盤輸入安全方法
技術(shù)領(lǐng)域:
本發(fā)明涉及確保安全鍵盤輸入信息的方法,其能夠通過(guò)直接控制在PS/2鍵盤中的8042鍵盤控制器的中斷,而防止透過(guò)鍵盤輸入的信息曝露給未授權(quán)方。
背景技術(shù):
當(dāng)在鍵盤硬件(按鍵事件)中按下鍵盤的按鍵,產(chǎn)生電信號(hào)然后傳送至設(shè)置在母 板內(nèi)的8042芯片組。這里,鍵盤的按鍵以電路形式全部設(shè)置在矩陣上。當(dāng)按下鍵的時(shí)候, 通過(guò)搜索出現(xiàn)電流改變的行和列線而確定哪個(gè)鍵已經(jīng)按下(參考圖1)。控制8042芯片組的8042鍵盤控制器在雙向鍵盤輸入/輸出(I/O)端口 60h和64h 中以鍵盤掃描碼的形式記錄鍵盤輸入信息,該些輸入/輸出端口用于將鍵盤輸入信息傳送 至中央處理器(CPU)或用于從CPU接收硬件控制命令,以及產(chǎn)生指向CPU的中斷(參考圖 2)。雙向鍵盤I/O端口包括端口 60h和64h。端口 60h處理實(shí)際鍵盤輸入信息和硬件 控制命令,而端口 64h用于產(chǎn)生關(guān)于端口 64h的狀態(tài)和命令。表格1顯示出鍵盤I/O的功能的分類。表格1
__ 輸入緩沖器(IN Buffer)輸出緩沖器(OUT Buffer)
60h從“CPU至鍵盤 從“鍵盤I/O端口至
__I/O端口”傳送硬件控CPU”傳送鍵盤輸入信息
64hI制命冷_ I 顯示端口 60h的狀態(tài)鍵盤掃描碼包括按下鍵時(shí)刻產(chǎn)生的動(dòng)作碼(Make Code)和釋放鍵時(shí)刻產(chǎn)生的斷開(kāi) 碼(Break Code)。如果按下鍵并保持,屏幕上連續(xù)輸出字符。也就是,當(dāng)保持特定鍵時(shí),連 續(xù)輸出動(dòng)作碼。當(dāng)釋放該鍵時(shí),輸出一個(gè)斷開(kāi)碼,藉以終止鍵重復(fù)過(guò)程。中斷表示在特定過(guò)程中,臨時(shí)停止過(guò)程然后引起CPU的注意,以促使CPU執(zhí)行其 作業(yè)程序的方法。接收通過(guò)物理鍵盤輸入所產(chǎn)生的電信號(hào)的8042鍵盤控制器請(qǐng)求從8259 中斷控制器產(chǎn)生中斷以控制8259芯片組。8259中斷控制器通知CPU對(duì)應(yīng)的中斷已經(jīng)產(chǎn)生 (中斷請(qǐng)求),而為了呼叫對(duì)應(yīng)中斷處理功能(中斷處理器),CPU讀取載于內(nèi)存中的中斷向 量表,然后獲取對(duì)應(yīng)產(chǎn)生的中斷的地址值(內(nèi)存地址)。這個(gè)地址值表示當(dāng)所產(chǎn)生中斷儲(chǔ) 存時(shí)在此地址呼叫功能(所謂“中斷處理功能”或“中斷處理器”)的值。當(dāng)硬件裝置請(qǐng)求 CPU處理具體運(yùn)行或作業(yè)程序的時(shí)候,移動(dòng)至地址所在位置,然后執(zhí)行中斷處理功能。如上所述,鍵盤輸入信息從核心區(qū)傳送至CPU和通過(guò)作業(yè)系統(tǒng)(OS)控制的應(yīng)用 (用戶區(qū)),并進(jìn)而根據(jù)用戶所需輸出和處理。同時(shí),輸入信息可以包括如個(gè)人信息的需要安全的信息。這種輸入信息是被黑客 鎖定而用于犯罪的目的。現(xiàn)實(shí)中,輸入信息實(shí)際已經(jīng)被黑客鎖定,并在沒(méi)有用戶授權(quán)的情況下曝露給第三者。因此,在通過(guò)鍵盤輸入信息的過(guò)程中,緊急地需要一種保護(hù)輸入信息的安 全系統(tǒng)。為了滿足這個(gè)需求,迄今為止已經(jīng)出現(xiàn)各種安全系統(tǒng)?,F(xiàn)有技術(shù)中的鍵盤安全系統(tǒng)在用戶區(qū)和核心區(qū)分別地執(zhí)行不同的操作。在核心 區(qū),現(xiàn)有技術(shù)中的鍵盤安全系統(tǒng)首先取出鍵盤輸入信息并在其上執(zhí)行安全處理。相反地,在 用戶區(qū),現(xiàn)有技術(shù)中的鍵盤安全系統(tǒng)在從核心區(qū)取出的鍵盤輸入信息上執(zhí)行安全處理,最 后最終輸出結(jié)果信息。在核心區(qū)內(nèi)執(zhí)行現(xiàn)有技術(shù)中的安全方法包括改變中斷功能的中斷描述符表(IDT) 地址的方法,或者是在侵入者系統(tǒng)處理之前,使用跳碼致使處理輸入信息的方法。然而,由于在核心區(qū)中運(yùn)行的現(xiàn)有技術(shù)中的安全方法為基于OS的方法,該方法的 應(yīng)用必須隨OS變化。除此之外,在使用相同安全系統(tǒng)的情況中,出現(xiàn)的問(wèn)題是處理鍵盤輸 入信息的優(yōu)先權(quán)彼此沖突。再者,由于直接攻擊鍵盤控制器(硬件)的入侵系統(tǒng)無(wú)法停止, 存在的問(wèn)題是無(wú)法保證鍵盤輸入信息的完全安全。
發(fā)明內(nèi)容
因此,本發(fā)明為了解決上述問(wèn)題,本發(fā)明的一目的是提供一種通過(guò)直接控制鍵盤 控制器確保鍵盤輸入信息安全的方法,該方法可以不考慮用于監(jiān)管計(jì)算機(jī)整體運(yùn)行的OS 的類型與兼容性,在入侵系統(tǒng)處理之前,其能夠獨(dú)立地確保并處理通過(guò)鍵盤輸入的信息,藉 以提供加強(qiáng)的安全性能。為了達(dá)成上述目的,本發(fā)明提供一種通過(guò)直接控制鍵盤的鍵盤控制器確保鍵盤輸 入信息安全的方法,鍵盤包括用以接收經(jīng)用戶輸入的鍵盤輸入信息并將鍵盤輸入信息寫至 鍵盤I/O端口的鍵盤控制器、用以從鍵盤控制器接收中斷需求并呼叫中斷處理功能的中斷 控制器、用以控制鍵盤控制器的輸入信息處理模塊,以及用以傳送從輸入信息處理模塊所 送出的鍵盤輸入信息至中央處理單元的鍵盤安全模塊,所述方法包括狀態(tài)信息檢查步驟,使輸入信息處理模塊檢查鍵盤控制器的狀態(tài)信息;中斷失活步驟,使鍵盤控制器的中斷請(qǐng)求功能失活;輸入信息加密步驟,將寫至鍵盤輸入/輸出端口的鍵盤輸入信息加密;傳送步驟,傳送加密的輸入信息至鍵盤安全模塊;以及輸入信息刪除步驟,刪除存留在鍵盤控制器中的鍵盤輸入信息。根據(jù)上述的本發(fā)明,可以將輸入鍵盤輸入信息加密然后在引起CPU注意之前通過(guò) PS/2鍵盤的操作單獨(dú)處理,從而具有有益效果是本發(fā)明可以在不受到監(jiān)視OS的處理程序 的限制而進(jìn)行應(yīng)用,而且因?yàn)樵谔幚礞I盤輸入信息的過(guò)程中最先執(zhí)行安全處理,所以可以 提供強(qiáng)大的安全性能。
圖1為顯示在鍵盤硬件中產(chǎn)生電信號(hào)的示意圖;圖2為顯示PS/2專用鍵盤控制器的工作原理的示意圖;圖3為顯示本發(fā)明中形成用以執(zhí)行確保鍵盤輸入信息安全的方法之基礎(chǔ)的系統(tǒng) 配置框圖4為依次顯示本發(fā)明中確保鍵盤輸入信息安全的方法的流程圖;圖5顯示了用于8042鍵盤控制器的控制命令的說(shuō)明書;以及圖6顯示了用于8042鍵盤控制器的狀態(tài)信息的說(shuō)明書。
具體實(shí)施例方式在此之后,將參考附圖詳細(xì)地說(shuō)明本發(fā)明。圖3為顯示本發(fā)明中形成用以執(zhí)行確保鍵盤輸入信息安全的方法的基礎(chǔ)的系統(tǒng)配置框圖,而圖4為依次顯示本發(fā)明中確保鍵盤輸入信息安全的方法的流程圖。參考這些 圖式,在下文中進(jìn)行描述。本發(fā)明通過(guò)直接控制鍵盤控制器確保鍵盤輸入信息安全的方法被配置以保護(hù)通 過(guò)PS/2鍵盤輸入的輸入信息,并獨(dú)立于OS的影響而執(zhí)行安全作業(yè)。因此,本發(fā)明確保鍵盤 輸入信息安全的方法,在CPU認(rèn)定通過(guò)PS/2鍵盤輸入的輸入信息并執(zhí)行操作之前,將輸入 信息傳送至本發(fā)明鍵盤安全模塊,從而致使對(duì)于輸入信息達(dá)到強(qiáng)大的安全確保。根據(jù)這個(gè)目的,本發(fā)明中的安全系統(tǒng)包括用以控制8042鍵盤控制器的中斷請(qǐng)求 功能并檢查和加密鍵盤輸入信息的輸入信息處理模塊,以及通過(guò)將加密過(guò)的輸入信息傳送 至用戶區(qū)而執(zhí)行中間處理的鍵盤安全模塊。本發(fā)明通過(guò)下面的步驟執(zhí)行。Sll 鍵盤控制器的狀態(tài)信息檢查步驟,本發(fā)明的安全系統(tǒng)包括用以控制檢查輸入信息之8259中斷控制器的輸入信息處 理模塊,該輸入信息也就是通過(guò)8042鍵盤控制器接收的電信號(hào),然后,產(chǎn)生中斷并檢查和 加密輸入信息,且通過(guò)將加密輸入信息傳送至用戶區(qū)以執(zhí)行中間處理的鍵盤安全模塊。輸入信息處理模塊通過(guò)輪詢端口 64h (以規(guī)律間隔檢查)連續(xù)檢查狀態(tài)信息,并在 鍵盤輸入的情況中,通過(guò)讀取端口 60h而取出對(duì)應(yīng)的鍵盤輸入信息。檢查步驟S 11僅僅用于改變對(duì)應(yīng)至對(duì)應(yīng)之鍵盤輸入信息的部分,也就是,所需部 分,而不需要改變現(xiàn)存的狀態(tài)信息。狀態(tài)信息可以通過(guò)發(fā)出控制命令至端口 64h而取出。下文中將參考圖5 (用于8042鍵盤控制器的控制命令的說(shuō)明書)而進(jìn)行描述。當(dāng) 將控制命令0x20 (讀取命令字節(jié))寫至端口 64h的時(shí)候,當(dāng)前狀態(tài)信息進(jìn)入端口 60h,而且 輸入信息處理模塊讀取端口 60h,然后取出8042鍵盤控制器的當(dāng)前狀態(tài)。圖6顯示了用于8042鍵盤控制器的狀態(tài)信息的說(shuō)明書。輸入信息處理模塊可以 在端口 60h識(shí)別狀態(tài)信息,如圖6所示。S12 鍵盤控制器的中斷失活步驟,如上所述,當(dāng)用戶操作鍵盤的時(shí)候,通過(guò)鍵盤而產(chǎn)生電信號(hào),并且8042鍵盤控制 器(8042芯片組)接收電信號(hào)。同時(shí),8042鍵盤控制器的電信號(hào)以鍵盤掃描碼的形式傳送至鍵盤輸入/輸出(I/ 0)端口,并且8259中斷控制器在鍵盤I/O端口中產(chǎn)生中斷,從而處理鍵盤掃描碼,因而可以 引起CPU對(duì)其的注意。因此,本發(fā)明確保安全的方法失活中斷請(qǐng)求功能,從而防止8042鍵盤控制器請(qǐng)求 8259中斷控制器以產(chǎn)生中斷。
通過(guò)使用控制命令改變狀態(tài)信息完成8042鍵盤控制器的中斷請(qǐng)求功能的失活, 如圖5所示(用于8042鍵盤控制器的狀態(tài)信息的說(shuō)明書)。從圖6中可以看出,由于鍵盤控制器的中斷信息為INT,如下所述,當(dāng)INT的值設(shè)為 0的時(shí)候?qū)㈡I盤中斷關(guān)閉,從而失活8042鍵盤控制器的中斷請(qǐng)求。①將控制命令0x60 (寫命令字節(jié))寫至端口 64h。②將INT設(shè)為0然后寫至端口 60h。S13 輸入信息步驟用戶通過(guò)操作PS/2鍵盤輸入特定信息。也就是,用戶通過(guò)操作鍵盤硬件產(chǎn)生電信 號(hào),而對(duì)應(yīng)電信號(hào)的鍵盤掃描碼型輸入信息通過(guò)如上所述的8042鍵盤控制器輸入至鍵盤 I/O端口。同時(shí),由于8042鍵盤控制器的中斷功能的失活,不產(chǎn)生中斷,從而CPU不會(huì)對(duì)其 引起注意。S14 確定輸入信息是否為安全確保目標(biāo)的安全確保目標(biāo)確定步驟(S15)確定對(duì)應(yīng)的輸入信息是否為安全確保目標(biāo)。用戶通過(guò)鍵盤操作輸入的信息種類和數(shù)量各種各樣并且大量。因此,安全目標(biāo)的 輸入信息從上述輸入信息中識(shí)別出。舉一個(gè)簡(jiǎn)單的例子,將能夠輸入文本如“a”、“b”以及“c”的鍵設(shè)為安全確保目標(biāo), 并且將如“Ctrl”和“Alt”鍵的鍵設(shè)為非安全確保目標(biāo)的情況中,當(dāng)按下作為安全確保目標(biāo) 的“a”鍵,將輸入加密然后傳送至鍵盤安全模塊。相反,當(dāng)按下作為非安全確保目標(biāo)的鍵 "Ctrl,,的時(shí)候,輸入沒(méi)有加密,但進(jìn)行原始鍵盤輸入信息處理程序。由于確定考慮中的信息是否為安全確保目標(biāo)的標(biāo)準(zhǔn)可以修改并以各種方式實(shí)踐, 本發(fā)明確保安全的方法并不局限于特定標(biāo)準(zhǔn),而所述標(biāo)準(zhǔn)可以修改并在不脫離所附權(quán)利要 求的范圍內(nèi)以各種方式實(shí)踐。S16 輸入信息加密步驟,如果,當(dāng)結(jié)果確定輸入信息為安全確保目標(biāo),則對(duì)應(yīng)的輸入信息確定為安全確保 目標(biāo),輸入信息處理模塊加密輸入信息。由于可以使用各種加密方法,加密輸入信息的方法并不局限于特定加密方法。S17 傳送加密的信息至鍵盤安全模塊的傳送步驟,使用功能裝置輸入輸出控制(DeviceioControl)將加密的輸入信息傳送至鍵盤 安全模塊。S18 鍵盤控制器的輸入信息刪除步驟,當(dāng)加密的鍵盤輸入信息被傳送至鍵盤安全模塊的時(shí)候,鍵盤信息處理模塊刪除存 在于8042鍵盤控制器中的鍵盤輸入信息。通過(guò)將控制命令0xd2(寫鍵盤緩沖器)寫至端 口 64h,并將0x00寫至端口 60h而執(zhí)行輸入信息的刪除。S19 鍵盤控制器的中斷啟動(dòng)步驟,如果在步驟S14(確定輸入信息是否為安全目標(biāo)的步驟)鍵盤輸入信息被確定不 是安全確保目標(biāo),則再一次啟動(dòng)中斷請(qǐng)求功能,從而使對(duì)應(yīng)的輸入信息的處理以原始鍵盤 輸入信息處理程序進(jìn)行。為了啟動(dòng)中斷請(qǐng)求功能,輸入信息處理模塊將控制命令0x60(寫命令字節(jié))寫至 端口 64h,并將INT的值以INT設(shè)為1寫至端口 60h。
6
S20 信息輸入步驟為了致使原始鍵盤輸入信息程序正常地執(zhí)行,輸入信息處理模塊將鍵盤輸入信息 再一次輸入至鍵盤控制器。輸入信息處理模塊將控制命令0X0d2 (寫鍵盤緩沖器)寫至端口 64h,并將鍵盤輸 入信息寫至端口 64h,從而再一次輸入鍵盤輸入信息。將如上所述輸入且不是安全確保目標(biāo)的鍵盤輸入信息傳送至鍵盤I/O端口,然后 通過(guò)端口驅(qū)動(dòng)器傳送至CPU,從而CPU由于啟動(dòng)的中斷而對(duì)其引起注意。S21 確定是否連續(xù)應(yīng)用安全確保的步驟決定是否基于本發(fā)明確保安全的系統(tǒng)連續(xù)應(yīng)用安全確保。如果確定連續(xù)應(yīng)用安全 確保,重復(fù)鍵盤控制器的狀態(tài)信息檢查步驟S11和鍵盤控制器的中斷失活步驟S12。相反 地,如果確定不連續(xù)應(yīng)用安全確保,保持中斷啟動(dòng)狀態(tài)。如上所述,通過(guò)將控制命令0x00 (寫命令字節(jié))寫至端口 64h,并將INT的值以INT 設(shè)為0寫至端口 60h而達(dá)成中斷請(qǐng)求功能的失活。再者,如上所述,通過(guò)將控制命令0x60 (寫命令字節(jié))寫至端口 64h,并將INT的值 以INT設(shè)為1寫至端口 60h而達(dá)成中斷請(qǐng)求功能的啟動(dòng)。
權(quán)利要求
一種通過(guò)直接控制鍵盤的鍵盤控制器確保鍵盤輸入信息安全的方法,鍵盤包括用以接收經(jīng)用戶輸入的鍵盤輸入信息并用以將鍵盤輸入信息寫至鍵盤輸入/輸出(I/O)端口的一鍵盤控制器、用以從鍵盤控制器接收一中斷需求并呼叫一中斷處理功能的一中斷控制器、用以控制鍵盤控制器的一輸入信息處理模塊、以及用以傳送從輸入信息處理模塊發(fā)出的鍵盤輸入信息至一中央處理單元的一鍵盤安全模塊,所述方法包含一狀態(tài)信息檢查步驟,致使輸入信息處理模塊檢查鍵盤控制器的狀態(tài)信息;一中斷失活步驟,使鍵盤控制器的中斷請(qǐng)求功能失活;一輸入信息加密步驟,將寫至鍵盤輸入/輸出端口的鍵盤輸入信息加密;一傳送步驟,將加密的輸入信息傳送至鍵盤安全模塊;以及一輸入信息刪除步驟,刪除存留在鍵盤控制器中的鍵盤輸入信息。
2.如權(quán)利要求1所述的方法,進(jìn)一步包含一安全確保目標(biāo)確定步驟,在輸入信息加密步驟之前,通過(guò)輸入信息處理模塊確定寫 至鍵盤I/O端口的鍵盤輸入信息是否為安全確保目標(biāo),并且,如果鍵盤輸入信息確定為安 全確保目標(biāo),則進(jìn)行輸入信息加密步驟。
3.如權(quán)利要求2所述的方法,進(jìn)一步包含一中斷啟動(dòng)步驟,如果鍵盤輸入信息在安全確保目標(biāo)確定步驟中確定不是安全確保目 標(biāo),通過(guò)輸入信息處理模塊執(zhí)行設(shè)定,從而鍵盤控制器可以請(qǐng)求中斷;并且一信息輸入步驟,用以將寫入鍵盤I/O端口中的鍵盤輸入信息再一次輸入至鍵盤控制器。
4.如權(quán)利要求1至3中任意一項(xiàng)所述的方法,其中輸入信息刪除步驟系以輸入信息處 理模塊將一控制命令0xd2 (寫鍵盤緩沖器)寫至端口 64h以及將OxOO寫至端口 60h的方 式執(zhí)行。
5.如權(quán)利要求1至3中任意一項(xiàng)所述的方法,其中狀態(tài)信息檢查步驟系以輸入信息處理模塊將一控制命令0x20 (讀命令字節(jié))寫至鍵盤 I/O端口之端口 64h的方式通過(guò)將電流狀態(tài)信息輸入至鍵盤I/O端口的端口 60h,并以輸入 信息處理模塊讀取端口 60h的方式通過(guò)取出鍵盤控制器的當(dāng)前狀態(tài)信息而執(zhí)行;以及中斷失活步驟系通過(guò)輸入信息處理模塊,將一控制命令0x60 (寫命令字節(jié))寫至端口 64h并將INT的值以INT設(shè)為0寫至端口 60h而執(zhí)行。
6.如權(quán)利要求3所述的方法,其中中斷啟動(dòng)步驟通過(guò)輸入信息處理模塊系將控制命令0x60 (寫命令字節(jié))寫至端口 64h 以及并將INT的值以INT設(shè)為1寫至端口 60h而執(zhí)行;以及信息輸入步驟系通過(guò)將控制命令0xd2 (寫鍵盤緩沖器)寫至端口 64h,并將鍵盤輸入信 息寫至端口 60h而執(zhí)行。
全文摘要
本發(fā)明揭露了一種通過(guò)直接控制鍵盤的鍵盤控制器確保鍵盤輸入信息安全的方法。鍵盤包括鍵盤控制器、中斷控制器、輸入信息處理模塊以及鍵盤安全模塊。所述方法包含狀態(tài)信息檢查步驟,使輸入信息處理模塊檢查鍵盤控制器的狀態(tài)信息;中斷失活步驟,使鍵盤控制器的中斷請(qǐng)求功能失活;輸入信息加密步驟,將寫至鍵盤輸入/輸出端口的鍵盤輸入信息加密;傳送步驟,傳送加密的輸入信息至鍵盤安全模塊;以及輸入信息刪除步驟,刪除存留在鍵盤控制器中的鍵盤輸入信息。
文檔編號(hào)G06F21/04GK101816005SQ200880109880
公開(kāi)日2010年8月25日 申請(qǐng)日期2008年10月2日 優(yōu)先權(quán)日2007年10月2日
發(fā)明者姜弘錫, 黃星震 申請(qǐng)人:軟件營(yíng)地株式會(huì)社