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