專利名稱:一種手機(jī)支付保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)安全技術(shù)領(lǐng)域,更具體地,本發(fā)明涉及一種手機(jī)支付保護(hù)方法。
背景技術(shù):
隨著3G用戶的不斷增長(zhǎng),手機(jī)移動(dòng)支付的便捷性越來(lái)越迅速發(fā)展,并且潛力巨大,移動(dòng)支付這一新興的購(gòu)物模式不僅是網(wǎng)絡(luò)購(gòu)物的延伸,更成為都市年輕人群快節(jié)奏生活方式的象征之一。但是,手機(jī)支付的一大瓶頸在于手機(jī)用戶對(duì)于這些涉及支付業(yè)務(wù)安全性的擔(dān)憂。對(duì)于手機(jī)用戶,病毒是普遍存在的問(wèn)題,一種典型的攻擊模式是向無(wú)防備的用戶發(fā)送包含文件附件的電子郵件,附件包含惡意代碼,通過(guò)電子郵件誘導(dǎo)用戶啟用該附件,該附件所攜帶的攻擊代碼將修改手機(jī)用戶的文件或者獲得這些文件。另一種是應(yīng)用程序類病毒,在這些應(yīng)用程序執(zhí)行時(shí),來(lái)修改用戶的文件或者捕獲這些文件中所攜帶的機(jī)要信息。對(duì)于手機(jī)支付的交易過(guò)程,其安全性的階段控制主要可以分為1、服務(wù)器端的安全,2、交易數(shù)據(jù)的傳輸安全,3、手機(jī)本地的安全。對(duì)于1和2,可以使用傳統(tǒng)的網(wǎng)絡(luò)交易的安全技術(shù)來(lái)解決安全性的問(wèn)題。但對(duì)于3,手機(jī)本地的安全目前則沒(méi)有一個(gè)可靠的解決方案。手機(jī)本地的安全是指用戶手機(jī)端的安全,主要的安全威脅是1)鍵盤(pán)監(jiān)聽(tīng),惡意程序通過(guò)監(jiān)聽(tīng)鍵盤(pán)的輸入來(lái)獲取用戶的銀行密碼等信息;幻非法訪問(wèn)其他應(yīng)用程序的緩存數(shù)據(jù),惡意訪問(wèn)其他應(yīng)用程序的本地緩存數(shù)據(jù),從而達(dá)到竊取用戶交易信息的目的。
發(fā)明內(nèi)容
為克服現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明提出一種基于逆向沙箱的手機(jī)支付保護(hù)方法。根據(jù)本發(fā)明的一個(gè)方面,提出了一種基于逆向沙箱的手機(jī)支付保護(hù)方法,包括步驟1,根據(jù)文件識(shí)別策略將安卓手機(jī)操作系統(tǒng)上的應(yīng)用程序進(jìn)行分類;步驟2,基于逆向沙箱停止非可信任程序并且運(yùn)行保護(hù)程序,保護(hù)程序運(yùn)行結(jié)束后,啟用非可信任程序。根據(jù)本申請(qǐng)的另一個(gè)方面,提供一種手機(jī)支付保護(hù)方法,包括提供一個(gè)加密的文件系統(tǒng),保護(hù)程序的所有讀寫(xiě)都被重定向到該文件系統(tǒng)。其中,還包括對(duì)該文件系統(tǒng)的任何讀寫(xiě)都進(jìn)行加密的存儲(chǔ);利用Ptrace函數(shù)來(lái)attach該保護(hù)程序,截獲該保護(hù)程序所有的讀和寫(xiě)的系統(tǒng)調(diào)用;對(duì)實(shí)際文件系統(tǒng)的路徑的調(diào)用修改為安全文件系統(tǒng)的路徑,繼續(xù)程序的運(yùn)行。通過(guò)應(yīng)用本發(fā)明,從而實(shí)現(xiàn)手機(jī)應(yīng)用程序的本地安全,保證該應(yīng)用程序在運(yùn)行過(guò)程中既不會(huì)被其他應(yīng)用程序監(jiān)聽(tīng),并且應(yīng)用程序的緩存數(shù)據(jù)也可以得到保護(hù)。
圖1示出根據(jù)本發(fā)明的操作流程示意圖。
如圖所示,為了能明確實(shí)現(xiàn)本發(fā)明的實(shí)施例的結(jié)構(gòu)或者方法,在圖中標(biāo)注了各種尺寸和框圖,但該標(biāo)注僅為示意需要,并非意圖將本發(fā)明限定在該特定尺寸下,根據(jù)具體需要,本領(lǐng)域的普通技術(shù)人員可以將這些尺寸調(diào)整、修改,所進(jìn)行的調(diào)整和修改仍然包括在后附的權(quán)利要求的范圍中。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提供的一種基于逆向沙箱的手機(jī)支付保護(hù)方法進(jìn)行詳細(xì)描述。在說(shuō)明書(shū)中提及的“一個(gè)實(shí)施例”或者“實(shí)施例”意味著結(jié)合所述實(shí)施例描述的特定特征、結(jié)構(gòu)或者特性被包含在本發(fā)明的至少一個(gè)實(shí)施例中。因此,出現(xiàn)在整個(gè)說(shuō)明書(shū)中的不同位置的短語(yǔ)“在一個(gè)實(shí)施例中“不必是都指出現(xiàn)在同一實(shí)施例中。以下描述的是以運(yùn)算算法或者符號(hào)表示的方式呈現(xiàn)的,這些算法描述是由技術(shù)人員使用的手段,以最有效的方式將工作實(shí)質(zhì)傳達(dá)給本領(lǐng)域內(nèi)普通技術(shù)人員。在以下描述中, 這些實(shí)施例的特征、結(jié)構(gòu)和邏輯可以被包括在其他實(shí)施例中。本發(fā)明提供為一些存儲(chǔ)指令或者運(yùn)算流程,這些指令或者流程可以在包括手機(jī)在內(nèi)的移動(dòng)終端上進(jìn)行編程以執(zhí)行。在其他實(shí)施例中,這些流程步驟可以有用于執(zhí)行這些步驟的專用硬件組成,或者由電子組件來(lái)執(zhí)行實(shí)現(xiàn)??偟膩?lái)說(shuō),針對(duì)背景技術(shù)中所提及的這些安全威脅,本申請(qǐng)通過(guò)所建立的”綠色通道”技術(shù)來(lái)保證手機(jī)客戶端的安全。本申請(qǐng)所稱之為的綠色通道技術(shù)包括兩項(xiàng)安全技術(shù) 1)基于逆向沙箱的技術(shù),來(lái)保證應(yīng)用程序運(yùn)行過(guò)程中不會(huì)被惡意程序監(jiān)聽(tīng);幻安全的本地文件系統(tǒng),來(lái)保證其他惡意程序無(wú)法通過(guò)讀取本地緩存數(shù)據(jù)達(dá)到竊取用戶信息的目的。在本申請(qǐng)的第一實(shí)施例中,提供了基于逆向沙箱的手機(jī)支付的安全保護(hù)方法。傳統(tǒng)的沙箱技術(shù)是將某個(gè)被監(jiān)控的程序置于一個(gè)隔離的系統(tǒng)環(huán)境中,在沙箱中運(yùn)行包含風(fēng)險(xiǎn)程序的程序。在沙箱中運(yùn)行風(fēng)險(xiǎn)程序,對(duì)真實(shí)系統(tǒng)無(wú)任何影響。本發(fā)明采用的逆向沙箱技術(shù),將關(guān)鍵應(yīng)用程序放在沙箱外,將非可信任程序置于沙箱中,這些非可信任程序在封閉環(huán)境中運(yùn)行或者停止運(yùn)行,無(wú)法通過(guò)系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài),也就無(wú)法訪問(wèn)系統(tǒng)資源。這樣,正在運(yùn)行的關(guān)鍵應(yīng)用程序(例如手機(jī)銀行的客戶端)則自然地運(yùn)行在一個(gè)安全的環(huán)境中。本申請(qǐng)的第一實(shí)施例的方法包括步驟1,根據(jù)文件識(shí)別策略將安卓手機(jī)操作系統(tǒng)上的應(yīng)用程序進(jìn)行分類;步驟2,基于逆向沙箱停止非可信任程序并且運(yùn)行保護(hù)程序,保護(hù)程序運(yùn)行結(jié)束后,啟用非可信任程序。具體地,在步驟1中,根據(jù)文件識(shí)別策略將安卓手機(jī)操作系統(tǒng)上的應(yīng)用程序進(jìn)行分類。在一個(gè)實(shí)施例中,首先將Android系統(tǒng)上的程序分為可信任程序、非可信任程序和保護(hù)程序。其中,可信任程序是指用戶可以信任的程序,通常為系統(tǒng)程序,如Android手機(jī)系統(tǒng)上自帶的一些系統(tǒng)程序,例如短信,通信錄等;其中,非可信任程序是指用戶不可信任的程序,通常是指用戶自行安裝的第三方程序,如游戲等;其中,保護(hù)程序也就是手機(jī)用戶要運(yùn)行的關(guān)鍵程序,需要進(jìn)行保護(hù)的程序,例如手
4機(jī)銀行的客戶端。另外,這三類程序用戶可以自行進(jìn)行配置,如用戶可以將一個(gè)可信任程序設(shè)置為非可信任程序。具體地,在步驟2中,基于逆向沙箱停止非可信任程序并且運(yùn)行保護(hù)程序,保護(hù)程序運(yùn)行結(jié)束后,啟用非可信任程序。其中,在一個(gè)實(shí)施例中,在用戶運(yùn)行保護(hù)程序之前,掃描當(dāng)前正在運(yùn)行的所有進(jìn)程,對(duì)于每個(gè)進(jìn)程,如果該進(jìn)程屬于非可信任程序,則阻止該進(jìn)程進(jìn)入操作系統(tǒng)的內(nèi)核態(tài)。由于阻止非可信任的進(jìn)程進(jìn)入內(nèi)核態(tài),這些非可信任的進(jìn)程也就無(wú)法訪問(wèn)任何系統(tǒng)的資源。對(duì)于安卓(Android)手機(jī)操作系統(tǒng),可以利用調(diào)用ptrace ()系統(tǒng)函數(shù)來(lái)實(shí)現(xiàn)阻止該進(jìn)程進(jìn)入操作系統(tǒng)的內(nèi)核態(tài)。具體地,對(duì)于每一個(gè)非可信任的進(jìn)程,調(diào)用Ptrace (PTRACE_ ATTACH,pid,· · ·)來(lái) attach 上進(jìn)程,· pid 是進(jìn)程的 id,然后調(diào)用 ptrace (PTRACE_SYSCALL, pid,...),則在下次該進(jìn)程進(jìn)行系統(tǒng)調(diào)用時(shí)會(huì)被暫停,不會(huì)進(jìn)入操作系統(tǒng)的內(nèi)核態(tài)。然后,再啟動(dòng)保護(hù)程序(如銀行的客戶端),在現(xiàn)在這種狀態(tài)下只有保護(hù)程序以及可信任的程序可以進(jìn)入內(nèi)核態(tài),訪問(wèn)系統(tǒng)資源,從而保證了被保護(hù)程序的安全。當(dāng)用戶執(zhí)行完保護(hù)程序,退出保護(hù)程序后,逆向沙箱程序在對(duì)每個(gè)非可信任進(jìn)程發(fā)送命令,允許這些進(jìn)程進(jìn)入操作系統(tǒng)的內(nèi)核態(tài)。具體到在Android手機(jī)上,對(duì)于每一個(gè)非可信任的進(jìn)程,調(diào)用ptrace (PTRACE_ DETACH, pid, · · ·)來(lái)detach該進(jìn)程,該進(jìn)程即可進(jìn)入內(nèi)核態(tài)。進(jìn)一步以程序語(yǔ)言描述步驟2的實(shí)現(xiàn)過(guò)程a)、掃描當(dāng)前正在運(yùn)行的所有程序,如果該程序?qū)儆诜强尚湃纬绦?,逆向沙箱程序利用ptrace ()系統(tǒng)調(diào)用attach上該進(jìn)程,并且設(shè)置PTRACE_SYSCALL,即在下次系統(tǒng)調(diào)用前停止該進(jìn)程;b)、然后,逆向沙箱程序啟動(dòng)保護(hù)程序,使得只有保護(hù)程序以及可信任的程序可以進(jìn)入內(nèi)核態(tài),訪問(wèn)系統(tǒng)資源;C)、當(dāng)用戶執(zhí)行完保護(hù)程序后,逆向沙箱程序在對(duì)每個(gè)非可信任程序的進(jìn)程發(fā)出 PTRACE_C0NT的命令,允許這些進(jìn)程執(zhí)行,然后逆向沙箱程序發(fā)出PTRACE_DETACH的命令, detach這些進(jìn)程,這些程序即可繼續(xù)運(yùn)行到內(nèi)核中。在本發(fā)明的另一個(gè)實(shí)施例中,該技術(shù)在內(nèi)核態(tài)進(jìn)行處理,具體地,在內(nèi)核中加載一個(gè)模塊,該模塊修改系統(tǒng)調(diào)用表,改為自己的系統(tǒng)調(diào)用表。內(nèi)核每次進(jìn)行系統(tǒng)調(diào)用時(shí),檢查該系統(tǒng)調(diào)用的調(diào)用者是否在可信程序列表中,或者是保護(hù)程序。如是可信任程序或者保護(hù)程序,則允許調(diào)用;如果不是,則直接返回,不允許調(diào)用。但是各個(gè)Android手機(jī)的內(nèi)核版本太多,同時(shí)Linux上有模塊驗(yàn)證的機(jī)制,導(dǎo)致這個(gè)解決方案的通用性太差,運(yùn)行效率上也不如第一實(shí)施例中的進(jìn)程態(tài)的逆向沙箱技術(shù)。在本申請(qǐng)的第三實(shí)施例中,提供一種手機(jī)端的文件處理方法,該方法提供一個(gè)加密的文件系統(tǒng),保護(hù)程序的所有讀寫(xiě)都被重定向到該文件系統(tǒng)。本申請(qǐng)第三實(shí)施例的方法包括步驟1,維護(hù)一個(gè)虛擬的安全文件系統(tǒng),對(duì)該文件系統(tǒng)的任何讀寫(xiě)都進(jìn)行加密的存儲(chǔ);步驟2,利用ptrace函數(shù)來(lái)attach這個(gè)保護(hù)程序,截獲該保護(hù)程序所有的讀和寫(xiě)的系統(tǒng)調(diào)用;步驟3,此時(shí)系統(tǒng)調(diào)用的第一個(gè)參數(shù)為實(shí)際文件
5系統(tǒng)的路徑,函數(shù)將這個(gè)常數(shù)動(dòng)態(tài)的修改為安全文件系統(tǒng)的路徑,然后繼續(xù)程序的運(yùn)行。
這樣,保護(hù)程序就將它寫(xiě)入了安全文件系統(tǒng),由于此安全文件系統(tǒng)經(jīng)過(guò)加密存儲(chǔ), 從而使得第三方應(yīng)用程序的緩存數(shù)據(jù)得到保護(hù)。另外保護(hù)程序的開(kāi)發(fā)者不用考慮安全文件系統(tǒng)的存在而進(jìn)行額外的處理,從而減輕了開(kāi)發(fā)者的負(fù)擔(dān)。 進(jìn)一步地,第三實(shí)施例還可以將第一實(shí)施例中的處理方式加以結(jié)合,在該文件系統(tǒng)的基礎(chǔ)上,提供新的手機(jī)支付保護(hù)方法,該方法包括步驟1,根據(jù)文件識(shí)別策略將安卓手機(jī)操作系統(tǒng)上的應(yīng)用程序進(jìn)行分類;步驟2,基于逆向沙箱停止非可信任程序并且運(yùn)行保護(hù)程序,保護(hù)程序運(yùn)行結(jié)束后,啟用非可信任程序。將Android系統(tǒng)上的程序分為可信任程序、非可信任程序和保護(hù)程序,可信任程序是指諸如系統(tǒng)程序的用戶信任的程序;非可信任程序是指用戶自行安裝的第三方程序; 保護(hù)程序是手機(jī)用戶要運(yùn)行的諸如手機(jī)支付客戶端的關(guān)鍵程序。對(duì)于上述步驟1和2的處理過(guò)程,可以參考第一實(shí)施例的流程和參數(shù),此處不再贅述。在根據(jù)本申請(qǐng)的第四實(shí)施例中,可以將第一實(shí)施例和第三實(shí)施例進(jìn)行另一種有機(jī)的組合,其中一種方式提供是一種基于逆向沙箱的手機(jī)支付保護(hù)方法,包括步驟1,根據(jù)文件識(shí)別策略將安卓手機(jī)操作系統(tǒng)上的應(yīng)用程序進(jìn)行分類;步驟2,基于逆向沙箱停止非可信任程序并且運(yùn)行保護(hù)程序,保護(hù)程序運(yùn)行結(jié)束后,啟用非可信任程序;在該方法中提供一個(gè)加密的文件系統(tǒng),保護(hù)程序的所有讀寫(xiě)都被重定向到該文件系統(tǒng),對(duì)該文件系統(tǒng)的任何讀寫(xiě)都進(jìn)行加密的存儲(chǔ);利用Ptrace函數(shù)來(lái)attach該保護(hù)程序,截獲該保護(hù)程序所有的讀和寫(xiě)的系統(tǒng)調(diào)用;對(duì)實(shí)際文件系統(tǒng)的路徑的調(diào)用修改為安全文件系統(tǒng)的路徑,繼續(xù)程序的運(yùn)行。具體地,在實(shí)施例4中,對(duì)步驟1和2的詳細(xì)描述可以參考第一實(shí)施例和第三實(shí)施例,此處不再贅述。最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以描述本發(fā)明的技術(shù)方案而不是對(duì)本技術(shù)方法進(jìn)行限制,本發(fā)明在應(yīng)用上可以延伸為其他的修改、變化、應(yīng)用和實(shí)施例,并且因此認(rèn)為所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和教導(dǎo)范圍內(nèi)。
權(quán)利要求
1.一種手機(jī)支付保護(hù)方法,包括提供一個(gè)加密的文件系統(tǒng),保護(hù)程序的所有讀寫(xiě)都被重定向到該文件系統(tǒng)。
2.權(quán)利要求1所述的方法,其中,還包括對(duì)該文件系統(tǒng)的任何讀寫(xiě)都進(jìn)行加密的存儲(chǔ);利用Ptrace函數(shù)來(lái)attach該保護(hù)程序,截獲該保護(hù)程序所有的讀和寫(xiě)的系統(tǒng)調(diào)用;對(duì)實(shí)際文件系統(tǒng)的路徑的調(diào)用修改為安全文件系統(tǒng)的路徑,繼續(xù)程序的運(yùn)行。
3.權(quán)利要求1所述的方法,其中,還包括步驟1,根據(jù)文件識(shí)別策略將安卓手機(jī)操作系統(tǒng)上的應(yīng)用程序進(jìn)行分類;步驟2,基于逆向沙箱停止非可信任程序并且運(yùn)行保護(hù)程序,保護(hù)程序運(yùn)行結(jié)束后,啟用非可信任程序。
4.權(quán)利要求3所述的方法,其中,步驟1中,將Android系統(tǒng)上的程序分為可信任程序、 非可信任程序和保護(hù)程序。
5.權(quán)利要求4所述的方法,其中,在步驟1中,其中,可信任程序是指諸如系統(tǒng)程序的用戶信任的程序;非可信任程序是指用戶自行安裝的第三方程序;保護(hù)程序是手機(jī)用戶要運(yùn)行的諸如手機(jī)支付客戶端的關(guān)鍵程序。
6.權(quán)利要求4所述的方法,其中,步驟1中,用戶可自行配置可信任程序、非可信任程序和保護(hù)程序。
7.權(quán)利要求3所述的方法,其中,步驟2中,在用戶運(yùn)行保護(hù)程序之前,掃描當(dāng)前正在運(yùn)行的所有進(jìn)程,對(duì)于每個(gè)進(jìn)程,如果該進(jìn)程屬于非可信任程序,則阻止該進(jìn)程進(jìn)入操作系統(tǒng)的內(nèi)核態(tài)。
8.權(quán)利要求7所述的方法,其中,步驟2中,對(duì)于安卓手機(jī)操作系統(tǒng),利用調(diào)用 PtraceO系統(tǒng)函數(shù)來(lái)實(shí)現(xiàn)阻止該進(jìn)程進(jìn)入操作系統(tǒng)的內(nèi)核態(tài),對(duì)于每一個(gè)非可信任的進(jìn)程,調(diào)用ptrace (PTRACE_ATTACH, pid,· · ·)來(lái)attach該進(jìn)程,· pid是進(jìn)程的id,然后調(diào)用 ptrace (PTRACE_SYSCALL, pid,...),則在下次該進(jìn)程進(jìn)行系統(tǒng)調(diào)用時(shí)會(huì)被暫停,不會(huì)進(jìn)入操作系統(tǒng)的內(nèi)核態(tài)。
9.權(quán)利要求8所述的方法,其中,步驟2中,然后啟動(dòng)保護(hù)程序,進(jìn)入內(nèi)核態(tài),訪問(wèn)系統(tǒng)資源。
10.權(quán)利要求3所述的方法,其中,步驟2包括掃描當(dāng)前正在運(yùn)行的所有程序,如果該程序?qū)儆诜强尚湃纬绦颍肞traceO系統(tǒng)調(diào)用attach上該進(jìn)程,并且設(shè)置PTRACE_SYSCALL,在下次系統(tǒng)調(diào)用前停止該進(jìn)程;啟動(dòng)保護(hù)程序;當(dāng)用戶執(zhí)行完保護(hù)程序后,在對(duì)每個(gè)非可信任程序的進(jìn)程發(fā)出PTRACE_C0NT的命令, 允許這些進(jìn)程執(zhí)行;然后發(fā)出PTRACE_DETACH的命令,detach這些進(jìn)程。
全文摘要
本發(fā)明提供一種手機(jī)支付保護(hù)方法,包括提供一個(gè)加密的文件系統(tǒng),保護(hù)程序的所有讀寫(xiě)都被重定向到該文件系統(tǒng);對(duì)該文件系統(tǒng)的任何讀寫(xiě)都進(jìn)行加密的存儲(chǔ);利用ptrace函數(shù)來(lái)attach該保護(hù)程序,截獲該保護(hù)程序所有的讀和寫(xiě)的系統(tǒng)調(diào)用;對(duì)實(shí)際文件系統(tǒng)的路徑的調(diào)用修改為安全文件系統(tǒng)的路徑,繼續(xù)程序的運(yùn)行。
文檔編號(hào)H04L29/06GK102222292SQ20111013938
公開(kāi)日2011年10月19日 申請(qǐng)日期2011年5月27日 優(yōu)先權(quán)日2011年5月27日
發(fā)明者陳彪 申請(qǐng)人:北京洋浦偉業(yè)科技發(fā)展有限公司