TW200834373A - System and method for securely saving a program context to a shared memory - Google Patents

System and method for securely saving a program context to a shared memory Download PDF

Info

Publication number
TW200834373A
TW200834373A TW096134001A TW96134001A TW200834373A TW 200834373 A TW200834373 A TW 200834373A TW 096134001 A TW096134001 A TW 096134001A TW 96134001 A TW96134001 A TW 96134001A TW 200834373 A TW200834373 A TW 200834373A
Authority
TW
Taiwan
Prior art keywords
program
memory
data
security
isolated
Prior art date
Application number
TW096134001A
Other languages
English (en)
Inventor
Mark Richard Nutter
Kanna Shimizu
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200834373A publication Critical patent/TW200834373A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • 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
    • 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

Landscapes

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

Description

200834373 k 九、發明說明: 【發明所屬之技術領域】 产 本發明一般有關一種安全地儲存程式背/景的系統 及方法。尤其,本發明關於異質處理系統中一種儲存 隔離之專用處理單元之程式背景至共享記憶體的系統 及方法。 【先前技術】 9 包含多個異質處理器的計算系統變得越來越普 • 及。在此類計算系統環境中,一或多個通用處理器核 心結合一或多個專用處理器核心共同運作。通常,由 於通用處理器核心具有不同特性,因而其使用的指令 集架構(ISA)與專用或特定應用處理器所用的不同。具 有不同處理特性及ISA使得各處理器類型能夠有效實 行不同類型的工作。 ⑩ 由於處理器的不同特性,異質處理器引起各界的 關注,如多媒體、遊戲、及運用大量數值的應用程式 環境。在此種環境中,程式可以具有多個執行緒。這 些執行緒有些可以在通用處理器核心上執行,其他執 行緒則可在專用處理器核心上執行。儘管單一系統可 以包含多個專用處理器核心,但這些專用處理器核心 仍有可能被迫提示系統對目前運行於專用處理器核心 之一的執行緒進行工作切換,以載入及執行不同的執 6 200834373 行緒於專用處理器核心上。 對現有電腦系統造成的一個威脅是如駭客的惡意 使用者,這些人想盡辦法破壞應用程式使用的安全性 措施,以非法複製軟體(通常為了謀利),或入侵軟體使 系統載入及執行不同的軟體映像。把某個軟體版本換 成另一個軟體版本通常稱為「重送攻擊」。惡意使用者 所用的一個手法是獲取作業系統推出的軟體程式映 像,然後重複利用此映像。 因此,需要一種使用安全載入器安全地儲存軟體 程式的系統及方法。此外,還需要一種以有效防止重 送攻擊的方式安全地儲存程式的系統及方法。 【發明内容】 已發現使用安全地儲存程式背景至共享記憶體的 • 系統、方法、及程式產品可以解決上述挑戰。將中斷 傳送至在隔離模式下運行之專用處理器核心上運行的 安全程式。隔離的專用處理器核心包含於異質處理環 境中,異質處理環境包含通用處理器核心及專用處理 器核心(包含隔離的專用處理器)。每一異質處理器(異 質處理器核心)可以存取共享記憶體。當專用處理器核 心在隔離模式下運行時,其他異質處理器無法存取專 用處理器核心的本地記憶體。使用隨機持續安全性資 7 200834373 % 料將安全程式背景安全地儲存至共享記憶體。儲存於 隔離之專用處理器核心之本地記憶體的碼行連同資料 值(如安全程式所設定的暫存器設定值)一起被讀取。使 用持續安全性資料加密碼行及資料值,然後將加密的 碼行及資料值儲存於共享記憶體中。 在一具體實施例中,持續安全性資料係儲存於持 續儲存暫存器中。在此具體實施例中,持續安全性資 料係臨時亂數(nonce),及加密的資料值之一係臨時亂 數。在此具體實施例中,使用靜態加密金錄實行加密。 當專用處理器核心在隔離模式下運行時,可存取持續 儲存暫存器。 在另一具體實施例中,持續安全性資料是加密碼 行及資料值中所用之隨機產生的加密金鑰。在此具體 實施例中,持續安全性資料儲存於持續儲存暫存器 ⑩ 中,及當專用處理器核心在隔離模式下運行時,可存 取持續儲存暫存器。 在一具體實施例中,隔離的專用處理單元包含無 保護的開放記憶體空間,此空間係用於在隔離的專用 處理器核心及共享記憶體之間傳輸資料。在此具體實 施例中,將儲存於無保護之開放空間記憶體的值讀取 及寫入共享記憶體而未加密。 8 200834373 在另一具體實施例中,擷取一程式計數器,該程 式計數器對應在該安全程式内一中斷該安全程式之位 置。程式計數器加密後儲存於共享記憶體中。 在一具體實施例中,在安全程式的背景已儲存於 共享記憶體中之後,清除隔離的專用處理器核心的本 地記憶體,但持續儲存暫存器則維持不變。然後,專 用處理器核心返回非隔離模式。然後,將第二程式載 入現在以非隔離模式運行的專用處理單元中。然而, 持續儲存暫存器僅當專用處理器核心在隔離模式下運 行時可存取,因此第二程式無法存取持續儲存暫存器。 在另一具體實施例中,將安全程式的加密背景(資 料)輸入產生簽章累加器結果的簽章產生累積函數。將 簽章累加器結果加密並將其連同安全程式背景一起儲 存至共享記憶體。 上述為發明内容,按必要性含有簡單、一般性的 說明,因而省略部分細節;所以熟習本技術者應明白, 發明内容僅為說明性的,而非旨在以任何方式加以限 制。參考以下提出的非限制性詳細說明,即可明瞭本 發明僅如申請專利範圍所定義的其他方面、發明特 徵、及優點。 200834373 【實施方式】 來限:本發明範例的詳細說明,而不應用 的申=身。任何數,變化㈣在由說明後 、申明專利範圍定義的本發明範疇内。 式背示不同組件之間為安全地儲存及恢復程
塊圖。通用處理器核心100執行作 遠二並與柄為共享記憶體⑽的系統記憶體互 甘^用處理器核心的—個範例是域理元件(ppE), 1在圖15中詳細說明。專用處理器核心的—個範例 ^協作處理it件(SPE),其同樣在目15中詳細說明。 、圖15所見,此系統的一個特徵是可由通用處理器核 u及專用處理ϋ核心二者存取的共享記憶體(⑽。在 具體實施例中,通用處理器核心使用傳統讀取及儲 存命令讀取及儲存共享記憶體13〇中儲存的資料,SPE 則使用直接記憶體存取(DMA)命令透過DMA控制器 存取共享記憶體。 返回圖1’作業系統1〇5實行傳統的標準作業系統 及-般不由傳統作業系統實行的附加功能。 廷些非標準功能包含··安全地載入及恢復運行於專用 處理器核心之-上的安全程式(n5)、中斷目前運行於 —隔離模式運行之SPE上的安全程式⑽)、及載入不 使用安全載人$及在SPE於非隔離模式時執行的非安 10 200834373 4 全程式於SPE。 共享記憶體130用於儲存各種類型的資料。儲存 於共享記憶體130的一個資料類型是對應於運行於隔 離SPE(150)上但已中斷之安全程式的背景資料。背景 資料包含在中斷及推出之前由SPE之一執行之所儲存 安全程式的加密背景(135)。背景資料進一步包含存在 於執行安全程式時之開放區域(165)的未加密背景 9 (138)。開放區域165是無保護的記憶體區域,其可用 於SPE及共享記憶體間的DMA操作。在一具體實施 例中,由於開放區域是無保護的記憶體區域,因此未 加密開放區域165的背景。在一具體實施例中,安全 載入器(170)是自隔離SPE儲存及恢復單一程式的靜態 載入器。在一替代性具體實施例中,安全載入器是管 理多個運行於隔離SPE上之程式之背景(程式碼及資 料)的靜態載入器。在此替代性具體實施例中,載入器 ⑩ 的背景亦加密及儲存於共享記憶體130中。在此替代 性具體實施例中,安全載入器背景已經加密且包含關 於其正在管理之安全程式的資料(140)。此資料包含: 識別符資訊(安全程式背景儲存在共享記憶體中的位 址)、對應於所正在管理之程式的加密金鑰、及關於作 業系統在安全程式中中斷執行之位置的程式計數器資 200834373 在SPE 150以隔離模式操作時,如運行於ppe上 的其他程序無法存取其本地儲存器16〇〇SPE的安全本 地儲存器160用於儲存及執行安全載入器170及安全 程式的程式碼及資料175。在一具體實施例中,安全载 入器是儲存於唯讀記憶體的靜態程式。當SPE進入隔 離模式時,靜態安全載入器是載入的第一個程式。接 著’安全載入器負責將安全程式17〇載入SPE的本地 儲存器160並由SPE執行。在一具體實施例中,作業 系統寫入對應於應載入SPE信箱155之程式的識別卞夺 貧料,如指標;及在載入安全載入器後,作業系統自 SPE信箱讀取識別符資料。 ' 在女全程式接收來自作業系統的中斷時,其將分 士至安全載入器170,然後安全載入器負責安全地儲^ 安全程式背景(程式碼及資料)。安全載入器#由加密程 式碼/資料、將加密資料寫入開放區域165、及&^ DMA命令將加密資料寫入共享記憶體13〇(明確地 說,將資料寫入共享記憶體13〇中的資料區域13 安全地儲存安全程式的程式碼及資料。安全載入哭亦 儲存安全程式用於DMA操作的開放區域165狀離^ ' 於開放區域165不是記憶體的保護區域,安全截 在未加密資料的情況下儲存開放區域的狀態: 入器亦在不同SPE暫存器⑽中儲存多個值。spj 存器包含非持續暫存器185及持續儲存暫存器⑽ 200834373 全載入器使用持續儲存暫存_ _或加密金鑰。持C全性資料 ,如臨 可由運行於SPE上的程式.子暫存器在隔離模式中僅 隔離模式時首先自動载二由於系統在SPE進人 态是擷取安全性資料的窜 载入為,因此安全載入 、*寸的弟一個程序。 如果安全載入器正管理夕
入器更新其自己的背景,如式,則安全載 加密金餘、中斷安全程式 ^山女全程式背景的 資料。識別符;全;= 及女全程式f㈣射轉於共享記^r3Gmt 圖2為顯示作業系統請求專用處理器核心載入及 ,仃私式的絲®。在步驟2G5時,作業系統細正 在通用處理器核心(如,PPE)之一上執行,其接收在專 用處理器核心(如,SPE之一)上载入安全程式的請求。 作業糸統決定所請求的女全程式先前是否在SPE之一 上中斷(決策210)及已被推出。如果所請求的安全程式 先韵已經中斷,決策21 〇分支至「是」分支212,然後 在步驟215,作業系統擷取安全程式已在運行中之專用 處理器核心(SPE)的識別符。在一具體實施例中,在安 全程式在運行於該SPE上的載入器可存取恢復安全程 气所需安全性資料而被推出時正在運行的相同上 吹坆安全程式。 另一方面,如果先前未中斷安全程式, 13 200834373 則決策210分支至「否」分支218,然後在步驟220, 作業系統識別運行安全程式的專用處理器核心 (SPE),如目前可用的SPE。 在識別將用於運行安全程式的SPE之後,作業系 統在所識別的SPE上载入安全載入器(步驟225)。在〆 具體實施例中’作業系統設定將所識別的SPE設定為
模式的暫存器資料。在此具體實施例中,將spE 口又疋為隔離模式時,安全載入器從唯讀記憶體自動載 入並執行於所識別的SpE上。在步驟,作業系統 提供要在隔離的SPE上載入安全載入器之安全程式的 識別符。在一具體實施例中,將識別符寫入對應於所 識別SPE的信箱。在此具體實施例中,當安全載入器 開始時,安全載入器將對信箱輪詢(poll)識別符。在步 驟240,處理載入安全程式之請求的作業系統功能結 束。 轉向在所識別的SPE上發生的處理,處理開始於 步驟250,然後在步驟255,從唯讀記憶體載入安全載 入器,然後開始。在步驟260,安全載入器擷取要載入 之私式的識別符。如先前所述,在一具體實施例中, 在女全載入器輪詢信箱直至接收安全程式識別符的情 況下,自信箱擷取識別符。將決定這是否是安全程式 的第一次調用(invocation)(決策26S)。如果安全程式不 14 200834373 是要被恢復,而是要在SPE上第一次載入,則決策265 分支至「是」分支268,然後在步驟270,載入器實行 初始載入安全程式,及在步驟275,載入器設定程式計 數斋至安全程式的進入點。另一方面,如果安全程式 ,前運行於SPE上、被中斷、及現在正在恢復,則決 ^ 265分支至「否」分支278,然後恢復安全程式(預 疋程序280,見圖8至12及對應的恢復處理細節),及
在步驟285’安全載人㈣定程式計數器為作業系統中 斷安全程式的指令。 人哭ίΐί 2^G’安全程式(初始載人或恢復)自安全載 安中ί式計數器執行直至其中斷或完成。如果 ^ 1斷,則安全載入器在295退出之前,安全 地儲存安全程式背景。 ltd別女王 上之^全^業系統中斷運行於專用處理器核心 用處理器核;協作處理元件―"專 運行受保護儲存器中在圖3中,SPE 150正在 咖之受保護儲存器別。由亦運行於 儲存、及恢復安全r式文王私式載入器170載入、 (D A) 3! 0,其亦在受^護存安全载入器包含資料區域 作,其詳細說明如下。廿的^並用於儲存及恢復操 15 200834373 、 顯示SPE的處理步驟始於340。同樣地,顯示運 ^於通用處理器核心(如,主處理元件或「PPE」)上的 34f系統所採取的步驟始於350。在SPE處理的步驟 二’安全程式(330)已運行於SPE上。同時,在作業 二=處理的步驟352,作業系統接收使用目前用於運行 =全程式碼330之SPE的請求。在步驟354,作業系 別所請求的SPE目前正在運行安全程式。在步驟 ^ 6^業系統傳送中斷至所識別之請求s P E儲存安全 式月景及釋放控制SPE的SPE,以便SPE可執行另 一程序。, 返回SPE處理,在步驟358,spE接收在位爹(纪 #體位址)331中斷的安全程式。中斷致使安全擇式勿 全載人11。安全載人1接著儲存安全程武背景 /^^序%0,見圖4至7及對應的處理細節文爭)σ 之器儲存安全性資料於持續儲存暫存器中。妒 =。述’持績儲存暫存器可用於在隔離模式速行的 二由於安全載入器在SPE進入隔離模式時自動載 紅=全載人11能夠有效控制暫存H及其中儲存資科 之^…在步驟364 ’在安全载人_存安全程式背杀 =全載入器核發專用的SPE EXIT命令,以消除 二=續儲存暫存器以外的所有spE本地資料(纪德 丑曰存器)。在步驟366,使SPE離開隔離模式。 200834373 在一具體實施例中,運行於SPE上的安全載入器 管理一個安全程式的儲存及恢復。返回作業系統處 理,在此具體實施例中,在步驟362,作業系統在安全 載入器儲存安全程式背景及SPE成為可用時自SPE接 收信號。在此具體實施例中,在步驟368,作業系統載 入不在隔離模式中操作的第二程式。返回SPE處理, 在步驟370,非隔離模式程式(非安全程式375)載入 SPE後運行至完成(即,未被推出)。返回作業系統處 理,在步驟378,作業系統接收非隔離模式程式已完成 的信號,此時,作業系統已使安全程式背景恢復,因 此安全程式可以繼續執行(預定程序382,見圖8-12及 對應的處理細節文字)。然後,安全程式可運行直至作 業系統必須中斷安全程式或安全程式完成。返回SPE 處理,在預定程序380,安全載入器恢復安全程式背景 (見圖8-12及對應的處理細節)。在另一具體實施例 中,如圖5所說明,安全載入器可藉由連同安全程式 背景一起儲存安全載入器背景,管理運行於SPE上之 多於一個安全程式的背景。 圖4為顯不安全地儲存安全程式背景所採取之步 驟的流程圖。除了圖4顯示用於儲存安全程式背景的 步驟之外,還產生簽章,而簽章連同程式背景一起儲 存(見圖13及對應的處理細節)。處理開始於400,然 後,在步驟410,安全載入器擷取安全程式中斷時的記 17 200834373 憶體位址。在一具體實施例中, 取的最後程式計數器儲存於暫:t、f將安全載入器擷 例中,持續儲存暫存器小於12f 在—具體實施 存吻位元加密金餘。在此且^寬’因而無法儲 用於加密安全程式内容唯'體貝知例中,靜態金输 =#景巾。在此抑實二 ^才亂數。在一供選擇的具體每方士^' 產生 存器至少m位元寬且可容例中,持續儲存暫 此供選择的具體實_中,在 加密金鍮。在 位元的加密金鑰。「持嫜娈驟415產生至少128 儲存暫存㈣存於持續 步驟420,在將儲存(加=4 =密金輪。在 中配置記憶體。 王.式月厅、的共享記憶體 循環開始於425,以循语、s (180)。決定安全載入哭不同的SPE暫存器 440)。如果安全載入要每一個暫存器(決策 ^分支445,然後在步驟4 5 〇,將暫存器内= 暫:Ϊ載入器的資料區域31〇。如果安全載入器不心 暫存器,則決策425分支至「否八* 1而要 驟450。循環結束於46〇。」刀支5且“步 在釋放安全載人H需要的暫存 。。加密安全程式背景及將其寫人共享記憶體區 18 200834373 定粒序470見圖7及對應的處理細節)。在步驟, 生:身料(臨時亂數或產生的加密金鑰)寫入 ,牛(儲存於持續儲存暫存器190的安全性 一貝料480)。在步驟490,忠八善 σ ΕχΙΤ指令,以消除除;持 以外的所有SPE本地儲存器。抖 步驟全載入器背景所採取之 入器管理多個安全程iΜ北一具體實施例中,安全载 在儲存安全程式背景體實施例中, 了圖5顯示用於儲存安全载:二=背景。除 產生簽章’而簽章連同载入哭:::不的步驟之外’還 及對應的處理細節)。产;豕一起儲存(見圖13 別,安全载人器配置;^力始Ϊ;卿,然後在步驟 共享記憶體區域。亦如!^存(加费)安全载入器背景的 續館存暫存H小於丨則::在—具體實施例中,持 元加密金鑰。在此且立广寬,因而無法儲存128位 時氣數,其將與力:密tV, 存於持續儲存暫存器中。@景一起儲存且亦儲 ,元寬之供選擇的㈣ 存暫存H至少128 密金輸。如前述,「持二二,在步驟525產生加 5:續儲存暫存器中的 ’將持續安全性資料 ;H輪。在步驟 (守亂數或加密金鑰)儲存於 19 200834373 持續儲存暫存器中。如果臨時亂數正在使用中,在步 驟535使用靜態加密金鑰加密臨時亂數(在安全载人器、 中編碼)及寫入開放空間165的預設位置,然後在步驟 540,使用直接記憶體存取(DMA)命令,將加密的臨時 亂數寫入配置的記憶體區域。 循環開始於560,以循環通過安全載入器的資料區 域。安全載入器的資料區域(310)包含载入器背^ 550。安全載入器背景包含:對應於安全程式所 每-安全程式的程式識別符、程式計數器、及::: 鑰。程式識別符包含安全程式及將安全程式加密背景 儲存於共享記憶體之位址的唯一識別符,如控&數二 程式名稱。程式計數器(PC)是安全程式中安全程 式記憶體位址位置。加密金鑰(Key)是用於加密安全程 式背景的唯一加密金鑰。在循環内,對於安全載入器 所管理的每一安全程式(如,載入器背景55〇的每二 行),在步驟570加密行及將其寫入開放空間165的預 設位置。在步驟575,使用DMA命令寫入加密行,以 加密儲每於共享記憶體130中的載入器背景加密 二载入器背景包含··加密的臨時亂數(在使用臨時亂‘ :二?應於安全載入器管理之每一程式的程式識別 付(抆制數及位址)、程式計數器、及加密金鑰。 循環結束。在加密安全載 後,處理結束於595。 °月厅、亚馬入共享記憶體 20 200834373 圖6為顯示在安全載入 # 全地儲存程式背景所採㈣ 顯示用於儲存安全料除了圖6 早’而簽章連同程式背景〜赵計二r/疋座生双 處理細節)。在中斷安全程;=安 斷安全程式_記憶= ’安全載人器擁取中 加密金錄。此加密金餘未错=載生新的 ::b無論持續儲存暫存器大小,均不使用臨時:數。 ^ ί㈣’更新全狀器背景(550),以包含所產生 安全载人器配置 j中的記《,驗儲麵结式的加 = ^泌,更新安全載入器背景⑽),以包含安全^呈 =別符(安全程式的唯—識別符及配置儲存加密: 厅、於共享記憶體中的記憶體起始位址)。 物開始於65〇,簡環通料同的spE暫存器 660?。。決定f全載'器是否需要每—個暫存器(決策 「曰。如果安全載入器需要暫存器,決策66〇分支至 ^」分支665 ’然後在步驟67〇 ’將暫存器内容 ::全載入器的資料區域310。如果安全载入器不需 =器’則決策_分支至「否」分支675且燒過 ‘ 670。循環結束於680。 21 200834373 在釋放安全載入器需要的暫存器之後,安全載入 器加密安全程式背景及將其寫入共享記憶體區域(預 定程序685,見圖7及對應的處理細節文字)。在儲存 安全程式背景之後,儲存安全載入器背景(55 0)(預定程 序690,見圖5及對應的處理細節文字)。然後處理結 束於695。 圖7為顯示自隔離專用處理器(SPE)將背景安全地 寫入共享記憶體所採取之步驟的流程圖。除了圖7顯 示用於安全地寫入背景資料的步驟之外,還產生簽 章,而簽章連同資料一起寫入共享記憶體(見圖13及 對應的處理細節)。處理開始於700,然後循環開始於 710以循環通過開放空間。由於開放空間是無保護的儲 存,開放空間165中的資料在寫入共享記憶體130之 前並未加密(未加密資料區域138)。在循環内,在步驟 720,使用DMA命令將開放空間中的每一行寫入共享 記憶體130的未加密資料區域138。循環結束於725。 另一循環開始於730,以循環通過目前儲存安全程 式及其資料(Π5)的受保護儲存器行。此資料係在受保 護儲存器中,因此其在寫入共享記憶體之前已經加 密。在一具體實施例中,用於加密寫入共享記憶體之 資料的加密金鑰是在安全載入器中編碼的靜態金鑰, 在另一具體實施例中,加密金鑰在每次安全程式背景 22 200834373 寫入共享記憶體130時動態產生。在循環内,在步驟 740,加密每一行,.然後寫入在開放空間165内的預設 位置。在步驟750,使用DMA命令從預設位置將加密 的行寫入共享記憶體130的加密背景記憶體區域 135。然後,第二循環結束於760。 第三循環開始於770,以循環通過不同的SPE暫 存器。在此循環内,在步驟775,擷取安全程式設定的 值、如果暫存益正為安全載入器所用,則安全載入為 先^將暫存器值儲存於安全載入器的資料區域,因此 自安全載入器資料區域(310)擷取暫存器值。否則,自 SPE暫存器(180)擷取暫存器值。在步驟78〇,加密每 一暫存器值,然後寫入開放空間165的預設位置。可 使用在第二循環中用於加密安全程式碼及資料的相同 加岔金鑰加密暫存器值。在步驟785,使用DMA命令 從預设位置將加密的行寫入共享記憶體13〇的加密背 景記憶體區域135。然後,第三循環結束於79〇,及處 理在795返回叫用常式。 圖8為顯不作業系統請求在專用處理器核心上恢 復程式的流程圖。除了圖8顯示的恢復步驟之外,基 於恢復的資料產生簽章結果,及將此結果與先前儲存 的簽章結果進行比較(見圖14及對應的處理細節)。如 果蒼章匹配’則執行恢復的背景,否則SpE因錯誤退 23 200834373 出而不執行恢復的背等。 ^ ^顯示作業系統處理開始於 800,然後在步驟805,作蚩么 ^ 作業糸统擷取應在SPE上恢復 之安全程式的識別符。在舟職 τ 牧步騍810,SPE始於隔離模 式。在步驟815,作業系絲敕^ ^ ^ _ 死將女全程式識別符及位址寫 入共旱記憶體中的區域,及太 入 式識別符錄狄共享㈣82G,㈣存安全程 SPE^f ||(155)〇 仏體的位址(指標830)寫 ❿ SPE處理開始於85〇,妙 隔離模式·。在步驟請,使、855,SPE始於 865自記憶體區域86〇將 、、女全載入器程式碼 從持續儲存暫存器刚擷取^器自動載入卿,及 具體實施例中,其中安入恭、' =全性育料480。在一 背景,自加密的安全載以^官理多個安全程式的 北 戰入月景520恢餚忠入普突 背景(見圖9及關於恢復安 哭北^女王載入器 細節)。在此具體實_中:^、之對應的處理 安全載入器背景。在1—中具::=,用於解密 ;身料用於解密安全程式。在步驟二二= =信箱及狀恢復安全程式的 ^=輪, 全載入器使用儲存於SPE信箱155的=
St存,,識,“二^ 後,自二;己广、儲存於共子的位址。然 !〇 12及、^ ^恢復安全程細^序_,見圖 12及對應的處理細節)。 24 200834373 圖9為顯示自共旱記憶體安全地恢復安全載入器 为景所採取之步驟的流私圖。除了圖9顯示的恢復步 驟之外,基於恢復的資料產生簽章結果,及將此結果 與先前儲存的簽章結果進行比較(見圖14及對應的處 理細節)。如果簽章匹配,則執行恢復的背景,否則SpE 因錯誤退出而不執行恢极的背景。處理開始於900,然
後在步驟910,在SPE中載入安全载入器,然後啟始 處理。在一具體實施例中,從安全载入器儲存於唯讀 記憶體的靜態副本載入安全載入器。在一具體實施例 中’以在安全载入器程式碼中編碼的靜態加密金餘加 逸、女全載入器背景。在此具體實施例中,在儲存安d 載入器時,包含將臨時亂數加密及寫入安全載入器力 密背景。安全載入器使用DMA命令自共享記憶體讀写 加密背景的第一行(含有臨時亂數),並將加密行儲存方 開放空間I65的預設位置。在步驟925,在安全载入多 中編碼的靜態加密金鑰用於解密 2 行,以揭露臨時亂I . μ 罝存白 數與儲存於持;= 在步驟925,比較解密的臨時《 性資料48〇)。決定^ 士存态I90的臨時亂數(持續安i 臨時亂數不相同(代時亂數是否相同(決策930)。如為 景),則決策930分支表有「人企圖改變安全載入器1 誤結束於940。另〜至「否」分支935,及處理因袭 930分支至「是 方面’如果臨時亂數相同,則決| 」77支945,然後處理繼續。 25 200834373 储存=2=:=存器大到以 生的金翰(持㈣全性資料4 ^广機產 储存於持續儲存暫存)器力二;= :存=掏取持續安全性資料(隨機產生的加:: ’ 全載人器背景。在此具體實施例中未使 用臨%亂數’因此未實行步驟92〇至945。
返回圖9,在步驟950,使用DMA命令,自儲存 於共旱記憶體130的加密載入器背景14〇讀取含有安 全載入态背景的第一行至在SPE内之開放空間165的 預设位置。女全載入器背景中的每一行包含關於安全 载入器所管理的安全程式之一的資料。此資料包含: 用於加密安全程式背景的加密金鑰、對應於安全程式 的程式識別付(名稱、控制數等及位址)、及含中斷安全 程式之位址的程式計數器。在步驟960,使用加密金餘 (靜態金鑰或隨機產生的金鑰)解密寫入開放空間165 之預設位置的加密行。決定是否有更多的安全程式背 景由安全載入器管理(決策970)。如果還有更多正被管 理的安全程式背景,決策970分支至「是」分支975, 在此往回循環以自加密的載入器背景140讀取下一加 密行及解密背景。此循環繼續直到沒有更多要讀取的 安全程式背景,決策970在此分支至「否」分支980, 然後在預定程序990,恢復安全程式之一(作業系統所 26 200834373 請求的安全程式)(見圖10及對應的處理細節)。並德虛 理結束於995。 圖10為顯示使用管理多個安全程式之安全載入器 恢復程式为景所採取之步驟的流程圖。除了圖1〇顯示 的恢復步驟之外,基於恢復的資料產生簽章結果,及 將此結果與先前儲存的簽章結果進行比較(見圖14及 對應的處理細節文字)。如果簽章匹配,則執行恢復的 背景,否則SPE因錯誤退出而不執行恢復的背景。處 理開始於1000,然後在步驟1〇1〇,安全載入器擷取作 業系統105正請求從SPE信箱155恢復的程式識別 符。在一具體實施例中,指標已由作業系統1〇5寫入 信箱155,及安全載入器從指標參照的共享記憶體位置 擷取安全程式的識別符。在步驟1020,安全載入器在 安全載入器的背景中(310)找到對應於安全程式的資 料。載入器背景包含:安全程式識別符(唯一識別符, 如名稱或控制數以及安全程式加密背景儲存於共享記 憶體中的位址)、用於加密安全程式加密背景的加密金 錄、及中斷安全程式的程式計數器。 在步驟1025,女全載入器擷取用於安全程式背景 寫入共旱記憶體時加密所請求的安全程式背景的加密 金鑰。擷取的加密金鑰用於從共享記憶體擷取所請求 的安全程式背景,然後在SPE上恢復安全程式(預定程 27 200834373 序1030,見圖11及對應的處理細節)。在恢復安全程 式之後,其在SPE上執行直到其為作業系統所中斷或 直到完成(1040)。決定安全程式是否中斷或完成(決策 1050)。如果程式中斷,則決策1050分支至「是」分 支1055 ’然後使用新產生的金鑰儲存安全程式背景(見 圖4及對應的處理細節文字),且在預定程序1⑽〇儲 存女全載入斋背景(以對應於安全程式的新資料更 新)(見圖5及對應的處理細節文字)。如果安全程式運
行直到完成,則決策1050分支至「否」分支1〇65,然 後在步驟1G7G ’從安全載人n背景刪除對應於安 全程式的資料。織決定安全載人时 全載入器不再管理咖上的任何Si ο ΐ ί Γ至果安全載人器背景未清空,則決策 刀支至「否分支1〇76,妙 儲存安全载人哭北旦a m s “、、後在預疋程序1〇8〇 八态月景(見圖5及對應的處理鈿鈐、£ 方面’如果安全載入器背景現在清空,;里二即)。另- 支至「县八丄 月 則決策1075分 支疋」刀X支1〇78並繞過預定程序1〇8〇。 ΒΧ!τ^ ,存器中的所有資料,但不匕^儲存於SPE本 存器的資料。安全載入器處理儲存暫 圖"為顯示一自共享記憶體讀取加密背 28 200834373
核心二料恢復於依隔離模式運行之專用處理器 於自共享即二流程圖。除了圖11執行的讀取之外,基 此結果取的加密資料產生簽章結果,及將 麻的卢m刚儲存的簽章結果進打比較(見目14及對 二、=4文字)。如終章匹配,則執行恢復的背 厅、,否則SPE因錯誤退出而不執行恢復的背景。處理 開始於1100,然後決定加密背景135的映像簽章是否 匹配建立加密背景時採用的映像簽章(決策在 一具體實施例中,基於映像(即包含臨時亂數之所有待 儲存的資料,如果使用臨時亂數的話)產生簽章,簽章 係附加於映像,然後加密(映像、簽章等)及儲存一二事 物。在另一具體實施例中,首先加密映像,然後基於 加密的映像產生簽章,然後將簽章附加於映像。只能 以正確金鑰(可以是與加密金鑰相同或分開之認證金 鑰的金鑰)產生正確簽章。如果映像簽章不匹配(代表映 像已被改變或竄改),決策1101分支至「否」分支1102, 然後安全載入器處理在11〇3因錯誤退出。另一方面, 如果映像簽章匹配,則決策1101分支至「是」分支 1104 ’及安全載入器處理繼續。 決定是否使用臨時亂數保障安全程式背景(決策 1105)。如果不使用臨時亂數,則決策11〇5分支至「否」 分支1128並繞過步驟m〇至1125。另一方面,如果 使用臨時亂數,則決策1105分支至「是」分支11〇8, 29 200834373 然後在步驟mo ’使用DMA命令 165内的預汉位置。在步驟1115 〇 中編碼的,密寫入預設位置的臨時亂數 將解密數與館存於持續儲存 ==較。決定解密的臨時亂數是否與儲於= 以同(決策 理〜因錯誤退出:支器處 二,分支至「是」分t:12:果二二 處理繼續。 “、、俊女全载入器 _ 密背U3()’U DMA命令從共享記'it體130(加 存於開敌安全程^景的第—行,然後儲 預設^4= ^ 位置。在步驟1135解密寫人 亂數)Λ讀。在—具體實施例中(其中使用臨時 在另 吏用在安全載入器中編碼的靜態金輪解密行。 持物i體實施例(其中不需要臨時亂數),使“存於 暫存器190或擷取自安全載入器背景的隨機 式時Γ鑰解密行(在安全載入器能夠管理多個安全程 决定是否還有更多要讀取及解密的受保護儲存 ,策114〇)。決策1140分支至「是」分支1145, ,、回彳盾環以處理加密背景135的下一行,直到處理 200834373 加密背景135的所有行,決策1140在此分支至「否」 分支1150。 在預定程序Π60,將在中斷之前由安全程式設定 的暫存器值恢復至SPE暫存器(見圖12及對應的處理 細節文字)。在步驟1170,從儲存於共享記憶體130的 未加密資料138讀取未加密的資料行後,將其恢復至 0 開放空間165。恢復的開放空間現在看起來像開放空間 在安全程式中斷之前的樣子。如前述,開放空間用於 以隔離模式運行之SPE及共享記憶體之間的DMA通 信。這些DMA通信包含向/自共享記憶體傳送的資料 及代表先前DMA操作結果的返回程式碼值。在步驟 1180,擷取程式計數器(PC)在安全程式中斷時的位 址。如果安全載入器管理多個安全程式的背景,則PC 係擷取自安全載入器背景。如果安全載入器不在管理 多個安全程式的背景,且因此安全載入器的背景無法 • 使用,則PC係擷取自恢復的暫存器之一或寫入安全程 式加密背景(135)之加密背景的行。在步驟1190,重設 安全程式的程式計數器,及安全程式重新開始執行指 令,直到其完成或為作業系統所中斷。 圖12為顯示恢復對應於所恢復之程式背景之暫存 器值所採取之步驟的流程圖。除了圖12顯示的暫存器 恢復步驟之外,基於恢復的資料產生簽章結果,及將 31 200834373 ===簽/4,行比較(見— 否⑲E因錯誤退“二2復:背景’ 於1·、然後在㈣121η Γ ^、。處理開始
記憶體1300^1^1’㈣_命令,從共享 的第-行後,寫入S ^二I )讀取加密暫存器背景 步驟1220,安全載工間(165)的預設位置。在 將妹I計^载解㈣紐位㈣行,並 實:例中Γ在;j入器的資料區域(310)。在-具體 寫入預設位置::载:態金鎗用於解密 存暫存器或安全载入器背景擷且=力續儲 ;料:=及此金鎗用於^ 果射六、疋女王載入态是否使用暫存器(決策1230)。如 果暫存器為安全费入哭所田 > 如 分去17W I 則決策1230分支至「是丨 資料區域;將值寫入在安全載入器 如的暫讀存器儲存位置。另-方面, 「暫存态不為安全載入器所用,則決策123〇分支至 j」分支1245,然後在步驟125〇,從預設位置 孩的結果載入暫存器(SPE暫存器18〇)。 、 決定此是否是最後的暫存器處理(決策126〇)。如 果其非最後暫存器,則決策1260分支至「否」分支 12=’在此往回循環以DMA及處理暫存器背景的下一 加在仃。此循環繼續直到處理完最後暫存器,決策126〇 32 200834373 此時分支至「是」分支1270。 在步驟1280,清除為安全載入器所用的暫存器。 在一具體實施例中,這包含清除時可供安全程式使用 的持續儲存暫存器。在步驟1290,將任何寫入安全載 入器資料區域之暫時暫存器儲存器的暫存器值寫入其 相應的暫存器(SPE暫存器180)。其後處理結束於 • 1295 。 圖13為顯示在儲存安全程式或安全載入器之背景 時產生簽章所採取之步驟的流程圖。如先前參考其他 圖式所提,結合儲存各種背景資料(如,安全程式背 景、安全載入器背景、暫存器背景等)的其他程序實行 圖13顯示的步驟。處理開始於1300,然後在步驟 1310,初始化簽章結果。在步驟1320,加密第一個被 儲存的資料。根據儲存的背景而定,此資料可以是來 • 自SPE記憶體、暫存器等的資料行。在步驟1330,將 加密資料輸入更新簽章結果的簽章產生累積函數。在 步驟1340,將加密資料作為加密資料1350(如,安全 程式135的加密背景、安全載入器140的加密背景等) 寫入共享記憶體130。決定是否還有更多要加密及寫入 共享記憶體130的資料(決策1360)。如果還有更多要 寫入的資料,決策1360分支至「是」分支1365,在此 往回循環以加密下一資料、透過簽章累積函數(更新簽 33 200834373 章結果)運行下一加密資料、及將下一加密資料寫入共 旱把憶體。此循環繼續直到沒有更多要寫入的資料, 决裘1360在此分支至「否」分支Η?。。 在加密所有資料並寫入共享記憶體13〇之後,在 步,1375,加密最後簽章結果。在步驟1380,將加密 =最後簽章結果作為加密的最後簽章結果139〇寫入共 ⑩ 享記憶體。其後,簽章產生處理結束於1395。 、 士圖顯示在恢復安全程式或安全載入器之背景 生簽章及比較所產生簽章與儲存背景時所儲存之 ^所採取之步驟的流程圖。如先前參考其他圖 ^結合恢復各種背景資料(如,安全程式背景、安全 戰入益背景、暫存器背景等)的其他程序實行圖μ
Li步驟:簽章驗證處理開始於_,然後在步驟 二降’初σ化簽章結果。在步驟142〇 ;己=密資料儲存⑽讀取第_=^料: 體、景而定’此資料可以是來自SPE記憶 讀取的/:#的育料行。在步驟143G,將在步驟142( 更新簽章結果岐章產生累積涵 使用的累并使用的累積函數與圖13顯示之步驟133( 密的資料ί J數相同。返回圖14 ’在步驟144〇,將朝 存於SPE1 =於SPE(根據恢復的資料類型而^,如儲 、α恍體、SPE暫存器位置等)。決定是否還有 34 200834373 更多要從加密資料1350讀取的資料(決策145〇)。如果 還有更多要處理的資料,決策1450分支至「是」分支 1455,在此往回循環以讀取下一資料、透過累積函數 運行下一資料(進一步更新簽章結果)、及將資料儲存於 SPE。此循環繼繽直到從加密資料135〇讀取及處理所 有加密資料,決策1460在此分支至「否」分支。 在讀取及處理所有加密資料之後,在步驟147〇, 從共旱記憶體13〇項取儲存的簽章結果丨39〇,及解密 儲存的簽章結果。在步驟1475,比較在步驟1430產生 的簽章結果與步驟丨470解密的儲存簽章結果。決定簽 章是否匹配(決策1485)。如果簽章匹配,決策1485分 支至「是」分支1然後在SPE上執行恢復的背景。 另一方面,如果簽章不匹配(代表加密背景資料135〇 可能被竄改),決策1485分支至「否」分支1492,然 後恢復處理因錯誤結束且不執行恢復的背景。在一具 體實施例中,在SPE因錯誤退出時實行spE Εχιτ功 能(因此消除本地資料,但儲存於持續儲存暫存器的資 料例外)。 圖15是具有主處理器(通用處理器核心)及複數個 各自共享系統記憶,之次處理器(專用處理器核心)的 處理元件(異質處理為)的方塊圖。圖15描繪用於實施 本發明的異質處理器。主處理器元件(ΡΡΕ)丨5〇5包含處 35 200834373 理單元(PU)1510 ’其在一具體實施例中係當作主處理 器及運行作業系統的通用處理器核心。處理單元1510 例如是執行Linux作業系統的poweT PC核心。PPE 1505亦包含複數個協作處理元件(spe),如SPE 1545、 1565、及1585。SPE包含協作處理單元(SPU),其為當
作PU 1510、記憶體儲存單元、及本地儲存器之次處 理單元的專用處理器核心。例如,SPE 1545包含SPU 1560、MMU 1555、及本地儲存器 1559 ; SPE 1565 包 含SPU 1570、MMU 1575、及本地儲存器1579 ;及SPE 1585 包含 SPU 1590、MMU 1595、及本地儲存器 1599。 所有SPE可以使用相同的ISA,或可分別實施特 定應用ISA。每一 SPE經組態以實行不同的工作,因 此在一具體實施例中,可使用不同指令集存取每一 SPE。例如,如果PPE 1505將於無線通信系統中使用, 每一 SPE負責不同的處理工作,如調變、碼片率(chip rate)處理、編碼、網路介面連接等。在另—具體實施 例中’ SPE具有相同指令集並可互相平行使用,以實 行因平行處理而獲得好處的操作。 PPE 1505亦包含《 —階快取,如L2快取1515,以 讓PU 1510使用。此外,PPE 1505包含系統記憶體 1520,其由PU 1510及SPU共享。系統記憶體ι52〇 可儲存如運行中作業系統的映像(包含核心)、裝置驅動 36 200834373 程式、I/O組態等、執行中應用程式、及其他資料。 統記憶體1520包含一或多個SPE的本地儲存單元,其^ 映射於系統記憶體1520的區域。例如,本地儲存= 1559可映射於映射的區域1535,本地儲存器1579二 映射於映射的區域1540,及本地儲存器1599可映射於 映射的區域1542。PU 1510及SPE互相通信,並透過 組悲可在這些裝置之間傳送資料的匯流排1 5 1 7與系絶 記憶體1520通信。 ^ MMU負責在SPU本地儲存器及系統記憶體之間 傳輸資料。在一具體實施例中,MMU包含組態可實行 此功能的直接記憶體存取(DMA)控制器。pu 1510可程 式化MMIJ以控制哪些記憶體區域可用於每一 MMU。 藉由變更可用於每一 MMU的映射,pu可控制哪個 SPU可存取系統記憶體1520的哪個區域。依此方式, PU例如可指定系統記憶體作為特定SPU獨佔使用之 專用區域的區域。在一具體實施例中,PU 1510以及 其他使用記憶體映射的SPU可存取SPU本地儲存器。 在一具體實施例中,PU 1510管理所有SPU之共用系 統記憶體1520的記憶體映射。記憶體映射表可包含
PU 1510的L2快取1515、系統記憶體1520、及SPU 的共享本地儲存器。 在一具體實施例中,SPU在PU 1510的控制下處 37 200834373 理資料。SPU可如數位信號處理核心 微控制器核心等、或以上核心之組入、微處理器核心、 器是與特定SPU相關聯的儲存區=合。每—本地儲存 L每-SPU可組態本地儲存器作為t具體實施例 八旱儲存區域,或SPU可組能t 士 #用儲存區域、 用及部分共享的儲存器。、、、心〜、本地儲存器作部分專
例如 如禾需要大量本地 ύ U體〇另一方面,如果spu兩亚小曰仏丄 m QT>IT ^ 禾Μ^而要夕1的本地記憶體, j SPU可將其本地儲存器配置為1〇%用於專用記憶 -,及將其餘的90%用於共享記憶體。共享記憶體可 f Pui5i〇及其他SPU存取。spu可保留其本地儲存 斋的一部分,以用於在實行需要快速存取的工作時具 有快速之保證記憶體存取的SPU。SPU亦可在隔離模 式下運行,及在處理機密資料(例如,SPU正實行加密 密)時’將其本地儲存器保留為專用。當在隔離模式 時’一部分的SPU記憶體保留為非專用的「開放空 間」。開放空間可用於在SPU及共享記憶體間讀取及 寫入資料的DMA操作。 雖然圖15所描述的異質電腦系統能夠執行本文所 述程序’但此電腦系統僅是異質電腦系統的一個範 例。熟習本技術者應明白,許多其他電腦系統設計均 38 200834373 月匕夠實行本文所述程序。 本發明較佳實施例之一是用戶端應用程式,即指 令集(程式碼)或例如常駐於電腦隨機存取記憶體之程 式碼模組的其他功能性描述材料。在電腦還不需要使 用的時候,可將指令集儲存於另一電腦記憶體,例如 硬碟或抽取式記憶體,如光碟(最終用於CD R〇M)或軟 碟(最終用於軟碟機),或經由網際網路或其他電腦網路 =載。因此,可將本發明實施為在電腦中使用的電腦 程式產品。、此外,雖然所述各種方法便於在軟體選擇 =動或重組態的通用電腦中實施,但—般技術者應 2以實行所需方法步驟的硬體,體、或 專用仅備施行這些方法。功能性描述材料是將 訊。功能性描述材料包含但 二 =構“、規則、事實、計算功能定義、物件^ 示及說明本發明的特定具體實_,~ =白本技★者應明白,根據本文教示,可 ^ 申請專利範圍可將所有忒隨附 與本發明的真實精神及範嘴内。此二=其範1 明僅如隨㈣請專利範圍 ^ ,本發 白,在提及前面加上特定數量:主;=術者應明 J 土張7L件時,將在申 39 200834373 請專利範圍中明確列舉特定數量的元件,在未列舉的 情況下將沒有此類限制。對於有助於瞭解的非限制範 例,以下隨附申請專利範圍將在用句前面加上「至少 一」及「一或多個」來介紹主張元件。然而,不應將 使用此類用語視為前面加上「一」的主張元件代表限 制前面加上「一」之主張元件的任何特定申請專利範 圍為僅含有一個此類元件的發明,即使相同的申請專 0 利範圍在前面加上用語「一或多個」或「至少一」及 「一」;一樣不應將在t請專利範圍中使用「該、」、「該 等」視為代表限制前面加上「該:j、「該等」之主張元 件的任何特定申請專利範圍。 【圖式簡單說明】 熟習本技術者參考附圖即可明白本發明及瞭解本 發明許多目標、特徵、及優點。 ⑩ 圖1為顯不不同組件之間為安全地儲存及恢復程 式背景而互動的方塊圖; 圖2為顯示作業系統請求專用處理器核心載入及 執行程式的流程圖; 圖3為顯示作業系統中斷運行於專用處理器核心 上之安全程式的流程圖; 圖4為顯示安全地儲存程式背景所採取之步驟的 流程圖; 40 200834373 圖5為顯示安全地儲存安 ^ 步驟的流程圖; 戟入器背景所採取之 圖6為顯示在安全載入养总 全地儲存程式背景所採取之步個安全程式時安 圖7為顯示自隔離專用處 共旱記憶體所採取之步驟的流程冬·厅、女全地寫入 圖8為顯示作業系統請求右: 復程式的流程圖; 仕辱用處理器核心上恢 圖9為顯示自共享記憶體安 背景所採取之步驟的流程圖; 忟復安全载入器 圖10為顯示使用管理多個安 恢復程式背景所採取之步驟的流程^式之安全载入器 圖11為顯示安全載入器自共古:^ 景資料及將資料恢復於依隔離模:::思體讀取加密背 核心之細節的流程圖; 订之專用處理器 圖12為顯示恢復對應於所恢復 、 器值所採取之步驟的流程圖; &式背景之暫存 圖13為顯示在儲存安全程式咬&八 時產生簽章所採取之步驟的流程圖女王载入器之背景 圖14為顯示在恢復安全程式或^八 時產生簽章及比較所產生簽章與储存=载入為之背景 簽章所採取之步驟的流程圖;及子月厅、¥所儲存 圖15為包含複數個可實施本發 寬頻引擎的方塊圖。 x之異質處理 200834373 【主要元件符號說明】 100 105 110 130 135 138 140 150 155 160 165 170 175 180 ⑩ 185 190 310 330 375 480 550 830 通用處理器核心 作業系統 標準作業系統功能 共享記憶體 在中斷及推出之前由SPE之一執 行之所儲存安全程式的加密背景 開放區域的未加密背景 安全載入器的加密背景
隔離SPE SPE信箱 本地儲存器 開放區域 安全載入器 安全程式及其資料 暫存器 非持續暫存器 持續儲存暫存器 貢料區域 安全程式碼 非安全程式 安全性資料 載入器背景 指標 42 200834373
860 記憶體區域 865 靜態安全載入器程式碼 1350 加密的資料 1390 最後簽章結果 1505 主處理器元件(PPE) 1510 處理單元(PU) 1515 二階快取 1517 寬頻引擎匯流排 1520 系統記憶體 1530 , 應用程式 1535、1540、1542 映射的記憶體 1545 、 1565 、 1585 協作處理元件(SPE) 1559、1579、1599 本地儲存器

Claims (1)

  1. 200834373 十、申請專利範圍: 1 · 一種安全地儲存一程式背景(context)的電腦實施方 法,該方法包含: 中斷一運行於一專用處理器核心上的安全程式,該 專用處理器核心被包含於一異質處理器,該異質處 理器包含複數個包含該專用處理器核心的異質處理 器核心,該專用處理器核心以一隔離模式運行,其 中該隔離的專用處理器核心包含當談專用處理器核 心以該隔離模式運行時,其他被包含於該異質處理 器之處理器核心無法存取的一本地記憶體,其中該 等異質處理器核心之每一者可以存取一共享記憶 體; 回應該中斷,安全地儲存該安全程式背景於該共享 記憶體,其中該背景包含碼行(code lines)及資料值, 該儲存包含: 產生一隨機持續安全性資料; 參 自該隔離的專用處理核心之本地記憶體Ί買取該等 碼行; 自該隔離的專用處理器核心之本地記憶體Ί買取該等 資料值; 使用該產生的持續安全性資料加密該等碼行及該等 貧料值,及 儲存該等加密的碼行及資料值於該共享記憶體。 44 200834373 2. 如請求項1之方法,其進一步包含: 儲存該產生的持續安全性資料於一持續儲存暫存 器,其中該持續安全性資料係一臨時亂數,其中該 等資料值之一加密的資料值係該臨時亂數,及其中 使用一靜態加密金錄實行該加密。 3. 如請求項1之方法,其中該持續安全性資料係一用 I 於實行該加密的加密金錄,該方法進一步包含儲存 該持續安全性資料於一持續儲存暫存器。 4. 如請求項1之方法,其中該等資料值之至少一者係 一對應於一被包含於該隔離之專用處理單元之暫存 器的暫存器值。 5·如請求項1之方法,其中該隔離之專用處理單元包 含一無保護的開放記憶體空間,其用於在該隔離的 • 專用處理器核心及該共享記憶體之間傳輸資料,該 方法進一步包含: 讀取儲存於該無保護的開放空間記憶體的該等值; 及 將該無保護的開放空間記憶體寫入該共享記憶體。 6.如請求項1之方法,其進一步包含: 擷取一程式計數器,該程式計數器對應在該安全程 45 200834373 式内一中斷該安全程式之位置; 加密該程式計數器;及 儲存該加密的程式計數器於該共享記憶體。 7·如請求項1之方法,其進一步包含: 在該儲存之後: 清除該隔離的專用處理器核心之本地記憶體,該清 除使該持續儲存暫存器維持不變; 使該專用處理器核心返回一非隔離模式;及 將一第二程式載入運行於該非隔離模式之該專用處 理單元,其中該持續儲存暫存器僅在該專用處理器 核心運行於該隔離模式時可存取。 8. 如請求項1之方法,其進一步包含: 將該等加密的碼行及資料值輸入至一簽章產生函 數,該簽章產生函數導致一簽章結果;及 • 儲存該簽章結果於該共享記憶體。 9. 一種資訊處理系統,其包含: 一異質處理器,其具有一或多個專用處理器核心及 一或多個通用處理器核心,其中該等專用處理器核 心之一運行於一隔離模式; 一共享記憶體,其可由該等專用處理器核心及該等 通用處理裔核心存取, 46 200834373 一本地記憶體,其對應於該複數個異質處理器之每 一者,其中該對應於該隔離的專用處理器核心的本 地記憶體無法由其他異質處理器存取; 一指令集,其儲存於該等本地記憶體之一,其中該 等異質處理器之一或多個依序執行該指令集以實行 以下動作: 中斷一運行於該等以一隔離模式運行之專用處理器 核心之一上的安全程式,其中該隔離的專用處理器 核心包含其他異質處理器核心無法存取的一本地記 憶體;· 回應該中斷,安全地儲存該安全程式背景於該共享 記憶體,其中該背景包含碼行及資料值,該儲存包 含: 產生一隨機持續安全性資料; 自該隔離的專用處理ι§核心之本地記憶體f買取該等 碼行; 自該隔離的專用處理核心之本地記憶體讀取該等 資料值; 使用該產生的持續安全性資料加密該等碼行及該等 貢料值,及 儲存該等加密的碼行及資料值於該共享記憶體。 10.如請求項9之資訊處理系統,進一步包含·· 一或多個持續儲存暫存器,其中每一持續儲存暫存 47 200834373 器對應於該等專用處理器核心之一,及其中儲存於 該持績儲存暫存器的貲料僅當該專用處理器核心在 隔離模式下運行時可存取,其中該指令集進一步實 行以下動作: 儲存該產生的持續安全性資料於該持續儲存暫存 器,其中該持續安全性資料係一臨時亂數,其中該 等資料值之一加密的資料值係該臨時亂數,及其中 • 使用一靜態加密金鑰實行該加密。 11 ·如請求項9之資訊處理系統 ',其進一步包含: 一或多個持續儲存暫存器,其中每一持續儲存暫存 器對應於該等專用處理器核心之一,及其中儲存於 該持續儲存暫存器的資料僅當該專用處理器核心在 隔離模式下運行時可存取,其中該指令集進一步實 行以下動作: 隨機產生一加密金鑰,其中該持續安全性資料係該 _ 隨機產生的加密金錄; 使用該隨機產生的加密金鑰實行該加密;及 儲存該持續安全性資料於該持續儲存暫存器。 12.如請求項9之資訊處理系統,其中該等資料值之至 少一者係一對應於一被包含於該隔離之專用處理單 元之暫存器的暫存器值。 48 200834373 13. 如請求項9之資訊處理系統,其進一步包含: 一被包含於該隔離之專用處理器核心之無保護的開 放記憶體空間,該無保護的開放記憶體空間用於在 該隔離的專用處理器核心及該共享記憶體之間傳輸 資料,其中該指令集進一步實行以下動作·· 讀取儲存於該無保護的開放記憶體空間的該等值; 及 將該無保護的開放記憶體空間寫入該共享記憶體。 14. 如請求項9之資訊處理系統,其進一步包含: ' 一程式計數器,其對應於一在該安全程式内中斷該 安全程式的位置,其中該指令集進一步實行以下動 作: 擷取該程式計數器; 加密該程式計數器;及 儲存該加密的程式計數器於該共享記憶體。 15. 如請求項9之資訊處理系統,其進一步包含該進一 步實行以下動作的指令集: 在該儲存之後: 清除該隔離的專用處理咨核心之本地記憶體’該清 除使該持續儲存暫存器保持完整; 使該隔離的專用處理器核心返回一非隔離模式;及 將一第二程式載入運行於該非隔離模式之該專用處- 49 200834373 理單元,其中該持續儲存暫存器僅在該專用處理器 核心運行於該隔離模式時可存取。 16.如請求項9之資訊處理系統,進一步包含實行以下 動作的指令集: 將該等加密的碼行及資料值輸入至一簽章產生函 數,該簽章產生函數導致一簽章結果;及 儲存該簽章結果於該共享記憶體。 Π.—種儲存於一電腦可讀取媒體的電腦程式產品,其 包含功能性描述材料,該材料在由一資訊處理系統 執行時致使該資訊處理系統實行包含以下項目的動 作·· 安全地儲存一程式背景於一異質處理器之一共享記 憶體,該異質處理器具有一或多個專用處理器核心 及一或多個通用處理器核心,其中該等異質處理器 核心之每一者可以存取該共享記憶體,該安全儲存 包含功能性描述材料’該材料在由該貢訊處理糸統 執行時致使該資訊處理系統實行包含以下項目的附 加動作: 中斷一運行於該等以一隔離模式運行之專用處理器 核心之一上的安全程式,其中該隔離的專用處理器 核心包含其他異質處理器核心無法存取的一本地記 憶體; 50 200834373 回應該中斷,安全地儲存該安全程式背景於該共享 記憶體,其中該背景包含碼行及資料值,該儲存包 含: 產生一隨機持續安全性資料; 自該隔離的專用處理益核心之本地記憶體ί買取該等 碼行; 自該隔離的專用處理裔核心之本地記憶體ί買取該等 0 資料值; 使用該產生的持續安全性資料加密該等碼行及該等 資料值r及 儲存該等加密的碼行及資料值於該共享記憶體。 18. 如請求項17之電腦程式產品,其進一步包含功能性 描述材料,該材料在由該資訊處理系統執行時致使 該資訊處理系統實行包含以下項目的附加動作: 儲存該產生的持續安全性資料於一持續儲存暫存 • 器,其中該持續安全性資料係一臨時亂數,其中該 等資料值之一加密的資料值係該臨時亂數,及其中 使用一靜態加密金錄實行該加密。 19. 如請求項17之電腦程式產品,其中該持續安全性資 料係一用於實行該加密的加密金鑰,該電腦程式產 品進* 步包含功能性描述材料’該材料在由该貧訊 處理糸統執行時致使該貢訊處理糸統儲存該持續安 51 200834373 全性資料於一持續儲存暫存器。 20. 如請求項17之電腦程式產品,其中該隔離之專用處 理單元包含一無保護的開放記憶體空間,其用於在 該隔離的專用處理器核心及該共享記憶體之間傳輸 資料,該電腦程式產品進一步包含功能性描述材 料’該材料在由該貧訊處理糸統執行時致使該貧訊 處理系統實行包含以下項目的附加動作: 讀取儲存於該無保護的開放空間記憶體的該等值; 及 · 將該無保護的開放空間記憶體寫入該共享記憶體。 21. 如請求項17之電腦程式產品,其進一步包含功能性 描述材料,該材料在由該貧訊處理糸統執行時致使 該資訊處理系統實行包含以下項目的附加動作: 擷取一程式計數器,該程式計數器對應在該安全程 式内一中斷該安全程式之位置; 加密該程式計數器;及 儲存該加密的程式計數器於該共享記憶體。 22. 如請求項17之電腦程式產品,其進一步包含功能性 描述材料,該材料在由該貧訊處理糸統執行時致使 該資訊處理系統實行包含以下項目的附加動作: 在該儲存之後: 52 200834373 清除該隔離的專用處理器核心之本地記憶體,該清 除使該持續儲存暫存器保持完整; 使該專用處理器核心返回一非隔離模式;及 將一第二程式載入運行於非隔離模式之該專用處理 單元,其中該持續儲存暫存器僅在該專用處理器核 心運行於隔離模式時可存取。 23·如請求項17之電腦程式產品,其進一步包含功能性 描述材料’該材料在由該貢訊處理糸統執行時致使 該資訊處理系統實行包含以下項目的附加動作:-將該等加密的碼行及資料值輸入至一簽章產生函 數,該簽章產生函數導致一簽章結果;及 儲存該簽章結果於該共享記憶體。 53
TW096134001A 2006-09-12 2007-09-12 System and method for securely saving a program context to a shared memory TW200834373A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/530,937 US8095802B2 (en) 2006-09-12 2006-09-12 System and method for securely saving a program context to a shared memory

Publications (1)

Publication Number Publication Date
TW200834373A true TW200834373A (en) 2008-08-16

Family

ID=38543638

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096134001A TW200834373A (en) 2006-09-12 2007-09-12 System and method for securely saving a program context to a shared memory

Country Status (5)

Country Link
US (1) US8095802B2 (zh)
EP (1) EP2062185A1 (zh)
KR (1) KR101054981B1 (zh)
TW (1) TW200834373A (zh)
WO (1) WO2008031730A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1986122A1 (fr) * 2007-04-23 2008-10-29 Stmicroelectronics Sa Unite de traitement securisee
US7506176B1 (en) * 2008-03-10 2009-03-17 International Business Machines Corporation Encryption mechanism on multi-core processor
US8650653B2 (en) * 2009-12-24 2014-02-11 Intel Corporation Trusted graphics rendering for safer browsing on mobile devices
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
US8468365B2 (en) 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
FR2984552A1 (fr) * 2011-12-16 2013-06-21 France Telecom Procede et dispositif de gestion d'une application referencee par un dispositif
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US9967319B2 (en) * 2014-10-07 2018-05-08 Microsoft Technology Licensing, Llc Security context management in multi-tenant environments
US11513805B2 (en) * 2016-08-19 2022-11-29 Wisconsin Alumni Research Foundation Computer architecture with synergistic heterogeneous processors
US10528485B2 (en) * 2016-09-30 2020-01-07 Intel Corporation Method and apparatus for sharing security metadata memory space
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US11604671B2 (en) * 2020-03-19 2023-03-14 Red Hat, Inc. Secure virtual machine and peripheral device communication

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1183841A (zh) * 1995-02-13 1998-06-03 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
EP0881558B1 (en) * 1997-05-28 2003-04-16 Siemens Aktiengesellschaft Computer system for protecting software and a method for protecting software
US6529602B1 (en) * 1997-08-19 2003-03-04 Walker Digital, Llc Method and apparatus for the secure storage of audio signals
US6732275B1 (en) * 1999-03-23 2004-05-04 Samsung Electronics Co., Ltd. Securing encrypted files in a PC and PC peripheral environment
US6983374B2 (en) 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
JP2002229447A (ja) 2001-01-30 2002-08-14 Nippon Telegr & Teleph Corp <Ntt> デジタルコンテンツ流通における著作権保護システム
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7565659B2 (en) * 2004-07-15 2009-07-21 International Business Machines Corporation Light weight context switching
US7660769B2 (en) * 2006-09-12 2010-02-09 International Business Machines Corporation System and method for digital content player with secure processing vault

Also Published As

Publication number Publication date
WO2008031730A1 (en) 2008-03-20
US8095802B2 (en) 2012-01-10
KR101054981B1 (ko) 2011-08-05
EP2062185A1 (en) 2009-05-27
US20080066074A1 (en) 2008-03-13
KR20090051107A (ko) 2009-05-20

Similar Documents

Publication Publication Date Title
TW200834373A (en) System and method for securely saving a program context to a shared memory
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
US7945789B2 (en) System and method for securely restoring a program context from a shared memory
CN107659632B (zh) 一种文件加解密方法、装置及计算机可读存储介质
WO2016173264A1 (zh) 电子数据保护方法、装置及终端设备
US8375437B2 (en) Hardware supported virtualized cryptographic service
JP5904505B2 (ja) 仮想ディスクを暗号化及び復号するためのコンピュータ可読ストレージ媒体
JP5837208B2 (ja) 記憶装置のロック解除
US20220092206A1 (en) File system metadata protection
JP5572834B2 (ja) 仮想化を用いた動画コンテンツの保護
TWI321277B (en) System and method of using a protected non-volatile memory
CN106063185A (zh) 用于安全地共享数据的方法和装置
KR102030858B1 (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
JP2002232417A (ja) マイクロプロセッサ
TW201535145A (zh) 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
TW200527872A (en) System and method for securing executable code
TW200816767A (en) System and method for trusted data processing
US20090208002A1 (en) Preventing replay attacks in encrypted file systems
US7266688B2 (en) Methods for improved security of software applications
TW201234210A (en) Method for loading a code of at least one software module
WO2021218278A1 (zh) 数据处理的方法以及计算设备
JP2005196257A (ja) マイクロプロセッサ
WO2017067513A1 (zh) 数据处理方法及存储网关
TWI362207B (en) Key cache management through multiple localities
US20170068822A1 (en) Method for binding a software application&#39;s functionality to specific storage media