web應(yīng)用的安全執(zhí)行的制作方法
【專利摘要】用于通過(guò)確定從第一函數(shù)到第二函數(shù)的調(diào)用依賴性需要被保護(hù)、添加包括用于與受信任模塊建立通信連接的代碼的部分執(zhí)行存根(PES)函數(shù)來(lái)使web應(yīng)用的執(zhí)行變得安全的方法和節(jié)點(diǎn)。用于通過(guò)引用web應(yīng)用的函數(shù)、在web應(yīng)用的函數(shù)的執(zhí)行期間引用部分執(zhí)行存根(PES)函數(shù)、從PES函數(shù)將具有當(dāng)前執(zhí)行信息的消息調(diào)用發(fā)送到受信任模塊并且從受信任模塊接收驗(yàn)證結(jié)果來(lái)使web應(yīng)用的執(zhí)行變得安全的方法和節(jié)點(diǎn)。
【專利說(shuō)明】web應(yīng)用的安全執(zhí)行
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及web應(yīng)用的安全執(zhí)行。
【背景技術(shù)】
[0002] 無(wú)論是針對(duì)商業(yè)使用還是個(gè)人使用,無(wú)線互連和設(shè)備是日常生活中開(kāi)展和使用的 主導(dǎo)技術(shù)。此外,云計(jì)算正改變信息文化并且是基于互聯(lián)網(wǎng)的計(jì)算設(shè)備、應(yīng)用軟件、數(shù)據(jù)訪 問(wèn)和存儲(chǔ)的新遞送模型的新興商業(yè)策略的一部分。與不受信任的環(huán)境相關(guān)聯(lián)的安全性變得 具有挑戰(zhàn)性。傳統(tǒng)的計(jì)算機(jī)和網(wǎng)絡(luò)安全方案不適合于解決與該些不受信任的系統(tǒng)相關(guān)聯(lián)的 易損性和攻擊。
[0003] web應(yīng)用是通過(guò)使用網(wǎng)頁(yè)瀏覽器經(jīng)由諸如互聯(lián)網(wǎng)或內(nèi)聯(lián)網(wǎng)之類的網(wǎng)絡(luò)訪問(wèn) 的應(yīng)用,并且,W瀏覽器支持的語(yǔ)言(諸如與瀏覽器呈現(xiàn)的標(biāo)記語(yǔ)言(像HTML)組合的 JavaScript)對(duì)web應(yīng)用進(jìn)行編碼。web應(yīng)用依賴于常見(jiàn)的網(wǎng)頁(yè)瀏覽器來(lái)使得該應(yīng)用可執(zhí) 行。在不將軟件分配和安裝在可能數(shù)W千計(jì)客戶端計(jì)算機(jī)的情況下更新和維護(hù)web應(yīng)用的 能力是它們的流行性的關(guān)鍵原因,因?yàn)槠涫菍?duì)跨平臺(tái)兼容性的內(nèi)在支持。與早期的HTML和 化vaScript到最新的HTML5相比,最新的web應(yīng)用正變得不依賴于平臺(tái)和瀏覽器。瀏覽器 還提供了應(yīng)用執(zhí)行環(huán)境。當(dāng)與原生執(zhí)行環(huán)境相比時(shí),web應(yīng)用的安全執(zhí)行提供了新的挑戰(zhàn)。 壓力比之前在移動(dòng)設(shè)備制造商(無(wú)論是智能電話還是平板)和網(wǎng)絡(luò)運(yùn)營(yíng)商上將成本維持在 最低可能水平處的壓力更大。然而,同一 web應(yīng)用的執(zhí)行應(yīng)當(dāng)提供相同的功能,無(wú)論其在什 么設(shè)備上執(zhí)行。對(duì)于較低端設(shè)備,資源通常更加有限,該造成了對(duì)web應(yīng)用的附加壓力。
[0004] 例如,Symbian平臺(tái)上的KJava是被設(shè)計(jì)用于移動(dòng)平臺(tái)的按比例縮小的化va虛擬 機(jī)(JVM)。Uava包含化va 2標(biāo)準(zhǔn)版本(J2SE)封裝的子集,并實(shí)施受約束的移動(dòng)信息設(shè)備 簡(jiǎn)檔(MIDP)和受約束的連接有限設(shè)備配置(CLDC)簡(jiǎn)檔。例如,約束包括;1)不支持化va 原生接口(JNI) ;2)有限的反映能力(例如檢查或修改運(yùn)行時(shí)行為的有限能力);3)沒(méi)有定 制的類加載器(例如沒(méi)有微調(diào)類加載器的行為的能力)。
[0005] 與執(zhí)行資源或環(huán)境約束有關(guān)的示例性限制已被提及,且在本發(fā)明中總體上解決的 使web應(yīng)用執(zhí)行變得安全的上下文中是特別相關(guān)的。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明總體上旨在提供用于使web應(yīng)用在非原生執(zhí)行環(huán)境中的執(zhí)行變得安全的 保護(hù)技術(shù)。通常,客戶端設(shè)備應(yīng)當(dāng)支持在線(連接互聯(lián)網(wǎng))或離線(未連接互聯(lián)網(wǎng))運(yùn)行應(yīng)用。 使該樣的應(yīng)用的執(zhí)行變得安全應(yīng)當(dāng)是持續(xù)性的,不論其是在線還是離線運(yùn)行。本發(fā)明提供 了允許應(yīng)用的在線或離線安全執(zhí)行的一般框架,盡管該保護(hù)技術(shù)可能利用在線或離線執(zhí)行 的具體方面。
[0007] 本發(fā)明的第一方面涉及一種用于使web應(yīng)用的執(zhí)行變得安全的方法。該方法包 括:在客戶端設(shè)備的處理器上引用web應(yīng)用的函數(shù)。該方法接著在客戶端設(shè)備的處理器上 在web應(yīng)用的函數(shù)的執(zhí)行期間引用部分執(zhí)行存根(PES, Partial Execution S化b)函數(shù)。 該方法然后從PES函數(shù)繼續(xù)發(fā)送具有與web應(yīng)用有關(guān)的當(dāng)前執(zhí)行信息的消息調(diào)用。消息 調(diào)用被發(fā)送到受信任模塊。此后通過(guò)PES函數(shù)從與消息調(diào)用有關(guān)的受信任模塊接收驗(yàn)證結(jié) 果。
[0008] 可選地,該方法還可包括通過(guò)PES函數(shù)與受信任模塊建立通信連接。在該選項(xiàng)中, 經(jīng)由socket (套接字)連接發(fā)送消息調(diào)用并且經(jīng)由該通信連接接收驗(yàn)證結(jié)果。該通信連接 可W是本地或遠(yuǎn)程socket連接或者是可W用于本地和遠(yuǎn)程連接兩者的websocket連接。受 信任模塊可W在服務(wù)器節(jié)點(diǎn)上執(zhí)行或在客戶端設(shè)備中本地執(zhí)行。
[0009] 在一個(gè)選項(xiàng)中,將具有與web應(yīng)用有關(guān)的另外當(dāng)前執(zhí)行信息的第二消息調(diào)用從 PES函數(shù)發(fā)送到第二受信任模塊。例如,第二受信任模塊可W提供未由受信任模塊提供的至 少一個(gè)函數(shù)。PES函數(shù)此后可W接收來(lái)自與第二消息調(diào)用有關(guān)的第二受信任模塊的第二驗(yàn) 證結(jié)果。
[0010] 在另一選項(xiàng)中,PES函數(shù)可響應(yīng)于該驗(yàn)證結(jié)果,將具有與web應(yīng)用有關(guān)的當(dāng)前執(zhí)行 信息的消息調(diào)用轉(zhuǎn)發(fā)到第二受信任模塊。例如,第二受信任模塊可提供由該受信任模塊提 供的至少一個(gè)函數(shù),并且該驗(yàn)證結(jié)果可指示所需要的處理未被第一受信任模塊執(zhí)行或者指 示接收到來(lái)自受信任模塊的超時(shí)作為驗(yàn)證結(jié)果。PES函數(shù)此后可W接收來(lái)自與轉(zhuǎn)發(fā)的消息 調(diào)用有關(guān)的第二受信任模塊的第二驗(yàn)證結(jié)果。
[0011] 可選地,驗(yàn)證結(jié)果可指示web應(yīng)用的篡改,在該情況下,該方法可進(jìn)一步包括從 PES函數(shù)引用緩和動(dòng)作。緩和動(dòng)作可W變化并可W涉及;例如,返回不正確的下一函數(shù)信 息,返回?zé)o效的函數(shù)定義,或者返回標(biāo)準(zhǔn)錯(cuò)誤函數(shù)或結(jié)果,使應(yīng)用行為立即失敗、逐步失敗 或不正確地執(zhí)行。
[0012] 驗(yàn)證結(jié)果可W可替代地包括待針對(duì)web應(yīng)用引用的下一函數(shù)信息。在該后者情況 下,該方法可接著引用下一函數(shù)。該方法還可接著返回函數(shù)給web應(yīng)用,W用于注入到web 應(yīng)用中或用于隨后的引用。
[0013] 本發(fā)明的第二方面涉及一種在網(wǎng)絡(luò)節(jié)點(diǎn)中執(zhí)行的用于將web應(yīng)用轉(zhuǎn)換為安全的 web應(yīng)用的方法。該安全的web應(yīng)用可通過(guò)應(yīng)用靜態(tài)和/或動(dòng)態(tài)處理技術(shù)來(lái)獲得。處理技 術(shù)的何種組合的確定取決于實(shí)施選擇是web應(yīng)用。在該第二方面中,處理器被例示為W靜 態(tài)方式使web應(yīng)用變得安全。例如,在部署web應(yīng)用之前將該處理應(yīng)用到web應(yīng)用。
[0014] 該方法包括在網(wǎng)絡(luò)節(jié)點(diǎn)處從存儲(chǔ)器單元讀取web應(yīng)用的代碼。該代碼包括多于一 個(gè)函數(shù)。此后,該方法繼續(xù)根據(jù)web應(yīng)用的函數(shù)調(diào)用圖確定至少?gòu)脑摱嘤谝粋€(gè)函數(shù)中的第 一函數(shù)到第二函數(shù)的調(diào)用依賴性需要被保護(hù)。因此通過(guò)將包括用于與受信任模塊建立通信 連接的代碼的至少一個(gè)部分執(zhí)行存根(PES)函數(shù)添加到該web應(yīng)用的代碼,來(lái)將該web應(yīng) 用修改為安全的web應(yīng)用代碼。陽(yáng)S函數(shù)需要與受信任模塊的交互。通過(guò)修改web應(yīng)用的 代碼來(lái)將該web應(yīng)用進(jìn)一步修改為安全的web應(yīng)用代碼,修改web應(yīng)用的代碼是通過(guò)W從 第一函數(shù)引用PES函數(shù)替代從第一函數(shù)引用第二函數(shù)并且從函數(shù)調(diào)用依賴圖生成一組規(guī) 則W定義從PES函數(shù)到第二函數(shù)的調(diào)用依賴性來(lái)進(jìn)行的。此后,該方法接著在網(wǎng)絡(luò)節(jié)點(diǎn)處 將安全的web應(yīng)用存儲(chǔ)到存儲(chǔ)器單元中并且將該組規(guī)則存儲(chǔ)到存儲(chǔ)器單元中。一旦獲得安 全的web應(yīng)用,則可W將其遞送到一個(gè)或多個(gè)客戶端設(shè)備。
[0015] 可選地,可能存在多個(gè)陽(yáng)S函數(shù),并且那些陽(yáng)S函數(shù)中的每一個(gè)可能與調(diào)用依賴性 有關(guān)。
[0016] 可選地,通過(guò)生成用符號(hào)表示的部分執(zhí)行流圖(PEFM, Partial Execution Flow Map)來(lái)執(zhí)行生成該組規(guī)則,并且通過(guò)將用符號(hào)表示的PEFM存儲(chǔ)到存儲(chǔ)器單元中來(lái)執(zhí)行將 該組規(guī)則存儲(chǔ)到存儲(chǔ)器單元中。生成該組規(guī)則可進(jìn)一步包括考慮與安全動(dòng)作和緩和動(dòng)作有 關(guān)的安全要求。
[0017] 作為另一選項(xiàng),第一函數(shù)和第二函數(shù)可存在于web應(yīng)用的代碼中作為單個(gè)函數(shù)。 該方法可因此進(jìn)一步包括基于在該單個(gè)函數(shù)中被處理的資產(chǎn)將該單個(gè)函數(shù)分離為第一和 第二函數(shù)。
[0018] 該組規(guī)則(或用符號(hào)表示的PEFM)可包括記錄,該記錄包括:當(dāng)前調(diào)用者元素,其 標(biāo)識(shí)第一函數(shù)作為在引用第二函數(shù)之前要求詢問(wèn)的當(dāng)前調(diào)用函數(shù);當(dāng)前PES元素,其標(biāo)識(shí) PES函數(shù)作為引用受信任模塊W觸發(fā)該詢問(wèn);下一函數(shù)元素,其標(biāo)識(shí)第二函數(shù)并且提供第 二函數(shù)的引用所必需的信息;受信任函數(shù)的元素,其標(biāo)識(shí)與受信任模塊鏈接且可通過(guò)受信 任模塊內(nèi)的引用機(jī)制執(zhí)行的一組函數(shù);W及安全動(dòng)作元素,其標(biāo)識(shí)受信任模塊在返回詢問(wèn) 的結(jié)果之前能夠執(zhí)行的一組安全特征。
[0019] 該方法還可W可選地包括在存儲(chǔ)之前簽署該安全的web應(yīng)用W及在存儲(chǔ)之前對(duì) 該組規(guī)則進(jìn)行加密。
[0020] 本發(fā)明的第H方面涉及一種用于使在客戶端設(shè)備上執(zhí)行的web應(yīng)用的執(zhí)行變得 安全的受信任模塊。該受信任模塊包括連接模塊、函數(shù)調(diào)用模塊和驗(yàn)證模塊。
[0021] 連接模塊用于從web應(yīng)用的部分執(zhí)行存根(PES)函數(shù)接收通信連接請(qǐng)求。該函數(shù) 調(diào)用模塊用于經(jīng)由通信連接從陽(yáng)S函數(shù)接收消息調(diào)用。消息調(diào)用包括與web應(yīng)用有關(guān)的當(dāng) 前執(zhí)行信息。驗(yàn)證模塊用于基于當(dāng)前執(zhí)行信息來(lái)確定待針對(duì)該web應(yīng)用執(zhí)行的下一函數(shù)并 且將確定的結(jié)果經(jīng)由通信連接發(fā)送到PES函數(shù)。
[0022] 受信任模塊可在遠(yuǎn)離執(zhí)行web應(yīng)用的客戶端設(shè)備的服務(wù)器節(jié)點(diǎn)上或者在客戶端 設(shè)備上執(zhí)行。受信任模塊可進(jìn)一步包括安全模塊,該安全模塊包括安全的函數(shù)和預(yù)定義的 緩和動(dòng)作。
[0023] 可選地,確定的結(jié)果可指示web應(yīng)用的篡改??商娲兀_定的結(jié)果可包括待針對(duì) 該web應(yīng)用引用的下一函數(shù)信息。
[0024] 連接模塊可W可選地進(jìn)一步與第二受信任模塊建立連接W便獲得驗(yàn)證結(jié)果。第二 受信任模塊可提供由受信任模塊提供的至少一個(gè)函數(shù)和/或未由受信任模塊提供的至少 一個(gè)函數(shù)。
[00巧]本發(fā)明的第四方面涉及一種包括網(wǎng)絡(luò)接口模塊和執(zhí)行web應(yīng)用的處理器的客戶 端設(shè)備。該網(wǎng)絡(luò)接口模塊打開(kāi)部分執(zhí)行存根(PES)函數(shù)和受信任模塊之間的通信連接。處 理器通過(guò)引用web應(yīng)用的函數(shù)、在執(zhí)行web應(yīng)用的函數(shù)期間引用陽(yáng)S函數(shù)、將具有與該web 應(yīng)用有關(guān)的當(dāng)前執(zhí)行信息的消息調(diào)用經(jīng)由通信連接從陽(yáng)S函數(shù)發(fā)送到受信任模塊并且從 與消息調(diào)用有關(guān)的受信任模塊接收驗(yàn)證結(jié)果來(lái)執(zhí)行web應(yīng)用。
[0026] 可選地,受信任模塊可在遠(yuǎn)程服務(wù)器節(jié)點(diǎn)上執(zhí)行。
[0027] 驗(yàn)證結(jié)果可指示web應(yīng)用的篡改,在該情況下,處理器可進(jìn)一步執(zhí)行緩和動(dòng)作。可 替代地,驗(yàn)證結(jié)果還可包括待針對(duì)web應(yīng)用引用的下一函數(shù)信息,在該情況下,處理器進(jìn)一 步引用下一函數(shù)。
[0028] 本發(fā)明的第五方面涉及一種用于將web應(yīng)用轉(zhuǎn)換為安全的web應(yīng)用的網(wǎng)絡(luò)節(jié)點(diǎn)。 該網(wǎng)絡(luò)節(jié)點(diǎn)包括存儲(chǔ)器單元和用于使web應(yīng)用變得安全的處理器。
[0029] 存儲(chǔ)器單元用于存儲(chǔ)web應(yīng)用的代碼,該代碼包括多于一個(gè)函數(shù)。
[0030] 處理器用于通過(guò)從至少包括從該多于一個(gè)函數(shù)中的第一函數(shù)到第二函數(shù)的調(diào)用 依賴性的web應(yīng)用的函數(shù)調(diào)用圖確定從第一函數(shù)到第二函數(shù)的調(diào)用依賴性需要被保護(hù)并 且將web應(yīng)用修改為安全的web應(yīng)用代碼,來(lái)使該web應(yīng)用變得安全。通過(guò)將包括用于與 受信任模塊建立通信連接的代碼的部分執(zhí)行存根(陽(yáng)S)函數(shù)添加到web應(yīng)用的代碼,來(lái)執(zhí) 行將web應(yīng)用修改為安全的web應(yīng)用代碼。陽(yáng)S函數(shù)要求與受信任模塊的交互。通過(guò)修改 web應(yīng)用的代碼來(lái)進(jìn)一步執(zhí)行將該web應(yīng)用修改為安全的web應(yīng)用代碼,修改web應(yīng)用的代 碼是通過(guò)W從第一函數(shù)引用PES函數(shù)替代從第一函數(shù)引用第二函數(shù)并且從函數(shù)調(diào)用依賴 圖生成一組規(guī)則W定義從PES函數(shù)到第二函數(shù)的調(diào)用依賴性來(lái)進(jìn)行的。處理器進(jìn)一步通過(guò) 將安全的web應(yīng)用和該組規(guī)則存儲(chǔ)到存儲(chǔ)器單元中來(lái)進(jìn)一步使web應(yīng)用變得安全。在第五 方面中,處理器被例示為W動(dòng)態(tài)方式使web應(yīng)用變得安全。例如,在發(fā)送web應(yīng)用到客戶端 設(shè)備之前但在將web應(yīng)用安裝在網(wǎng)絡(luò)節(jié)點(diǎn)上之后,應(yīng)用該處理。
[0031] 可選地,生成該組規(guī)則可進(jìn)一步包括考慮與安全動(dòng)作和緩和動(dòng)作有關(guān)的安全要 求。
[0032] 可選地,通過(guò)生成用符號(hào)表示的部分執(zhí)行流圖(陽(yáng)FM)來(lái)執(zhí)行生成該組規(guī)則,并且 通過(guò)將用符號(hào)表示的PEFM存儲(chǔ)到存儲(chǔ)器單元中來(lái)執(zhí)行將該組規(guī)則存儲(chǔ)到存儲(chǔ)器單元中。
[0033] 作為另一選項(xiàng),第一函數(shù)和第二函數(shù)存在于web應(yīng)用的代碼中作為單個(gè)函數(shù)。該 處理器進(jìn)一步基于在該單個(gè)函數(shù)中被處理的資產(chǎn)將該單個(gè)函數(shù)分離為第一和第二函數(shù)。
[0034] 處理器可進(jìn)一步在存儲(chǔ)之前簽署安全的web應(yīng)用并且在存儲(chǔ)之前加密該組規(guī)則。
【專利附圖】
【附圖說(shuō)明】
[00對(duì)在附圖中: 圖1示出根據(jù)本發(fā)明的在web應(yīng)用的安全執(zhí)行中涉及的不同部件的示例性模塊化表 示; 圖2示出根據(jù)本發(fā)明的示例性函數(shù)分離; 圖3示出根據(jù)本發(fā)明的示例性原始函數(shù)依賴性; 圖4示出根據(jù)本發(fā)明的具有不完整的部分執(zhí)行的示例性受保護(hù)應(yīng)用代碼; 圖5 (a)示出根據(jù)本發(fā)明的經(jīng)由Flpes2的Flp到巧P的引用的示例性模塊化表示和功 能圖; 圖5(b)示出根據(jù)本發(fā)明的經(jīng)由巧pes3的Flp到F化到F3的引用的示例性模塊化表 不和功能圖; 圖5 (C)示出根據(jù)本發(fā)明的從F3到Flp的引用返回的示例性模塊化表示和功能圖; 圖5(d)示出根據(jù)本發(fā)明的經(jīng)由Flpes3的Flp到F3的引用的示例性模塊化表示和功 能圖; 圖6示出根據(jù)本發(fā)明的KJava應(yīng)用解決方案架構(gòu)的示例性模塊化表示和功能圖; 圖7示出根據(jù)本發(fā)明的HTML5 web應(yīng)用保護(hù)架構(gòu)的示例性模塊化表示和功能圖; 圖8是根據(jù)本發(fā)明的教導(dǎo)的web應(yīng)用的安全執(zhí)行的示例性流程圖; 圖9是根據(jù)本發(fā)明的教導(dǎo)的將web應(yīng)用轉(zhuǎn)換為安全的web應(yīng)用的示例性流程圖; 圖10是根據(jù)本發(fā)明的教導(dǎo)的示例性受信任模塊1000的模塊化表示; 圖11是根據(jù)本發(fā)明的教導(dǎo)的示例性網(wǎng)絡(luò)節(jié)點(diǎn)的模塊化表示;W及 圖12是根據(jù)本發(fā)明的教導(dǎo)的示例性客戶端設(shè)備的模塊化表示。
【具體實(shí)施方式】
[0036] 計(jì)算機(jī)程序通常W某種抽象語(yǔ)言來(lái)表達(dá)??墒褂靡幌盗芯幾g和鏈接步驟將該語(yǔ)言 翻譯成可由計(jì)算機(jī)(或其他處理設(shè)備)執(zhí)行(或解釋)的二進(jìn)制代碼。還可將程序編譯成可 在虛擬機(jī)解釋器上執(zhí)行的虛擬機(jī)指令集。一些編程語(yǔ)言不需要編譯和鏈接步驟,而是通過(guò) 語(yǔ)言專用解釋器來(lái)解釋。
[0037] 保護(hù)經(jīng)解釋的代碼是困難的問(wèn)題,因?yàn)閼?yīng)用的源代碼在客戶端處可用,并且應(yīng)用 不具有對(duì)機(jī)器硬件的直接訪問(wèn)權(quán)。
[0038] 已知的攻擊技術(shù)是分析應(yīng)用的控制或邏輯流。為了防止攻擊者分析應(yīng)用的邏輯 流,可W從程序移除控制流并且將其替換為對(duì)地址服務(wù)器的運(yùn)行時(shí)訪問(wèn),該地址服務(wù)器向 應(yīng)用提供繼續(xù)執(zhí)行所需的信息。該樣的可能性當(dāng)前僅針對(duì)原生執(zhí)行環(huán)境可用,且針對(duì)非原 生語(yǔ)言和環(huán)境不可用。
[0039] 可W在具有不能被容易地和/或高效地傳輸?shù)娇蛻舳说奶厥赓Y源的遠(yuǎn)程計(jì)算機(jī) 處執(zhí)行一些函數(shù)。遠(yuǎn)程函數(shù)的細(xì)節(jié)不能被攻擊者容易觀察到。該技術(shù)的一些示例是遠(yuǎn)程過(guò) 程調(diào)用(RPC)、公共對(duì)象請(qǐng)求代理架構(gòu)(CORBA)和簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)。
[0040] 信任模塊在各個(gè)應(yīng)用中使用,并采取智能卡、電子狗和密碼學(xué)模塊的形式。該些被 普遍用于執(zhí)行一些攻擊敏感函數(shù)。將該些函數(shù)移動(dòng)到更加抗攻擊的環(huán)境提高了在更加開(kāi)放 的執(zhí)行環(huán)境中執(zhí)行的應(yīng)用的安全性。數(shù)字版權(quán)管理(DRM)客戶端使用軟件來(lái)實(shí)施類似的信 任模塊函數(shù)。可W使軟件應(yīng)用實(shí)施針對(duì)壓縮視頻流的標(biāo)準(zhǔn)解碼器,其中標(biāo)準(zhǔn)解碼器中的一 些數(shù)據(jù)結(jié)構(gòu)需要由在更加抗篡改的環(huán)境中執(zhí)行的軟件來(lái)適配。
[0041] 在使非原生應(yīng)用的執(zhí)行變得安全的方面存在安全問(wèn)題。例如,諸如網(wǎng)頁(yè)瀏覽器、 JVM和其他腳本環(huán)境之類的非原生執(zhí)行環(huán)境比原生執(zhí)行環(huán)境不安全得多。示例性原因包 括: 1、在經(jīng)解釋的語(yǔ)言中,攻擊者可W訪問(wèn)對(duì)應(yīng)用的高級(jí)語(yǔ)言描述,并修改底層代碼W及 包括控制流和決策信息的執(zhí)行邏輯。
[0042] 2、非原生應(yīng)用被屏蔽免于底層硬件或操作系統(tǒng)的細(xì)節(jié)。非原生應(yīng)用不直接訪問(wèn)由 計(jì)算平臺(tái)提供的安全資源且不使用由原生計(jì)算平臺(tái)實(shí)現(xiàn)且在原生計(jì)算平臺(tái)上構(gòu)建的強(qiáng)保 護(hù)。
[0043] 3、應(yīng)用引擎、虛擬機(jī)(運(yùn)行時(shí)環(huán)境)或腳本引擎通常不被設(shè)計(jì)和實(shí)施有對(duì)白盒安全 性和自保護(hù)來(lái)說(shuō)必要的要求。盡管它們可能引入某種安全性,但是它們通常僅解決了某些 中間人易損性。對(duì)于希望非法侵入應(yīng)用的攻擊者來(lái)說(shuō),基本的安全性弱點(diǎn)通常是很好的起 點(diǎn)。
[0044] 4、被設(shè)計(jì)為保護(hù)原生代碼的許多良好開(kāi)發(fā)或商業(yè)化的軟件安全和保護(hù)技術(shù)不能 直接被適配于非原生執(zhí)行環(huán)境。
[0045] 涉及使非原生應(yīng)用的執(zhí)行變得安全的安全問(wèn)題的另一示例是非原生應(yīng)用的執(zhí)行 通常涉及不同段的軟件。不同段的軟件通常W不同的形式提供,并在不同執(zhí)行階段處執(zhí)行 交互。例如,相比于原生可執(zhí)行文件,通常更容易對(duì)非原生執(zhí)行邏輯做出剪斷和欺騙攻擊。 維持非原生應(yīng)用的執(zhí)行的完整性很可能是更困難的。
[0046] 涉及使非原生應(yīng)用的執(zhí)行變得安全的安全問(wèn)題的又一示例是很多安全特征和保 護(hù)機(jī)制需要從非原生應(yīng)用的受保護(hù)的執(zhí)行觸發(fā)或涉及。如果安全特征未被緊密地與非原生 應(yīng)用的原始函數(shù)執(zhí)行邏輯集成和交織,則它們可能被容易地略過(guò)或從受保護(hù)的執(zhí)行移除, 導(dǎo)致來(lái)自該樣的保護(hù)的總體安全性被損害。因此,使執(zhí)行變得安全W防受保護(hù)的執(zhí)行中的 任何攻擊應(yīng)當(dāng)導(dǎo)致受保護(hù)的非原生應(yīng)用在執(zhí)行上失敗,由此防止攻擊者實(shí)現(xiàn)目標(biāo)并訪問(wèn)受 保護(hù)的資產(chǎn)。
[0047] 可W使用受信任模塊來(lái)擴(kuò)展其安全服務(wù)到非原生應(yīng)用。受信任模塊應(yīng)當(dāng)是受良好 保護(hù)的部件,并提供一組保護(hù)。受信任模塊可W提供受信任的區(qū)域作為通過(guò)非原生應(yīng)用代 碼和受信任模塊之間的執(zhí)行使能機(jī)制擴(kuò)展到非原生應(yīng)用的可信任根。
[0048] 本發(fā)明旨在通過(guò)將控制流決策和敏感函數(shù)從實(shí)際應(yīng)用移動(dòng)到生成需要被受信任 模塊處理的經(jīng)適配的應(yīng)用和受保護(hù)的數(shù)據(jù)的受信任模塊來(lái)使應(yīng)用變得安全。通常,該目的 是通過(guò)下述操作來(lái)實(shí)現(xiàn)的;通過(guò)使用部分執(zhí)行依賴性將應(yīng)用代碼(非原生側(cè))和受信任模塊 (可W是原生側(cè),或非原生的,或W其他形式,包括W硬件實(shí)施)交錯(cuò),該部分執(zhí)行依賴性由 工具靜態(tài)或動(dòng)態(tài)地處理和生成。在該處理之后,新的經(jīng)適配的應(yīng)用代碼僅包含不完整執(zhí)行 邏輯。剩余的執(zhí)行邏輯和某些敏感函數(shù)被表示在可僅由受信任模塊管理和訪問(wèn)的部分執(zhí)行 依賴性中,且不直接來(lái)自受保護(hù)的非原生應(yīng)用代碼。
[0049] 例如,在執(zhí)行期間,經(jīng)適配(例如安全)的應(yīng)用連接到受信任模塊并傳輸其當(dāng)前執(zhí) 行點(diǎn)和一些上下文信息。受信任模塊基于當(dāng)前執(zhí)行點(diǎn)和受保護(hù)的數(shù)據(jù)(其可W包括用于受 信任模塊的代碼)來(lái)處理上下文數(shù)據(jù)。利用該機(jī)制,可通過(guò)使用部分執(zhí)行依賴性通過(guò)與受信 任模塊進(jìn)行交互來(lái)動(dòng)態(tài)地構(gòu)造受保護(hù)的應(yīng)用的實(shí)際執(zhí)行。由此,經(jīng)適配的應(yīng)用獲得經(jīng)修改 的上下文信息W及經(jīng)適配的應(yīng)用繼續(xù)其執(zhí)行所在的新控制點(diǎn)。
[0050] 不存在由受保護(hù)的應(yīng)用代碼完全呈現(xiàn)的執(zhí)行邏輯的靜態(tài)視圖。在執(zhí)行的任何狀態(tài) 處,僅當(dāng)前部分執(zhí)行變得在非原生執(zhí)行環(huán)境內(nèi)可見(jiàn)。
[0051] 通過(guò)受信任模塊內(nèi)的執(zhí)行來(lái)保護(hù)原始執(zhí)行流??蒞使用受保護(hù)的應(yīng)用和受信任模 塊之間的執(zhí)行使能機(jī)制(例如,應(yīng)用編程接口(API)(例如,化Va和原生代碼之間的JNI)或 用于連接受保護(hù)的應(yīng)用和受信任模塊的諸如socket或遠(yuǎn)程連接之類的通信信道來(lái)連接受 信任模塊。在HTML5環(huán)境的示例中,Websocket可提供連接來(lái)服務(wù)于應(yīng)用和受信任模塊之間 的本地和遠(yuǎn)程通信兩者??蒞使用WebSocket API將HTML5 web應(yīng)用與本地和/或遠(yuǎn)程受 信任模塊相連接或?qū)⒈镜厥苄湃文K與遠(yuǎn)程受信任模塊相連接。該樣的通信能力可授權(quán)、 簡(jiǎn)化和標(biāo)準(zhǔn)化本發(fā)明的某種實(shí)施方式。將受到攻擊(例如非法侵入)(諸如,嘗試略過(guò)經(jīng)由 受信任模塊的執(zhí)行)的安全應(yīng)用可能因此引起原始應(yīng)用的錯(cuò)誤行為或不完整執(zhí)行。因此,與 當(dāng)前機(jī)制相比,該技術(shù)能夠改進(jìn)分布式應(yīng)用執(zhí)行的可信賴度。
[0052] 用于橋接受保護(hù)的應(yīng)用和受信任模塊之間的執(zhí)行的連接方法可要求部分執(zhí)行依 賴性的設(shè)計(jì)和實(shí)施。如果存在非原生和原生之間的執(zhí)行擴(kuò)展接口,諸如JNI,則部分執(zhí)行依 賴性可W被W代碼形式直接表示或經(jīng)由更高級(jí)的保護(hù)而表示。如果不存在該樣的執(zhí)行接 口,諸如kjava環(huán)境或網(wǎng)頁(yè)瀏覽器環(huán)境中的HTML5 Websocket,則部分執(zhí)行依賴性需要被表 示為可通過(guò)通信信道傳遞的用符號(hào)表示的形式。在HTML5中,可通過(guò)在執(zhí)行期間提供函數(shù) 解密使得函數(shù)非加密且被動(dòng)態(tài)加載到網(wǎng)頁(yè)瀏覽器頁(yè)面中來(lái)進(jìn)一步增強(qiáng)保護(hù)。
[0053] 本發(fā)明利用可信任根和安全能力擴(kuò)展外部信任模塊的函數(shù)。受信任模塊計(jì)算執(zhí)行 /解釋的下一執(zhí)行點(diǎn)并且處理允許受信任應(yīng)用實(shí)施一些安全敏感操作的上下文信息并返回 經(jīng)修改的上下文信息。
[0054] 因?yàn)楣粽卟辉倌軌蛉菀椎赜^察到經(jīng)適配的應(yīng)用和受信任模塊兩者中的功能處 理,所W該應(yīng)用更加難W反向工程。
[0055] 從編程觀點(diǎn)看,函數(shù)(例程)是軟件的最基本和重要的功能構(gòu)造之一。通常,應(yīng)用代 碼的調(diào)用依賴性包含對(duì)作為功能部件的不同函數(shù)之間的結(jié)構(gòu)關(guān)系進(jìn)行布局的最重要執(zhí)行 邏輯之一。可執(zhí)行代碼本質(zhì)上自包含該樣的依賴性。因此,通過(guò)修改調(diào)用依賴性更改執(zhí)行 W篡改原始執(zhí)行是相對(duì)容易的。從安全要求看,某些函數(shù)是關(guān)鍵的,因?yàn)樗鼈兩婕靶枰匾?保護(hù)的有價(jià)值數(shù)字資產(chǎn),諸如密碼密鑰、IP算法、銀行賬號(hào)、登錄密碼、專有商業(yè)邏輯等。從 攻擊目的看,該些函數(shù)變成攻擊的主要目標(biāo)。使執(zhí)行變得安全是為了保護(hù)那些函數(shù)和那些 函數(shù)之間的調(diào)用依賴性W保證該應(yīng)用的原始執(zhí)行的完整性。
[0056] 現(xiàn)在參考附圖,其中圖1示出經(jīng)由動(dòng)態(tài)部分執(zhí)行來(lái)使執(zhí)行變得安全的示例性概 述。圖1示出非原生執(zhí)行環(huán)境100、受信任模塊110、非原生執(zhí)行環(huán)境100和受信任模塊110 之間的通信(例如socket)連接120、和安全的存儲(chǔ)器130。在分析了非應(yīng)用代碼的調(diào)用圖 時(shí),可W將特定函數(shù)(例如可由用戶識(shí)別和指定)的一些調(diào)用依賴性替代為用符號(hào)表示的部 分執(zhí)行流圖(PEFM)。然后利用可經(jīng)由受信任模塊110橋接受保護(hù)的函數(shù)代碼104之間的引 用關(guān)系的部分執(zhí)行存根(PES)102a……102c來(lái)替代原始調(diào)用。在受保護(hù)的應(yīng)用104的運(yùn)行 時(shí)期間,當(dāng)執(zhí)行意圖引用也受保護(hù)的下一函數(shù)巧的受保護(hù)函數(shù)Fl時(shí),F(xiàn)l實(shí)際引用特定的 PES 102a,使得其保存當(dāng)前執(zhí)行并將具有當(dāng)前執(zhí)行信息的消息調(diào)用經(jīng)由通信連接110發(fā)送 到受信任模塊120 W詢問(wèn)待執(zhí)行的下一方法。受信任模塊120將使用當(dāng)前執(zhí)行信息來(lái)從安 全的PEFM 132搜索待執(zhí)行的下一函數(shù)。如果搜索成功,則受信任模塊120可在返回待引用 的下一函數(shù)信息作為經(jīng)由通信連接110回到PES 102a的結(jié)果之前執(zhí)行一些安全特征,例如 完整性驗(yàn)證和反調(diào)試。如果搜索失敗,則其指示當(dāng)前調(diào)用依賴性被篡改并且攻擊被檢測(cè)到。 因此,可由受信任模塊采取指定的緩和動(dòng)作。在PES 102a接收到下一函數(shù)信息之后,陽(yáng)S 102a傳遞必要的參數(shù)并相應(yīng)地引用特定的函數(shù),W便繼續(xù)該受保護(hù)的應(yīng)用104的執(zhí)行。
[0057] 下面的列表包括可由本發(fā)明的不同實(shí)施例提供的示例性優(yōu)點(diǎn): ?受保護(hù)的應(yīng)用代碼靜態(tài)地包含僅部分執(zhí)行信息。在不知道受信任模塊120內(nèi)被動(dòng)態(tài) 移除的部分執(zhí)行流信息的情況下,整個(gè)應(yīng)用不能完整且正確地執(zhí)行。
[0058] ?該安全執(zhí)行交錯(cuò)在執(zhí)行期間利用受信任模塊129 (或其他第H方安全模塊)來(lái) 擴(kuò)展應(yīng)用執(zhí)行。其提供了供各種附加保護(hù)特征被受信任模塊120部署的機(jī)會(huì)。
[0059] 圖2示出了根據(jù)本發(fā)明的示例性函數(shù)分離??赏ㄟ^(guò)例如用于安全目的的必要函數(shù) 分離來(lái)增強(qiáng)原始執(zhí)行??赏ㄟ^(guò)引入新的引用關(guān)系來(lái)將函數(shù)分離成兩個(gè)或多于兩個(gè)較小函 數(shù)。例如存在兩個(gè)函數(shù)Fl和巧。我們可將Fl分離成H個(gè)較小函數(shù)F1UF12和F13。該是 可在源代碼水平、中間代碼水平或二進(jìn)制代碼水平中應(yīng)用的技術(shù)。在源代碼水平上,其可利 用某種安全代碼指南來(lái)手動(dòng)完成。
[0060] 對(duì)于安全要求,如果函數(shù)包含一些重要代碼段內(nèi)處理的多個(gè)資產(chǎn),則將函數(shù)分離 成較小函數(shù)W便利用使用動(dòng)態(tài)部分執(zhí)行交錯(cuò)的交錯(cuò)能力很可能是更安全的。很可能需要保 護(hù)的資產(chǎn)的示例包括密碼密鑰、IP算法、銀行賬號(hào)、登錄密碼和專有商業(yè)邏輯。
[006。 陽(yáng)FM 132的記錄被格式化有四個(gè)元素: 1、當(dāng)前調(diào)用者:指定需要針對(duì)待調(diào)用的下一函數(shù)的詢問(wèn)的當(dāng)前調(diào)用函數(shù)的名稱。
[006引 2、當(dāng)前PES存根;指定用于引用受信任模塊W觸發(fā)詢問(wèn)的當(dāng)前陽(yáng)S存根的名稱。
[0063] 3、下一函數(shù);指定將被當(dāng)前調(diào)用者引用的下一函數(shù)的必要信息。對(duì)于不同非執(zhí) 行環(huán)境,該信息可W是不同的。例如在JVM中,下一函數(shù)的信息可包含類名和方法名,而在 HTML5中,其可包含網(wǎng)頁(yè)的頁(yè)面或文檔對(duì)象模型和JavaScript函數(shù)名。
[0064] 4、受信任函數(shù);指定已與受信任模塊鏈接且可通過(guò)引用受信任模塊內(nèi)的機(jī)制而執(zhí) 行的一組函數(shù)。通常,該些函數(shù)是由受信任模塊提供的一些特殊函數(shù),或者已經(jīng)W可被加載 到受信任模塊中的方式實(shí)施的一些原始函數(shù)。可利用受信任模塊在安裝時(shí)間處部署受信任 函數(shù),和/或受信任函數(shù)可在運(yùn)行時(shí)與受信任模塊動(dòng)態(tài)鏈接。受信任函數(shù)的類型的本質(zhì)和 如何部署它們可取決于受信任模塊實(shí)施方式。示例性受信任函數(shù)包括密碼學(xué)操作和完整性 驗(yàn)證函數(shù)。此外,在處理web應(yīng)用時(shí),分析網(wǎng)頁(yè)內(nèi)容并提取用于受信任函數(shù)引用的敏感函數(shù) 可W是可能的。該些受信任函數(shù)可W W加密形式被遞送到受信任模塊,且由受信任模塊加 載、解密和執(zhí)行。
[0065] 5、安全動(dòng)作;指定受信任模塊在返回搜索結(jié)果之前可作出的一組安全特征。其是 可選的且取決于在構(gòu)建時(shí)期間用戶的請(qǐng)求。而且,其可由安全策略來(lái)驅(qū)動(dòng)。
[0066] 現(xiàn)在同時(shí)參考圖3和4,圖3和4分別示出示例性原始函數(shù)依賴性和具有不完整部 分的示例性受保護(hù)應(yīng)用代碼。圖3和4的示例在更詳細(xì)圖示部分執(zhí)行流方面是有用的。
[0067] 處理工具可采取W下步驟來(lái)生成僅具有部分執(zhí)行和用符號(hào)表示的PEFM的受保護(hù) 的應(yīng)用代碼: 步驟1 ;如果必要的話,基于一些安全要求來(lái)進(jìn)行函數(shù)分離。該步驟在本示例中不是必 需的。
[0068] 步驟2 ;分析調(diào)用圖并通過(guò)作為輸入選項(xiàng)和對(duì)工具的配置的來(lái)自用戶的請(qǐng)求來(lái)識(shí) 別重要函數(shù)及其針對(duì)保護(hù)的調(diào)用依賴性。在本示例中,我們將想要保護(hù)Fl和巧W及Fl調(diào) 用F2、Fl調(diào)用F3和巧調(diào)用F3的調(diào)用依賴性。
[0069] 3、步驟3 ;對(duì)于要保護(hù)的每個(gè)函數(shù)并且對(duì)于需要保護(hù)的每個(gè)調(diào)用依賴性 a、創(chuàng)建PES函數(shù)。PES函數(shù)可W接受來(lái)自調(diào)用者函數(shù)的實(shí)際參數(shù)并將它們傳遞到將被 動(dòng)態(tài)確定的被調(diào)用者函數(shù)。而且,PES函數(shù)需要利用與受信任模塊的通信(例如socket)連 接來(lái)促進(jìn)通信。例如,對(duì)于Fl調(diào)用F2,我們創(chuàng)建Flpes2存根函數(shù)。
[0070] b、通過(guò)引用PES存根函數(shù)來(lái)替代原始引用。例如,通過(guò)引用Flpes2存根函數(shù)來(lái)替 代Fl調(diào)用巧。
[0071] C、利用填充必要信息來(lái)創(chuàng)建陽(yáng)FM的記錄。例如,在Fl調(diào)用巧時(shí),PEFM的記錄可 被如下設(shè)定: i、 當(dāng)前調(diào)用者;Flp ii、 當(dāng)前陽(yáng)S存根;Flpes2 iii、 受信任函數(shù);對(duì)于該示例忽略 iv、 下一函數(shù);F化 V、安全動(dòng)作;在我們選擇該選項(xiàng)的情況下,完整性驗(yàn)證。
[0072] 步驟4;處理受信任函數(shù)。
[0073] 步驟5 ;生成僅包含不完整執(zhí)行依賴性的受保護(hù)的應(yīng)用代碼。
[0074] 步驟6 ;生成用符號(hào)表示的PEFM并且然后通過(guò)使用白盒密碼學(xué)方法來(lái)對(duì)其進(jìn)行加 密。
[00巧]步驟7 ;執(zhí)行對(duì)非原生應(yīng)用的受保護(hù)代碼的簽署并且生成完整性驗(yàn)證(IV)憑證。
[0076] 步驟8 ;使用白盒密碼學(xué)方法來(lái)對(duì)PEDM和IV憑證進(jìn)行加密并且將它們打包成容 易部署的封裝。
[0077] 在該示例性處理之后,生成具有受保護(hù)的部分執(zhí)行依賴性的受保護(hù)的應(yīng)用代碼 巧口圖4中所示)和陽(yáng)FM的記錄伽下表1中所示)。
【權(quán)利要求】
1. 一種用于使web應(yīng)用的執(zhí)行變得安全的方法,包括: -在客戶端設(shè)備的處理器上,引用所述web應(yīng)用的函數(shù); -在所述客戶端設(shè)備的所述處理器上,在所述web應(yīng)用的所述函數(shù)的執(zhí)行期間引用部 分執(zhí)行存根(PES)函數(shù); -從所述PES函數(shù),發(fā)送具有與所述web應(yīng)用有關(guān)的當(dāng)前執(zhí)行信息的消息調(diào)用,其中所 述消息調(diào)用被發(fā)送到受信任模塊;以及 -通過(guò)所述PES函數(shù)從與所述消息調(diào)用有關(guān)的受信任模塊接收驗(yàn)證結(jié)果。
2. 根據(jù)權(quán)利要求1所述的方法,還包括通過(guò)所述部分執(zhí)行存根來(lái)與所述受信任模塊建 立通信連接,其中經(jīng)由所述通信連接發(fā)送所述消息調(diào)用并且經(jīng)由所述通信連接接收所述驗(yàn) 證結(jié)果。
3. 根據(jù)權(quán)利要求2所述的方法,其中所述通信連接是本地socket連接、遠(yuǎn)程socket連 接或者websocket連接。
4. 根據(jù)權(quán)利要求2或權(quán)利要求3所述的方法,其中所述受信任模塊在服務(wù)器節(jié)點(diǎn)上執(zhí) 行或在所述客戶端設(shè)備上執(zhí)行。
5. 根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,還包括: -從所述PES函數(shù)發(fā)送具有與所述web應(yīng)用有關(guān)的另外當(dāng)前執(zhí)行信息的第二消息調(diào) 用,其中所述第二消息調(diào)用被發(fā)送到第二受信任模塊;以及 -通過(guò)所述PES函數(shù)接收來(lái)自與所述第二消息調(diào)用有關(guān)的第二受信任模塊的第二驗(yàn) 證結(jié)果,其中所述第二受信任模塊提供未由所述受信任模塊提供的至少一個(gè)函數(shù)。
6. 根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,還包括: -響應(yīng)于所述驗(yàn)證結(jié)果,從所述PES函數(shù),將具有與所述web應(yīng)用有關(guān)的當(dāng)前執(zhí)行信息 的消息調(diào)用轉(zhuǎn)發(fā)到第二受信任模塊;以及 -通過(guò)所述PES函數(shù)接收來(lái)自與所述消息調(diào)用有關(guān)的第二受信任模塊的第二驗(yàn)證結(jié) 果,其中所述第二受信任模塊提供由所述受信任模塊提供的至少一個(gè)函數(shù)。
7. 根據(jù)權(quán)利要求1-6中任一項(xiàng)所述的方法,其中所述驗(yàn)證結(jié)果指示所述web應(yīng)用的篡 改,所述方法進(jìn)一步包括通過(guò)引用緩和函數(shù)來(lái)采取緩和動(dòng)作,其中從所述PES函數(shù)或從所 述受信任模塊采取所述緩和動(dòng)作。
8. 根據(jù)權(quán)利要求1-6中任一項(xiàng)所述的方法,其中所述驗(yàn)證結(jié)果包括待針對(duì)所述web應(yīng) 用引用的下一函數(shù)信息,所述方法進(jìn)一步包括引用下一函數(shù)。
9. 一種在網(wǎng)絡(luò)節(jié)點(diǎn)中執(zhí)行的用于將web應(yīng)用轉(zhuǎn)換為安全的web應(yīng)用的方法,包括: -在所述網(wǎng)絡(luò)節(jié)點(diǎn)處從存儲(chǔ)器單元讀取所述web應(yīng)用的代碼,所述代碼包括多于一個(gè) 函數(shù); -根據(jù)所述web應(yīng)用的函數(shù)調(diào)用圖,確定至少?gòu)乃龆嘤谝粋€(gè)函數(shù)中的第一函數(shù)到第 二函數(shù)的調(diào)用依賴性需要被保護(hù); -通過(guò)以下操作來(lái)將所述web應(yīng)用修改為安全的web應(yīng)用代碼: -將包括用于與受信任模塊建立通信連接的代碼的至少一個(gè)部分執(zhí)行存根(PES)函數(shù) 添加到所述web應(yīng)用的代碼,其中所述PES函數(shù)需要與所述受信任模塊的交互; -通過(guò)利用從所述第一函數(shù)引用所述PES函數(shù)替代從所述第一函數(shù)引用所述第二函 數(shù),來(lái)修改所述web應(yīng)用的代碼;以及 -從函數(shù)調(diào)用依賴圖生成一組規(guī)則以定義從所述PES函數(shù)到所述第二函數(shù)的調(diào)用依 賴性;以及 -在所述網(wǎng)絡(luò)節(jié)點(diǎn)處,將所述安全的web應(yīng)用存儲(chǔ)到所述存儲(chǔ)器單元中;以及 -在所述網(wǎng)絡(luò)節(jié)點(diǎn)處,將所述組規(guī)則存儲(chǔ)到所述存儲(chǔ)器單元中。
10. 根據(jù)權(quán)利要求9所述的方法,其中在將所述web應(yīng)用部署在所述網(wǎng)絡(luò)節(jié)點(diǎn)處之前將 所述web應(yīng)用靜態(tài)地轉(zhuǎn)換為所述安全的web應(yīng)用。
11. 根據(jù)權(quán)利要求9或權(quán)利要求10所述的方法,其中,所述至少一個(gè)PES函數(shù)包括多個(gè) PES函數(shù),并且其中所述多個(gè)PES函數(shù)中的每一個(gè)與至少一個(gè)調(diào)用依賴性之一有關(guān)。
12. 根據(jù)權(quán)利要求9-11中任一項(xiàng)所述的方法,還包括將所述安全的web應(yīng)用遞送到一 個(gè)或多個(gè)客戶端設(shè)備。
13. 根據(jù)權(quán)利要求9-12中任一項(xiàng)所述的方法,其中通過(guò)生成用符號(hào)表示的部分執(zhí)行流 圖(PEFM)來(lái)執(zhí)行生成一組規(guī)則,并且其中通過(guò)將用符號(hào)表示的PEFM存儲(chǔ)到所述存儲(chǔ)器單 元中來(lái)執(zhí)行將所述組規(guī)則存儲(chǔ)到所述存儲(chǔ)器單元中。
14. 根據(jù)權(quán)利要求9-13中任一項(xiàng)所述的方法,其中生成所述組規(guī)則包括考慮與安全動(dòng) 作和緩和動(dòng)作有關(guān)的安全要求。
15. 根據(jù)權(quán)利要求9-14中任一項(xiàng)所述的方法,其中所述第一函數(shù)和所述第二函數(shù)存在 于所述web應(yīng)用的代碼中作為處理資產(chǎn)的單個(gè)函數(shù),所述方法進(jìn)一步包括:在從所述存儲(chǔ) 器單元讀取所述代碼之前,基于在所述單個(gè)函數(shù)中被處理的財(cái)產(chǎn)將所述單個(gè)函數(shù)分離為所 述第一函數(shù)和所述第二函數(shù)。
16. 根據(jù)權(quán)利要求9-15中任一項(xiàng)所述的方法,其中所述組規(guī)則是用符號(hào)表示的部分執(zhí) 行流圖(PEFM),并且其中所述PEFM包括記錄,所述記錄包括: -當(dāng)前調(diào)用者元素,其標(biāo)識(shí)所述第一函數(shù)作為在引用所述第二函數(shù)之前要求詢問(wèn)的當(dāng) 前調(diào)用函數(shù); -當(dāng)前PES元素,其標(biāo)識(shí)所述PES函數(shù)作為引用所述受信任模塊以觸發(fā)所述詢問(wèn); -下一函數(shù)元素,其標(biāo)識(shí)所述第二函數(shù)并且提供所述第二函數(shù)的引用所必需的信息; -受信任函數(shù)的元素,其標(biāo)識(shí)與所述受信任模塊鏈接且能夠通過(guò)所述受信任模塊內(nèi)的 引用機(jī)制執(zhí)行的一組函數(shù);以及 -安全動(dòng)作元素,其標(biāo)識(shí)所述受信任模塊在返回所述詢問(wèn)的結(jié)果之前能夠執(zhí)行的一組 安全特征。
17. 根據(jù)權(quán)利要求9-16中任一項(xiàng)所述的方法,還包括: -在存儲(chǔ)之前簽署所述安全的web應(yīng)用;以及 -在存儲(chǔ)之前對(duì)所述組規(guī)則進(jìn)行加密。
18. -種用于使在客戶端設(shè)備上執(zhí)行的web應(yīng)用的執(zhí)行變得安全的受信任模塊,所述 受信任模塊包括: -連接模塊,其用于從所述web應(yīng)用的部分執(zhí)行存根(PES)函數(shù)接收通信連接請(qǐng)求; -函數(shù)調(diào)用模塊,其用于經(jīng)由通信連接從所述PES函數(shù)接收消息調(diào)用,所述消息調(diào)用 包括與所述web應(yīng)用有關(guān)的當(dāng)前執(zhí)行信息; -驗(yàn)證模塊,其用于: -基于所述當(dāng)前執(zhí)行信息來(lái)確定待針對(duì)所述web應(yīng)用執(zhí)行的下一函數(shù);以及 -將所述確定的結(jié)果經(jīng)由所述通信連接發(fā)送到所述PES函數(shù)。
19. 根據(jù)權(quán)利要求18所述的受信任模塊,其中在將所述web應(yīng)用部署在所述客戶端設(shè) 備處之前將所述web應(yīng)用動(dòng)態(tài)轉(zhuǎn)換為安全的web應(yīng)用。
20. 根據(jù)權(quán)利要求18或權(quán)利要求19所述的受信任模塊,其在遠(yuǎn)離執(zhí)行所述web應(yīng)用的 客戶端設(shè)備的服務(wù)器節(jié)點(diǎn)上執(zhí)行。
21. 根據(jù)權(quán)利要求18或權(quán)利要求19所述的受信任模塊,其在所述客戶端設(shè)備上執(zhí)行。
22. 根據(jù)權(quán)利要求18-21中任一項(xiàng)所述的受信任模塊,其中所述PES函數(shù)在所述客戶端 設(shè)備上執(zhí)行。
23. 根據(jù)權(quán)利要求18-22中任一項(xiàng)所述的受信任模塊,其中所述確定的結(jié)果指示所述 web應(yīng)用的篡改。
24. 根據(jù)權(quán)利要求18-23中任一項(xiàng)所述的受信任模塊,其中所述確定的結(jié)果包括待針 對(duì)所述web應(yīng)用引用的下一函數(shù)信息。
25. 根據(jù)權(quán)利要求18-24中任一項(xiàng)所述的受信任模塊,其中所述連接模塊進(jìn)一步與第 二受信任模塊建立連接以便獲得驗(yàn)證結(jié)果。
26. 根據(jù)權(quán)利要求25所述的受信任模塊,其中所述第二受信任模塊提供由所述受信任 模塊提供的至少一個(gè)函數(shù)。
27. 根據(jù)權(quán)利要求25或權(quán)利要求26所述的受信任模塊,其中所述第二受信任模塊提供 未由所述受信任模塊提供的至少一個(gè)函數(shù)。
28. -種客戶端設(shè)備,包括: -網(wǎng)絡(luò)接口模塊,其: -打開(kāi)部分執(zhí)行存根(PES)函數(shù)和受信任模塊之間的通信連接; -處理器,其通過(guò)以下操作來(lái)執(zhí)行web應(yīng)用: -引用所述web應(yīng)用的函數(shù); -在所述web應(yīng)用的所述函數(shù)的執(zhí)行期間引用所述PES函數(shù); -將具有與所述web應(yīng)用有關(guān)的當(dāng)前執(zhí)行信息的消息調(diào)用經(jīng)由所述通信連接從所述 PES函數(shù)發(fā)送到所述受信任模塊;以及 -從與所述消息調(diào)用有關(guān)的受信任模塊接收驗(yàn)證結(jié)果。
29. 根據(jù)權(quán)利要求28所述的客戶端設(shè)備,其中所述受信任模塊在遠(yuǎn)程服務(wù)器節(jié)點(diǎn)上執(zhí) 行。
30. 根據(jù)權(quán)利要求28或權(quán)利要求29所述的客戶端設(shè)備,其中所述驗(yàn)證結(jié)果指示所述 web應(yīng)用的篡改,所述處理器進(jìn)一步執(zhí)行緩和函數(shù)。
31. 根據(jù)權(quán)利要求28或權(quán)利要求29所述的客戶端設(shè)備,其中所述驗(yàn)證結(jié)果包括待針對(duì) 所述web應(yīng)用引用的下一函數(shù)信息,所述處理器進(jìn)一步引用下一函數(shù)。
32. -種用于將web應(yīng)用轉(zhuǎn)換為安全的web應(yīng)用的網(wǎng)絡(luò)節(jié)點(diǎn),包括: -存儲(chǔ)器單元,其用于存儲(chǔ)所述web應(yīng)用的代碼,所述web應(yīng)用包括多于一個(gè)函數(shù); -處理器,其用于通過(guò)以下操作來(lái)使所述web應(yīng)用變得安全: -根據(jù)包括至少?gòu)乃龆嘤谝粋€(gè)函數(shù)中的第一函數(shù)到第二函數(shù)的調(diào)用依賴性的所述 web應(yīng)用的函數(shù)調(diào)用圖,確定從所述第一函數(shù)到所述第二函數(shù)的調(diào)用依賴性需要被保護(hù); -通過(guò)以下操作將所述web應(yīng)用修改為安全的web應(yīng)用代碼: -將包括用于與受信任模塊建立通信連接的代碼的部分執(zhí)行存根(PES)函數(shù)添加到所 述web應(yīng)用的代碼,其中所述PES函數(shù)要求與所述受信任模塊的交互; -通過(guò)利用從所述第一函數(shù)引用所述PES函數(shù)替代從所述第一函數(shù)引用所述第二函 數(shù)來(lái)修改所述web應(yīng)用的代碼;以及 -從函數(shù)調(diào)用依賴圖生成一組規(guī)則以定義從所述PES函數(shù)到所述第二函數(shù)的調(diào)用依 賴性;以及 -將所述安全的web應(yīng)用和所述組規(guī)則存儲(chǔ)到所述存儲(chǔ)器單元中。
33. 根據(jù)權(quán)利要求32所述的網(wǎng)絡(luò)節(jié)點(diǎn),其中生成所述組規(guī)則進(jìn)一步包括生成用符號(hào)表 示的部分執(zhí)行流圖(PEFM),并且其中通過(guò)將用符號(hào)表示的PEFM存儲(chǔ)到所述存儲(chǔ)器單元中 來(lái)執(zhí)行將所述組規(guī)則存儲(chǔ)到所述存儲(chǔ)器單元中。
34. 根據(jù)權(quán)利要求32或權(quán)利要求33所述的網(wǎng)絡(luò)節(jié)點(diǎn),其中生成所述組規(guī)則包括考慮與 安全動(dòng)作和緩和動(dòng)作有關(guān)的安全要求。
35. 根據(jù)權(quán)利要求32或權(quán)利要求33所述的網(wǎng)絡(luò)節(jié)點(diǎn),其中所述第一函數(shù)和所述第二函 數(shù)存在于所述web應(yīng)用的所述代碼中作為單個(gè)函數(shù),所述處理器進(jìn)一步基于在所述單個(gè)函 數(shù)中被處理的資產(chǎn)將所述單個(gè)函數(shù)分離為所述第一函數(shù)和所述第二函數(shù)。
36. 根據(jù)權(quán)利要求35所述的網(wǎng)絡(luò)節(jié)點(diǎn),其中將單個(gè)函數(shù)分離為所述第一函數(shù)和所述第 二函數(shù)包括將新的調(diào)用依賴性引入到所述函數(shù)調(diào)用圖中。
37. 根據(jù)權(quán)利要求33所述的網(wǎng)絡(luò)節(jié)點(diǎn),其中用符號(hào)表示的PEFM包括記錄,所述記錄包 括: -當(dāng)前調(diào)用者元素,其標(biāo)識(shí)所述第一函數(shù)作為在引用所述第二函數(shù)之前要求詢問(wèn)的當(dāng) 前調(diào)用函數(shù); -當(dāng)前PES元素,其標(biāo)識(shí)所述PES函數(shù)作為引用所述受信任模塊以觸發(fā)所述詢問(wèn); -下一函數(shù)元素,其標(biāo)識(shí)所述第二函數(shù)并且提供所述第二函數(shù)的引用所必需的信息; -受信任函數(shù)的元素,其標(biāo)識(shí)與所述受信任模塊鏈接且能夠通過(guò)所述受信任模塊內(nèi)的 引用機(jī)制執(zhí)行的一組函數(shù); -安全動(dòng)作元素,其標(biāo)識(shí)所述受信任模塊在返回所述詢問(wèn)的結(jié)果之前能夠執(zhí)行的一組 安全特征。
38. 根據(jù)權(quán)利要求32-37所述的網(wǎng)絡(luò)節(jié)點(diǎn),其中所述處理器進(jìn)一步: -在存儲(chǔ)之前簽署所述安全的web應(yīng)用;以及 -在存儲(chǔ)之前對(duì)所述組規(guī)則進(jìn)行加密。
【文檔編號(hào)】G06F21/54GK104321782SQ201280073524
【公開(kāi)日】2015年1月28日 申請(qǐng)日期:2012年3月30日 優(yōu)先權(quán)日:2012年3月30日
【發(fā)明者】Y.X.古, G.D.亞當(dāng)斯 申請(qǐng)人:愛(ài)迪德加拿大公司