TWI417791B - 計算系統與計算方法 - Google Patents

計算系統與計算方法 Download PDF

Info

Publication number
TWI417791B
TWI417791B TW099121416A TW99121416A TWI417791B TW I417791 B TWI417791 B TW I417791B TW 099121416 A TW099121416 A TW 099121416A TW 99121416 A TW99121416 A TW 99121416A TW I417791 B TWI417791 B TW I417791B
Authority
TW
Taiwan
Prior art keywords
thread
security
normal
computing system
environment
Prior art date
Application number
TW099121416A
Other languages
English (en)
Other versions
TW201117101A (en
Inventor
Hsien Chun Yen
Jing Kuang Huang
Original Assignee
Mediatek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediatek Inc filed Critical Mediatek Inc
Publication of TW201117101A publication Critical patent/TW201117101A/zh
Application granted granted Critical
Publication of TWI417791B publication Critical patent/TWI417791B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Description

計算系統與計算方法
本發明係有關於一種計算系統,且特別有關於一種利用單一作業系統(Operating System,以下簡稱為OS)提供正常安全性服務(normal security service)與高安全性服務(high security service)之計算系統與計算方法。
相較於桌上個人電腦之處理器,具有32位精簡指令集電腦(Reduced Instruction Set Computer,以下簡稱為RISC)指令集架構(Instruction Set Architecture,以下簡稱為ISA)之處理器相對簡單,因此適用於諸如行動電話、個人數位助理(Personal Data Assistant,以下簡稱為PDA)、數位相機、數位媒體音樂播放器、掌上遊戲機(handheld game console)、以及電腦週邊設備(例如,硬碟與路由器)之消費性電子產品。由於成本較低且功率消耗較少,此類處理器於行動與嵌入式電子市場中佔據主導地位。目前,高階精簡指令集(Advanced RISO Machine,以下簡稱為ARM)架構係為最廣泛使用之32位ISA,而ARM處理器係為最廣泛使用之32位RISC處理器。
消費性電子產品所執行之應用可能需要不同安全性級別之服務。正常安全性服務(例如,打電話或玩Java遊戲)可於正常安全性環境(正常環境)中良好運作。然而,當請求諸如線上信用卡支付之高安全性服務時,正常安全性環境並未滿足安全性需要。因此,需要單獨之高安全性環境(安全環境)來處理高安全性服務以避免資訊外洩。
ARM所開發之信任區域(以下簡稱為TrustZone)硬體架構欲利用單一實體處理器核心(single physical processor core)執行正常環境與安全環境之代碼。相較於兩個專屬處理器,單一實體處理器具有以下優點:矽面積較小(smaller silicon area)、成本較低、以及功率消耗較少。應用核心以時間分槽(time-slice)之方式於正常環境與安全環境之間轉換,通常上述環境轉換係正交於處理器之其他一切性能,因此利用相同核心之兩種環境皆可彼此獨立運作。
實現於TrustZone致能處理器核心之上的安全環境之軟體架構之範例包含專屬安全環境作業系統與同步程式庫(synchronous library)。專屬安全環境OS係為一種複雜而強大之設計,其可模擬多個獨立安全環境應用之並行(concurrent)執行、新的安全性應用之運行時間下載、以及安全環境任務。另一方面,處於安全環境之簡單同步程式庫一次僅可處理一個任務,且此任務係為不可中斷的。用戶可遇到正常安全性應用(例如音樂重放及電話呼叫或訊息接收)之終止或失效。
有鑑於此,特提供以下技術方案:本發明實施例提供一種計算系統,利用單一作業系統提供多個正常安全性服務與多個高安全性服務,所述計算系統包含:安全應用程式介面,用於多個高安全性服務,當計算系統處於正常安全性環境時,虛擬正常執行緒呼叫安全應用程式介面;驅動層,藉由安全應用程式介面引動,驅動層呼叫環境轉換指令;以及監視器,藉由自驅動層之環境轉換指令致動以保存虛擬正常執行緒之上下文、將計算系統轉換至高安全性環境、獲得對應於虛擬正常執行緒之安全執行緒、建立或重存安全執行緒之上下文、以及調度安全執行緒以使轉換至高安全性環境之計算系統執行安全執行緒,其中,安全執行緒與多個高安全性服務中之一者有關。
本發明實施例另提供一種計算方法,利用單一作業系統於計算系統中提供多個正常安全性服務與多個高安全性服務,所述計算方法包含:提供安全執行緒,其中安全執行緒僅當計算系統處於高安全性環境時係為可存取的,且安全執行緒與多個高安全性服務中之一者有關;提供虛擬正常執行緒,當計算系統處於正常安全性環境時,執行虛擬正常執行緒以作為安全執行緒之臨時執行緒;將虛擬正常執行緒轉至單一作業系統之執行緒排序服務;以及當虛擬正常執行緒於執行緒排序服務中獲得計算系統之資源之存取時,將計算系統轉換至高安全性環境以執行該安全執行緒。
本發明實施例又提供一種計算系統,利用單一作業系統提供多個正常安全性服務與多個高安全性服務,所述計算系統包含:執行緒排序服務,為已排隊之多個正常執行緒與虛擬正常執行緒排程資源,其中當計算系統處於正常安全性環境時,虛擬正常執行緒被執行,且虛擬正常執行緒係為安全執行緒之臨時執行緒,安全執行緒僅當計算系統處於高安全性環境時係為可存取的;監視器,當虛擬正常執行緒獲得資源之存取時,監視器被環境轉換指令致動以保存虛擬正常執行緒之上下文、將計算系統轉換至高安全性環境、獲得對應於虛擬正常執行緒之安全執行緒、建立或重存安全執行緒之上下文、以及調度該安全執行緒以使已轉換至該高安全性環境之該計算系統執行該安全執行緒。
以上所述的計算系統與計算方法能夠提供單獨之安全環境來處理高安全性服務,避免資訊外洩。
於說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。於通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
第1圖係依本發明實施例之計算系統100的示意圖。計算系統100包含正常裝置102、安全裝置104、以及作業核心106。於一些實施例中,於正常狀態108與安全狀態110中皆使用相同之特定裝置,舉例而言,於正常裝置102中之鍵盤與於安全裝置104中之專有(exclusive)鍵盤實際為相同之鍵盤。其他一些裝置或裝置之一部分可為專屬之裝置,用於於安全狀態110中執行代碼。舉例而言,記憶體之特定部分僅於安全狀態110中係為可存取的。依計算系統100之暫存器與內核,作業核心106可於正常狀態108與安全狀態110之間轉換。安全狀態110之安全性級別與安全性需要遠高於正常狀態108之安全性級別與安全性需要。作業核心106於正常狀態108中存取正常裝置102以形成用於正常安全性服務之正常安全性環境(正常環境)。作業核心106於安全狀態110中存取安全裝置104以形成用於高安全性服務之高安全性環境(安全環境)。請注意,當作業核心106於正常狀態108中時,某些安全裝置104之存取係被禁止以隔離高安全性環境中之敏感資料,並避免資訊自高安全性環境外洩至正常安全性環境。當高安全性服務被請求時,作業核心106轉換至安全狀態110以安全地存取安全裝置104並處理敏感資料。高安全性環境可隔離駭客(hacker)、後門程式(backdoor program)、或任一惡意程式(malicious program)。
利用安全應用程式介面(Application Program Interface,以下簡稱為API)112與監視器114(可藉由軟體應用實現),且修改計算系統100之驅動層(驅動器116)與OS之設計,可使作業核心106於正常狀態108與安全狀態110之間轉換。於本實施例中,計算系統100中僅使用一個OS。OS中提供以下三種執行緒(thread):正常執行緒NT1…NTn、安全執行緒ST1…STm、以及虛擬正常執行緒(pseudo normal thread)PNT1…PNTm。每一執行緒指稱一種描述計算系統100之執行環境與條件之上下文(context)。當一執行緒之一特定服務完成或被中斷時,所述執行緒之上下文被儲存。一旦上述執行緒藉由排程重新獲得資源,執行緒之上下文即被重存,其意味著計算系統100之環境將被重存以恢復執行。上下文可包含堆疊(stack)、暫存器組(register set)、程式計數器(Program Counter,以下簡稱為PC)、指標、虛擬記憶體等。儲存或重存上下文之動作可包含將上下文儲存至程序堆疊中,例如儲存與執行緒之上下文有關之暫存器值(例如PC、連結暫存器、或堆疊指標)。當作業核心106處於正常狀態108(計算系統100處於正常安全性環境)時,正常執行緒NT1…NTn被用於執行正常安全性服務。安全執行緒ST1…STm僅可用於安全環境(當作業核心106處於安全狀態110時)中以執行高安全性服務。安全執行緒ST1…STm僅於高安全性環境中可操作,當作業核心106處於正常狀態108時,安全執行緒ST1…STm係不可存取的,因此提供與安全執行緒ST1…STm有一一對應關係之虛擬正常執行緒PNT1...PNTm來作為安全執行緒ST1…STm之臨時執行緒,上述虛擬正常執行緒可於正常安全性環境中執行。虛擬正常執行緒類似於對應安全執行緒之替代,且虛擬正常執行緒存在於正常環境中以藉由排程獲得對應安全執行緒之資源。於正常環境中(作業核心106處於正常狀態108中),虛擬正常執行緒PNT1...PNTm被視作正常執行緒,且作為對應安全執行緒ST1…STm之替代之虛擬正常執行緒PNT1...PNTm與正常執行緒NT1…NTn共同排隊以獲得計算系統100之資源。如第1圖所示,OS之執行緒排序服務118負責資源分配。當任一虛擬正常執行緒獲得計算系統100之資源時,作業核心106被轉換至安全環境110以執行對應安全執行緒。因此,計算系統100可利用單一OS提供正常安全性服務與高安全性服務,且高安全性服務係可中斷的並具有多任務性能。
於一些實施例中,虛擬正常執行緒與安全執行緒之間的關係被儲存於執行緒對映表120中,於其他一些實施例中,安全執行緒ID可藉由虛擬正常執行緒ID導出,反之亦然。將虛擬正常執行緒映射至安全執行緒之範例係為虛擬正常執行緒賦予正常環境執行緒ID(例如Linux系統中之程序ID),以及為安全執行緒賦予可由對應之虛擬正常執行緒ID導出之編碼。舉例而言,安全執行緒ID為對應之虛擬正常執行緒ID加總預定義數值。
安全API 112係為提供高安全性服務而設計。如第1圖所示,得勝(winning)虛擬正常執行緒(於執行緒排序服務118中獲得計算系統100之資源存取之虛擬正常執行緒PNT1...PNTm中之一者)呼叫安全API 112,以透過驅動層(驅動器116)轉換作業核心106之狀態。於驅動層(驅動器116)中,呼叫諸如安全監視呼叫(Secure Monitor Call,以下簡稱為SMC)之環境轉換指令以致動監視器114。已致動之監視器114保存得勝虛擬正常執行緒之上下文,舉例而言,修改計算系統100之暫存器與內核以將計算系統100轉換至高安全性環境,檢查儲存虛擬正常執行緒PNT1...PNTm與安全執行緒ST1...STm之間關係的執行緒對映表120,以獲得對應之安全執行緒,重存已獲得之安全執行緒之上下文,以及調度即將被執行之已獲得之安全執行緒。已轉換至該高安全性環境之計算系統100執行安全執行緒之高安全性服務。前述之‘上下文保存’與‘上下文重存’儲存並重存恢復執行緒所需之資訊。當一個執行緒被暫停以轉換至另一執行緒時,已暫停執行緒之上下文被保存於當前程序之堆疊中(例如關於已暫停執行緒之上下文的PC、連結暫存器、或堆疊指標被儲存於當前程序之堆疊中)。藉由將資訊重存於當前程序之堆疊中,已暫停之執行緒之上下文可被重建且已暫停之執行緒可被恢復。
作業OS允許安全執行緒ST1...STm之多任務與中斷。代表安全執行緒ST1...STm參加執行緒排序服務118之虛擬正常執行緒PNT1...PNTm允許安全執行緒ST1...STm之多任務。對於可中斷性能而言,監視器114可提供安全中斷處理程序,或於其他實施例中,提供安全中斷服務常式(Interrupt service routine,以下簡稱為ISR)122以替代於監視器114中設計之安全中斷處理程序。此外,監視器114可提供其他功能,於每一安全執行緒之末端將計算系統100自高安全性環境轉換至正常安全性環境。第2~4圖係描述監視器114之不同功能的流程圖。
第2圖係當進入監視模式時,計算系統100自正常安全性環境轉換至高安全性環境的流程圖。流程200開始於保存得勝虛擬正常執行緒之上下文(步驟S202)。於步驟S204中,修改計算系統100之暫存器與內核以將計算系統100轉換至高安全性環境。於步驟S206中,監視器114檢查執行緒對映表120以獲得對應於得勝虛擬正常執行緒之安全執行緒。其中,若得勝虛擬正常執行緒與對應之安全執行緒係剛被產生的,監視器114於執行緒對映表120中登記兩者之間的關係。於步驟S208中,監視器114建立或重存已獲得之安全執行緒之上下文。於流程200之步驟之後,調度已獲得之安全執行緒,以使其藉由已轉換至高安全性環境之計算系統100來執行。
對於步驟S204,當計算系統100利用ARM架構時,計算系統100之內核修改可包含監督者(supervisor)模式轉換。
對於步驟S206,監視器114不僅檢查執行緒對映表120來獲得對應之安全執行緒,其可進一步檢查對應之安全執行緒之狀態。舉例而言,執行緒對映表120可進一步顯示已獲得之安全執行緒是否已被中斷以及安全執行緒是否已被恢復。安全執行緒之狀態可儲存於執行緒對映表120中。
第3圖係處理高安全性環境中發生之中斷之安全中斷處理程序之流程300的流程圖。安全中斷可藉由監視器114來處理。當作業核心106處於安全狀態110且發生中斷時,安全中斷處理程序執行步驟S302,保存當前安全執行緒之上下文。然後,於步驟S304中,安全中斷處理程序獲得對應於當前安全執行緒之虛擬正常執行緒。於步驟S306中,重存已獲得之虛擬正常執行緒之上下文。於步驟S308中,修改計算系統100之暫存器與內核以將計算系統100轉換至正常安全性環境,並將中斷通知計算系統100。於設計安全中斷處理程序中存在一些技巧。舉例而言,可於步驟S304中修改執行緒對映表120以顯示於安全執行緒中發生中斷。於另一實施例中,步驟S306更可將已獲得之虛擬正常執行緒之PC回溯至已呼叫之環境轉換指令(例如SMC)之前的指令。執行緒對映表120之修改與PC之修改便於恢復已中斷之安全服務。此外,於流程300中之步驟可由安全ISR 122實現,而不必內建於監視器114中。安全ISR 122必須於高安全性環境中執行。
第4圖係於每一安全執行緒之末端致動監視器114,以將計算系統100自高安全性環境轉換至正常安全性環境之流程400的流程圖。流程400開始於保存當前安全執行緒之上下文(步驟S402)。於步驟S404中,修改計算系統100之暫存器與內核以將計算系統100轉換至正常安全性環境。於步驟S406中,監視器114獲得對應於當前安全執行緒之虛擬正常執行緒。然後,於步驟S408中,監視器114重存已獲得之虛擬正常執行緒之上下文。於步驟S408之後,經由驅動層(驅動器116),作業核心106被轉換回至正常狀態108,而計算系統100成功地轉換至正常安全性環境以提供正常安全性服務。
當計算系統100利用ARM架構時,步驟S404之內核修改可包含監督者模式轉換。
第5圖與第6圖係作業核心106沿時間軸之作業範例的示意圖。請參考第5圖,作業核心106原本處於正常狀態108中並執行正常應用502(圖中標示為正常AP(502))。當虛擬正常執行緒PNT1…PNTm中之一者獲得計算系統100之資源之存取時,呼叫安全API 112以引動驅動器116來執行SMC 504(第1圖之環境轉換指令之範例),以呼叫監視器114。監視器114執行流程200中之步驟,然後調度安全執行緒(已於流程200中獲得),以使其被轉換至高安全性環境之計算系統100執行,從而使與安全執行緒相關之安全服務506於高安全性環境中得到處理。
第5圖係完成安全服務506之前發生之中斷508的示意圖。作業核心106被強制返回至監視器114以執行安全中斷處理程序(第3圖中所示之流程300係為安全中斷處理程序之範例)。然後,監視器114將作業核心106轉換返回至正常狀態108以利用正常ISR 124來處理中斷508。於正常ISR 124之後,於流程300中獲得之虛擬正常執行緒被轉至執行緒排序服務118。執行緒排序服務118比較正常執行緒NT1…NTn、安全執行緒ST1…STm、以及虛擬正常執行緒(pseudo normal thread)PNT1…PNTm之優先級,以排程計算系統100之資源。當虛擬正常執行緒(已於流程300中獲得)再次獲得計算系統100之資源之存取時,執行SMC 504。監視器114被再次致動以執行流程200。若執行緒對映表120已於流程300之步驟S304中被修改,監視器114獲知安全執行緒已被中斷且即將被呼叫恢復。其他安全服務506被恢復並藉由已恢復之安全執行緒完成。安全執行緒以另一SMC 504結束。SMC 504致動監視器114以執行流程400且隨後作業核心106經由驅動器116返回至正常應用502。
參考第6圖之範例,安全中斷處理係由安全ISR 122而不是監視器114實現。因此,當中斷508發生時,作業核心106執行安全ISR 122以完成流程300中之步驟。於流程300完成之後,安全ISR 122呼叫另一SMC 602,且作業核心106返回至監視器114。然後,監視器114呼叫正常ISR 124來處理中斷508。第6圖之其他部分類似於第5圖。於本範例中,由於安全中斷處理程序(流程300)係藉由安全ISR 122完成,監視器114之碼規模可較小。
以上所述僅為本發明之較佳實施例,舉凡熟悉本案之人士援依本發明之精神所做之等效變化與修飾,皆應涵蓋於後附之申請專利範圍內。
100...計算系統
102...正常裝置
104...安全裝置
106...作業核心
108...正常狀態
110...安全狀態
112...安全API
114...監視器
116...驅動器
118...執行緒排序服務
120...執行緒對映表
122...安全ISR
124...正常ISR
200、300、400...流程
S202~S208、S302~S308、S402~S408...步驟
502...正常應用
504、602...SMC
506...安全服務
508...中斷
第1圖係依本發明實施例之計算系統的示意圖。
第2圖係自正常安全性環境轉換至高安全性環境的方法流程圖。
第3圖係處理高安全性環境中之計算系統中發生之中斷的方法流程圖。
第4圖係自高安全性環境轉換至正常安全性環境的方法流程圖。
第5圖與第6圖係作業核心沿時間軸之作業範例的示意圖。
100...計算系統
102...正常裝置
104...安全裝置
106...作業核心
108...正常狀態
110...安全狀態
112...安全API
114...監視器
116...驅動器
120...執行緒對映表
122...安全ISR
124...正常ISR

Claims (17)

  1. 一種計算系統,利用單一作業系統提供多個正常安全性服務與多個高安全性服務,該計算系統包含:一安全應用程式介面,用於該多個高安全性服務,當該計算系統處於一正常安全性環境時,一虛擬正常執行緒呼叫該安全應用程式介面;一驅動層,藉由該安全應用程式介面引動,該驅動層呼叫一環境轉換指令;以及一監視器,藉由自該驅動層之該環境轉換指令致動以保存該虛擬正常執行緒之上下文、將該計算系統轉換至一高安全性環境、獲得對應於該虛擬正常執行緒之一安全執行緒、建立或重存該安全執行緒之上下文、以及調度該安全執行緒以使轉換至該高安全性環境之該計算系統執行該安全執行緒,其中,該安全執行緒與該多個高安全性服務中之一者有關。
  2. 如申請專利範圍第1項所述之計算系統,其中:該監視器更藉由自該驅動層之該環境轉換指令致動以保存該安全執行緒之上下文、將該計算系統轉換至該正常安全性環境、獲得該虛擬正常執行緒、重存該虛擬正常執行緒之上下文、以及返回至該正常安全性環境。
  3. 如申請專利範圍第1項所述之計算系統,其中,當該計算系統處於該高安全性環境且發生一中斷時,該監視器被致動以保存該安全執行緒之上下文、獲得該虛擬正常執行緒、重存該虛擬正常執行緒之上下文、將該計算系統轉換至該正常安全性環境並將該中斷通知該計算系統、以及呼叫工作於該正常安全性環境中之一正常中斷服務常式以處理該中斷。
  4. 如申請專利範圍第3項所述之計算系統,其中藉由該中斷致動之該監視器更修改一執行緒對映表以注釋該安全執行緒已被中斷,該執行緒對映表儲存該虛擬正常執行緒與該安全執行緒之間的關係。
  5. 如申請專利範圍第3項所述之計算系統,其中藉由該中斷致動之該監視器更將該虛擬正常執行緒之一程式計數器回溯至該已呼叫之環境轉換指令之前的一指令。
  6. 如申請專利範圍第5項所述之計算系統,更包含一執行緒排序服務,於該正常中斷服務常式之後,該虛擬正常執行緒轉至該執行緒排序服務,以及當該虛擬正常執行緒於該執行緒排序服務中獲得該計算系統之資源之存取時,該虛擬正常執行緒被恢復以重複該環境轉換指令來恢復該安全執行緒。
  7. 如申請專利範圍第1項所述之計算系統,更包含工作於該高安全性環境中之一安全中斷服務常式,其中,當該計算系統處於該高安全性環境且發生一中斷時,該安全中斷服務常式被致動以保存該安全執行緒之上下文、獲得該虛擬正常執行緒、重存該虛擬正常執行緒之上下文、將該計算系統轉換至該正常安全性環境並將該中斷通知該計算系統、以及呼叫工作於該正常安全性環境中之一正常中斷服務常式以處理該中斷。
  8. 如申請專利範圍第1項所述之計算系統,其中對應於該虛擬正常執行緒之該安全執行緒係藉由檢查一執行緒對映表獲得,且該執行緒對映表儲存多個虛擬正常執行緒與多個安全執行緒之間的關係。
  9. 一種計算方法,利用單一作業系統於一計算系統中提供多個正常安全性服務與多個高安全性服務,該計算方法包含:提供一安全執行緒,其中該安全執行緒僅當該計算系統處於一高安全性環境時係為可存取的,且該安全執行緒與該多個高安全性服務中之一者有關;提供一虛擬正常執行緒,當該計算系統處於一正常安全性環境時,執行該虛擬正常執行緒以作為該安全執行緒之一臨時執行緒;將該虛擬正常執行緒轉至該作業系統之一執行緒排序服務;以及當該虛擬正常執行緒於該執行緒排序服務中獲得該計算系統之資源之存取時,將該計算系統轉換至該高安全性環境以執行該安全執行緒。
  10. 如申請專利範圍第9項所述之計算方法,更包含:提供用於該多個高安全性服務之一安全應用程式介面,其中該虛擬正常執行緒呼叫該安全應用程式介面;提供藉由該安全應用程式介面引動之一驅動層以呼叫一環境轉換指令來致動將該計算系統自該正常安全性環境轉換至該高安全性環境之一步驟,其中,將該計算系統自該正常安全性環境轉換至該高安全性環境之該步驟包含:保存該虛擬正常執行緒之上下文;將該計算系統轉換至該高安全性環境;檢查儲存該虛擬正常執行緒與該安全執行緒之間的關係之一執行緒對映表以獲得該安全執行緒;以及調度該安全執行緒以藉由該計算系統執行該安全執行緒。
  11. 如申請專利範圍第10項所述之計算方法,更包含:於該安全執行緒之末端執行該環境轉換指令以將該計算系統自該高安全性環境轉換至該正常安全性環境,其中,將該計算系統自該高安全性環境轉換至該正常安全性環境之該步驟包含:保存該安全執行緒之上下文;將該計算系統轉換至該正常安全性環境;獲得該虛擬正常執行緒;以及重存該虛擬正常執行緒之上下文。
  12. 如申請專利範圍第10項所述之計算方法,當該計算系統處於該高安全性環境且發生一中斷時,該計算方法更包含以下步驟:保存該安全執行緒之上下文;獲得該虛擬正常執行緒;將該計算系統轉換至該正常安全性環境並將該中斷通知該計算系統;以及呼叫工作於該正常安全性環境中之一正常中斷服務常式以處理該中斷。
  13. 如申請專利範圍第12項所述之計算方法,當該計算系統處於該高安全性環境且發生一中斷時,該計算方法更修改該執行緒對映表以注釋該安全執行緒已被中斷。
  14. 如申請專利範圍第12項所述之計算方法,當該計算系統處於該高安全性環境且發生一中斷時,該計算方法更將該虛擬正常執行緒之一程式計數器回溯至該已呼叫之環境轉換指令之前的一指令。
  15. 如申請專利範圍第14項所述之計算方法,更包含:於該正常中斷服務常式之後,將該虛擬正常執行緒轉至該執行緒排序服務;以及當該虛擬正常執行緒於該執行緒排序服務中獲得該計算系統之資源之存取時,使該虛擬正常執行緒恢復以重複該環境轉換指令來恢復該安全執行緒。
  16. 一種計算系統,利用單一作業系統提供多個正常安全性服務與多個高安全性服務,該計算系統包含:一執行緒排序服務,為已排隊之多個正常執行緒與一虛擬正常執行緒排程資源,其中當該計算系統處於一正常安全性環境時,該虛擬正常執行緒被執行,且該虛擬正常執行緒係為一安全執行緒之一臨時執行緒,該安全執行緒僅當該計算系統處於一高安全性環境時係為可存取的;一監視器,當該虛擬正常執行緒獲得資源之存取時,該監視器被一環境轉換指令致動以保存該虛擬正常執行緒之上下文、將該計算系統轉換至該高安全性環境、獲得對應於該虛擬正常執行緒之該安全執行緒、建立或重存該安全執行緒之上下文、以及調度該安全執行緒以使已轉換至該高安全性環境之該計算系統執行該安全執行緒。
  17. 如申請專利範圍第16項所述之計算系統,其中:該監視器更藉由自該高安全性環境之該環境轉換指令致動以保存該安全執行緒之上下文、將該計算系統轉換至該正常安全性環境、獲得該虛擬正常執行緒、重存該虛擬正常執行緒之上下文、以及返回至該正常安全性環境。
TW099121416A 2009-11-03 2010-06-30 計算系統與計算方法 TWI417791B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/611,223 US9207968B2 (en) 2009-11-03 2009-11-03 Computing system using single operating system to provide normal security services and high security services, and methods thereof

Publications (2)

Publication Number Publication Date
TW201117101A TW201117101A (en) 2011-05-16
TWI417791B true TWI417791B (zh) 2013-12-01

Family

ID=42829469

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099121416A TWI417791B (zh) 2009-11-03 2010-06-30 計算系統與計算方法

Country Status (4)

Country Link
US (1) US9207968B2 (zh)
EP (1) EP2323064B1 (zh)
CN (1) CN102054136B (zh)
TW (1) TWI417791B (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011012227A1 (de) * 2011-02-24 2012-08-30 Giesecke & Devrient Gmbh Verfahren zum Datenaustausch in einer gesicherten Laufzeitumgebung
DE102011018431A1 (de) 2011-04-21 2012-10-25 Giesecke & Devrient Gmbh Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts
DE102011115135A1 (de) 2011-10-07 2013-04-11 Giesecke & Devrient Gmbh Mikroprozessorsystem mit gesicherter Laufzeitumgebung
WO2013112151A1 (en) 2012-01-26 2013-08-01 Empire Technology Development Llc Data center with continuous world switch security
US9483303B2 (en) * 2012-02-29 2016-11-01 Red Hat, Inc. Differential stack-based symmetric co-routines
US9027102B2 (en) 2012-05-11 2015-05-05 Sprint Communications Company L.P. Web server bypass of backend process on near field communications and secure element chips
US9282898B2 (en) 2012-06-25 2016-03-15 Sprint Communications Company L.P. End-to-end trusted communications infrastructure
US8649770B1 (en) 2012-07-02 2014-02-11 Sprint Communications Company, L.P. Extended trusted security zone radio modem
US8667607B2 (en) 2012-07-24 2014-03-04 Sprint Communications Company L.P. Trusted security zone access to peripheral devices
US9183412B2 (en) 2012-08-10 2015-11-10 Sprint Communications Company L.P. Systems and methods for provisioning and using multiple trusted security zones on an electronic device
US9015068B1 (en) 2012-08-25 2015-04-21 Sprint Communications Company L.P. Framework for real-time brokering of digital content delivery
US9215180B1 (en) 2012-08-25 2015-12-15 Sprint Communications Company L.P. File retrieval in real-time brokering of digital content
EP2741229B1 (en) * 2012-12-07 2018-10-17 Samsung Electronics Co., Ltd Priority-based application execution method and apparatus of a dual-mode data processing device
US9578664B1 (en) 2013-02-07 2017-02-21 Sprint Communications Company L.P. Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system
US9161227B1 (en) 2013-02-07 2015-10-13 Sprint Communications Company L.P. Trusted signaling in long term evolution (LTE) 4G wireless communication
CN103150514B (zh) * 2013-03-07 2015-09-09 中国科学院软件研究所 一种基于移动设备的可信模块及其可信服务方法
US9342688B2 (en) * 2013-03-07 2016-05-17 Qualcomm Incorporated Apparatus and method for inheriting a non-secure thread context
US9613208B1 (en) * 2013-03-13 2017-04-04 Sprint Communications Company L.P. Trusted security zone enhanced with trusted hardware drivers
US9191388B1 (en) 2013-03-15 2015-11-17 Sprint Communications Company L.P. Trusted security zone communication addressing on an electronic device
US9374363B1 (en) 2013-03-15 2016-06-21 Sprint Communications Company L.P. Restricting access of a portable communication device to confidential data or applications via a remote network based on event triggers generated by the portable communication device
US9324016B1 (en) 2013-04-04 2016-04-26 Sprint Communications Company L.P. Digest of biographical information for an electronic device with static and dynamic portions
US9171243B1 (en) 2013-04-04 2015-10-27 Sprint Communications Company L.P. System for managing a digest of biographical information stored in a radio frequency identity chip coupled to a mobile communication device
US9454723B1 (en) 2013-04-04 2016-09-27 Sprint Communications Company L.P. Radio frequency identity (RFID) chip electrically and communicatively coupled to motherboard of mobile communication device
US9838869B1 (en) 2013-04-10 2017-12-05 Sprint Communications Company L.P. Delivering digital content to a mobile device via a digital rights clearing house
US9443088B1 (en) 2013-04-15 2016-09-13 Sprint Communications Company L.P. Protection for multimedia files pre-downloaded to a mobile device
US9560519B1 (en) 2013-06-06 2017-01-31 Sprint Communications Company L.P. Mobile communication device profound identity brokering framework
US9183606B1 (en) 2013-07-10 2015-11-10 Sprint Communications Company L.P. Trusted processing location within a graphics processing unit
US9208339B1 (en) 2013-08-12 2015-12-08 Sprint Communications Company L.P. Verifying Applications in Virtual Environments Using a Trusted Security Zone
US9185626B1 (en) 2013-10-29 2015-11-10 Sprint Communications Company L.P. Secure peer-to-peer call forking facilitated by trusted 3rd party voice server provisioning
US9191522B1 (en) 2013-11-08 2015-11-17 Sprint Communications Company L.P. Billing varied service based on tier
US9226145B1 (en) 2014-03-28 2015-12-29 Sprint Communications Company L.P. Verification of mobile device integrity during activation
US9230085B1 (en) 2014-07-29 2016-01-05 Sprint Communications Company L.P. Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services
US9779232B1 (en) 2015-01-14 2017-10-03 Sprint Communications Company L.P. Trusted code generation and verification to prevent fraud from maleficent external devices that capture data
US9838868B1 (en) 2015-01-26 2017-12-05 Sprint Communications Company L.P. Mated universal serial bus (USB) wireless dongles configured with destination addresses
US9473945B1 (en) * 2015-04-07 2016-10-18 Sprint Communications Company L.P. Infrastructure for secure short message transmission
US9819679B1 (en) 2015-09-14 2017-11-14 Sprint Communications Company L.P. Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers
US10282719B1 (en) 2015-11-12 2019-05-07 Sprint Communications Company L.P. Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit
US9817992B1 (en) 2015-11-20 2017-11-14 Sprint Communications Company Lp. System and method for secure USIM wireless network access
US20170169213A1 (en) * 2015-12-14 2017-06-15 Lenovo (Beijing) Limited Electronic device and method for running applications in different security environments
US10499249B1 (en) 2017-07-11 2019-12-03 Sprint Communications Company L.P. Data link layer trust signaling in communication network
CN107341407B (zh) * 2017-07-26 2021-03-23 惠州Tcl移动通信有限公司 基于终端的多安卓系统实现方法、存储介质及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW548584B (en) * 1999-09-01 2003-08-21 Intel Corp Fast write instruction for micro engine used in multithreaded parallel processor architecture
US20050081020A1 (en) * 2003-10-08 2005-04-14 Stmicroelectronics S.A. Multicontext processor architecture
US20050097252A1 (en) * 2003-10-29 2005-05-05 Kelley Brian H. System for providing transitions between operating modes of a device
US20090031396A1 (en) * 2007-07-24 2009-01-29 Samsung Electronics Co., Ltd. METHOD OF AND APPARATUS FOR MANAGING ACCESS PRIVILEGES IN CLDC OSGi ENVIRONMENT

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4054572B2 (ja) * 2001-12-17 2008-02-27 キヤノン株式会社 アプリケーション実行システム
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device
US7962746B2 (en) * 2005-06-01 2011-06-14 Panasonic Corporation Computer system and program creating device
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
KR101456489B1 (ko) * 2007-07-23 2014-10-31 삼성전자주식회사 CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW548584B (en) * 1999-09-01 2003-08-21 Intel Corp Fast write instruction for micro engine used in multithreaded parallel processor architecture
US20050081020A1 (en) * 2003-10-08 2005-04-14 Stmicroelectronics S.A. Multicontext processor architecture
US20050097252A1 (en) * 2003-10-29 2005-05-05 Kelley Brian H. System for providing transitions between operating modes of a device
US20090031396A1 (en) * 2007-07-24 2009-01-29 Samsung Electronics Co., Ltd. METHOD OF AND APPARATUS FOR MANAGING ACCESS PRIVILEGES IN CLDC OSGi ENVIRONMENT

Also Published As

Publication number Publication date
CN102054136B (zh) 2013-12-25
CN102054136A (zh) 2011-05-11
US20110107426A1 (en) 2011-05-05
US9207968B2 (en) 2015-12-08
TW201117101A (en) 2011-05-16
EP2323064B1 (en) 2017-07-19
EP2323064A1 (en) 2011-05-18

Similar Documents

Publication Publication Date Title
TWI417791B (zh) 計算系統與計算方法
CN105190550B (zh) 用于启动具有多个中央处理器的计算机系统的方法
RU2263343C2 (ru) Механизм для управления внешними прерываниями в системе виртуальных машин
JP5006366B2 (ja) デバイスの動作モード間の移行を提供するシステム
US8806502B2 (en) Batching resource requests in a portable computing device
TWI335536B (en) Information handling system (ihs) method and for updating a non-volatile memory (nvm) included in an information handling system
US20100211769A1 (en) Concurrent Execution of a Smartphone Operating System and a Desktop Operating System
US8631414B2 (en) Distributed resource management in a portable computing device
US20020161957A1 (en) Methods and systems for handling interrupts
US20210279095A1 (en) Interrupt Management for a Hypervisor
JP2014525105A (ja) Arm(登録商標)トラストゾーン実施のためのファームウェア基盤トラステッドプラットフォームモジュール(tpm)
JP2007510236A (ja) デバイスにおける特権機能を呼出すためのシステム
KR20110130435A (ko) 메모리 세그먼테이션 및 acpi 기반 컨텍스트 전환을 사용하는 운영 시스템 로딩
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US8984659B2 (en) Dual trust architecture
WO2022066301A1 (en) Phased boot process to dynamically initialize devices in a verified environment
US8943504B2 (en) Tracking and releasing resources placed on a deferred unlock list at the end of a transaction
JP2006164266A (ja) オペレーティングシステムのパフォーマンスの改善
US20100293559A1 (en) Sharing input/output (i/o) resources across multiple computing systems and/or environments
WO2022019061A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
JPH01279328A (ja) 入出力エミュレート機構

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees