欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于保護(hù)IOS軟件模塊的設(shè)備和方法與流程

文檔序號(hào):12470884閱讀:322來源:國知局
用于保護(hù)IOS軟件模塊的設(shè)備和方法與流程

本公開總體上涉及軟件保護(hù),具體地,涉及保護(hù)在iOS上運(yùn)行的軟件。



背景技術(shù):

本部分是為了向讀者介紹可能與下文所述的和/或所要求保護(hù)的本公開各個(gè)方面相關(guān)的現(xiàn)有技術(shù)的各方面。這樣的討論有助于向讀者提供背景信息以便幫助更好地理解本公開的多個(gè)方面。因此,應(yīng)當(dāng)理解,這些陳述應(yīng)以這種方式被解讀,而不是作為對(duì)現(xiàn)有技術(shù)的承認(rèn)。

通過從源到將安裝iOS應(yīng)用的iOS應(yīng)用的加密分發(fā)來保護(hù)iOS應(yīng)用不受逆向工程的侵害。一旦安裝在iOS設(shè)備上,iOS本身就能使用隔離處理和分離特權(quán)來保護(hù)應(yīng)用免遭動(dòng)態(tài)分析。

然而,這種保護(hù)僅適用于沒有越獄的iOS設(shè)備。容易使用GNU調(diào)試器(gdb)來從越獄設(shè)備傾卸應(yīng)用的代碼,如Jonathan Zdziarski在“Hacking and Securing iOS Applications”中所述。已經(jīng)對(duì)越獄設(shè)備進(jìn)行了修改,以獲得在未越獄設(shè)備上不可用的增加的特權(quán)。

因此依賴于由iOS提供的保護(hù)是不夠的。但是由于iOS不允許在已安裝應(yīng)用中進(jìn)行任何代碼修改,因此可以使用的軟件保護(hù)機(jī)制只有完整性檢查和控制流圖(CFG)平坦化,這兩者通常被一起使用。經(jīng)常需要這些軟件保護(hù)機(jī)制,因?yàn)橛蒳OS提供的加密是弱的,并且應(yīng)用易于受到使用靜態(tài)分析的逆向工程的侵害。

再次地,CFG平坦化僅對(duì)靜態(tài)攻擊有效,而對(duì)動(dòng)態(tài)攻擊無效,并且Wurster等人已經(jīng)示出了可以通過并行運(yùn)行兩個(gè)代碼部分來規(guī)避完整性檢查,如在“A Generic Attack on Checksumming-Based Software Tamper Resistance”中所述。

應(yīng)認(rèn)識(shí)到,需要具有一種克服與保護(hù)iOS應(yīng)用相關(guān)的傳統(tǒng)問題中的至少一部分問題的解決方案。本原理提供了這種解決方案。



技術(shù)實(shí)現(xiàn)要素:

在第一方面,本原理涉及一種用于保護(hù)要由執(zhí)行設(shè)備執(zhí)行的模塊的應(yīng)用提供方設(shè)備,其中所述執(zhí)行設(shè)備具有操作系統(tǒng)并且是原裝設(shè)備或越獄設(shè)備。該應(yīng)用提供方設(shè)備包括處理單元,被配置為獲得要在原裝執(zhí)行設(shè)備上執(zhí)行的模塊的第一版本,所述第一版本實(shí)施原裝設(shè)備上的操作系統(tǒng)所允許的第一軟件保護(hù)技術(shù);獲得要在越獄設(shè)備上執(zhí)行的所述模塊的第二版本,所述第二版本實(shí)施原裝設(shè)備上的操作系統(tǒng)所不允許的第二軟件保護(hù)技術(shù);獲得越獄檢測函數(shù),所述越獄檢測函數(shù)被配置為確定所述執(zhí)行設(shè)備是原裝設(shè)備還是越獄設(shè)備,并且在所述執(zhí)行設(shè)備是原裝設(shè)備的情況下調(diào)用所述模塊的第一版本,在所述執(zhí)行設(shè)備是越獄設(shè)備的情況下調(diào)用所述模塊的第二版本;以及產(chǎn)生應(yīng)用包,所述應(yīng)用包包括越獄檢測函數(shù)、所述模塊的第一版本以及所述模塊的第二版本。所述應(yīng)用提供方設(shè)備還包括被配置為輸出應(yīng)用包的接口。

第一方面的各種實(shí)施例包括:

