TW201337620A - 用於部分保全記憶體處理的軟體修改技術 - Google Patents
用於部分保全記憶體處理的軟體修改技術 Download PDFInfo
- Publication number
- TW201337620A TW201337620A TW101146868A TW101146868A TW201337620A TW 201337620 A TW201337620 A TW 201337620A TW 101146868 A TW101146868 A TW 101146868A TW 101146868 A TW101146868 A TW 101146868A TW 201337620 A TW201337620 A TW 201337620A
- Authority
- TW
- Taiwan
- Prior art keywords
- application
- code
- memory
- segments
- security
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 11
- 230000004048 modification Effects 0.000 title abstract description 6
- 230000036961 partial effect Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 2
- 238000012986 modification Methods 0.000 abstract description 3
- 239000000284 extract Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 14
- 239000000463 material Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000004321 preservation Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/35—Protecting application or service provisioning, e.g. securing SIM application provisioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
此揭示內容係專注於可能被用來防止軟體盜版及防止應用程式未經授權之修改的軟體修飾體。在某些實施例中,一個軟體供應商可能會在散佈給一個使用者前修改軟體。該軟體供應商可能會抽取來自一個應用程式切割段,以建立一個經修改之應用程式。該等經修改之應用程式和切割段,可能會由一個使用者裝置下載。該使用者裝置可能會使用該經修改之應用程式,以及藉由在一個可隱藏該等切割段內之底層碼的保全執行環境中執行該等切割段,來運行該應用程式。
Description
本揭示內容一般係與電腦領域相關。特言之,本揭示內容係有關修改電腦軟體,以重新封裝用以執行部份來自一個使用者裝置上面之保全記憶體的程式碼。
應用程式商店正快速地成為就眾多類似智慧型電話、連網板、和傳統型電腦(舉例而言,筆記型電腦、桌上型電腦、等等)之平臺而言的應用程式之重要經銷商。應用程式商店經常是一些網路商店,彼等可使一個使用者能夠以電子方式下載軟體,而不需要收受一個實體產品。此種應用程式散佈機構之成功係有幾項理由。理由之一是開發商可使該等應用程式商店能夠大範圍散佈彼等之應用程式,而不需要開發商做大投資。
該應用程式商店正快速地確保其本身之安全性,使成為主要之軟體散佈管道。目前,有數十萬計之智慧型行動電話應用程式可供普及式智慧型行動電話和連網板作業系統(OS)下載。此外,亦有數以千計在Windows®作
業系統(OS)或蘋果作業系統上面運行之傳統型電腦有關的傳統型電腦應用程式可供利用。應用程式商店預期未來之普及性會增加,以及會成為一個主導之軟體經銷商。
雖然當前成長至今之應用程式商店係令人印象深刻,應用程式商店正面臨著眾多或預示會阻礙彼等未來之成長或使其徹底受挫的挑戰。一般而言,有關此等應用程式商店之挑戰包括:1)軟體盜版;2)仿造之應用程式,彼等會造成應用程式商店負責人在運作上、法律上、和安全上之難題;3)無法吸引有名望之獨立軟體供應商(ISVs);和4)透過此散佈機構提供"買前試用"或其他共享軟體版本在應用程式方面的困難。
自主流電腦已廣為使用者利用以來,就軟體開發
商和供應商而言,軟體盜版一直是一項棘手之問題。特言之,隨著網際網路存取之便利及透過網際網路複製和傳送資料之便利,縱使對被檢舉盜版軟體者施以重罰,軟體盜版依然繼續猖獗。
依據本發明的一個實施例,係特別提出一種處理器,其包含:一個第一邏輯,其可就一個包含要分別儲存在保全記憶體中被抽取出的程式碼部分之應用程式來處理記憶體中所儲存之程式碼;和一個第二邏輯,其可在該第一邏輯觸及該抽取出之程式碼部分的位置時,在一個保全執行環境中,處理該保全記憶體中所儲存抽取出之程式碼部分的至少一部分,該保全執行環境會在將結果資料回傳
給該第一邏輯時,隱藏該抽取出之二進位程式碼部分之內容。
100‧‧‧運算環境
102‧‧‧開發商
104‧‧‧應用程式商店(AS)
106‧‧‧使用者
108‧‧‧應用程式(APP)
110‧‧‧開發商伺服器
112‧‧‧應用程式商店伺服器
114‧‧‧切割段
116‧‧‧經修改之應用程式
118‧‧‧使用者裝置
120‧‧‧網路
200‧‧‧運算架構
202‧‧‧處理器
204‧‧‧記憶體
206‧‧‧應用程式轉換器
208‧‧‧客戶登錄管理器
210‧‧‧下載管理器
300‧‧‧運算架構
302‧‧‧暴露之記憶體
304‧‧‧處理器
306‧‧‧保全記憶體
308‧‧‧運作系統(OS)
310‧‧‧應用程式商店客戶
312‧‧‧受保護之軟體散佈許可保全環境(PLN)
314‧‧‧軟體散佈執行環境(PXN)
400‧‧‧程序
402-408‧‧‧運作
500‧‧‧環境
502‧‧‧保全堆疊金鑰
600‧‧‧環境
602‧‧‧開發商即時通
700‧‧‧環境
702‧‧‧使用者許可證
704‧‧‧下載封包
800‧‧‧環境
900‧‧‧程序
902-912‧‧‧運作
1000‧‧‧使用者裝置
1002-1-1002-N‧‧‧處理器
1002‧‧‧處理器
1004-1-1004-M‧‧‧處理器核心
1006‧‧‧邏輯
1008-1-1008-M‧‧‧暫存器檔案
1010‧‧‧整合式記憶體控制器(IMC)
1012‧‧‧記憶體
1014‧‧‧共用快取記憶體
1016‧‧‧區域互連器
1018‧‧‧儲存器
1019‧‧‧保全記憶體
1020‧‧‧圖形控制器(GFX)
1022‧‧‧系統代理器
1024‧‧‧網路控制中心
1026‧‧‧顯示器引擎
1028‧‧‧PCIe網路卡
1030‧‧‧桌面管理介面(DMI)
1032‧‧‧指令或程式
1034‧‧‧作業系統(OS)
1036‧‧‧通訊裝置
1038‧‧‧網路
1040‧‧‧輸入/輸出(I/O)裝置
本詳細說明內容係參照所附諸圖加以描述。在諸圖中,一個參考數字之最左數字係指明該參考數字首次出現所在之繪圖。不同繪圖中之同一參考數字,係指明類似的或同一項目。
圖1為一個例示性運算環境之示意圖,其可將來自一個應用程式商店經修改之軟體能安全地提供給一個使用者裝置,以執行該軟體;圖2為一個例示性應用程式商店伺服器之方塊圖;圖3為一個例示性使用者裝置之方塊圖;圖4為一個用以修改軟體及將經修改之軟體安全地提供給一個使用者裝置以執行該軟體之例示性程序的流程圖;圖5為一個可顯示自一個應用程式商店伺服器至一個使用者裝置之保全堆疊金鑰的發送之示意圖;圖6為一個可顯示自一個應用程式至一個應用程式商店伺服器之發送的示意圖,後者接著會修改該應用程式以建立一些切割段;圖7為一個可顯示該經修改之應用程式和切割段至該使用者裝置的發送之示意圖;圖8為一個可顯示該經修改之應用程式被該使用者裝置執行的示意圖;
圖9為該使用者裝置執行該經修改之應用程式的例示性程序之流程圖;而圖10則為另一個例示性使用者裝置之方塊圖。
此揭示內容係指向軟體修飾體,其可能被用來防止軟體盜版及防止應用程式未經授權之修改。在某些實施例中,一個軟體供應裔可能會在散佈給一個使用者之前修改該軟體。該經修改之軟體可能會被販售、出租、或被下載該軟體之使用者"試用"。
上述可能主辦一個應用程式商店之軟體供應裔,起初可能會自一個開發商或軟體公司接收一個應用程式。該軟體供應裔接著可能會移除該軟體的一些部分,諸如一些程式碼段、函式、或該軟體之其他部分,本說明書稱之為"切割段"。該軟體供應裔可能會加密該等切割段,以及會將彼等儲存為一些與該應用程式未包含該等切割段(但包含一些已切割掉程式碼之空洞)之應用程式修改版本(本說明書稱為"經修改之應用程式")分開的部分。該軟體供應裔接著可能會將至少該經修改之應用程式和加密之切割段,和可能之其他資料,諸如一個許可證、一個使用者手冊、等等,發送給一個使用者裝置。
依據某些實施例,該使用者裝置可能會儲存及解密本說明書稱為"保全記憶體"的一個保全記憶體位置中之切割段。該保全記憶體可能為不可被類似一個作業系統或
其他在該使用者裝置上面運作之內置式軟體的外部軟體存取的記憶體。該保全記憶體可能包括保全執行環境,其可使該保全記憶體內之內容能夠被一個或多個處理器或處理器核心安全執行。該保全記憶體可能會限制由該保全執行環境來存取。因此,該等切割段中所包含之程式碼,並不會揭露或暴露給該使用者裝置之使用者、正在該使用者裝置上面運行之軟體、或他者(舉例而言,電腦駭客、供應裔、等等)。該保全記憶體可能儲存工作狀態(亦即,未加密)中之切割段。該等保全記憶體和保全執行環境,會與該經修改之應用程式協調地合作,以執行該原有之應用程式。
該經修改之應用程式,可能會被該使用者裝置上面之作業系統載入及執行,而在當前執行未修改之應用程式。當該經修改之應用程式的一個被請求之部分包含該等切割段中的一個時,重新指向程式碼可能會將處理指向該保全執行環境,以執行一個對應之切割段,以及接著會將結果資料,回傳給該經修改之應用程式,其可能會重新開始使用上述結果資料來運行,而不需要實際處理該切割段中之程式碼。
在某些實施例中,該使用者裝置可能包含一個單一"框架式"保全執行環境,其可供包含切割段之不同應用程式使用。該保全執行環境可能會載入一個應用程式的一個切割段連同任何適當之元資料(舉例而言,輸入、變數、等等)。
舉例而言,一個應用程式可能具有兩個切割段。
一個載入器堆疊可能會將此等切割段中的至少一個之加密程式碼,載入該保全執行環境內,其中包括和任何與該(等)切割段相聯結之元資料。在該到該保全執行環境中,該切割段會被解密,以及可被該經修改之應用程式呼叫,以執行自該應用程式移除且被儲存進該保全記憶體內以供該保全執行環境處理的此等應用程式部分之運作(舉例而言,函式、計算、等等)。
在各種實施例中,每個應用程式可能會使用該保全記憶體之不同副本的框架和該保全執行環境,因為該保全執行環境可能會映射至彼等對應之應用程式的位址空間上面。
本說明書所說明之技術、裝置、和系統,可能會在若干方式中體現。一些範例性實施例係參照以下諸圖提供於下文。
圖1之例示性環境,為一個用以安全地自一個應用程式商店提供至一個使用者裝置之經修改的軟體之例示性運算環境100的示意圖。該環境包括一個開發商102(諸如一個獨立軟體供應商(ISV)、一個應用程式商店104、和一個使用者106。在某些實例中,該等開發商102和應用程式商店104,可能為同一實體。該開發商可能會建立或開發一個應用程式108,其可能由一個開發商伺服器110來儲存及/或使可供存取。該應用程式商店(AS)104,可能使用一個AS伺服器112來接收該應用程式。該AS伺服器112可能會修
改該應用程式108,以建立一些如上文所討論之切割段,以及儲存一些加密之切割段114和一個未包含該切割段之經修改的應用程式116。該AS伺服器112可能會使該使用者106,能夠經由該加密之切割段114和經修改之應用程式116,將該軟體下載至一個使用者裝置118。該使用者裝置118可能會將該加密之切割段114儲存進保全記憶體內,以及會在解密之後,在一個保全執行環境中執行該等切割段。該等開發商伺服器110、AS伺服器112、和使用者裝置118,可能會透過一個或多個網路120來交換資料。
該使用者裝置118,可能包含一個個人電腦、一個連網板電腦、一個行動電話(包括智慧型行動電話)、一個個人數位助理(PDA)、一個電視、一個機上盒、遊戲機、或另一個電子、手提式、或手持式裝置。該(等)網路120可能包括線接式和/或無線網路100,其可促成該環境中所描述之各種運算裝置間的通訊。在某些實施例中,該(等)網路120可能包括區域網路(LAN)、廣域網路(WLAN)、行動電話網路(MTN)、和其他類型之網路,或許配合彼此一起使用,以促成該等各種運算裝置(亦即,該(等)開發商伺服器110、該AS伺服器112、和/或該使用者裝置118)間之通訊。該等AS伺服器112和使用者裝置118,係分別參照圖2和3做更詳細之說明。
圖2顯示該AS伺服器112之例示性運算架構200。該架構可能包含一些處理器202和一個記憶體204。該記憶體204可能會儲存各種模組、應用程式、程式、或其他
資料。該記憶體204可能包含一些指令,彼等在被該(等)處理器202執行時,可使該等處理器執行本說明書就該AS伺服器112所說明之運作。在某些實施例中,該記憶體204可能會儲存一個應用程式轉換器206、一個客戶登錄管理器208、和一個下載管理器210。每個模組會依次加以討論。
該應用程式轉換器206,可能為一個軟體引擎,其會採用該開發商作為輸入而上傳之應用程式,以及會自該應用程式抽取一些片段作為切割段。該等切割段可能會被選定為重要之程式碼部分,彼等在自該應用程式抽取時,會使該應用程式無法運作。此外,該等切割段在被抽取出時,可防止另一人員重新建立該完整之應用程式,藉以挫敗盜版性嘗試。在該應用程式上傳之後,該應用程式轉換器,可能會執行該應用程式二進位制之分析,以及會自動識別該等就適當執行該應用程式或許為最貼切之片段。在某些實例中,該開發商可能會指明該等片段為要被用作該等切割段。該應用程式轉換器206,接著可能會以重新指向程式碼來替換該等被抽取出之片段,彼等為至外部位置之呼叫,以及可能係基於一個列表。該等切割段可能會與一個分開之檔案中的某些元資料(諸如回傳值、參數、等等)相集結。此檔案可能會被加密。
該客戶登錄管理器208,可能會就每個正在運行該客戶登錄流程之新客戶,提供一個獨一之客戶金鑰。此程序可能會局限於保全記憶體,以及會局限於該使用者裝置118所使用之保全執行環境技術。在某些實施例中,該客戶
登錄管理器208,如下文參照圖3所討論,係由會遞送一個受保護之軟體散佈技術客戶軟體堆疊之同一實體來提供。
該下載管理器210,可能會建立一個許可證,以及會加密該應用程式之切割段。舉例而言,該下載管理器2110,可能會加密該切割段,倘若該二進位要基於每一平臺而有不同,而非每一應用程式就所有之客戶有一個單一加密金鑰。該下載管理器210,可能會以一個特定之客戶金鑰(其係在註冊期間由該客戶登錄管理器208提供)來加密該許可證,以及可能會隨同該應用程式和該加密之切割段一起發送該特定之客戶金鑰。
圖3顯示該使用者裝置118之例示性運算架構300。該架構可能包括一個暴露之記憶體302、一些處理器304、和一個保全記憶體306。該暴露之記憶體302,可能儲存各種模組、應用程式、程式、或其他資料。該暴露之記憶體302,可能包含一些指令,彼等在被該處理器304執行時,可使該等處理器執行本說明書就該使用者裝置118所說明之某些運作。該暴露之記憶體可能為一些傳統型記憶體,諸如快閃記憶體、隨機存取記憶體(RAM)、或其他類型之傳統型記憶體。在某些實施例中,該暴露之記憶體304,可能儲存一個運作系統(OS)308、該經修改之應用程式(修改之APP)114、和一個應用程式商店客戶310、加上其他內置式應用程式或程式。
該應用程式商店客戶310,可能支援來自該應用程式商店204之保全下載。該應用程式商店客戶310,可能
會利用該客戶裝置118之保全記憶體306來儲存該加密之切割段116。該應用程式商店客戶310,亦可能啟動該保全記憶體和該使用者裝置118上面之保全執行環境。
依據各種實施例,該保全記憶體306可能會儲存一個受保護之軟體散佈許可保全環境(PLN)312,其在使用上可能為一次登錄進該應用程式商店104內,以及隨後可能會在該使用者106每次想要發動一個保全之應用程式(具有該等切割段)時被使用。該PLN 312可能會管理該受保護之軟體散佈技術的金鑰材料,以及可能會剖析許可證。該PLN 312可能會被儲存進該保全記憶體306內,以及可能會就該客戶平臺(使用者裝置118)以其工作的任何給定之線上應用程式商店,而作用為該平臺上面的一個單體。在某些實例中,該PLN 312可能會協同地支援多重之應用程式商店。該PLN 312如下文所討論,可能會參與該使用者登錄和該應用程式執行。
在某些實施例中,該保全記憶體306可能會儲存一個受保護之軟體散佈執行環境(PXN)314(其可能為該保全執行環境),而作為一個可儲存該應用程式解密之內容(切割段)的保全執行環境。就每個在該使用者裝置118上面執行之保全應用程式而言,可能會有一個PXN 314被建立。一些來自不同之應用程式的切割段,在尺寸上可能會有變化。在某些實施例中,該PXN 312會在某一最小之尺寸下被載入,以促成執行及適當地供應來自該經修改之應用程式的切割段。此可能會如下文所描述地加以完成。
一個為某一軟體堆疊之一部分的靜態PXN二進位,可能會被建立成一個全幅最大支援之尺寸。該PXN二進位可使部份地載入,以配合一個特定之應用程式的任何較小之需求。舉例而言,每一應用程式之最大尺寸,可能為2MB之切割段(其成為一個約略較大之最大尺寸PXN):然而,就一個僅使用0.5MB之切割段的給定之應用程式而言,該軟體堆疊可能會載入具該尺寸之PXN 314。一個屬該堆疊的一部分之度量列表,可能會提供一組具有彼等之對應度量的可能尺寸。當該堆疊就一個特定之應用程式載入該PXN 314時,其可能是正在使用一個為該應用程式的一部分之內嵌式受保護的軟體散佈元資料,來決定該尺寸。一個載入堆疊可以某一正確之尺寸來建立該PXN 314。由於此架構可能會就每一運行之應用程式而支付此間接成本的事實,一個就該PXN 314之實現體考量,應以最小之間接成本量來設計該PXN。
圖4-9顯示一些用以修改軟體及安全地提供該經修改之軟體給一個使用者裝置以供該使用者裝置安全執行的例示性程序。該等程序係例示為一個邏輯流程圖或示意圖中之區塊集合,其係表示一個可在硬體、軟體、或彼等之組合中體現的運作序列。在某些實例中,該區塊集合係以一些可能執行該等區塊中所描述之各種運作的對應實體來組織。在軟體之情境中,該等區塊係表示一個或多個電腦可讀取式儲存媒體上面所儲存之電腦可執行式指令,彼
等在被一個或多個處理器執行時,可執行該等列舉之運作。通常,彼等電腦可執行式指令,包括一些公用常式、程式、物件、組件、資料結構、等等,彼等可執行一些特定之函式,或者可體現一些特定之抽象資料類型。該等運作描述所在之順序並非意使詮釋為有限制意,以及任何數目之描述區塊,可以任何之順序使相結合,以及/或者平行地體現該等程序。該等程序會參照圖1-3加以描述。當然,該等程序可能會在其他類似和/或不同之環境中被執行。
圖4為一個用以修改軟體及安全地提供該經修改之軟體給一個使用者裝置以供該使用者裝置安全執行的例示性程序400之流程圖。
在402處,該AS伺服器112起初可能會以該應用程式商店104登錄該使用者106和該使用者裝置118。該登錄可能包括交換一個加密金鑰之。依據各種實施例,該登錄可能促成在該使用者裝置118上面建立或使用該PLN 312。該運作402會參照圖5做更詳細之說明。
在404處,該(等)開發商伺服器102可能會上傳一個應用程式給該AS伺服器112。該AS伺服器112可能會自該應用程式移除該等切割段116,以建立該經修改之應用程式114。該AS伺服器112亦可能在該運作404處加密該等切割段。該運作404會參照圖6做更詳細之說明。
在406處,該AS伺服器112可能會將該經修改之應用程式114和該加密之切割段116,下載給該使用者裝置118。該AS伺服器112亦可能在該運作406處,為該使用者118
提供一個許可證。該運作406會參照圖7做更詳細之說明。
在408處,該使用者裝置118可能會執行該經修改之應用程式。該使用者裝置118在適用時,可能會執行該PXN 314中的一個或多個切割段,以將該程式碼隱藏進該等切割段內,以及將結果資料回傳給正在該使用者裝置118上面運行之經修改的應用程式。因此,該應用程式甚至在該AS伺服器112修改及建立該等切割段之後,可能會如該開發商所設計地運作。該等切割段中所使用之程式碼,可能會被預先測試以及會對該使用者、該等作業系統、一些內置式軟體、電腦駭客、和其他使用該保全記憶體306和該PXN 314者隱藏。該運作408會參照圖8做更詳細之說明。
圖5為描述一個保全堆疊金鑰自該AS伺服器112發送至該使用者裝置118之環境500的一個示意圖。依據各種實施例,該使用者106可能會請求登錄進一種與該應用程式商店104之關係,諸如藉由建立一個帳戶。該使用者106可能會提供使用者資訊、付款資訊、聯絡資訊、該使用者裝置118有關之資訊、和/或其他之資料,給該應用程式商店104。作為回報,該AS伺服器112可能會提供一個保全堆疊金鑰502,給該使用者裝置118之保全記憶體306中所儲存的PLN 312。該保全堆疊金鑰502,可能會被用來解密該等切割段116、該經修改之應用程式114、一個應用程式有關之許可證、或彼等之組合。當自該AS伺服器112發送資料至該使用者裝置118時,亦可能會使用到其他之加密技術。當解密來自該AS伺服器112之致少某些資訊或資料時,該使用
者裝置118可能會使用到該保全堆疊金鑰502(或僅僅是"金鑰"或"加密金鑰")。
圖6為一個示意圖,其為描述用以顯示一個應用程式發送至該應用程式商店伺服器104之環境600,後者接著會修改該應用程式以建立一些切割段。一個開發商即時通602,可能會將上述未經修改及包含一個完整組之程式碼的應用程式108,發送給該AS伺服器112。因此,自該開發商之觀點而言,該應用程序開發本身中並無改變。該開發商處之建構程序,係與任何其他應用程式有關之程序相同。
就一些保全應用程式(舉例而言,當該應用程式非為免費時)而言,在上傳進該應用程式商店104內之後,該應用程式轉換器206,可能會分析該應用程式(舉例而言,應用程序二進位),以及會產生該切割段列表。該等切割段在識別上,可能係藉由來自該開發商、來自一些程式碼離散部分被該AS伺服器112之偵測、或兩者之組合的指示符。該應用程式轉換器206之輸出,係一個經修改之應用程式114(舉例而言,應用程式二進位),其包括一些對該使用者裝置118之保全執行環境(亦即,該PXN 314)的適當呼叫(重新指向之程式碼)。該輸出亦包含該等已被該AS伺服器112加密之切割段。該輸出亦可能包含一些元資料,以適當地載入及執行如同具有該等切割段之經修改的應用程式之應用程式。該等元資料可能進一步包含該等切割段有關之尺寸和其他可能之參數。
在某些實施例中,該應用程式轉換器206,可能
執行一個類似於如下之例示性演算法的演算法。給定一個應用程式A,其包含程式碼序列C=(c0,c1,c2,...,ccn)和資料區域(d0,d1,d2,...,ddn),一個程序可能會抽取n個序列式程式碼E=(e1,...,en),其中,ei=(ci1,...,ci2),其方式是:(1)當執行A連同該等抽取出之E件(指為AE)時,該運作與A並無不同。(2)E件為一些序列式線性程式碼剪輯(亦即,無自ei內至ej內之跳躍,i<>j以及ei與A間無跳躍)。(3)E件並未包含一個軟體中斷子集。該等切割段在可能之選擇方式上,為細心檢驗A和E之應用程式執行流程,在交叉存取運行期間(其中,E執行呈不透明,但可能為單一級進式,等等),一個觀察員並無有效率之方法來逆向策劃該等E件。可選擇地,彼等E件亦包含一個D之子集,當僅有Ei在D之某些子集上面運作時尤其是不證自明,該子集可在Ei內。在某些實施例中,該等切割段116可能為來自該應用程式之完整函式。該等切割段116亦可能為一些葉函式,彼等不會呼叫一個外部函式或系統呼叫,藉此保護該抽取出之區域資料,使免於洩露。在某些實施例中,該等切割段116在尺寸上,係受限於一個記憶體臨界尺寸(位元組)。
圖7為一個描述用以顯示該經修改之應用程式114發送至該使用者裝置118的環境700之示意圖。在某些實施例中,該AS伺服器112可能會就該特定之使用者i06,產生該應用程序有關的一個獨一之金鑰,以及會以該金鑰加密該切割段區塊。該AS伺服器112亦可能會就該使用者產生一個獨一之使用者許可證702。該使用者許可證702可能包
含一些可供該使用者啟動該應用程式之選項策略和該獨一之應用程式金鑰。在某些實施例中,該許可證可能僅容許有限度使用該應用程式(舉例而言,基於時間或使用次數之試驗基礎、等等)或者租借該應用程式(舉例而言,作為一個服務之軟體)。該AS伺服器112可能會以該獨一之客戶金鑰來加密該許可證(在登錄期間備妥的)。該AS伺服器112可能會建立一個下載封包704,其包括該經修改之應用程式114、該加密之切割段116、和該使用者許可證702,彼等可能接著會被發送給該使用者裝置118。
圖8為一個描述用以顯示該使用者裝置118執行該經修改之應用程式114的環境800之示意圖。依據各種實施例,該使用者裝置118可能會為執行而載入該經修改之應用程式114。該PXN 314接著可能會被載入,而具有適合該等切割段116之尺寸。該許可證702可能會被傳送給該PLN 312,以便解密成該PXN 314,其可能發生在確認或通知該應用程式在該許可證之條款和策略下運行以後。該等切割段116可能會串流進該PXN 314內。該應用程式可能會使用該經修改之應用程式114和該等切割段116來加以啟動。此外,該堆疊可能會在該應用程式結束時清理該EPC,且姑不論其他函式。
在某些實施例中,該PXN 314可能會運作為一個緩衝器,以及可能會就該等切割段而載入額外之程式碼,其由於一些尺寸限制條件所致,或許並非儲存在該PXN 314內。因此,在一個切割段之處理期間,該PXN 314可能會重
新獲得及可能地解密某些額外之程式碼和/或切割段(或彼等之部分)。
圖9為該使用者裝置118執行該經修改之應用程式的例示性程序900的一個流程圖。
在902處,該使用者裝置118可能會處理來自該暴露之記憶體302中所儲存的經修改之應用程式114的程式碼。
在904處,該使用者裝置118可能會決定一個重新指向程式碼是否觸及來自該經修改之應用程式114的程式碼內。該重新指向程式碼(或改變方向程式碼、跳躍程式碼、等等),可能為鏈結至一個儲存在該PXN 314中之對應切割段的程式碼。當未發現到重新指向之程式碼(順"否"路徑前進)時,該處理接著會繼續該運作902。然而,當發現到該重新指向程式碼(自該決策運作904順"是"路徑前進)時,該處理接著可能會繼續在906處。
在906處,該使用者裝置118可能會傳送一個請求給該PXN 314,以處理該對應之切割段。該請求可能包含元資料、參數、和/或其他之資料。舉例而言,該請求可能包含該等切割段中之程式碼所使用的變數。
在908處,該使用者裝置118可能會處理該PXN 314中之切割段內的程式碼。該切割段之處理可能會對該作業系統、其他應用程式、其他使用者、該使用者106、等等隱藏。
在910處,該使用者裝置119可能會決定該程式碼
是否已被處理。當該程式碼並未完成(仍在處理中)時,該程序接著可能會繼續在908處自該決策運作910順"否"之路徑前進。當來自該切割段之程式碼完成(順來自決策運作910之"是"路徑前進)時,該程序接著可能會在一個運作912處繼續。
在912處,該PXN 314可能會將一些參數回傳給該暴露之記憶體302,以促使該經修改之應用程式114能夠繼續運行。舉例而言,該程式碼之輸出,可能會回傳給該暴露之記憶體302,而不需要揭露該底層程式碼,以及經由遮蔽該切割段中之程式碼的某一可能程度之底層邏輯。該被解密之切割段,除正在執行該切割段之處理器執行緒或處理器核心執行緒外,可能無法被該使用者裝置上面之任何軟體或硬體讀取。在各種實施例中,該運作912可能不會包含回傳資訊給該主應用程式之PXN 314,因為該PXN可能僅會改變該暴露之記憶體302的狀態,以及/或者透過一些暫存器來回傳資料。
在某些實施例中,該使用者裝置118可能會宣告用以指明該修改之應用程式有關的合法性或有效許可證和該應用程式依修改之狀態的資訊或不然使成為有用。因此,該使用者裝置118可能指明該應用程式為剖析本說明書所描述之切割段。
圖10為另一個可能執行本說明書所說明之程序和功能性的例示性使用者裝置1000的一個方塊圖。該使用者裝置1000可能包含一個或多個處理器1002-1,...,1002-N(其中,N為一個正整數≧1),彼等各可能包括一個
或多個處理器核心1004-1,...,1004-M(其中,M為一個正整數≧1)。在某些實現體中,誠如上文所討論,該(等)處理器1002可能為一個單一核心處理器,而在其他實現體中,該(等)處理器1002可能具有某一大數目之處理器核心,彼等各可能包含圖10中所例示之某些或全部組件。舉例而言,每個處理器核心1004-1,...,1004-M,可能包含一個用以與一個暫存器檔案1008-1,...,1008-M互動及/或執行本說明書所討論之至少某些運作的邏輯1006之實情。該邏輯1006可能包含一個或多個專屬型電路、邏輯單元、微碼、或等等。
該(等)處理器1002和處理器核心1004,可配合一個區域互連器1016透過一個整合式記憶體控制器(IMC)1010而運作,以讀取及寫入至一個記憶體1012。該(等)處理器1002和處理器核心1004,亦可執行一個記憶體1012或其他電腦可讀取式媒體中所儲存之電腦可讀取式指令。該記憶體1012可能包括揮發性和非揮發性記憶體和/或可移除式和非移除式媒體,彼等係體現在任何類型用以儲存資訊之技術中,諸如電腦可讀取式指令、資料結構、程式模組、或其他資料。此種記憶體可能包括但非受限於隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可規劃唯讀記憶體(EEPROM)、快閃記憶體、或其他之記憶體技術。在其中存在多重之處理器核心1004的情況中,在某些實現體中,該多重之處理器核心1004,可能會共用一個共用快取記憶體1014,其可能經由該區域互連器1016來存取。此外,該儲存器1018可能係被設置來儲存資料、程式碼、程序、
登錄日誌、和等等。該儲存器1018可能包括固態儲存器、磁碟儲存器、獨立磁碟冗餘陣列(RAID)、儲存器系統、儲存器陣列、網路附接式儲存器、儲存器區域網路、雲端儲存器、唯讀光碟、數位影像光碟(DVD)或其他之光學儲存器、磁性卡匣、磁帶、或任何其他可被用來儲存想要之資訊及可被一個運算裝置存取的媒體。依據該使用者裝置1000之組態,該記憶體1012和/或該儲存器器1018,可能為某一類型之電腦可讀取式儲存器媒體,以及可能為一個非暫時性媒體。
依據各種實施例,該處理器1102可能經由該IMC 1010與該保全記憶體1019相通訊。該保全記憶體1019可能包含該PLN 312和/或該PXN 314。該保全記憶體1019可能至少部份地以該處理器1002-1或另一個處理器或處理器核心來儲存。
在各種實施例中,該區域互連器1016亦可能會與一個圖形控制器(GFX)1020相通訊,以提供圖形處理。在某些實施例中,該區域互連器1016可能與一個系統代理器1022相通訊。該系統代理器1022可能與一個網路控制中心1024相通訊,其係連接一個顯示器引擎1026、PCIe網路卡1028、和桌面管理介面(DMI)1030。
該記憶體1012可能會儲存一些可被該處理器1002執行之功能性組件。在某些實現體中,此等功能性組件包括一些可被該(等)處理器1002執行之指令或程式1032。圖10中所例示之範例性功能性組件,進一步包含一
個作業系統(OS)1034,以館理該使用者裝置1000之運作。
該使用者裝置1000,可能包含一個或多個通訊裝置1036,彼等可能包含一個或多個介面和硬體組件,以便能夠透過一個通訊鏈路與各種其他裝置相通訊,諸如一個或多個網路1038。舉例而言,彼等通訊裝置1036可能促成透過一個或多個網際網路、電纜網路、行動網路、無線網路(舉例而言,Wi-Fi、蜂巢式網路)和線接式網路。一些供通訊使用之組件,可至少部份取決於所選之網路和/或環境的類型。一些用以經由此等網路相通訊之通訊協定和組件係屬常見,以及在本說明書中將不做詳細討論。
該使用者裝置1000可能進一步配備有各種輸入/輸出(I/O)裝置1040。此等I/O裝置1040可能包含一個顯示器、各種使用者介面控制(舉例而言,按鈕、遊戲搖桿、鍵盤、觸控螢幕、等等),擴音器,連接埠、等等。一個可能包含一個系統匯流排、一些埠對埠介面、一個晶片集、或其他適當之連接和組件的互連器1024,可能被設置來促成該處理器1002、該記憶體1012、該儲存器1018、該等通訊裝置1036、和該等I/O裝置1040間之通訊。
雖然本發明對象業已以專屬於結構性特徵和/或系統方法動作之語言加以描述,理應瞭解的是,所附申請專利範圍內所界定之發明對象並非必然受限於所說明之特定特徵或動作。更確切地說,該等特定之特徵和動作,係揭示為一些體現申請專利範圍之例示形式。
100‧‧‧運算環境
102‧‧‧開發商
104‧‧‧應用程式商店(AS)
106‧‧‧使用者
108‧‧‧應用程式(APP)
110‧‧‧開發商伺服器
112‧‧‧應用程式商店伺服器
116‧‧‧切割段
114‧‧‧應用程式
118‧‧‧使用者裝置
120‧‧‧網路
Claims (22)
- 一種處理器,其包含:一第一邏輯,用以針對一個應用程式而處理儲存在記憶體中的程式碼,該應用程式包括要被分開儲存在保全記憶體中的被抽取出程式碼部分;和一第二邏輯,用以在該第一邏輯觸及該被抽取出程式碼部分的位置時,在一個保全執行環境中處理被儲存在該保全記憶體中之該被抽取出程式碼部分的至少一部分,該保全記憶體僅限於由該保全執行環境所作的取用,該保全執行環境在將結果資料傳回給該第一邏輯時會隱藏該被抽取出二進位程式碼部分的內容。
- 如申請專利範圍第1項之處理器,其中,該第一邏輯在偵測到重新指向程式碼時會重新指向至該第二邏輯,該重新指向程式碼是在該應用程式中之針對該抽取出程式碼部分的一個佔位符。
- 如申請專利範圍第1項之處理器,其中,該被抽取出程式碼部分係由該第二邏輯解密,並係在該保全執行環境中執行。
- 如申請專利範圍第1項之處理器,其中,該第一邏輯將至少一個參數傳遞給該第二邏輯,以起始要處理該被抽取出程式碼部分之該至少一部分的一個請求。
- 如申請專利範圍第1項之處理器,其進一步包含:一第三邏輯,其係用於解密該應用程式,並係用於 將該被抽取出程式碼部分儲存在該保全記憶體內。
- 一種用於安全地散佈軟體的方法,該方法包含下列步驟:自一個應用程式抽取出數個程式碼部分作為數個切割段,以建立並不包含該等切割段的一個經修改應用程式;使用由一個使用者所保存的一個加密金鑰來加密該等切割段;以及將經加密之該等切割段和該經修改應用程式發送給該使用者。
- 如申請專利範圍第6項之方法,其中,該等切割段係來自該應用程式的程式碼函式。
- 如申請專利範圍第6項之方法,其中,該等切割段在尺寸上係受限於一個臨界尺寸。
- 如申請專利範圍第6項之方法,其進一步包含下列步驟:至少部份基於使用來自一個開發商的指示符來識別該等切割段。
- 如申請專利範圍第6項之方法,其進一步包含下列步驟:接收來自一個開發商的處於未經修改狀態中之該應用程式。
- 如申請專利範圍第6項之方法,其進一步包含下列步驟:在加密之前將該加密金鑰發送給該使用者。
- 保持有電腦可執行指令的一或多個電腦可讀媒體,該等電腦可執行指令係要在一或多個處理器上執行以進行 包括下列之動作:自一個應用程式移除作為數個切割段的數個程式碼部分,以建立一個經修改應用程式;使用一個加密金鑰來加密該等切割段;以及將該經修改應用程式和經加密之該等切割段發送給該使用者。
- 如申請專利範圍第12項之方法,其進一步包含:藉由一個自動化選擇程序來將該等程式碼部分識別為該等切割段。
- 如申請專利範圍第12項之方法,其進一步包含:將一個使用者許可證發送給該使用者。
- 如申請專利範圍第12項之方法,其中,該經修改應用程式和經加密之該等切割段被包括在一個經加密封包中以作發送。
- 如申請專利範圍第12項之方法,其進一步包含:在加密之前將該加密金鑰發送給該使用者。
- 一種用於安全地儲存和執行應用程式的系統,該系統包含:一或多個處理器;暴露記憶體,用以儲存由該一或多個處理器所執行的一個應用程式;保全記憶體,用以儲存作為一或多個切割段的程式碼,該一或多個切割段係在該暴露記憶體接收到該應用程式之前被從該應用程式抽取出來,該保全記憶體受限 於使用該一或多個處理器所為之藉由一個保全執行環境所作的存取;其中,該一或多個處理器執行來自該暴露記憶體的該應用程式;以及當對來自該暴露記憶體之該應用程式的執行觸及該應用程式中的一個切割段時,在該保全執行環境中執行該切割段中之對應程式碼而不對該暴露記憶體揭露該切割段之內容。
- 如申請專利範圍第17項之系統,其中,該應用程式包括取代該等切割段的重新指向程式碼,用以將處理動作重新指向至該切割段中之對應程式碼。
- 如申請專利範圍第17項之系統,其中,該切割段係在處於該保全加密環境中時被解密。
- 如申請專利範圍第17項之系統,其中,該切割段係該應用程式的一個函式。
- 如申請專利範圍第17項之系統,其中,該保全記憶體進一步包括一個加密金鑰,用以在對該應用程式和該一或多個切割段作下載之後將該應用程式和該一或多個切割段解密。
- 如申請專利範圍第17項之系統,其中,該一或多個處理器在執行該對應程式碼之前將至少一個參數傳遞給該保全執行環境。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067781 WO2013101034A1 (en) | 2011-12-29 | 2011-12-29 | Software modification for partial secure memory processing |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201337620A true TW201337620A (zh) | 2013-09-16 |
TWI496023B TWI496023B (zh) | 2015-08-11 |
Family
ID=48698272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101146868A TWI496023B (zh) | 2011-12-29 | 2012-12-12 | 用於部分保全記憶體處理的軟體修改技術 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9158902B2 (zh) |
CN (1) | CN104040552B (zh) |
TW (1) | TWI496023B (zh) |
WO (1) | WO2013101034A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812873B2 (en) | 2012-09-26 | 2014-08-19 | Intel Corporation | Secure execution of a computer program using binary translators |
US9465946B2 (en) | 2012-06-01 | 2016-10-11 | Intel Corporation | Identification and execution of subsets of a plurality of instructions in a more secure execution environment |
TWI673658B (zh) * | 2014-01-17 | 2019-10-01 | Vsk電子股份有限公司 | 威脅事件監控系統及相關方法、電腦可讀媒體以及計算裝置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843764B2 (en) | 2011-07-15 | 2014-09-23 | Cavium, Inc. | Secure software and hardware association technique |
US20130254906A1 (en) * | 2012-03-22 | 2013-09-26 | Cavium, Inc. | Hardware and Software Association and Authentication |
US9330028B2 (en) * | 2014-03-27 | 2016-05-03 | Intel Corporation | Instruction and logic for a binary translation mechanism for control-flow security |
KR101695639B1 (ko) * | 2014-08-13 | 2017-01-16 | (주)잉카엔트웍스 | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 |
US10181027B2 (en) | 2014-10-17 | 2019-01-15 | Intel Corporation | Interface between a device and a secure processing environment |
US10178087B2 (en) * | 2015-02-27 | 2019-01-08 | Samsung Electronics Co., Ltd. | Trusted pin management |
DE102015225651A1 (de) * | 2015-12-17 | 2017-06-22 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Übertragen einer Software |
KR101823226B1 (ko) * | 2016-02-11 | 2018-01-29 | 라인 가부시키가이샤 | 코드 보호 방법 및 시스템 |
US11159322B2 (en) * | 2019-01-31 | 2021-10-26 | Baidu Usa Llc | Secure multiparty computing framework using a restricted operating environment with a guest agent |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4817140A (en) | 1986-11-05 | 1989-03-28 | International Business Machines Corp. | Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor |
US6317832B1 (en) * | 1997-02-21 | 2001-11-13 | Mondex International Limited | Secure multiple application card system and process |
US6658548B1 (en) * | 2000-01-10 | 2003-12-02 | International Business Machines Corporation | System and method in a data processing system for extracting data from a protected region of memory |
US7051211B1 (en) * | 2000-08-21 | 2006-05-23 | International Business Machines Corporation | Secure software distribution and installation |
US6768942B1 (en) * | 2000-09-18 | 2004-07-27 | Navigation Technologies Corp. | Navigation system with decryption functions and secure geographic database |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7124445B2 (en) * | 2002-06-21 | 2006-10-17 | Pace Anti-Piracy, Inc. | Protecting software from unauthorized use by converting source code modules to byte codes |
US20050028148A1 (en) * | 2003-08-01 | 2005-02-03 | Sun Microsystems, Inc. | Method for dynamic recompilation of a program |
KR101037006B1 (ko) * | 2003-11-28 | 2011-05-25 | 파나소닉 주식회사 | 데이터 처리장치 |
US8954751B2 (en) * | 2004-10-08 | 2015-02-10 | International Business Machines Corporation | Secure memory control parameters in table look aside buffer data fields and support memory array |
US8352837B1 (en) * | 2009-03-20 | 2013-01-08 | Marvell International Ltd. | System and methods for storing data encoded with error information in a storage medium |
US20100269106A1 (en) * | 2009-04-21 | 2010-10-21 | Ksplice, Inc. | Method of finding a safe time to modify code of a running computer program |
US8819446B2 (en) * | 2009-06-26 | 2014-08-26 | International Business Machines Corporation | Support for secure objects in a computer system |
TW201110022A (en) * | 2009-09-15 | 2011-03-16 | Inventec Corp | Plug-in downloading system for expanding functions of software and method thereof |
US8695060B2 (en) * | 2011-10-10 | 2014-04-08 | Openpeak Inc. | System and method for creating secure applications |
-
2011
- 2011-12-29 WO PCT/US2011/067781 patent/WO2013101034A1/en active Application Filing
- 2011-12-29 US US13/994,411 patent/US9158902B2/en not_active Expired - Fee Related
- 2011-12-29 CN CN201180076096.4A patent/CN104040552B/zh not_active Expired - Fee Related
-
2012
- 2012-12-12 TW TW101146868A patent/TWI496023B/zh not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9465946B2 (en) | 2012-06-01 | 2016-10-11 | Intel Corporation | Identification and execution of subsets of a plurality of instructions in a more secure execution environment |
US8812873B2 (en) | 2012-09-26 | 2014-08-19 | Intel Corporation | Secure execution of a computer program using binary translators |
TWI673658B (zh) * | 2014-01-17 | 2019-10-01 | Vsk電子股份有限公司 | 威脅事件監控系統及相關方法、電腦可讀媒體以及計算裝置 |
Also Published As
Publication number | Publication date |
---|---|
US20140208435A1 (en) | 2014-07-24 |
US9158902B2 (en) | 2015-10-13 |
CN104040552B (zh) | 2018-03-30 |
WO2013101034A1 (en) | 2013-07-04 |
CN104040552A (zh) | 2014-09-10 |
TWI496023B (zh) | 2015-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI496023B (zh) | 用於部分保全記憶體處理的軟體修改技術 | |
JP6963613B2 (ja) | コンテナベースのオペレーティング・システムおよび方法 | |
US10523714B2 (en) | Device policy composition and management system | |
US8122100B2 (en) | Multiple object download | |
US8230222B2 (en) | Method, system and computer program for deploying software packages with increased security | |
US9430211B2 (en) | System and method for sharing information in a private ecosystem | |
US10726137B2 (en) | Copy protection for secured files | |
US9246885B2 (en) | System, method, apparatus and computer programs for securely using public services for private or enterprise purposes | |
US10325109B2 (en) | Automatic and dynamic selection of cryptographic modules for different security contexts within a computer network | |
WO2015096695A1 (zh) | 一种应用程序的安装控制方法、系统及装置 | |
JP7397557B2 (ja) | セキュア実行ゲスト所有者環境制御 | |
US10630722B2 (en) | System and method for sharing information in a private ecosystem | |
KR20160020294A (ko) | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 | |
JP2023542527A (ja) | ヘテロジニアス暗号化を通したソフトウェア・アクセス | |
CN112363771B (zh) | 应用程序的处理方法及相关产品 | |
Vella et al. | D-Cloud-Collector: Admissible Forensic Evidence from Mobile Cloud Storage | |
US8260711B1 (en) | Systems and methods for managing rights of data via dynamic taint analysis | |
US11520866B2 (en) | Controlling processor instruction execution | |
US10554629B2 (en) | Push based encryption | |
CN115130141B (zh) | 一种文档处理方法、装置、移动终端及存储介质 | |
US20210224098A1 (en) | Method and system for remote terminal access through application of communication module during boot | |
TW202314480A (zh) | 在一安全運算環境中之受信任系統升級及祕密傳送 | |
Mehta et al. | Security and Privacy issues in Android and Our Approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |