保護(hù)輸入免受惡意軟件侵害的制作方法
【專利摘要】一系列觸摸面板按鍵輸入項(xiàng)可以通過(guò)混洗觸摸輸入項(xiàng)坐標(biāo)而被保護(hù)。在一個(gè)實(shí)施例中,可以通過(guò)施加混洗算法保護(hù)輸入項(xiàng),該混洗算法用其他不正確的坐標(biāo)替代真正的坐標(biāo)。然后,正確的數(shù)據(jù)可以在安全環(huán)境中重新組合。
【專利說(shuō)明】保護(hù)輸入免受惡意軟件侵害
【背景技術(shù)】
[0001]本申請(qǐng)通常涉及計(jì)算機(jī),且尤其是涉及保護(hù)計(jì)算機(jī)輸入數(shù)據(jù)免受惡意軟件侵害。
[0002]惡意軟件是一種未經(jīng)用戶允許而位于計(jì)算機(jī)上的軟件。惡意軟件可以被不良一方用來(lái)獲取安全信息。然后該安全信息可以用于泄密銀行帳號(hào)以及其他限制性或受控的訪問(wèn)文件以及網(wǎng)頁(yè)。例如,當(dāng)用戶輸入代碼訪問(wèn)銀行帳號(hào)時(shí),惡意軟件可以誘捕在觸摸屏上的按鍵輸入項(xiàng),然后使用那些按鍵輸入項(xiàng)來(lái)從用戶的銀行帳號(hào)轉(zhuǎn)錢(qián)到由發(fā)起惡意軟件一方控制的銀行帳號(hào)。
【專利附圖】
【附圖說(shuō)明】
[0003]圖1是本發(fā)明的一個(gè)實(shí)施例的示意圖;
[0004]圖2是依據(jù)本發(fā)明的一個(gè)實(shí)施例的混洗算法(shuffle algorithm)的流程圖;以及
[0005]圖3是依據(jù)本發(fā)明的一個(gè)實(shí)施例的解混洗算法的流程圖。
【具體實(shí)施方式】
[0006]依據(jù)一些實(shí)施例,使用小域加密引擎,通過(guò)諸如觸摸屏接口的接口,可以安全輸入受保護(hù)的二維或更多維的輸入數(shù)據(jù)。其他接口包括手勢(shì)識(shí)別接口,鼠標(biāo)光標(biāo)輸入接口或其他應(yīng)用,包括那些可以將輸入轉(zhuǎn)換為坐標(biāo)的應(yīng)用。小域加密引擎是用于模糊二維或更多維輸入數(shù)據(jù)輸入項(xiàng)的計(jì)算機(jī)軟件或硬件。小域具有域尺寸、數(shù)據(jù)元素的數(shù)量、或小于十億的輸入域或范圍(遠(yuǎn)遠(yuǎn)小于傳統(tǒng)的加密算法,例如高級(jí)加密標(biāo)準(zhǔn))。
[0007]在一些實(shí)施例中,用于保護(hù)觸摸屏輸入的技術(shù)沒(méi)有削弱用戶體驗(yàn)。換句話說(shuō),用戶不知道發(fā)生了什么不同,且用戶不必以任何不同的方式輸入數(shù)據(jù)。
[0008]在一些實(shí)施例中,基于主機(jī)的操作系統(tǒng)可以利用標(biāo)準(zhǔn)驅(qū)動(dòng)器堆棧來(lái)與觸摸輸入事件通信。此外,在一些實(shí)施例中,保留了基礎(chǔ)的操作系統(tǒng)框架路由觸摸事件而不需要了解它們是安全的這種能力。在一些情況下,應(yīng)用開(kāi)發(fā)者可以使用標(biāo)準(zhǔn)圖形用戶界面開(kāi)發(fā)工具來(lái)容易地了解這個(gè)技術(shù),并允許自動(dòng)調(diào)整安全區(qū)域的大小,因此安全輸入能力可以被集成到各種操作系統(tǒng)中,例如,Android, Meego以及iOS。
[0009]在一些實(shí)施例中,當(dāng)觸摸輸入在屏幕的安全區(qū)域中被接收到時(shí),可以使用各種可獲取的混洗算法之一來(lái)混洗觸摸輸入的坐標(biāo)?;煜此惴ǜ淖兞藬?shù)據(jù)輸入的順序,例如觸摸屏接觸的坐標(biāo)。然后,將被混洗的觸摸輸入提供給主機(jī)軟件。如果主機(jī)軟件需要使用觸摸輸入,那么主機(jī)軟件可以使用安全引擎來(lái)解混洗該觸摸輸入。
[0010]參見(jiàn)圖1,在一個(gè)實(shí)施例中,觸摸面板10可以具有觸摸輸入空間,其坐標(biāo)從左下角(0,0)到右上角(1920,1080)。也可以使用另一種用于提供觸摸面板坐標(biāo)的機(jī)制。用戶觸摸訪問(wèn)觸摸面板的坐標(biāo)可以作為原始坐標(biāo)被發(fā)送。在一個(gè)實(shí)施例中,該原始坐標(biāo)可以被提供給安全引擎12,其包括微控制器和固件。在一個(gè)實(shí)施例中,通過(guò)內(nèi)部集成電路(I2C)總線將坐標(biāo)從觸摸面板發(fā)送到安全引擎。[0011]安全引擎確定觸摸輸入是否在觸摸面板上當(dāng)前顯示的安全區(qū)域內(nèi)輸入。這可以由主機(jī)軟件14建議。如果正在訪問(wèn)安全區(qū)域,則觸摸面板訪問(wèn)的坐標(biāo)由安全引擎利用混洗算法進(jìn)行混洗,例如給出兩個(gè)例子是Knuth混洗或Thorp混洗。
[0012]在一個(gè)實(shí)施例中,安全引擎12可以包括安全硬件控制器,其是分立部件或?qū)S糜趧?chuàng)建隔離的環(huán)境的處理器的一部分。作為另外一個(gè)例子,安全引擎可以是基于軟件的安全控制器,其創(chuàng)建軟件隔離的安全環(huán)境,例如通過(guò)使用虛擬化來(lái)創(chuàng)建嵌入式操作系統(tǒng)。在一個(gè)實(shí)施例中,安全引擎可以是觸摸屏的一部分。
[0013]在一個(gè)實(shí)施例中,硬件觸摸屏10不直接暴露給主機(jī)軟件14,然而,相反,重新映射到當(dāng)坐標(biāo)被認(rèn)為落在屏幕的安全區(qū)域中時(shí)將操作數(shù)據(jù)流的安全環(huán)境。在直角坐標(biāo)實(shí)施例中,當(dāng)坐標(biāo)落入屏幕的安全區(qū)域中時(shí),加密混洗可以應(yīng)用到X,Y坐標(biāo)之一或兩者。加密混洗或小域密碼可以使得能夠?qū)π?shù)據(jù)集合進(jìn)行有力的加密映射,但是具有精確的加密內(nèi)容到解密內(nèi)容以及反之亦然的一對(duì)一映射的屬性。
[0014]在一個(gè)實(shí)施例中,加密混洗可以使用高級(jí)加密標(biāo)準(zhǔn)(AES)作為鍵控功能以確定混洗的順序。在一個(gè)實(shí)施例中,混洗重新映射屏幕的保護(hù)區(qū)域上的觸摸事件的坐標(biāo)到坐標(biāo)的新集合,該新集合將仍然在相同的保護(hù)區(qū)域內(nèi)。重新映射的坐標(biāo)不能轉(zhuǎn)換回真實(shí)的坐標(biāo),除非例如知道密鑰。通過(guò)將重新映射的坐標(biāo)的區(qū)域維持在屏幕的安全輸入/輸出部分,重新映射的坐標(biāo)通過(guò)軟件堆棧被傳輸,并簡(jiǎn)單地顯現(xiàn)為發(fā)生在屏幕的其他部分的觸摸事件。因此,惡意軟件很難誘捕安全坐標(biāo)來(lái)推斷出安全數(shù)據(jù)輸入項(xiàng)。
[0015]在一些實(shí)施例中,每個(gè)坐標(biāo)映射到新的加密坐標(biāo)。因此,在一些實(shí)施例中,非常接近的觸摸事件被映射到完全不相關(guān)的坐標(biāo)。事實(shí)上,在一些實(shí)施例中,虛擬鍵盤(pán)的相同鍵的多次按壓可產(chǎn)生混洗集合中根本不同的坐標(biāo)。在其他的實(shí)施例中,當(dāng)輸入坐標(biāo)偏離觸摸屏上的虛擬鍵圖像時(shí),輸入坐標(biāo)可以被調(diào)節(jié)以將它們轉(zhuǎn)換到虛擬鍵的中央。
[0016]需要解碼真實(shí)輸入的安全服務(wù)(例如金融機(jī)構(gòu))可以進(jìn)行如下處理,例如,使用如圖1所示的系統(tǒng)中的安全引擎12。對(duì)稱秘鑰可以與安全控制器共享,例如,作為安全引擎12的一部分的微控制器,用于定義變換。然后,相同的映射表可以基于已知的在安全環(huán)境中實(shí)現(xiàn)的加密混洗來(lái)實(shí)現(xiàn)。逆變換被執(zhí)行以獲取在觸摸屏上按壓的真實(shí)坐標(biāo)??梢曰谟脩魣?zhí)行的數(shù)據(jù)輸入的類型來(lái)解釋觸摸事件,例如,虛擬鍵盤(pán)、密碼鍵盤(pán)、被標(biāo)記的物理簽名,或諸如此類。
[0017]盡管上文描述的例子涉及標(biāo)準(zhǔn)直角坐標(biāo),但相同的技術(shù)可以用于任何坐標(biāo)系統(tǒng),例如極坐標(biāo),以保護(hù)屏幕的圓形部分,或甚至是三維坐標(biāo),其可以使得相同的技術(shù)用于保護(hù)手勢(shì)輸入。
[0018]此外,為了向用戶保證輸入將是安全的,可以生成屏幕上的獨(dú)特指示符以指示安全輸入?yún)^(qū)域?qū)⒋_實(shí)受到加密保護(hù)。例如,在安全環(huán)境控制下的虛擬鍵盤(pán)可以包括獨(dú)特的圖像水印,其已經(jīng)在安全執(zhí)行環(huán)境中被安全地提供。
[0019]因此,在一些實(shí)施例中,用戶獲得本機(jī)輸入體驗(yàn),就像屏幕數(shù)據(jù)不需要被隨機(jī)化一樣。此外,在一些實(shí)施例中,可以允許安全和不安全事件的自由混合,且只有安全環(huán)境需要的數(shù)據(jù)來(lái)自被關(guān)聯(lián)為安全區(qū)域的屏幕區(qū)域。從開(kāi)發(fā)者的觀點(diǎn)來(lái)看,相同的觸摸事件應(yīng)用程序接口和框架可以用于與硬件交互。唯一的不同是主機(jī)軟件需要理解安全區(qū)域中的坐標(biāo)將發(fā)送給安全應(yīng)用以進(jìn)行解碼。[0020]安全引擎可以輸出混洗的觸摸事件給驅(qū)動(dòng)器16,隨后驅(qū)動(dòng)器16提供數(shù)據(jù)給不受信任的代碼22??梢约俣ㄔ摯a22已經(jīng)被破解。
[0021]替代地,沒(méi)有到安全區(qū)域的觸摸面板輸入可以經(jīng)由路徑18 (繞過(guò)安全引擎12)被直接路由到主機(jī)軟件14堆棧中的操作系統(tǒng)驅(qū)動(dòng)器20。服務(wù)器24可以發(fā)送敏感數(shù)據(jù)給主機(jī)軟件14。注意,在一些實(shí)施例中,原始坐標(biāo)可以由通過(guò)片上結(jié)構(gòu)或其他類似結(jié)構(gòu)連接的片上塊進(jìn)行處理。
[0022]在一個(gè)實(shí)施例中,用于實(shí)現(xiàn)本發(fā)明的實(shí)施例的偽代碼如下所示:
[0023]
【權(quán)利要求】
1.一種方法,包括: 采用小域加密引擎保護(hù)一系列輸入項(xiàng)。
2.如權(quán)利要求1所述的方法,包括混洗二維輸入坐標(biāo)。
3.如權(quán)利要求2所述的方法,包括采用Thorp混洗或Knuth混洗之一來(lái)進(jìn)行混洗。
4.如權(quán)利要求2所述的方法,包括對(duì)一系列觸摸面板輸入項(xiàng)進(jìn)行混洗。
5.如權(quán)利要求4所述的方法,包括對(duì)指示觸摸面板被觸摸的位置的坐標(biāo)進(jìn)行混洗。
6.如權(quán)利要求1所述的方法,包括在安全環(huán)境中進(jìn)行混洗。
7.如權(quán)利要求4所述的方法,包括檢測(cè)輸入項(xiàng)是否是在安全觸摸面板區(qū)域產(chǎn)生的。
8.如權(quán)利要求7所述的方法,包括只對(duì)在安全觸摸面板區(qū)域產(chǎn)生的輸入項(xiàng)進(jìn)行混洗。
9.如權(quán)利要求1所述的方法,包括共享對(duì)稱密鑰來(lái)恢復(fù)所述輸入項(xiàng)。
10.如權(quán)利要求9所述的方法,包括米用映射表來(lái)恢復(fù)所述輸入項(xiàng)的坐標(biāo)。
11.至少一種存儲(chǔ)指令的非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),所述指令由計(jì)算機(jī)執(zhí)行以用于: 利用小域加密引擎 保護(hù)一系列輸入項(xiàng)。
12.如權(quán)利要求11所述的介質(zhì),進(jìn)一步存儲(chǔ)用于對(duì)二維輸入坐標(biāo)進(jìn)行混洗的指令。
13.如權(quán)利要求12所述的介質(zhì),進(jìn)一步存儲(chǔ)用于采用Thorp或Knuth混洗之一來(lái)進(jìn)行混洗的指令。
14.如權(quán)利要求12所述的介質(zhì),進(jìn)一步存儲(chǔ)對(duì)一系列觸摸面板輸入項(xiàng)進(jìn)行混洗的指令。
15.如權(quán)利要求14所述的介質(zhì),進(jìn)一步存儲(chǔ)用于對(duì)指示觸摸面板被觸摸的位置的坐標(biāo)進(jìn)行混洗的指令。
16.如權(quán)利要求11所述的介質(zhì),進(jìn)一步存儲(chǔ)用于在安全環(huán)境中進(jìn)行混洗的指令。
17.如權(quán)利要求16所述的介質(zhì),進(jìn)一步存儲(chǔ)用于檢測(cè)輸入項(xiàng)是否是在安全屏幕區(qū)域中產(chǎn)生的指令。
18.如權(quán)利要求17所述的介質(zhì),進(jìn)一步存儲(chǔ)用于只對(duì)在安全屏幕區(qū)域中產(chǎn)生的輸入項(xiàng)進(jìn)行混洗的指令。
19.如權(quán)利要求11所述的介質(zhì),進(jìn)一步存儲(chǔ)用于對(duì)極坐標(biāo)、三維坐標(biāo)或手勢(shì)坐標(biāo)中的一個(gè)進(jìn)行混洗的指令。
20.如權(quán)利要求11所述的介質(zhì),進(jìn)一步存儲(chǔ)用于共享對(duì)稱密鑰來(lái)恢復(fù)所述輸入項(xiàng)的指令。
21.如權(quán)利要求20所述的介質(zhì),進(jìn)一步存儲(chǔ)用于米用映射表來(lái)恢復(fù)所述輸入項(xiàng)的坐標(biāo)的指令。
22.—種裝置,包括: 安全引擎,用于對(duì)二維輸入進(jìn)行混洗;以及 用于檢測(cè)輸入是否是采用安全輸入模式產(chǎn)生的設(shè)備。
23.如權(quán)利要求22所述的裝置,其中,所述設(shè)備用于檢測(cè)何時(shí)對(duì)安全顯示區(qū)域進(jìn)行輸入。
24.如權(quán)利要求22所述的裝置,其中,所述安全引擎不對(duì)沒(méi)有采用安全輸入模式的輸入進(jìn)行混洗。
25.如權(quán)利要求22所述的裝置,采用是小域加密安全引擎的安全引擎進(jìn)行混洗。
26.如權(quán)利要求22所述的裝置,所述引擎采用Thorp混洗或Knuth混洗之一來(lái)進(jìn)行混洗。
27.如權(quán)利要求22所述的裝置,所述引擎對(duì)指示觸摸屏被觸摸的位置的坐標(biāo)進(jìn)行混洗。
28.如權(quán)利要求22所述的裝置,當(dāng)所述安全引擎被操作用于對(duì)輸入進(jìn)行混洗時(shí)顯示水印。
29.如權(quán)利要求22所述的裝置,包括安全和非安全數(shù)據(jù)輸入模式。
30.如權(quán)利要求22所述的裝置,包括主機(jī)軟件,所述安全引擎在所述輸入對(duì)于所述主機(jī)軟件是可訪問(wèn)的之 前對(duì)所述輸入進(jìn)行混洗。
【文檔編號(hào)】G06F21/83GK103999092SQ201180075266
【公開(kāi)日】2014年8月20日 申請(qǐng)日期:2011年11月30日 優(yōu)先權(quán)日:2011年11月30日
【發(fā)明者】S·L·格羅布曼, I·T·舍伊納斯 申請(qǐng)人:英特爾公司