所述處理單元還被配置為使用第一軟件保護(hù)技術(shù)來保護(hù)所述模塊的第一版本。第一軟件保護(hù)技術(shù)可以包括以下項(xiàng)中的至少一個(gè):控制流圖平坦化和驗(yàn)證所述執(zhí)行設(shè)備是原裝設(shè)備。

所述處理單元還被配置為使用第二軟件保護(hù)技術(shù)來保護(hù)所述模塊的第二版本。第二軟件保護(hù)技術(shù)可以是動(dòng)態(tài)加密。

在第二方面,本原理涉及一種用于保護(hù)要由執(zhí)行設(shè)備執(zhí)行的模塊的方法,其中所述執(zhí)行設(shè)備具有操作系統(tǒng)并且是原裝設(shè)備或越獄設(shè)備。所述方法包括在應(yīng)用提供方設(shè)備處:由處理單元獲得要在原裝執(zhí)行設(shè)備上執(zhí)行的所述模塊的第一版本,所述第一版本實(shí)施原裝設(shè)備上的操作系統(tǒng)所允許的第一軟件保護(hù)技術(shù);由處理單元獲得要在越獄設(shè)備上執(zhí)行的所述模塊的第二版本,所述第二版本實(shí)施原裝設(shè)備上的操作系統(tǒng)所不允許的第二軟件保護(hù)技術(shù);

由處理單元獲得越獄檢測函數(shù),所述越獄檢測函數(shù)被配置為確定所述執(zhí)行設(shè)備是原裝設(shè)備還是越獄設(shè)備,并且在所述執(zhí)行設(shè)備是原裝設(shè)備的情況下調(diào)用所述模塊的第一版本,在所述執(zhí)行設(shè)備是越獄設(shè)備的情況下調(diào)用所述模塊的第二版本;由處理單元產(chǎn)生應(yīng)用包,所述應(yīng)用包包括越獄檢測函數(shù)、所述模塊的第一版本以及所述模塊的第二版本;以及由接口輸出所述應(yīng)用包。

第二方面的各種實(shí)施例包括:

所述處理單元還被配置為使用第一軟件保護(hù)技術(shù)來保護(hù)所述模塊的第一版本。第一軟件保護(hù)技術(shù)可以包括以下項(xiàng)中的至少一個(gè):控制流圖平坦化和驗(yàn)證所述執(zhí)行設(shè)備是原裝設(shè)備。

所述處理單元還被配置為使用第二軟件保護(hù)技術(shù)來保護(hù)所述模塊的第二版本。第二軟件保護(hù)技術(shù)可以是動(dòng)態(tài)加密。

在第三方面,本原理涉及一種具有操作系統(tǒng)的執(zhí)行設(shè)備,所述執(zhí)行設(shè)備包括:存儲(chǔ)器,存儲(chǔ)要在原裝執(zhí)行設(shè)備上執(zhí)行的模塊的第一版本、要在越獄設(shè)備上執(zhí)行的所述模塊的第二版本、以及越獄檢測函數(shù),其中所述第一版本實(shí)施原裝設(shè)備上的操作系統(tǒng)所允許的第一軟件保護(hù)技術(shù),所述第二版本實(shí)施原裝設(shè)備上的操作系統(tǒng)所不允許的第二軟件保護(hù)技術(shù),并且所述越獄檢測函數(shù)被配置為確定執(zhí)行所述越獄函數(shù)的執(zhí)行設(shè)備是原裝設(shè)備還是越獄設(shè)備;以及處理單元,被配置為:執(zhí)行所述越獄檢測函數(shù)以確定所述執(zhí)行設(shè)備是原裝設(shè)備還是越獄設(shè)備,以及在所述執(zhí)行設(shè)備被確定為原裝設(shè)備的情況下調(diào)用所述模塊的第一版本,在所述執(zhí)行設(shè)備被確定為越獄設(shè)備的情況下調(diào)用所述模塊的第二版本。

附圖說明

作為非限制性示例,現(xiàn)在參考附圖來描述本原理的優(yōu)選特征,在附圖中:

圖1示出了實(shí)現(xiàn)本原理的系統(tǒng)100;

圖2示出了根據(jù)本原理的產(chǎn)生受保護(hù)模塊的方法;以及

圖3示出了根據(jù)本原理的應(yīng)用包。

具體實(shí)施方式

