專利名稱:防止木馬或病毒竊取輸入信息的方法
技術領域:
本發(fā)明涉及電數字數據處理過程中計算機或服務器關鍵信息的安全輸入方法,特別是涉及一種防止木馬和病毒及各種惡意程序竊取輸入信息的方法。主要應用于計算機網絡上身份認證信息的輸入安全。
背景技術:
人類進入到21世紀,互聯網已深入到社會的每一個角落,信息安全也就成為重要的社會問題。當前,在信息存儲、傳送和使用方面已有非常成熟的技術方法,似乎信息安全問題已經得到了解決。但是,數據信息有四種完全不同的狀態(tài)輸入、傳輸、存儲和使用,由于木馬、計算機病毒和各種惡意程序的存在,它們不僅竊取存儲的文件和傳送與使用中的數據,更重要的是它們能竊取正在輸入的信息。由于存儲的文件或傳送使用中的數據都有比較成熟的安全技術保障,而處于輸入狀態(tài)的數據目前還沒有成熟的安全技術保障。因此,眾多不法分子采用主動出擊的方法,放出大量的木馬或病毒等各種惡意程序,從信息輸入這個環(huán)節(jié)竊取關鍵信息,如身份認證時的帳號和密碼。
現有技術在防止輸入密碼被盜方面,已有許多人進行了大量的研究,但還沒有成熟穩(wěn)定的方法,主要是一些根據操作系統的特性寫出的程序,在技術上主要可分為以下兩類1.防止從密碼輸入框中讀取數據使意欲從密碼輸入框中獲得密碼等數據的木馬或病毒不能得逞;2.輸入加密后再另存的方法其主要思想是每輸入一個最小單位信息就加密存到其它地方,而把隨機信息提供出來,使木馬或病毒只能得到隨機數據或加密數據。
第一類技術,只能防范一般的木馬或病毒,對能從任意內存中讀取數據的木馬或病毒就無能為力,因為密碼不僅僅存在于密碼輸入框中,它還要被程序處理,必然還會存在內存中;第二類技術進了一步,能防止從內存中讀出數據,但是對內核級的木馬或病毒來說,還有一些方法可以獲得數據。例如,它可以記錄下你輸入的所有最小單位的數據(如每一次鍵盤操作),然后進行分析得到正確數據。
現代安全理論指出,任何依靠保密算法不公開、依靠運行最高權限或將信息存放于難以發(fā)現的地方等技術都是不安全的,唯有依賴密碼加密的技術才可能是安全的。由此可見,目前在信息輸入方面的安全問題并沒有得到很好的解決,信息輸入安全已成為信息安全最薄弱的環(huán)節(jié)之一,也是唯一沒有從密碼學理論上解決的重要信息安全問題。
發(fā)明內容
本發(fā)明要解決的技術問題在于避免上述現有技術的不足之處而提出一種防止木馬或病毒竊取輸入信息的方法。采用該方法能安全有效地使木馬或病毒等惡意程序無法竊取輸入信息。
本發(fā)明解決所述技術問題可以通過采用以下技術方案來實現提出一種防止木馬或病毒竊取輸入信息的方法,用于計算機單機或網絡環(huán)境中的關鍵信息輸入,包括以下步驟A.假設關鍵信息輸入例如帳號密碼的輸入需要的所有單位信息為數據集S1,而輸入設備M可輸入的所有單位信息組成另一數據集S2;B.定義一個從S1到S2一對一或一對多的映射,映射加密安全算法為F(S1,S2);C.假設要輸入的關鍵信息例如帳號密碼的單位信息為x1、x2.....xn∈S1,而x1、x2.....xn在集S2中對應映射為y1、y2.....yn,則從所述輸入設備M中輸入y1、y2.....yn;D.在可信賴的設備環(huán)境例如計算機或服務器中將y1、y2.....yn解密還原成x1、x2.....xn,得到明確信息進行認證。
所述步驟B與步驟C之間還包括下述步驟在顯示設備上顯示提示經映射加密的關鍵信息輸入所需的所有單位信息的數據集S1。
同現有技術相比較,本發(fā)明防止木馬或病毒竊取輸入信息的方法的技術效果在于1.本地任何輸入信息都以密文存在,從本地任何地方(包括內存)都無法獲得輸入信息的明文;2.本地所有要保密的信息在任何時間都是密文,在本地任何時候攔截都不是明文;
3.密文的安全只依賴其中的加密密碼,其算法可采用具有這種特性的各類公開加密算法;4.適用于所有信息輸入外部設備。
圖1是本發(fā)明防止木馬或病毒竊取輸入信息的方法的原理方框圖;圖2是所述方法具體實施的方框流程圖;圖3是所述方法中的虛擬鍵盤示意圖;圖4是所述方法在單機環(huán)境中實現的方框流程圖;圖5是所述方法在網絡環(huán)境中實現的方框流程圖。
具體實施例方式
以下結合各附圖所示之最佳實施例作進一步詳述。
一種防止木馬或病毒竊取輸入信息的方法,用于計算機單機或網絡環(huán)境中的身份認證如圖1所示,包括以下步驟A.假設關鍵信息輸入例如帳號密碼的輸入需要的所有單位信息為數據集S1,而輸入設備M可輸入的所有單位信息組成另一數據集S2;B.定義一個從S1到S2一對一或一對多的映射,映射加密安全算法為F(S1,S2);C.假設要輸入的關鍵信息例如帳號密碼的單位信息為x1、x2.....xn∈S1,而x1、x2.....xn在集S2中對應映射為y1、y2.....yn,則從所述輸入設備M中輸入y1、y2.....yn;D.在可信賴的設備環(huán)境例如計算機或服務器中將y1、y2.....yn解密還原成x1、x2.....xn,得到明確信息進行認證。
所述步驟B與步驟C之間還包括下述步驟在顯示設備上顯示提示經映射加密的關鍵信息輸入所需的所有單位信息的數據集S1,以便用戶對應輸入用于身份認證的關鍵信息。
上述步驟中必須具備兩個條件一是解密還原的設備環(huán)境是可信賴的;二是安全算法F(S1,S2)具有安全性。該安全算法F(S1,S2)可采用現有的各種安全算法。
本發(fā)明中,所述安全算法F(S1,S2)中的數據集S1和數據集S2可由同一設備提供,例如均由鍵盤上的鍵值組成;也可由不同的設備提供,例如集S1為鍵盤上所有的鍵值組成,而集S2中的元素由鼠標輸入的坐標組成。
當所述數據集S1和數據集S2由同一設備提供,例如由鍵盤上的鍵值組成時,所述步驟B中還包括以下步驟a.在顯示器上顯示一個虛擬鍵盤;b.通過安全算法F(S1,S2)處理后,在所述虛擬鍵盤上顯示與實際鍵盤上不同的鍵值,但虛擬鍵盤上的鍵值與實際鍵盤上的鍵值一一對應,例如,對應于實際鍵盤鍵值“A”的位置處,虛擬鍵盤上顯示的是鍵值“Y”。
由于虛擬鍵盤直接顯示有可能顯露出安全算法F(S1,S2),所述步驟a中虛擬鍵盤的顯示采用花紋背景或閃爍顯示,或在不同的位置顯示,或移動顯示,或不同大小顯示。這樣會進一步增加輸入信息的安全性。
當所述數據集S1和數據集S2由不同的設備提供,例如集S1為鍵盤上所有的鍵值組成,而集S2中的元素由鼠標輸入時,為了達到用鼠標輸入鍵盤的鍵值,必須定義一種關系F(S1,S2),由于鼠標的鍵太少,數據集S2不能用鼠標鍵值,而鼠標輸入還有一個值坐標值。用鼠標的坐標值組成的集或其子集為S2,定義一個F(S1,S2)就可以由鼠標代替鍵盤輸入,因而所述步驟B中還包括以下步驟①顯示器上用多于能顯示出鍵值的相鄰坐標組成對同一鍵值的映射;②在各組坐標上對應顯示其映射的鍵值,形成一個一對多的映射。
由于直接在鼠標坐標上顯示鍵盤鍵值可能會顯露出F(S1,S2),所述鍵值的顯示采用花紋背景或閃爍顯示。這樣使輸入信息的安全性得到進一步加強。
現結合圖2對本發(fā)明具體實施進行詳細說明,具體步驟如下1.系統初始化后,通過設定的程序產生一個隨機數X;2.設數據集S1為由鍵盤中鍵值(僅指日常輸入用的字母、數字和符號的鍵值)組成的集,共有單位元素46個;3.計算X的平方,X的3次方,X的4次方........,至X的46次方,連同隨機數X組成共有46個單位元素的集S{X,X2,X3,X4......,X46},將集S中的每個元素對47求模,所得的各模值組成一個新的集S2{B1,B2,B3,B4......,B46},在此算法中得出的集S2中的元素,一般剛好全是1到46且不相同的數,如有相同,則重新產生一個隨機數,采取相同的算法,直到集S2中的元素為1到46且不相同為止;4.給鍵盤的46個鍵值編號,成為一個集S1{C1,C2,C3,C4......,C46},這就有了一個從S1到S2一對一的映射,即為安全算法F(S1,S2);5.在顯示器上顯示一個虛擬鍵盤,虛擬鍵盤上顯示與實際鍵盤上不同的鍵值,具體方法為如C1為實際鍵盤鍵值“A”的編號,而B1的值為26,而C26為實際鍵盤鍵值“Y”的編號,則在虛擬鍵盤的原實際鍵盤鍵值“A”的位置顯示虛擬鍵盤鍵值“Y”,虛擬鍵盤的每個鍵值都按這個方法顯示,得到的虛擬鍵盤,如圖3所示;6.如果要輸入的關鍵信息為“Y”,可用兩種方法輸入,一種是用鼠標點擊虛擬鍵盤上顯示“Y”的虛擬鍵值(其對應實際鍵盤為鍵值“A”),或者直接在實際鍵盤上敲擊鍵值“A”;當然,身份認證的密碼一般為多個數字、字母以及符號的組合,輸入密碼時,按前述方法逐一輸入即可;7.由集S2與集S1,在可信賴的設備環(huán)境例如計算機中即可將“A”解密還原成“Y”。
所述隨機數X為隨機產生,故所述數據集S1中的各元素對應實際鍵盤的編號將隨時變換,即對應的虛擬鍵盤將隨機變化,圖3只示意出其中的一種情形。如上述步驟6所述,假設要輸入的關鍵信息例如密碼為“Y”,通過本發(fā)明方法處理后,在實際鍵盤輸入是鍵值“A”(如產生的隨機數X變化,可以是任何在實際鍵盤上不是鍵值“Y”的其他鍵值),這樣使木馬或其他惡意程序攔截或竊取的就是假的信息“A”,同理,當身份認證的密碼一般為多個數字、字母以及符號的組合時,按照本發(fā)明方法輸入密碼,木馬或其他惡意程序攔截或竊取的都是假的信息,這樣就從真正意義上解決了信息輸入方面的安全問題。
上述的安全算法F(S1,S2)只列舉了一種較為簡單的算法,其可以根據需要而采取不同復雜程度的安全算法,這些與隨機數X的產生(選取)均屬現有技術,此處不再贅述。
本發(fā)明防止木馬或病毒竊取輸入信息的方法能在單機環(huán)境中實現,也能在網絡環(huán)境中實現。
如圖4所示,本發(fā)明防止木馬或病毒竊取輸入信息的方法能在單機環(huán)境中實現的具體步驟如下I.將關鍵信息輸入需要的單位信息組成一個集S1,設集S1共中有n個元素,即C{C1,C2,C3.....,Cn};II.程序產生一個隨機數A,可以取CPU當前工作周期數與當前時間進行加減乘除等運算產生這隨機數,并求出Amod(n+1)=x;III.在不同的位置顯示集S1中不同元素Cx,記錄下Cx與顯示位置的關系,形成表T;IV.如果集S1中的元素沒顯示完全,則從步驟II重復;V.如果要輸入單位信息C1,用鼠標點擊顯示C1的位置,記錄下這一位置y1;VI.將要輸入的信息全部輸入后就有了位置序列Y(y1,y2,y3......);VII.用表T將位置序列Y在本機內解密還原成關鍵信息串(C1,C2,C3......)。
在單機環(huán)境下實現,必需要求本機內具有一個可信賴的環(huán)境,即對木馬或病毒而言非本地的環(huán)境,只有在這個環(huán)境中解密才可達到安全輸入的目的。
如圖5所示,本發(fā)明防止木馬或病毒竊取輸入信息的方法能在網絡環(huán)境中實現的具體步驟如下1.用戶端向服務器端發(fā)送請求信號,服務器端產生一個隨機數A,并產生一個大素數N,即N遠大于要輸入信息的單位信息總數;2.S1可以在服務器端取認證數據庫中的所有單位信息的集,也可在用戶端取鍵盤的鍵值的集,設集S1共有m個元素,即S1{a1,a2,a3......,am};3.安全算法F(S1,S2)采用以下算法①B=取整(N÷A),②對B進行1次方、2次方、3次方......,m次方,將m次計算結果組成集C{c1,c2,c3......,cm},③對集C中的元素進行模N,其結果組成集D{d1,d2,d3......,dm},
④對集D中的元素進行從小到大的排序,為序E(e1,e2,e3......,em);4.按集D的下標從1到m進行以下處理設D中dx在E中為ey,則按序顯示集S1中ay的提示,并記錄下顯示位置;5.步驟3、4如果在服務端進行,則將顯示提示以圖表的方式傳送給用戶端;如果步驟3、4在用戶端進行,則從服務器端將隨機數A與大素數N傳送給用戶端;6.用戶端如果要輸入信息X,可用鼠標點擊顯示X的地方,也可按鍵盤提示方式從鍵盤對應輸入;記錄X位置對應集D中的下標x;7.將要輸入的信息全部輸入后就有了信息加密后的序列X(x1,x2,x3......xm);8.用戶端將序列X傳送給服務器端,服務端按F(S1,S2)將序列X解密還原,并進行認證。
本發(fā)明的關鍵在于利用一對一或多對一的映射加密,使用戶輸入的關鍵信息例如帳號密碼隨時隨地都是以密文形式存在,從而有效地防止木馬等惡意程序竊取。其中的安全算法、顯示提示以及還原解密的輔助程序均可采用現有技術。
權利要求
1.一種防止木馬或病毒竊取輸入信息的方法,用于計算機單機或網絡環(huán)境中的關鍵信息輸入,其特征在于包括以下步驟A.假設關鍵信息輸入需要的所有單位信息為數據集S1,而輸入設備M可輸入的所有單位信息組成另一數據集S2;B.定義一個從S1到S2一對一或一對多的映射,映射加密安全算法為F(S1,S2);C.假設要輸入的關鍵信息的單位信息為x1、x2.....xn∈S1,而x1、x2.....xn在集S2中對應映射為y1、y2.....yn,則從所述輸入設備M中輸入y1、y2.....yn;D.在可信賴的設備環(huán)境中將y1、y2.....yn解密還原成x1、x2.....xn,得到明確信息。
2.如權利要求1所述的防止木馬或病毒竊取輸入信息的方法,其特征在于所述步驟B與步驟C之間還包括下述步驟在顯示設備上顯示提示,提示經映射加密的關鍵信息輸入所需的所有單位信息的數據集S1。
3.如權利要求1或2所述的防止木馬或病毒竊取輸入信息的方法,其特征在于所述步驟B中的安全算法F(S1,S2)可采用現有的各種安全算法。
4.如權利要求3所述的防止木馬或病毒竊取輸入信息的方法,其特征在于所述安全算法F(S1,S2)中的數據集S1和數據集S2可由同一設備提供;也可由不同的設備提供。
5.如權利要求4所述的防止木馬或病毒竊取輸入信息的方法,其特征在于當所述數據集S1和數據集S2由同一設備提供時,所述步驟B中還包括以下步驟a.在顯示器上顯示一個虛擬設備;b.通過安全算法F(S1,S2)處理后,在所述虛擬設備上顯示與實際設備上不同的鍵值,但虛擬設備上的鍵值與實際設備上的鍵值一一對應。
6.如權利要求5所述的防止木馬或病毒竊取輸入信息的方法,其特征在于所述步驟a中虛擬設備的顯示采用花紋背景或閃爍顯示,或在不同的位置顯示,或移動顯示,或不同大小顯示。
7.如權利要求4所述的防止木馬或病毒竊取輸入信息的方法,其特征在于當所述數據集S1和數據集S2由不同的設備提供時,所述步驟B中還包括以下步驟①在顯示器上用多于能顯示出鍵值的相鄰坐標組成對同一鍵值的映射;②在各組坐標上對應顯示其映射的鍵值,形成一個多對一的映射。
8.如權利要求6所述的防止木馬或病毒竊取輸入信息的方法,其特征在于所述鍵值的顯示采用花紋背景或閃爍顯示。
全文摘要
本發(fā)明公開了一種防止木馬或病毒竊取輸入信息的方法,用于計算機單機或網絡環(huán)境中的關鍵信息輸入,包括以下步驟A.假設關鍵信息輸入所需的所有單位信息為數據集S1,而輸入設備M可輸入的所有單位信息組成另一數據集S2;B.定義一個從S1到S2一對一或一對多的映射,映射加密安全算法為F(S1,S2);C.假設要輸入的關鍵信息的單位信息為x
文檔編號H04L9/32GK1604004SQ20041005213
公開日2005年4月6日 申請日期2004年11月4日 優(yōu)先權日2004年11月4日
發(fā)明者白根弟 申請人:白根弟