應(yīng)理解的是,附圖所示的元件可以以硬件、軟件、或其組合的各種形式來實(shí)現(xiàn)。優(yōu)選地,這些元件在一個(gè)或更多個(gè)適當(dāng)編程的通用目的設(shè)備上實(shí)現(xiàn)為硬件和軟件的組合,其中所述設(shè)備可以包括處理器、存儲(chǔ)器和輸入/輸出接口。文中,詞語“耦接”被定義為表示直接連接或通過一個(gè)或更多個(gè)中間組件間接連接。這種中間組件可以包括基于硬件和軟件的組件二者。

本說明書示意了本公開的原理。因此,可以理解的是,本領(lǐng)域的技術(shù)人員將能夠設(shè)計(jì)出雖然沒有明確地描述或示出但體現(xiàn)了本發(fā)明的原理并包括在其范圍之內(nèi)的各種布置。

這里記載的所有示例和條件語言預(yù)期用于教導(dǎo)目的,以幫助讀者理解本公開的原理和發(fā)明人為改進(jìn)現(xiàn)有技術(shù)而貢獻(xiàn)的構(gòu)思,并且應(yīng)解釋為不限于這些具體記載的示例和條件。

此外,這里對(duì)本公開的原理、方面、實(shí)施例及其特定示例做出引述的所有聲明意在包括本發(fā)明的結(jié)構(gòu)和功能上的等同物。附加地,這種等同物旨在包括當(dāng)前已知的等同物以及將來研發(fā)的等同物,即,為執(zhí)行相同功能研發(fā)的任何元件,而無論其結(jié)構(gòu)。

因此,本領(lǐng)域的技術(shù)人員可以理解,例如這里所表示的框圖展示出體現(xiàn)本公開原理的示意性電路的概念圖。類似地,將理解,任何流程、流程圖、狀態(tài)轉(zhuǎn)移圖、偽代碼等表現(xiàn)出實(shí)質(zhì)上可以在計(jì)算機(jī)可讀介質(zhì)上表現(xiàn)的、并且由計(jì)算機(jī)或處理器執(zhí)行的各個(gè)過程,無論是否明確示出該計(jì)算機(jī)或處理器。

圖中示出的各個(gè)元件的功能可以通過使用專用硬件以及能夠與合適軟件相關(guān)聯(lián)執(zhí)行軟件的硬件來提供。當(dāng)由處理器來提供時(shí),這些功能可以由單個(gè)的專用處理器、單個(gè)的共享處理器、或多個(gè)單獨(dú)的處理器來提供,其中一些可以是共享的。此外,對(duì)術(shù)語“處理器”或“控制器”的顯式使用不應(yīng)理解為專門指能夠執(zhí)行軟件的硬件,而是可以非限制地包括數(shù)字信號(hào)處理器(DSP)硬件、用于存儲(chǔ)軟件的只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)以及非易失性存儲(chǔ)器。

還可以包括常規(guī)和/或定制的其它硬件。類似地,附圖所示的任何開關(guān)都僅是概念性的。其功能可以通過程序邏輯的操作、專用邏輯、程序控制和專用邏輯的交互、或甚至是手動(dòng)地實(shí)現(xiàn),實(shí)施者可以選擇的具體技術(shù)可以從上下文中得到明確的理解。

在權(quán)利要求中,被表達(dá)為用于執(zhí)行指定功能的裝置的任意元件意在包括執(zhí)行該功能的任何方式,包括例如a)執(zhí)行該功能的電路元件的組合,或b)任何形式的軟件,因而包括固件、微代碼等,其與適當(dāng)?shù)碾娐方M合以運(yùn)行該軟件來執(zhí)行該功能。由這種權(quán)利要求限定的本公開在于由各種記載的裝置提供的功能以權(quán)利要求所要求的方式組合在一起。因此,將可以提供這些功能的任何裝置認(rèn)為是等同于本文所示的裝置。

在說明書中,將對(duì)模塊進(jìn)行參考。該模塊包括可執(zhí)行代碼,并且可以是共享庫、可執(zhí)行代碼或庫中的代碼的一部分、或者甚至是整個(gè)應(yīng)用。

本原理的方法和設(shè)備提供包括以下兩種模塊版本的應(yīng)用包:一種版本在未越獄設(shè)備(這里稱為“原裝設(shè)備”)上執(zhí)行,而一種版本在越獄設(shè)備上執(zhí)行。每種版本實(shí)現(xiàn)相同功能,但是使用不同的軟件保護(hù)機(jī)制來保護(hù)(但是應(yīng)理解一些軟件保護(hù)機(jī)制可以在兩種版本間共享)。

圖1示出實(shí)現(xiàn)本原理的系統(tǒng)100。系統(tǒng)100包括應(yīng)用提供方110,被配置為產(chǎn)生iOS模塊并直接或間接地將其提供給被配置為執(zhí)行iOS模塊的iOS設(shè)備120。應(yīng)用提供方110和iOS設(shè)備120包括至少一個(gè)硬件處理單元(“處理器”)111、121;存儲(chǔ)器112、122;以及至少一個(gè)通信接口113、123,配置為與其他設(shè)備進(jìn)行通信。本領(lǐng)域技術(shù)人員將清楚,為了清楚的目的,示出的設(shè)備已被簡化;因此,沒有示出如內(nèi)部連接或電源之類的特征。非暫時(shí)性存儲(chǔ)介質(zhì)130存儲(chǔ)將在下文進(jìn)一步描述的iOS模塊。

圖2示出了根據(jù)本原理的產(chǎn)生受保護(hù)模塊的方法。在步驟S20,應(yīng)用提供方獲得要在原裝設(shè)備上執(zhí)行的模塊的版本,并在步驟S21,獲得要在越獄設(shè)備上執(zhí)行的模塊的版本。每種版本僅指代其自身(即,不指代另一版本),并且利用特定軟件保護(hù)機(jī)制(取決于其要在越獄設(shè)備還是原裝設(shè)備上執(zhí)行)來保護(hù)。

在原裝設(shè)備上,用戶模塊(即,由用戶下載的模塊)在非root(非根)模式下運(yùn)行。操作系統(tǒng)會(huì)遭到調(diào)試攻擊,操作系統(tǒng)應(yīng)用默認(rèn)加密,對(duì)應(yīng)用進(jìn)行隔離處理(沙盒化(sandboxing)),并禁止調(diào)試者附上非根應(yīng)用。由于iOS提供針對(duì)動(dòng)態(tài)攻擊的保護(hù),因此應(yīng)用提供方110按照用于原裝設(shè)備本身的代碼版本提供針對(duì)靜態(tài)分析的保護(hù)(例如使用CFG平坦化)就夠了。此外,完整性檢查可以用于保護(hù)模塊。

在越獄設(shè)備上,iOS不會(huì)阻止調(diào)試或動(dòng)態(tài)攻擊,但是同時(shí),iOS的修改的系統(tǒng)特權(quán)(例如由于越獄而造成的損壞的沙盒隔離)允許使用低級(jí)軟件保護(hù)機(jī)制,如動(dòng)態(tài)密碼加密(自修改密碼)和反調(diào)試。這使得應(yīng)用提供方能夠?qū)⑦@種軟件保護(hù)機(jī)制包括在用于越獄設(shè)備的版本中。因此,可以使用例如動(dòng)態(tài)加密和完整性檢查來保護(hù)用于越獄設(shè)備的版本免遭動(dòng)態(tài)攻擊。

在步驟S22,應(yīng)用提供方110將原裝iOS允許的至少一個(gè)軟件保護(hù)技術(shù)應(yīng)用于針對(duì)原裝設(shè)備的版本,以獲得針對(duì)原裝設(shè)備的受保護(hù)版本,并且在步驟S23,應(yīng)用提供方110將越獄iOS特定的至少一個(gè)軟件保護(hù)技術(shù)(被越獄iOS允許但是不被原裝iOS允許)應(yīng)用于針對(duì)越獄設(shè)備的版本,以獲得針對(duì)越獄設(shè)備的受保護(hù)版本。以下情況也是可能的:在步驟S20和S21中獲得的版本在獲得這些版本時(shí)已經(jīng)通過使用上述軟件保護(hù)方法而受到保護(hù)。

應(yīng)用提供方110之后在步驟S24產(chǎn)生越獄檢測函數(shù)。越獄檢測函數(shù)能夠確定執(zhí)行了該越獄檢測函數(shù)的設(shè)備是原裝設(shè)備還是越獄設(shè)備。由于原裝設(shè)備上部允許分叉(forking),因此越獄檢測函數(shù)可以例如使用fork(),并檢查返回的進(jìn)程id以查看其是否已經(jīng)成功地分叉,在是的情況下,可以確定設(shè)備已越獄。類似地,調(diào)用具有空參數(shù)的system()也能夠確定越獄:如果返回1則確定是越獄設(shè)備,如果返回0則確定是原裝設(shè)備。Zdziarski在“Hacking and Securing iOS Applications”中還描述了其他越獄檢測函數(shù)。優(yōu)選越獄檢測函數(shù)使用檢測越獄的多種不同方法。

優(yōu)選地,越獄檢測函數(shù)還插入到針對(duì)原裝設(shè)備的版本的代碼中,從而在執(zhí)行該版本期間也執(zhí)行檢測。在原裝版本內(nèi)的越獄檢測函數(shù)優(yōu)選通過完整性檢查來保護(hù),并且被配置為在確定執(zhí)行設(shè)備已越獄的情況下改變執(zhí)行流。當(dāng)保護(hù)原裝版本時(shí),可以在此時(shí)或更早的時(shí)間將越獄檢測函數(shù)插入到原裝版本中。

應(yīng)用提供方10之后在步驟S25產(chǎn)生應(yīng)用包,所述應(yīng)用包包括越獄檢測函數(shù)、用于在原裝設(shè)備上使用的版本以及用于在越獄設(shè)備上使用的版本,其中,所述越獄檢測函數(shù)根據(jù)執(zhí)行設(shè)備的越獄狀態(tài)(即,是原裝還是越獄)來調(diào)用正確的版本。在步驟S26,應(yīng)用提供方110直接向iOS設(shè)備120輸出應(yīng)用包,或者向中間商店(未示出)輸出應(yīng)用包。

圖3示出了根據(jù)本原理的應(yīng)用包300,該應(yīng)用包包括越獄檢測函數(shù)310,被配置為確定執(zhí)行設(shè)備的越獄狀態(tài),之后調(diào)用應(yīng)用的原裝版本320或越獄版本330。原裝版本的代碼包括多個(gè)越獄檢測函數(shù)325,如上所述。

在圖3中,應(yīng)用包300被示出為具有三個(gè)模塊:越獄檢測函數(shù)310以及模塊的兩個(gè)版本320、330。將理解的是,這三個(gè)模塊可以是單個(gè)應(yīng)用的一部分,在執(zhí)行期間,實(shí)現(xiàn)越獄檢測函數(shù)310,從而確定執(zhí)行哪個(gè)版本。

在變型中,應(yīng)用包包括三個(gè)應(yīng)用,其中每個(gè)應(yīng)用包括越獄檢測函數(shù)之一以及兩個(gè)版本。包括越獄檢測函數(shù)的應(yīng)用被首先執(zhí)行,并且其根據(jù)確定設(shè)備是否越獄的結(jié)果來調(diào)用其他兩個(gè)應(yīng)用之一。

將認(rèn)識(shí)到,本原理提供用于對(duì)iOS軟件模塊進(jìn)行軟件保護(hù)的解決方案,其中所述解決方案至少在一些情況下可以改善傳統(tǒng)保護(hù)方法。具體地,根據(jù)實(shí)施例,本原理可以將相同應(yīng)用包分發(fā)給原裝設(shè)備和越獄設(shè)備。

已經(jīng)將本原理描述為用于iOS,并且相信本原理在iOS中能夠提供最優(yōu)的效果。然而應(yīng)理解,本原理可以用于其它(安全)操作系統(tǒng)(如Android),尤其是在所述其它操作系統(tǒng)限制在存儲(chǔ)器頁中的寫許可的情況下。

以上描述公開的各項(xiàng)特征、(適當(dāng)?shù)?權(quán)利要求和附圖可以獨(dú)立提供或以任何適當(dāng)?shù)男问浇Y(jié)合。被描述為以硬件實(shí)現(xiàn)的特征還可以實(shí)現(xiàn)為軟件,且反之亦然。權(quán)利要求書中出現(xiàn)的參照數(shù)字僅作為舉例說明而不是限制權(quán)利要求的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宣化县| 塔城市| 龙江县| 成武县| 浦城县| 黄骅市| 灵山县| 镇江市| 墨竹工卡县| 辉南县| 赤壁市| 休宁县| 柳州市| 寿宁县| 子洲县| 礼泉县| 永春县| 辰溪县| 太湖县| 廉江市| 家居| 普定县| 黔西| 湘潭县| 新民市| 塔河县| 甘孜县| 云和县| 通州市| 淄博市| 中西区| 梅州市| 肃南| 醴陵市| 漳州市| 林周县| 文山县| 理塘县| 鄂伦春自治旗| 昭苏县| 祁阳县|