TW200817970A - System and method for secure boot across a plurality of processors - Google Patents

System and method for secure boot across a plurality of processors Download PDF

Info

Publication number
TW200817970A
TW200817970A TW096119979A TW96119979A TW200817970A TW 200817970 A TW200817970 A TW 200817970A TW 096119979 A TW096119979 A TW 096119979A TW 96119979 A TW96119979 A TW 96119979A TW 200817970 A TW200817970 A TW 200817970A
Authority
TW
Taiwan
Prior art keywords
boot
processor
code
processors
boot code
Prior art date
Application number
TW096119979A
Other languages
English (en)
Inventor
Clark Mckerall O'niell
Jonathan James Dement
Jason Nathaniel Dale
Christopher John Spandikow
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 TW200817970A publication Critical patent/TW200817970A/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Description

200817970 九、發明說明: f發明所屬之技術領域】 本申請案-般而言係關於一種經改良之資料處理系統公 及方法。更特定言之’本申請案係針對一種用於橫越複數 個處理器之安全開機之系統以及方法。 【先前技術】 隨著社會曰益依賴於資訊之電子通信及儲存,對數位資 訊(、諸如個人資訊及數位權利管理(drm))之安全性的考慮 已增加。此外,電腦嗤定芬甘 … 客及其他未經授權之闖入者進入計 异系統的技巧已在最近幾年中 、戍平中獒鬲。結果,許多努力已加 入到用於計算設備之忠入&么 備之女王性系統的發展中來,使得可佯镬 此敏感性數位資邙以备认+ JΛ 数位貝Λ以免於未經授權之存取。 一種入侵者可獲得對一 曾 。十t糸統之存取的方式係經由電 千"面及其他可觀測之雷 兹或熱活動來觀測一計算系統之 開機活動。藉由以此方式 ^ 飞靦,則開機活動,入侵者可推斷由 開機處理器輸入及輸出之 17貝枓^唬、在處理器上執行之 p 口袷决异法及其類似物。 目此貝矾,入知者可偵測開機 序列中可進行未經授權 催之彳又入的點。此外,就Α中兩 全性密鑰以用於該系統之心 υ而要女 者 μ、 4祛之女全開機序列而言,入侵 者了倒換開機處理器所 ^ 用之加岔凟鼻法以獲得對安全性 且藉此被給予對計算系統之完整存取。因為計 二者=安全性通常取決於開機過程之安全性,所以當 入仏者獍得對開機序列之 於危險中。 取日守,整個系統之安全性便處 121296.doc 200817970 因此’具有一種增加監控-處理器之開機序列之難度以 便,系統更女全而免於未經授權之侵入的裝置及方法將係 有益的。 Μ 【發明内容】 Γ Ο 说明性實施例提供—種歸選擇—隨機處理器以使—多 處理器系統開機及用於橫越複數個處理器來提供_安全開 機=系、先以及方法。藉由隨機化哪一處理器將用於使多處 …系、'’先開機,可使未經授權之人員為挫敗該系統之安全 ;:抆電子介面、熱活動及其他電磁活動以獲得關於開 列之貧訊的能力變得更困難。舉例而言,在多處理器 糸統中,想要成為入侵者的人員將需要執行開機序列許多 =㈣控-單個處理器以希望其可被隨機選作為開機處 里益,或在開機時監控所有處理器以便判定哪 實際之開機處理器。兩種選項在想要成為入侵者的人2 二 =大,,其可充當一威攝物以防實際上試圖監 :::…獲得開機序列資訊或至少將顯著延遲添加至想 …為入侵者的人員用以損害該系統將花費的時間。 機實施例之機制而言’將控制多處理器系統之開 (諸“透邏輯(pervasive㈣提供於多處理器系統 (遺如晶片上系統)上。、炎 口口、 ^ α透系統包括一隨機事件產生 益’該隨機事件產生哭左嬙、登裡 οσ 生4機選擇多處理器系統中之哪一虛 理态將為執行開機碼藉 片王”。β 猎此H統進人—操作狀態的開機 :相二開機處理器之隨機選擇,設定-與開機處理 為相關聯之組態位开甘- 其扣不被處理器將為開機處理器。 J21296.doc 200817970 ;後,為所選擇之開機處理器提供該(等)必需之安全性密 錄以用於將多處理器系統安全開機為—操作狀能。 入=些說明性實施例中’儘管隨機選擇之處理器執行安 但多處理器系統之其他處理器執行用以遮蔽 :::女全開機操作的操作。此遮蔽可涉及執行除開機碼序 “之其他導致處理器產生電磁及/或熱輪出的碼序列, Ο ϋ 監控’則該等電磁及/或熱輸出將使得該聞 :難以分辨哪一處理器正執行實際安全開機操作。 機旦Γ可產生一不同碼序列之方式係藉由將執行迭代-隨 ^之循環的隨機延遲元件插人於開機碼中。以此方式, 二處理器可執行開機碼(但係以不同延遲量),藉此導致 =不㈣磁及熱簽名。自―聞人者之觀點而言,由於此 =而使传將非常難以辨別實際開機處理器與多處理器系 統中之其他處理器。 隨::說Γ!施例中,由其他處理器執行之碼序列與 入:理益所執行之碼序列相同’但其具有虛設安 在因此,此等其他處理器操作且在—入侵者看來 Γ 執行安全開機操作。然而,若監控該等處理 戶^1可識別f假電磁及熱輸出,其使得聞人者難以判定 摔處理益是否為實際隨機選擇之正在執行安全開機 刼作的處理器。 在另一說明性實施例中,蕤 行隨機選擇之開機广理1, 處設處理器來執 熱等等監控裝置之==了設處理器自電磁、 ’、、 ,、似乎/、由於在此虛設處理器 121296.doc 200817970 上執行不同於開機碼序列之 重新引導至此卢…以藉此將該系統上之攻擊 土 ¥ ^處〜而為獨特的。以此方式,者_門 入者試圖藉由避開安全性機制田闖 存取一並不且右#f夕走 存取糸統時,該闖入者僅 存取亚不具有對多處理H統之其餘部分 虛設處理器。 只k存取的 在其他說明性實施例中, 個卢搜” U 了鉍越多處理器系統中之複數 個處心來分布開機碼序列。藉由橫越多處理Μ Ο Ο 複數個處理器來分布開機瑪序 , 於開機序列之完整資1且|^ 仙害以便獲得關 …错此回避安全性措施之處理器的 數目得以增加。因此,說明性餘f ^ Λ"例之分布式開機操作較 入导個女全核心之多處理器資料處理系統可更為安 王。此外,藉由分布開機操作,使得若開機操作中之任— 部分被損害’則開機操作失敗,藉此防止-未經授權之個 人回避該系統之安全性。 就此σ兒月性貝施例而言,將開機碼序列分割為複數個分 割部分,使得可將每—分割部分提供至多處理器系统之一 罐理器。當執行開機碼序列之每一分割部分時,彼分 d邛刀必須在開機碼序列可在另一處理器上進行之前在其 之各別處理态上正確地完成。使用一安全通信機制以傳達 開機碼序列之_先前分割部分的圓滿完成。此安全通信機 制可包括一指示先前會期未被損害之安全性符記,諸如一 加密密碼或其他安全性識別符(例如,_公用/私密加密密 鑰對)。以此方式,產生了必須圓滿完成之一連串相關,,合 期,、 曰 121296.doc 10 200817970 =機碼之分布式執行中所涉及之處理器可 糸統中之所有處理器或為多處 °° 組。舉例而言,可使用—…:㈣之處理器之-子 之用於選擇一單個開機處理 文射田述 擇待用於以—分布 擇機制)以隨機選 „ 式使以統開機的複數個開機處理 :::卜’可隨機選擇由處理器所執行之開機碼的特
C
Lj 使得就每—加電復位(酿)操作而言,相同處理 ::相Π:或可不執行與—先前P〇R操作中之開機碼分 为相同的開機碼分割部分。因此,刀^ 中涉及哪些處理器以及關於每 將:/開機操作 割部分而執行隨機化。 嗔仃何開機碼分 2理器系統之其他處理器(亦即, 分布式開機操作期間不執行先前所描述之各=在 Π 夕者的任何工作或可執行先前所圹、f夕 各種遮蔽碼說明性實施例中之一或多者的二 蔽在處理器之隨機逆 …",序列以遮 L 選擇之子組上的開機碼執行。換t之, 、本说明性實施例之分布式開機碼序 述之說明,W:每a /丨丄 /、尤别戶斤4田 兄月性貝施例中之-或多者組合。 产二::明性實施例中,在一具有複數個處理器之資料 處理系統中提供一鍤田μ & 1 0口 <貝枓 該方法可包含:、將門滅 料處理系統開機的方法。 及將一來自二㈣碼分割為複數個開機碼分割部分; 入資料處理季统之…… 開械碼分割部分載 中之每—者、、=數個處理器内的複數個開機處理器 複數個開機碼分割部分可作為複數個會 121296.doc •】】- 200817970 /月而在其之各別相關聯之開 ,該資料處理系_1開機:分:〗部:::行,以藉此 機處理器之數目。 。刀數目可等於開 若任-會料致-開機喝分割部分之 執行,則資料處理系統之開機可失敗…力或被損害 器中之—Γ 聯之會期中的執行時,該複數個處理 目關聯之執行該開機碼分割部分的門播卢 將該開機碼分割部分刀的開枝處理器可 列中之—下 發4號至與一開機碼序 π刀割部分相關聯的另一間機f g 在複數個開機碼分室J邻八…開械處理益。 執行該複數個⑴/ 關聯之開機處理器上 巩订。亥複數個開機碼分 信利用_安 刀了 U對開機處理器間之通 之各別她 確保該複數個開機碼分割部分在其 制可包含以下中之至小::上的未抽害執行。該安全性機 石王陡:,在開機處理器之間傳遞—數位簽名;使用一密 二=一開機石馬分割部分之一總和檢查碼;或使用信號 A用植、鑰/私密密鑰加密。 該方法可進一I6 v匕έ自該複數個處理器隨機選擇開機處 σσ /、中忒等開機處理器係該複數個處理器之一子組。 σ在心旻數個處理器之未被隨機選擇為開機處理器的處理 器上執行遮蔽碼。 it匕夕卜,'ii ''i- ~r ϋ匕含隨機選擇哪一開機碼分割部分與每 開機處理為相關聯。每一開機碼分割部分可不同於其他 開機碼分割部分。 121296.doc 200817970 置中二菊鏈配置、一環形配置或—主控/受押配 中之-者來配置用於在開機處理器上執行開二 刀之會期。資料處理系統可為一異質晶片上多處理= 統’其具有一根據一第一指令集而操作之第—處理器:: 二固根據一不同於該第-指令集之第二指令集而操作: 弟一處理器。 卜曰] 八:另-說明性實施例中’提供一種資料處理系統 =數個處理器、-純至該複數個處判之開機碼儲存 ^及輕接至該複數個處理器之渗透邏輯。該開機碼儲存器 了儲存破分割為複數個開機碼分割部分之開機碼。該參透 _可執行上文關於先前所描述之說明性方法實施例而概 迷的操作中之各種操作及組合。 人另口兒明性員%例中,提供一種電腦程式產品,其包 含-具有-電腦可讀取程式之電腦可用媒體。當在一資料 處理系統上執行時,該電腦可讀取程式可導致該資料處理 糸統執行上文關於先前所描述之說明性方法實施例而概述 的操作中之各種操作及組合。 本發明之此等及其他特徵以及優勢將在本發明之例示性 μ例之以下[實施方式]中予以描ϋ,且雲於該[實施方 工]’對於-般熟習此項技術者而言,本發明之此等及其 他特徵以及優勢將變得顯而易見。 【實施方式】 _ :月&貝^例提供了一種用於選擇- 機處理器以開機 夕處理器系統之裝置及方法。可實施該等說明性實施例 121296.doc -13 - 200817970 以用於任何多處理器系統,其中可選擇該等處理器中之一 者以使該多處理器系統開機。因此,該等說明性實施例之 機制可適用於對稱多處理器(SMP)系統、異質多處理器系 統、非相干不對稱多處理器系統及其類似系統。 其中可貫施該等說明性實施例之一個多處理器系統為購 onk New York之 internati〇nai Business Machines Inc·的 Cell覓頻引擎(Cell Br〇adband E 叫 ine)(CBE)。將表 〇 彳CBE架肖來描述說明性實施例,然而應瞭解,該等說明 性實施例之描述僅為例示性描述且並不意欲陳述或暗示關 於其中可實施說明性實施例之機制的多處理器系統之類型 或組態的任何限制。可在不背離本發明之精神及範疇的前 提下對所描述之CBE架構作出許多修改。 圖1係其中可實施本發明之態樣之一資料處理系統的例 不性方塊圖。圖1中所示之例示性資料處理系統係CeU寬頻 引擎(CBE)貝料處理系統之一實例。如一般熟習此項技術 〇 者在閱讀以下描述之後將不難顯而易見:儘管將在本發明 之較佳實施例之描述中使用CBE,但本發明並不限於此。 士圖1中所示,CBE 100包括:一功率處理器元件 (ΡΡΕ)ιιο,其具有一功率處理器單元(ppu)n6及其之u快 取區Π2及L2快取區114 ;及多個協同處理器元件 ()12〇 134,每一 SPE具有其自身之協同處理器單元 (SPU)14(M54、,己憶體流控制155]62、區域記憶體或儲存 器(LS)163-170,及匯流排介面單元(BIU單元)i8(M94,其 可為(例如)一組合式直接記憶體存取(DMa)、記憶體管理 】21296.doc -14- 200817970 單元(MMU)及匯流排介面單元。亦提供一高頻寬内部元件 互連匯流排(EIB) 196、一匯流排介面控制器(bic) 197及一 記憶體介面控制器(MIC) 198。 CBE 100可為一晶片上系統,使得可將圖i中所繪示之元 件中之每一元件提供於一單個微處理器晶片上。此外, CBE 100為一異質處理環境,其中spu中之每一者可自該 系統中之其他SPU中之每一 SPU接收不同指令。此外,用 〇 於該等SPU之指令集不同於ppu之指令集,例如,Ppu可 執行基於精簡指令集電腦(RISC)之指令,而SPU執行單指 令多資料(SIMD)指令。 SPE 120-134耦接至彼此且經由EIB 196而耦接至^快取 區 114。另外,SPE 120-134 經由 EIB 196 而麵接至]VIIC 198 及BIC 197。MIC 198提供一至共用記憶體199之通信介 面。BIC 197提供一在CBE 1〇〇與其他外部匯流排及設備 (諸如SouthBridgeTM通信處理器)之間的通信介面。
Cj PPE 110為一雙線緒PPE 110。此雙線緒PPE 11〇與八個 SPE 120-134之組合使得CBE 100能夠處理1〇個同時線緒及 超過128個未處理之記憶體請求。ppE 11〇充當一用於其他 八個處理大多數計算負荷之spE i 2〇_丨34的控制器。舉例 而a ’可使用PPE 110來執行習知作業系統,而spE丨Μ-ΐ 34執行 向量化 浮點碼執行。 SPE 12〇-134包含一協同處理單元(Spu)14〇_i54、記憶體 流控制單元1 55-162、區域記憶體或儲存器163-17〇及匯流 排介面單兀1 80- i 94。在一個例示性實施例中,區域記憶 121296.doc 200817970 體或儲存器163-〗70包含一為PPE 110可見之256 KB指令及 資料d丨思體且可直接由軟體來定址。 ΡΡΕ 11 0可載入具有小程式或線緒之SPE 120 -1 34,從而 將該等SPE鏈接在一起以在一複雜操作中處理每一步驟。 , 舉例而言,一併入有CBE 1〇〇之視訊轉換器可載入用於讀 _ 取DVD、視訊及音訊解碼之程式且加以顯示,且資料將自 SPE傳遞至spE直至其最終在輸出顯示器上結束。在* 〇Ηζ f) 下,每一 SPE 12(M34給出理論之32 GFLOPS之效能,其中 PPE 1 1 〇具有一類似之效能水平。 記憶體流控制單元(MFC)155-162充當一用於一 spu至該 系統之剩餘部分及其他元件的介面。MFC 155_162提供用 於在主儲存器與區域儲存器163-17〇之間進行資料轉移、 保護及同步的主要機制。邏輯上存在一用於一處理器中之 每一 SPU的MFC。某些實施例可在多個spu之間共用一單 個MFC之資源。在此狀況下,針對]^17(:所界定之所有設施 U 及命令必須呈現為獨立於用於每一 SPU之軟體。共用一 MFC之效用被限制於實施例相關設施及命令。 說明性實施例提供了 一種用於選擇一隨機處理器(諸如 SPE 120-134中之-者)以使多處理器系統(例如,cbe⑽) ^ 開機的裝置及方法。藉由隨機化哪一 SPE 120-134將用於 使CBE 100開機,使得未經授權之人員為挫敗cbe ^㈧之 安全性而監控電子介面、熱活動及其他電磁活動以獲得關 於開機序列之資訊的能力變得更加困難。 就說明性實施例之機制而言,將控制CBE ι〇〇之開機操 121296.doc -16- 200817970 作的滲透邏輯193提供於CBE 100上。滲透邏輯193包括一 隨機事件產生器,該隨機事件產生器隨機選擇哪一 §ρΕ 120-1 34將為執行開機碼以藉此使系統處於一操作狀態的 開機處理器。基於對開機SPE 12〇-134之隨機選擇,設定 一與所選擇之SPE(例如,SPE 120)相關聯之組態位元來指 示彼SPE 120將為實際開機處理器。其後,為所選擇之spE 120提供必需之安全性密鑰以用於cBE 1〇〇 Ο Ο 安全開機。當被伽成功地完成安全開機程二= 自一安全狀態(其中MIC 198、共用記憶體199及bic 之 一除至T文圖2中之快⑽⑽230之通信鏈路之外的部分 皆被關閉且被防止操作)轉變至—解鎖狀態。—旦安全娜 進入解鎖狀悲’則其將藉由執行由快閃r〇m咖所提供之 加密碼而起始完全難咖198、脱⑽及所有其他處理 :(SPE及PPE)之過程(稱作”訓練”之過程)。關於用於CelI “頻引擎中之女全開機過程的更多資訊,請參看同在申請 中及共同讓渡之美國專利申請公開案第2005咖944號, 其以引用之方式併入本文中。 在某些說明性實施例中’儘管隨機 安全開機操作,但1他$沖μ。 執仃 他SPE 122_134執行用以 全開機操作之操作。此诚鈦7、止 L敝具貝女 π蔽可涉及執行除開機碼序列之外 的導致SPE 122-134產生雷φ ^ ^ ^ ^ ?iJ , „ Λ . Α 電磁及/或熱輸出的其他碼序 馬 I控,則該等輸出將使該闖入者難以分 辨哪一 SPE 12(M34正在執 有難以刀 ^女 執仃μ際女全開機操作。 一種可產生不同碼序列 J之方式係糟由將執行迭代一隨機 12I296.doc 200817970 量之循環的隨機延遲元件插入於開機碼中。添加此等隨機 延遲兀件使得當使該處理器開機時,安全開機演算法將以 -隨機方式改變以產生不同電磁及熱簽名,藉此使得難以 隨時間的過去來比較兩個不同開機操作。以此方式,每— SPE 12G-134可執行(但係以不同延遲量)開機碼,藉此導致 產生不同電磁及熱簽名。此外,相同spE 12〇_134將在每 次其執行安全開機碼時產生不同電磁及熱簽名。自一闖入 Ο
者之觀點而言’將由於此遮蔽而使得非常難以辨別實際開 機SPE 120與CBE 1〇〇中之其他8叩122 134。 在另-說明性實施例中,由其他咖⑵心執行之碼 序列為隨機選擇之S P E i 2 〇所執行之相同開機碼序列但具 有虛設安全性密鑰。因此,此等其他spE i22_i34操作且 在-闖入者看來似乎該等SPE 122_134正在執行安全開機 喿乍而右L控s亥等SPE 122_134,則可識別使得聞 ^者難以判定所監控之spE是否為實際隨機選擇之正在執 行安全開機操作的SPE 12()的虛假電、電磁及熱輸出。 隹乃一說明性實施例中 二)來執行隨機選擇之開機卿12G的遮蔽。自—電磁、熱 等&控裝置之觀點而言’該虛設spE呈現為似乎其由於在 此虛設SPE上執行不同於開機碼序列的過程以藉此將CBE ⑽上#之攻擊重新引導至此虛設SPE而為獨特#。以此方 式,當一闖入者試圖冑由避開安全性機制來存取該系統 ,m者僅存取一並不具有對CBE _之剩餘部份之 貫際存取的虛設咖。此外,若入侵者損害虛設SPE且試 ί 21296.doc -J8- 200817970 圖執行碼,則虛設SPE可接著關閉CBE 100之剩餘部份以 防止進一步之入侵嘗試。
Ο 現將更詳細地描述上文所提及之說明性實施例中之每一 者。應瞭解,儘管將在本文中獨立地描述每一說明性實施 例,但可以各種方式組合該等說明性實施例以便達成多處 理器系統(例如,CBE 100)之甚至更大的安全性。因此, 說明性實施例之被認為適合於一特定情形及多處理器環境 的任一組合意欲在本發明之精神及範疇内。 圖2係一說明根據一說明性實施例之隨機開機處理器選 擇機制之主要操作組件的例示圖。應瞭解,為解釋該等說 明性實施例之簡單性起見,圖2僅詳細展示了多處理器系 統中之一個處理器。然而,應瞭解,多處理器系統之該等 處理器中之每_者均具有元件之類似配置,且以類似於圖 2中明確展示之處理器之方式的方式而操作。可在不背離 本發明之精神及範疇的前提下將任何數目之處理器包括於 多處理器系統中。然而’為解釋說明性實施例之目的,將 假定處理器之數目為如圖i中所示之咖架構中的八個。 圓中所示’―隨機開機處理器選擇機制之主要操作 組件包括一系統控制器21〇、一安全密鑰儲存器220 閃—咖及滲透邏輯勝在—個說明性實施例中,以 圖為例,元件川摘可為 ㈣架構之晶片上 广細有 於曰片卜夕走 此寻兀件210-240可建置 曰夕处理益系統(SoC)之邏輯中,且U此,由此# 元件Μ2"所執行之操作可在晶片上執行。或者,該等 I2I296.doc -19- 200817970 或夕者可提供在晶片外,例如,快閃ROM 230 了耠供在晶片外。 以二,制态21°負責執行-加電復位(P〇R)之初始操作, 控制之功率達到一可接受及穩定之位準。亦即,系統 責提昇電壓、接通系統時脈及所需之用於使 =Γ u統達到其中可開始開機操作之狀態的其他初始 Ο ϋ I如^在此項技術中所知)。作為此PQR操作之-部 刀’使處理器28〇_29〇提昇 操作模式中,产理哭夕。、 作輪式。在此安全 处益區域儲存器不可在該處理器之外部 丁子取 旦完成此等初始操作且系統處於一可接受之 ^ α纟統控制21G便將—Π功率良好”狀態發送信 號至參透邏輯240。 回應於來自系統控制器210之„功率良好”信號,渗透邏 一耳40開始一開機操作,以用於使多處理器系統開機進入 =作狀態,從而使得可開始執行軟體程式。作為此開機 =之一部分’滲透邏輯24〇之-隨機事件產生器242將該 寺=理益中之-者(例如,處理器28〇)隨機選擇為用於多處 理益糸統之開機處理器。隨機事件產生器M2產生一被發 送至多處理器系統之處理器中之每一處理器的信號。好 號僅對於被選擇作為開機處理器之處理器而言係邏輯高位 準的。此信號將隨機選擇之處理器28〇之組態位元暫存器 中之值有㈣設定為—指示此處理器2㈣為開機處理哭 例如’ Τ)。其他處理器將使其之在其各別組態位元 "中的組態位元值保持於-初始值,藉此指示此等處 121296.doc -20- 200817970 理器並非為用於多處理器系統之隨機選擇之開機處理器。 Ο Ο 將用於使多處理器系統開機之開機碼以—加密格式儲存 於) 夬閃ROM 230中。可將該加密開機碼232提供至處理器 2。8〇-290中之每—纟。亦即,作為開機序列之部分,處二 器280-290中之每一者可試圖自快閃臟23〇讀取加密開 機碼加。然而,由於僅該等處理器中之一者已被隨機選 ^作為開機處理m僅料處理器巾之-者將能夠解 密該加密開機碼2 3 2,[险當地執行其以便使多處理器系 嶋至一操作狀態。此係經由使用-提供於該等處理器 :=每處理為中的選擇器26〇而達成,該選擇器⑽在秘 在在錄(其為用於解密該加密開機碼232之密錄值消一隨機 產生之密輕(其將不能夠解密該加密開機碼232)之間進行 選擇。 使用储存於組態位元暫存器250中之值以產生一提供至 抑 &擇态化唬。舉例而言,選擇器260可為一多 工為,其接收來自安全密餘儲存器220之安全密錄(Skey)# 為個輸入、一來自一隨機值產生器262之隨機產生之密 鑰值作為一第二輸入,及來自組態位元暫存器25〇之選擇 扎不將選擇兩個輸入信號中之哪一信號)。若組態 位兀θ存為250儲存一指示該處理器為隨機選擇之開機處 理器的值,則選擇认”輸入。若組態位元暫存器25〇儲存 '一才日不该處理哭计非丛iTTt: 叩亚非為酼機選擇之開機處理器的值,則可 由選擇器2 6 0選埋陴4办士 擇丨思機產生之密鑰值輸入。接著將該所選 擇之密鑰值輸出至SPE27〇。 121296.doc 200817970 E 270接收所選擇之密㈣及加密開機碼 『rw立切上丄、“ . v
no接著試圖解宓兮Λ A问 併:巧。SPE 一加雄、開機碼232。若所選擇之密鑰值係 =錢儲存器咖之Skey,則咖…將能夠恰當地 解社该加密開機石馬232且執行其中之 達到一操作狀能 ’扣7以使糸統 .., " 所&擇之密鑰值並非為來自安全宓势 者存器220之Skey,則解密將失敗 二 開機碼指令。 270將不靶夠執行
C Ο :藉由多處理器系統所執行之每一加電復位⑽ =;上用於隨機選擇-開機處理器並使用該隨機選擇 之開機處理器來使多_ 。 ^释 益糸統開機之過程。因此,每-欠 使多處理器系統開機時,便可將該複數個處理器中之= :者隨機選擇為開機處理器。結果,進入該系統之 侵者將不能夠先驗判定一 ” ’ /θ入 處理写系站夕帝、 °。為開機處理器且將對多 ,〇…’磁及熱條件之量測引導至彼特定處理哭'。 相反’潛在人侵者必㈣由多處理器 : 作來監控-單個處理器以希望該單個處細 乍為待成為開機處理器之隨機處理器 監控所有該等處理器以藉此識別哪一處理 ='f 且試圖經由該處理器之個別電磁 :處理 而貝讯。舉例而言,在八處理器系統中又侍乂 有八個處理器,所以#;r 口為必須監控所 所以使付盈控開機序列之難度固難 料,將需要更多探針及硬體來完成此監控,藉此〆 试圖進行此監控之難度。 9 S加了 圖3 A係 一纟兒明根4盧一却明/W:告· y 機制的例 尿次明性貫施例之隨機選擇 ⑵ 296.doc -22- 200817970 不圖。如上文所描述,在說明性實施例背後之原則思想係 自複數個處理器中將—處理器隨機選擇為用於多處理器系 、'先,開機處理器。為進行此隨機選擇,提供一隨機事件產 ^ D。及4擇機制。在說明性實施例中,將隨機事件產生 器提供於多處理器系統之滲透邏輯中,同時提供—與該等 處理器中之每一者相關聯的選擇器。圖3A提供根據一說明 性實施例之隨機事件產生器及選擇器之一實施例的緣示。 Ο
U 如圖3A中所示,舉例而纟,隨機事件產生器—其可對 應=圖2中之隨機事件產生器242)包括一線性反饋移位暫 存益(LFSR)计數器32〇、一環形振盈器33〇及一選擇器信號 暫存器/解碼器340。該環形振盪器330係一包含奇數個
OT閘之认備’其之輸出在兩個電壓位準之間振盈。ROT 閘或反相器係以鏈方式卩科垃甘 η 、 硬万式附接,其中最後一個反相器之輸出 被:I貝回至第一反相器。一連串奇數個反相器之最後輸出 為弟一輸入之邏輯Ν〇Τ〇αα 曰 、平耳在確疋弟一輸入之後的一有限時 間量内確定此最後之輸出。此最後之輸出至該輸入之反饋 產生一不穩定振盡,其將根據隨機元素(諸如電源上之電 磁雜訊及溫度)而及時變化。 環形振盪器33〇之輪出連同一時脈信號cik作為一輸入而 提供至職計數器320。贿計數器320係-移位暫存 器’其之輸入為其之先前狀態的一線性函數。單個位元之 線性函數僅為職及反x〇R,且因此,:撤為一移位暫 存器’其之輪入位元由總移位暫存器值之某些位元的互斥 f’或’’(X0R)來驅動。 121296.doc -23- 200817970 Γ Ο 。將lfSR計數器32G之初始值稱為種子,且因為暫存器之 #作係確定性的,所以紅⑽計數器32〇所產生之值的序 列係完全由其之當前(或先前)狀態來判定。一具有一精選 之反饋功能的LFSR計數器320可產生一位元序列,該 序列呈現為隨機的且其具有一非常長之週期。在說明性實 施例中,由於至LFSR計數器32〇之輸入為由環形振盈器 33〇所產生之振盈及環形振盧器㈣之頻率與輸入時脈 仙(其獨立於彼此而改變)間之差$的乘積,因此使 機性變得更加顯而易見。 LFSR計數器32〇接收來自環形振盈器33〇之輸出及時脈 信號处作為輸入且產生一儲存於選擇器信號暫存器/解碼 以40中之輸出位元流。環形振盈器咖之反相器將輸出传 f中之一延遲引入至LFSR計數器320且因此,在環形振盪 益330之頻率與輸人時脈仙之間存在異。頻率間之此 =異在至LFSR計數器32〇之輸入中產生抖動,如圖3β中所 、”旨不。此抖動提供-隨機化由LFSR計數器32〇所產生之輸 出的隨機性的量測。 別 抑將LFSR叶數器32〇之輸出儲存於選擇器信號暫存器/解碼 器^0中。在所緣示之實例中,LFSR計數器320為3位元計 /、產生經解譯以編碼值1 - 8之3位元輸出。選擇器 化號暫存器/解碼器34〇之一解碼器功能基於隨機3位元輸 。值來k擇8個獨特輸出中之一者。基於儲存於選擇器信 儿ΐ存叩340中之位兀的狀態,將高或低狀態信號輸出至 各種處理$ (例如,圖i中之spE^spE7心⑶)之組態位 121296.doc -24- 200817970 元暫存窃,以藉此设定儲存於組態位元暫存器中之值且因 此’將該等處理器中之-者選擇為用於多處理器系統之開 機處理器。 -旦設定組態位元暫存器值,便使用此等值以將選擇器 . 信號提供至相應選擇器350-370。如圖3A中所示,將選擇 • 器信號連同一 Skey輸入及一隨機密鑰值輪入提供至一多工 器352、362、372。基於選擇器信號之狀態,藉由多工器 ('352 362、372中之每一者來選擇Skey輸入或隨機密鑰值 :入。可由相同類型或一不同類型之一或多個隨機值產生 益自上文所描述之用於選擇開機處理器的隨機事件產生器 組態來產生隨機密输值輸入。亦即,可使用如上文所㈣ 之一類似隨機事件產生器組態來隨機地產生一具有與Μ” 相同長度的密鑰值。接著將此等隨機密鑰值輸入至 哭 352、362及 372 中。 設計該系統,使得(例如)借助於上文所描述之解碼器功 〇 能,僅輸入至多工器352、362、372中之選擇器信號中的 -個選擇器信號將選擇Skey輸入,而所有其他選擇器信號 . 將選擇一隨機密錄值輸入。將來自多工器352、362/37: 之輸出提供至相應S P E,使得該等s P E可利用此等輸出以 .肖於解密開機碼且執行開機碼(在隨機選擇之開機處理器 之狀況下)或試圖解密開機碼且未能使該多處理器系统開 機(如在多處理器系統中之所有其他處理器之狀況下;。… 應'瞭解’上文所描述之用於提供-隨機事件產生器及選 擇器的機制僅為例示性的且並不意欲陳述或暗示關^用 I21296.doc -25 - 200817970 於說明性實施例之隨機事件產生器及選擇器之 限制。舉例而言,可利用其他隨機事件產生器而非使= 圖3Α中所示之—環形減器及lfsr計數器。舉例而+口 -熱感應器來量測熱雜訊,接著可使用該熱雜:來 ^用於將該等處理器中之—者選擇作為1機處理器 η ο ::機:件。類似地,可使用一量子點。點)或半導體奈米 晶體來量測量子源效應,該等量子源效應可用作一用且= I處理器選擇作為開機處理器之隨機源。任何強隨機源可 用於帽生實施例以提供對一供用作用於多處理器系統之 開機處理器的處理器的一隨機選擇。 ^、 …卜應瞭解,儘官圖3 A展示了具有五個反相器之環形 振盛器330,但說明性實施例並不限於此。實情為,可在 I背離本發明之精神及㈣的前提下錢任何數目之反相 器,Γ要存在奇數個反相器便可。事實上,為在至LFSR 2數器320之輸入中提供額外抖動,可能需要將額外反相 益添加至環形振盪器33〇中之反相器鏈以便在輸入時脈信 唬Clk與來自環形振盪器33〇之輸入的頻率間引入甚至更多 i異。可基於其中實施說明性實施例之 的所要操作特徵來選擇差異量。 。。系、、先 左卜t g圖2及圖3A繪示由一用於每一處理器之獨立 機在输值產生器所產生的隨機密餘值,但說明性實施例 亚不限於此。實情為,可提供一單個隨機密鑰值產生器以 =於該等處理器中之所有處理器,其中該隨機密餘值產生 生4夕個輸入至該等處理器之隨機密錄值。因此, 121296.doc -26- 200817970 冬例而3 ,隨機密鑰值產生器可產生一提供至該等處理器 :之所有處理器的單個隨機密鑰值、一用於每一個別處理 :之獨立隨機密鑰值(在此狀況下,可產生例如七個不同 隨機密鑰值)或任何數目之可被選擇性地提供至多處理器 系統之各種處理器的隨機密鑰值。 在個說明性實施例中,如圖3C中所說明,可提供複數 個隨機密輸值產生器39〇,該複數個隨機密鑰值產生器则 Ο Ο 口幸別出不同隨機密鑰值。或者,如上文所提及,可使用 :單個隨機密鑰值產生器以替代此等獨立隨機密鑰值產生 可將此等^機欲錄值連同來自一 Skey儲存器395(例 如,eFuse)之安全密鑰(skey)作為輸入而提供至多處理器 系,中之處理器(例如,SPE 393及394)的選擇器(例如,多 工夯391及392),該安全密鑰(Skey)實際上用於解密用於使 多處理器系統開機之開機碼。如圖所示,可在八條相同信 唬線上夕工傳輸隨機產生之密鑰值及Ska值且將其提供至 :工杰391及392中之每一者以便使得一入侵者更難以將該 寻線中之一者隔離為一來自安全密鑰儲存器395之信號 線。 ϋ 可將總共八個密鑰值輸入提供至多工器3 9丨及3 9 2且可使 用來自滲透邏輯397中之隨機事件產生器396的選擇信號來 選擇該等人個輸人中之—者。在此狀況下,多工器^及 3 9 2可在S k e y輸入與七個隨機密鑰值之間進行選擇而非簡 單地在Skey輪入與一隨機密鑰值之間進行選擇。因此,一 第-處理器可基於此第一處理器被隨機選擇作為開機處理 121296.doc -27- 200817970 器而選擇Skey輸入、—第二處理器可選擇-第三隨機密輪 值、-第二處理器可選擇一第四隨機密鑰值、—第五處理 器可選擇一第一隨機密鑰值,等等。因此,每一處理器可 接收一不同密鑰值(Skey或一經隨機產生之密鑰值卜結 果,使一入侵者在監控多處理器系統之匯流排訊務時變得 難以辨別哪一密鑰值為正確之密鑰值。 于
U 應進一步瞭解,較佳在其中提供多處理器系統之陶瓷封 凌之下層金屬層或互連之最低層中提供圖3A及圖3c中所 示之機制(若該設計係在單個晶片上)。因為探測多處理器 糸統之電及熱特徵的能力當前被限制於多處理器陶瓷封裝 之上層,所以藉由將此等元件置於下層金屬層中,使得探 測此等元件之操作的能力變得更加困難。因此,使得一想 要成為入侵者的人員非常難以(若並非不可能)監控隨機事 件產生器及選擇器之熱及電特徵以便判定由此等元件所提 供之密输值。 使用上文之機制,可隨機選擇在多處理器系統之複數個 處理器内的處理器以使該多處理器系統開機。以此方式, 使得監控該等處理器之電及熱特徵以便獲得用於使多處理 為系統開機之秘密資訊(例如,秘密密鑰)的能力更加困難 且對於彼等可能希望在無授權之情況下存取多處理器系統 之人貝而a其潛在地變成了一威攝物。 儘管上文之用於隨機選擇一處理器以使多處理器系統開 機之機制提供了 一合適量之保護以防監控開機序列,但一 未經授權之個人仍有可能”侵入"系統(若此個人非常堅持不 121296.do, -28- 200817970 懈)。為使此監控變得實際上 了用於逹蔽Ρ媸、壁摆々老 說明性貫施例提供 用方、㈣擇之處理器上之開 使得未經授權之個人無_^ 制, 使多處理器系統開機之實際開機序列。°"則正執行用於 在-m㈣性實施财,遮蔽操作涉及未被選擇 …之處理器中之每—者執行一不同指令集以藉此二 使付難以辨別開機處理 生 Ο Ο 電及数簽名。之其他處理11的遮蔽 '、,、 由同處理器執行之碼序列可為如n 碼序列,其被提供於一愈處理…]了為相同之預設 可由該等處理器存取(巧^相關聯之記憶體中或另外 時)。舉例而言,可將箱< & ^ 4⑴開祛碼序列 中之每-者相「 列提供於-與該等處理器 母者相關聯之區域儲存器的_ 可將預設碼序列裎徂认 „ 丨刀r 或者’ 冰甘 快閃R〇M或提供於晶片上口戈曰片 外之其他儲存設備中。 月上次日日片
當處理器無法解密自快閃R 時,該處理器可預*D5「+ 之"際加密開機碼 、叹回至區域儲存器之 致該處理器執行指令以遮蔽在另—處理哭:…’其導 序列。此指令序列可能 。。執订之開機碼 J J此不產生任何可用資 遮蔽功能。或者,舉例而言 、°可僅飼服— 於在開機操作期間臣,此^曰令序列來執行用 在一個說明性每#加士 ’心作 機…、* 在未選擇處理器(亦即,非門 機處理幻中之每—者上執行的碼 (:非開 處理器中之每一者所热 > 的在由未選擇 在此等未選擇處理器中指^例中, 者上執仃的碼較佳為產生電 12J296.doc -29- 200817970 及熱概況之碼,贫莖φ ν, 曰 夺 寻冤及熱概況類似於實際開機碼但並不 Η ―一:又者為回避多處理器系統之安全性而將需要的任 Μ山貝Λ。此碼可執行類似於實際開機碼之操作的操作 不存取夕處理裔系統之敏感部分。事實上,在—個說 明性實施例中,可由未選擇處理器使用用於使多處理器系 統開機之相同問拖. ”、、旦不可存取安全密錄(Skey)及其他 特許資訊。 Ο ϋ 每 等未4擇處理裔之熱概況及匯流排訊務將接近 κ IV、《序列。因此,自_使用監控探針來監控熱概況、 匿流排訊務及其類似條件之入侵者的觀點而言,該入侵者 將無法破譯哪-核心正執行實際開機操作,因為所有核心 經由監控探針將看起來相同。此模糊性阻止竄改且使得更 ::難以隔離真實開機碼序列、秘密密錄資訊及其類似資
在其他說明性實施例中,該等未選擇處理器中之每一者 °亍$同&7集。藉由在該等未選擇處理器中之每一 者上執行不同指令集’當使用電或熱探針加以監控時,該 =理器中沒有一者看起來係獨特的。結果,-分辨性特 仏(如熱概況或匯流排訊務)無法由探針 哪一處理器為開機處理器。 更戒另J =針對多處理器系統中之處理器中的每—者而隨機選擇 二:同1曰令集。因此’舉例而言’可隨機選擇用於儲存 日日片上儲存設備(例如’—快閃r〇m或其類似物)中之 碼序列的不同開始位址且將其提供至多處理器系統之處理 】21296.doc -30- 200817970 二該==著以隨機選擇之開始位址而開始執行 =用以提供用於不同處理器之不同碼序 供具有插入於開機碼中之隨機延遲元件之開機碼。= 遲元件可為(例如)迭代隨 此專延 一 何数㈢之_人數的循環。可將斗楚 延遲兀件提供於由隨機選擇 、、 Ο Ο 碼序列中及由未選擇處理2開枝處理讀行的實際開機 控該等處理器之埶β藤A』L 自 瓜 …及匯〜排訊務特徵之入侵者的 言’此隨機延遲導致開媸 ””而 攻V致開機碼在該等處理器中之 ’丨看起來”不同。結果,使入侵者不可能辨 口口 執灯使夕處理益糸統開機之實際開機碼。 -說明性實施例中’提供一虛設處理器,當由一入 知者監控時其看起來係獨特的。 a 施例之組合,並中一處理…Λ 6兒月性““列係先前實 選擇户理。。/⑽隨機選擇為《處理器,未 k擇處理态中之一處理器被 機碼序列之赦及m 執行提供一獨特於開 仙考 “非矾務概況之碼的虛設處理器,且並 他處理器執行盡可能緊密且^ U m _ . I貝際開枝碼序列之熱概況 及匯极排矾務的碼序列。以 哭偵、>丨A^ 方式,入侵者將使虛設處理 口口偵測為獨特於其他處理 開機^ ^ m 且將斷疋此處理器正執行實際 间械碼序列。因此,入 理哭而# ή 又者將把其之攻擊引導至此虛設處 理态而非自一熱概況 苴他产搜。。^ 級排汛務立場而言呈現為類似於 /、他處理夯的貫際開機處理哭。 碼哎另外± 4 ^ 此外,若入侵者試圖執行 外主動干擾虚設處理器,則該虛設處理器可接著發 121296.doc -31- 200817970 送信號使一系統關閉。 圖4A’4D係說明根據說明性實施例之用於遮蔽一隨機 4擇之開機處理器之安全開機操作之遮蔽操作的例示性 圖。圖4錢明—第—遮蔽操作,其中在未選擇處理哭中之 母-者上執行自—監控探針立場而言呈現為與開機碼序列 目同的碼。如圖4At所示,(諸如)藉由❹先前所描述之 Ο u M :而:SPE〇 41°隨機選擇為用於多處理器系統4。。之開 4飞理益。ϋ此,SPEG 410接收秘密密输、解密來自 R01V[之開機碼序列且執 、 、鱼λ 丁叮而之用以使多處理器系統400 作狀態的實際開機碼操作。其他SPE(亦即, SPE1-SPB7 412 494、拥 /- ώ ^ )執仃自一監控探針之觀點而言看起來 像開機碼序列之碼。 (末 二他咖412-424所執行之碼序列可為 SPE、二:Γ存器之一安全部分中的預設碼序列,其導致 序列的#人4執/用以遮蔽在SPEG 41G上所執行之開機碼 行的碼;未選擇SPE 412-424中之每一者上執 於實際= 況之瑪,該等電及熱概況類似 安全性而將I、仁亚不提供一入侵者為回避多處理器系統之 而將需要的任何秘宓資 開機碼之摔作… 執行類似於實際 部分。、紅作但並不存取多處理器系統400之敏感 圖4B說明了 ^ 之每—者上\了另__說明性實施例,其中在未選擇處理器中 執行不同之隨機選擇之演管Φ , _ 示,將SPE0再-大、…^擇之次-法。如圖4时所 再-人違擇柄機處理器1因此其執行用於使多 Ϊ21296.doc -32- 200817970
處理器系統400開機進入-操作狀態的開機碼。其他SPE 412-424中之每一去一把 者執仃一獨立之隨機選擇之演算法,苴 產生不同熱概況及EIB上之不同匯流排訊務。因此,當與 其他SPE 410-424中之每—者比較時,每—spEQ_7呈現為 獨特的。因此,無法辨別哪—咖_7 41〇_424係用於使多 處理器系統400開機之實際開機處理器。 如上文所提及,可隨機選擇此等不同演算法以用於多處 f器系統中之SPE412_424 t的每—者。因此,舉例而 s ’可隨機選擇用於儲存於—晶片上儲存設備(例如,一 快閃ROM或其類似物)中之碼序列的不同開始位址且將其 提供至 SPE 412-424。命莖 qpp μ ^#SPE 412-424可接著以隨機選擇 之開始位址而開始執行指令’藉此產生遮蔽實際開機碼序 列之不同之熱概況及匯流排訊務。 Ο 或者,可將開機碼提供至SPE 412_424中之每一者,其 中將隨機延遲元件插入於該開機碼中。此等延遲元件可為 (例如)迭代機數目之次數的循環。自—監控SPE他似 之熱及匯流排訊務特徵之入侵者的觀點而言,此隨機延遲 導致開機碼在該等處理器之每一者上”看起來”不同。結
果,使得入侵者無法辨別哪一處理器正執行使多處理器Z 統開機之實際開機碼。 ° 圖4C說明另—說明性實施例’其中提供一虛設處理器, 來自-入侵者之攻擊可被重新引導至該虛設處理器。:圖 4C中所示,SPE0為隨機選擇之執行開機序列的開機處理 器。如在上文關於圖4A所描述之實施例中,spEi_spE4 121296.doc -33 - 200817970 4 12-4 18及SPE6-SPE7 422-424執行自一熱及匯流排訊務監 控觀點而言看起來像開機碼序列之碼。另一方面,SpE5 420執行一隨機選擇之演算法,可以一如上文關於圖化所 描述之方式類似的方式來隨機選擇該演算法。 因此,自一監控處理器410_424之特徵之入侵者的觀點 而言,所有 SPE0-SPE4 410-418 及 SPE6-SPE7 422-424 看起
U 來正執行相同碼。然而,SPE5 42〇呈現為獨特於其他 SPE。因&,-希望攻擊多處理器系統之開機序列的入侵 者可將攻擊重新引導針對SPE5 42〇而非實際開機處理器 SPE0 410,因為對於入侵者而言,似乎spE5、汕為實際開 機處理器。 正當藉由每次加電復位(P0R)操作來隨機選擇實際開機 處理器時,亦可自未選擇處理器來隨機 。 因此’就每-撤操作而言,可選擇—不同之開機處㈣ 及虛设處理器,藉此使得—人侵者更加難以推斷哪一處理 益正執打一可被損害以便獲得對多處理器系統之存取的者 際開機序列。 Λ 為完整性起見,圖彻兒明先前於上文所描述之說明性者 施例,其中由該等處理器中之每—者執行用於開機該^ 之開機碼。在此說明性實施例中’僅隨機選擇之開機處理 器被給予對秘密密餘(Skey)之存取,而其他處理器接心 機選擇之密錄(Rkeyl_Rkey7)。該等處理器甲之每—者= 使用被供應至其之密糊如’Skey或一Rkey)來解; 行開機碼。僅隨機逆禮夕μ 4丨士 迫钺&擇之開機處理器將能夠正確地解碼該 121296.doc -34- 200817970 開機碼並勃彳干t 、 執仃其,以使該資料處理系統進入一 然而,對於-外部監控器而言 -Γ ^ . ^、木似十所有處理器皆 V /、、、、開機,藉此遮蔽實際之開機處理哭,因為j # 處理器中之每一去脸批〜 σσ 04^4 者將執行類似刼作以試圖解 開機。亦即m 口解在及使该糸統 刪二: 中之每一者將產生-類似之熱及/ 1 " 一使侍一想要成為入侵者的人員難以传用旦、、目丨丨 探針及其類似物來 、 里“1 妳im 馮只際之開機處理器。 、、二 如由說明性實施例所提供之開機户理哭夕_ 選擇及開機序列之嘑#成y ]械處理裔之(^機 俄斤幻之遮敝,使得對於任 中的想要成A 進入夕處理态糸統 理哭正^ 者之人員變得非常難以能夠辨別哪一處 口口 '丁㈣機碼序列。因Λ,使得~相要成為入^ 的人員變得非常難以監控處理器之敎概、、兄:= 謅別祖田认士 …概况及匯流排訊務及 八;存取加密開機碼之秘密密鑰#1 一想要成為入侵者的人員變得難以此外,使得 入侵該系統的位置。因碼序列中之可 Ο 於對門趟皮,因此使传多處理器系統更安全以免 於對開機序狀未經授權之存取。 圖5-圖6係概述—用於將多 機選擇作為一開機^1田 纟、、先中之-處理器隨 摔作的、、,Μ 及用於遮蔽開機碼序列之例示性 ”乍的机私圖。將理解,可由 說明之每-區塊及該等流程圖中之==實施流程圖 電腦程式指令提供至一處理器或其他可鬼 置以產生一機器,使得在該處理器或复^化貢料處理裝 理护署μ他可程式化資料處 、 執订的指令產生用於實施該 所規定之功能的構件。亦可將此;:程圖區塊中 电月向式指令儲存於一 121296.doc -35 - 200817970 可?丨導—處理器或其他可程式化 式起作用的電腦 、'处里#置以一特定方 電腦可#取,& D" §己憶體或儲存媒體中,使得儲存於 品包括二:錯存媒體中之指令產生-製品,該製 件。…或該等流程圖區塊中所規定之功能的指令構 此’爪程圖說明之區塊支接用於拙> 士日6 的組合、用於H 杈用於執订規疋功能之構件 功^ 仃規定功能之步驟的組合及用於執行規定 ㈣之基 ==。亦將理解,可藉由執行規⑼能或 、專用硬體之電腦系統或藉由專用硬體及電腦指 。來貫施流程圖說明之每一區塊及流程圖說明中之 ^塊的組合。 =概述一用於隨機選擇一用於使一多處理 =理器的例示性操作。如圖5中所示,該操作以; —工為執行一加電復位(P〇R)操作(步驟510)開始。在執 曰1七之POR操作之後,系統控制器將—,,功率良好”信號 提七、至夕處理器系統之滲透邏輯(步驟Μ㈨且該滲透邏輯起 女口心機開機操作(步驟530)。 :透邏輯將一來自複數個處理器之處理器隨機選擇為開 =理器(步驟54〇)。滲透邏輯接著基於隨機選擇而設定處 0二之組怨位兀(步驟55〇)且發送信號使該等處理器開始開 ㈣作(步驟560)。一快閃R〇M將加密開機碼提供至處理 ^ 二鑰值自一秘密密鑰儲存器及隨機密鑰產生器提供 ^ ^ 了(步驟570)。該等處理器接著基於其之組態位元之 而4擇將由該等處理器使用之密鑰(步驟580)。該等處 121296.doc 200817970 王器試圖^於所選擇之密鑰來解密開機碼(步驟590)。所選 處理a使用秘密密餘來解密開機碼且使該系統開機 & ^ 5)應'主意,藉由所有其他未選擇處理器來解密開 :的嘗試將失敗且僅所選擇之處理器將能夠使該系統開 機。該操作接著結束。 係一概述一根據一說明性實施例之用於遮蔽一開機 ;列之例示性操作的流程圖。舉例而言,可在多處理器 糸統之每一處理器中執行圖6中所概述之操作。 如圖6中所不’處理器接收—信號以開始—開機操作(步 "61〇)。舉例而言’此步驟可對應於圖5中之步驟53〇。處 理“大圖解密開機碼(步驟62〇)且關於該解密嘗試是否失敗 =^ ^取(步驟㈣)。若解密係成功的(亦即,該處理 為為ί1返機選擇之開播#里哭、、 . # 械處 Ρ㈣行開機碼以藉此使多 处理為系統進入一操作狀態(步驟640)。
U :解在失敗’則選擇-用以執行以遮蔽開機序列之碼序 列(步科如上文所提及,視特定實施例而定 : ^列之選擇可基於-區域料器之—安全部分中的= °又馬序列一隨機選擇之開始位址、具有隨機延遲元件之 開機碼的使用或苴猶々木 y ^ 於該系統是否處; 列)而作出—判二即,^已完成開機序 〗疋(步驟670)。若非如此,則該操 f驟_且繼續執行遮蔽碼序列。若該系統處於-摔作^ 悲 束執行遮蔽碼序列(步驟680)且該操作終止。 因此’以上之說明性實施例提供了一機制,可藉由該機 121296.doc -37- 200817970 制而自複數個處理器選擇-處理器作為-用於使多處理哭 糸統開機至一操作狀態的開機處理器。該等說明性實施: 進-步提供了-機制,該機制用於遮蔽由一隨機選擇 理器所執行的開機碼序列以便使得—人侵者難以 = 機選擇哪-處理器來執行實際開機碼序列。使用此等: 制,使得多處理器系統由於使得一入侵者非常難以經由於 控開機碼序列來獲得對該系統之存取而更加安全。 已就由多處理器车矫φ々 口。,上 糸、,充中之一早個處理器所執行的開機碼 序列而描述了上文之說明性實施例。’然而,該等說明性每 施例並不限於此。在其他說明性實施例中,如下文所二 =,可二越多處理器系統中之複數個處理器來分布開機碼 列藉由也田、越多處理器系統中之複數個處理器來分布開 機碼序列’必須被損害以便獲關於開機序歹 藉此回避安全措施之處理器的數目得以增加。以且
U 二 文中所描述之說明性實施例的分布式開機操作 =之利用一早個安全核心之多處理器資料處理系統更安 二。:外’藉由分布開機操作,使得若該開機操作中之任 一部分被損害,則該開機操作失敗,藉此防止_未經授權 =固人㈣H統之安全性。換言之,儘管想要成為入侵 之亡貝可損害開機操作之—部分,但該想要成為入侵者 之人貝無法損害該開機操作之全部且因此無法獲得對多處 理器資料處理系統之存取。 就此說明性實施例而言’將開機碼序列分割為複數個分 割部分’使得可將每_分割部分提供至多處理器系統之一 121296.doc -38- 200817970 不同處理益。當執行開機碼序列之每一分割部分時,彼八 割部分在開機碼序列可在另一處理器上進行之前必須正: 地在其之各別處理器上完成。使用-安全通信機制來傳達 開機碼序列之一先前分割部分的圓滿完成。此安全通信機 制Ζ包括一指示先前會期未被損害之安全性符記,諸如一 加松密碼或其他安全性識別符(例如,-公用/私密加㈠ 分布式執行開機碼中所涉及的處理器可為多處理器系統 中之所有處理器或為多處理器系統中之處理器之一子組。 舉,而5,可使用一隨機選擇機制(諸如上文所描述之用 於選擇一單個開機處理器之隨機選擇機制)來隨機選 用於以一分布士 七/ 、 、 〇〇 ^ 式來使該糸統開機的複數個開機處理 =此外,可隨機選擇由處理器所執行之開機碼的特定分 割部分,伸佐4、A* Ο 传就母一加電復位(酿)操作而t,相同處理 ° τ或可不執仃與-先前POR操作中之開機碼分
分相同的開機碼分判邻八。+ 〇J … 可關於哪些處理器被涉 碼分割部分而執行隨L 處理器將執行何開機 系統之其他處理器(亦即,非開機處理器)可在 刀 機才呆作期間不執行先前所描述之各種遮蔽石y兒明 性實施例中之—式夕本从,ν 合禋遲敁碼说明 之夂種m 夕者的任何工作,或可執行先前所描述 :!,碼說明性實施例中之-或多者的遮蔽碼序列2 遮敝在處理器之隨機選擇之子組上的開機碼執行。換言 121296.doc -39- 200817970 之’在不背離本發明之精神及範疇 性實施例之分右4.„^ 扠卜了將本說明 ^ ^ 布式開機碼序列操作與先前所描述之說μ & 貫施例中之1多者組合。 4之次明性 ® 7A# - n m M ^ __ ^ ^ ^ A p:,,, 形配置之分右4、„ MU ^乏、,且悲為—為鏈或環 供複數個♦ 例示性圖。如圖7A中所示,提 供複數個處理器720 丁美 開機。在所給干c/於使夕處理器資料處理系統 丘處理哭Λ lj中’在分布式開機操作中利用所有 即,),而控制處理器(例如,_不執: 刀布式開機碼。當然,在盆 丁 Ε匕括於分布式開機操作中。 將 例中,如先前所其他說明性實施 八%刖尸;r提及,僅可你田夕士 之處理哭之w Μ 器資料處理系統中 -里。。之-子組來執行分布式開機操作。 可將可儲存於一愈多虚踩 嗖備(^4 m '、 貝料處理系統相關聯之儲存 口又備(啫如圖2中之快閃rom 子 為獨立可執行之分)的加密開機碼710分割 Ο 舉例而^ (亦即’開機碼分割部分1至η)。 :Γ…將該等分割部分作為加密開機碼中之模” 常用程式而提供,可使用相同中之I且或 (一)來獨立加密該等分 ⑽“鑰 八夕叙Q… 較佳地,開機碼分割部 刀之數目等於將被涉及於分布 曰γ + n 式開枝操作中之處理哭的盔 目(亦即,開機處理器的數目)。妙 口口勺數 例中(諸如在開機處理器…:而,在某些說明性實施 分之數目並不限制開機處理 配置中^開機碼分割部 . 义數目且可為小於竣大於戸弓 機處理器之數目之任何數目的分割部分。 於開 在滲透邏輯790之控制下勃^、 卜執订分布式開機操作,該滲透 121296.doc •40- 200817970 邏輯790可與(例如)圖1中之滲透邏輯193相同。渗透邏輯 携(例如,經由隨機事件產生器之使用者)可隨機選擇待被 用作開機處理器之處理器72〇_75〇以及可隨機選擇該等产 機選擇之處理器720_75〇中之每一者將執行哪_分割: 分。在此實施例中,渗透邏輯79〇可留意將執行開機碼分 =部分Γ大序以便經由使用—安全通信機制來確保開機石馬 列之女全性,該安全通信機制指示分布 Ο Ο 先前會期是否已被損害。然而,為本描述之簡單 將假定在所描繪之實例中,將多處理器系統之所有處理器 或至y疋共處理益用於分布式開機操作中且以循序順序而 將開機碼分割部分提供至處理器72〇_75〇。 滲透邏輯790將選擇器信號提供至處理器720-750以用於 選擇哪一開機碼分割部分將由處理器720-750中之每一者 來執行。另外’滲透邏輯·提供密餘值選擇器信號以用 於致使處理器720_75〇自Skey儲存器將一選擇作為待用 於解雄、其之相應開機碼分割部分的密餘。舉例而言,處理 為·750使用所供應之一來解密其之開機碼分割部分 虞,架構中之處理器Μ。,之配置或在渗 分^ 4 t L制下以恰當之序列來執行開機碼分割部 在所繪示之實例中,SPFf) 79Π粒丄4 部分1、執行該開機物”八且密其之開機碼分割 之成功完成安全地傳二機碼分割心 作。此外,可在咖之間利用Γ分布式開機操 利用一女全性機制以用於指示先 121296.doc -41 · 200817970 損匕含先前開機碼分㈣分之執行的會期)未被 名、性機制可(例如)傳遞—安全性符記、數位簽 功完二’’自』開機碼分割部分之-總和檢查碼、使用成 认汛心之公用密鑰/私密密鑰加密或其類似者。 卟用於值;告八‘ ]η 全性機劍立:刀布式開機操作之先前會期是否被損害的安 思欲在本發明之精神及範疇内。 Ο u 確到開機碼分割部分1執行之成功及未損害完成的 SPE1 730可解密其之開機碼分 該開機碼分宝,丨卹八 口』口丨刀2、執仃 # 刀口J 4刀且接著將其對開機碼分割部分2之成 元成傳達至SPE2 74〇。此過程可繼 之成力 發送1 p ~ a $」迤、、貝直至所有處理器已 :…元成分布式開機操作的其之部分而未 號。開機碼分割部 、。° 送不成功執行或== 何斷裂(例如,發 4被知害執行的任何传辦)盡 信號至系統订U)導致一可被發送 碼分割部分,多产理抑次 —已成功元成所有開機 处杰貝料處理系統便處於可在 上執行軟體應用程式的操作狀態。 了在各處理- 上文所描述之說明料者 g例可關於在處理器上所執行之 割部分之-彳 =::ΓΓΙ]用其他確保開機碼分 一擴展係關於分布έ,上述菊鍵配置之 堪* 開機操作而提供處理器之一環开^ 置,使得最後之處理哭⑷ 、0之%形配 、°σ (例如,SpE7 750)將苴對苴之 碼分割部分的成功及未 之開機 "初始”開、/元成傳達返回至《擇作為 々弟—處理器(例如,SPE0 720)。以此 121296.doc •42- 200817970 方式,可在初始開機處理器處使用經由該 會期傳遞至下-會期之安全性機制(例如,安全自- 遞增計數值,㈣)以驗證整個分布式開機摔作之:記、 執行。 ” F又未損害 此外,處理斋之一環形配置 夏兀。午利用比開機處 目更大數目之開機碼分割部分。因此 广之數 料處理系統中之處理哭之 :夕處理器資 Ο 。。 子組選擇為開機處理哭,目,丨& 關於分布式開機操作而以一 。。則當 衣形配置加以配置時, 之此子組可執行任何數目 處理斋 ^歎目之開機碼分割部分。 邏輯790以下能力:不僅 匕、,'。予滲透 丨至月b丨思械遲擇多處理哭 統中之哪些處理器將為開機-、枓處理系 處理哭將A八右4 叩,而且能隨機選擇多少 處理杰將為刀布式開機摔作 夕 笛一 械知作中之開機處理器。因此,在_ 弟一 POR插作中,可將TO老m 々 η 將四個處理器選擇為開機處理哭,而 在一隨後之卩0尺操作中, 处。。而 r 7〇n-r T、擇二個開機處理器。滲透邏 幸耳790可§有用於隨機 ^ 通执、擇一疋數目之處理哭 為開機處理器的邏輯,-^將八、擇 七丰、, μ匕輯接者用於控制處理器之隨機 遥擇,如先丽於上文所描述。 戍 關於一分布式開機摔作 提供^作之開機處理器的另-可能配置係 例之組態為-主控仏—㈣根據—說明性實施 Η 〇 j, 工又工配置之分布式開機操作的例示性 圖。如圖7Β中所+,收 ^ 此产理哭叮力 將—處理器760指定為主控處理器。 处為可為共處理器中一 採哭",L 者(例如,SPE)或為控制處 理為(例如,]PPE)。 750)中之每—者倉主小工处里益(例如,SPE〇_SPE7 720- 、貝兀成其之開機碼分割部分且以一類似 121296.doc -43 - 200817970 於如上文於圖7Α中所描述之方式的方式向主控核心安 傳達其已完成執行且未被損害…旦主控處理器 受控處理器720-750中之每一者接收信號且確認直 被損害’則允許多處理器資料處理系統 體應用程式之操作狀態。 執饤庠人 應瞭解’儘管已在本文中關於 了考柿奖令试 刀邱式開機才呆作而描述 …之—為鏈、環形及主控/受控配置 Ο Ο 不僅限於此等所描述之配置 ^月並 之精神及範田壽的前提下將關於—分布式離本發明 之任何配置用於說明性實施例之機:式嶋作的處理器 圖8係-概述根據一說明性實施例之用 統之分布式開機之例示性操作 …。糸 择作紅 千忭白’ *私圖。如圖8中所示, 払作以滲透邏輯自系統控制器接收一,,功
8 1 〇)而開始。該滲透邏輯 ^ W 之複數個處理哭的,理…處〜貝料處理系統中 上文所提及,::=:Γ為開機處理器(步驟82。)。如 處理器或多處理器資料〜所有該等處理器被選擇為開機 擇為開機處理器。舉例糸統中之處理器之某子組被選 事件產生器來執行此選擇。 ”之紋機 渗透邏輯選擇待被指派至所選擇 分割部分(步驟S30)。 开处理益的開機碼 -開機碼分宝”八(:—目關聯之開機處理器來執行下 割部分之執行是)刪處理器判定開機碼分 此,則將-開機失::、未損吻 a u至錢控制器(步驟⑽)且操 ^21296.doc -44- 200817970 作終止。 若開機碼分割部分成功地執行且未被損害,則開機處理 器判定S否已成功執行所有開機碼分割部分(步驟870)。若 非如此,則操作返回至步驟840且由其之相關聯之開機片 理器來執行下-開機碼分割部分。若已成功執行所有該: 開機碼分割部分,則開機處理器將資料處理系統_ 機發送信號至系統控制器(步驟880)且操作終止。 J幵 Ο Ο 如上文所陳述,除隨機選擇-單個開機處理器且 ,多處理器資料處理系統之其他處理器執行遮蔽操作: 外,既明性實施例提供用於遍及複數 操作的機制。該等說明性實施例提供了用於來刀布開機 處理器、隨機選擇待執行於所選擇之開機處理器上的門機 碼分割部分及用以·由各開機 料 卹八4 6 W轨订之開機碼分宝,丨 。刀之女王性的機制。所有此等各 ° 哭資粗♦ Ϊ田么W …吊且刀嘈加多處理 。。貝枓處理糸統之安全性以防 控。 Ρ心木經杈榷之監 說明性實施例可採取一完全硬體 施例或-含有硬體元件及軟體元 :王权體貫 Κ土貝域巾,本發明係 ' 不限於):勤體、常駐軟體、微碼等等其包括(但 此外,S兒明性實施例可採取一可— 讀取媒體存取之電腦程式產品的形式,卞2用或電腦可 腦或任何指令執行系統使用或結合1 =胆提供供—電 糸統而使用的程式碼。為此描述之目的何指令執行 、一電腦可用或電 】21296.doc -45 - 200817970 腦可讀取媒體可為任何可含有、儲存、傳達 供由指令執行系統、裝置成 寻雖次傳达 统、”n * 或結合指令執行系 統、I置或设備而使用之程式的裝置。 該媒體可為-電子、磁性、光學、電磁、紅外 糸統(或裝置或設備)或—傳播媒體。 ± 旦 實例包括一半導,4 m & 匈了續取媒體之 片ur憶體、磁帶、-抽取式電腦磁 π" 一⑽存取記憶體(RAM)、—唯讀記憶體⑽M)、一 碟及一光碟。光碟之當前實例包括緊密光碑-唯讀 記憶體(CD-ROM)、緊宓#雄> & 尤茱隹口貝 DVD〇 山先碟_項取/寫入(CD-R/W)及 如上文所描述之電路可或 了為用於一積體電路晶片之設計之 二二。:晶片设計可以-圖形電腦程式化語言而產生且儲 =電腦儲存媒體(諸如碟片、帶、實體硬碟機
U 諸如在一儲存存取網路中))中。若設計者並不製造 ^ 製造W之光微影料,則料者可藉由實體 輸所如Λ精由提供儲存該設計之儲存媒體的複本)來傳 =仟叹d十或以電子之方式(例如,經由網際網路)直接或 ;=將所得設計傳輸至此等實體。可接著將所儲 ::換為用於製造光微影遮罩之適當格式(例如, ⑽該等光微影遮罩通常包括所討論之晶片設計之多 其將形m圓上。可利用該等光微影遮罩來 1疋待钱刻或另外處理之晶_域(及/或其上之層)。 二Γ者以原始晶圓(亦即’作為-具有多個:經封 、曰曰片的晶圓)之形式、作為一裸晶粒或以一封裝之形 I2I296.doc -46- 200817970 ^來刀布所传積體電路晶片。在後者之狀況下,可將晶片 女义於早自晶片封裝(諸如塑膠載體,纟具有附加至_ 母板或其他較高階载體之引線)中或安裝於多晶片封裝(諸 士 '瓷載體’其具有表面互連或内埋互連中之任一者或 備或任何其他計算設備 兩者)中。在任—狀況τ,可接著將該晶片與其他晶片、 離政電路元件及/或其他信號處理設備整合作為一中間產 品(諸如一母板)或一最終產品之一部分。該最終產品可為 ㈣包括積體電路晶片之產品,#自玩具及其他低端應用 變化至具有一顯示器、—鍵盤或其他輸入設備及一中央處 理器之高級電腦產品。此外,其巾可提供龍電路晶片2 最終產品可包括遊戲機器、遊戲控制臺、掌上型計算設 備個人數位助理、通信設備(諸如無線電話及其類似設 備)、膝上型計算設備、桌上型計算設備、伺服器計算設 Ο 已出於說明及描述之目的而呈現了本發明之描述,且該 描述並不意欲具有詳盡性或被限制至呈所揭示之形式的2 發明。一般熟習此項技術者將顯而易見許多修改及改變。 遥擇並描述實施例以便最好地解釋本發明 & a之原理、實際應 用,且使得一般熟習此項技術者能夠針對具有如適合於預 期之特定使用之各種修改的各種實施例而理解本發明。' 【圖式簡單說明】 x 圖1係其中可實施說明性實施例之一多虛理/ 一 夕爽理斋系統的例 示性方塊圖; 圖2係一說明根據一說明性實施例之隨機 〜丨思铖開機處理器選 121296.doc -47 - 200817970 擇機制之主要操作組件的例示圖; 圖3 Α係一說明根據一說明性實施例之隨機選擇機制的例 示圖; 圖3B係根據一說明性實施例之被引入於至一隨機事件產 生器之一 LFSR計數器之輸入的抖動的圖形表示; 圖3 C係一說明其中使用並行信號線而將一秘密密鑰及複 Ο
數個隨機產生之密鑰值提供至處理器之一說明性實施例的 例示性圖; 圖4A-4D係說明根據說明性實施例之用於遮蔽一隨機選 擇之開機處理器之一安全開機操作的遮蔽操作的例示性 圖; 圖5係一概述一用於將一多處理器系統中之一處理器隨 機選擇作為一開機處理器之例示性操作的流程圖; 圖ό係一概述一根據一說明性實施例之用於遮蔽一開機 碼序列之例示性操作的流程圖; 圖7 Α係一說明根據一說明性實施例而被組態為一菊鏈或 壤形配置之分布式開機操作的例示性圖; 圖7B係一說明根據_說明性實施例而被組態為一主控/ 叉控配置之分布式開機操作的例示性圖;及 圖8係一概述根據一說明性實施例之用於一多處理器系 統之分布式開機的例示性操作的流程圖。 【主要元件符號說明】 100 Cell寬頻引擎(CBE) 110 功率處理器元件(PPE) 121296.doc -48 - 200817970 112 L 1快取區 114 L2快取區 116 功率處理器單元(PPU) 120-134 協同處理器元件(SPE) 140-154 協同處理器單元(SPU) 155-162 記憶體流控制單元(MFC) 163-170 區域記憶體或儲存器(LS) p 180-194 匯流排介面單元(BIU單元) 193 滲透邏輯 196 高頻寬内部元件互連匯流排(EIB) 197 匯流排介面控制器(BIC) 198 記憶體介面控制器(MIC) 199 共用記憶體 210 系統控制器 220 安全密鑰儲存器 u 230 快閃RQM 232 加密開機碼 240 滲透邏輯 * 242 隨機事件產生器 * 250 組態位元暫存器 260 選擇器 262 隨機值產生器 270 協同處理器元件(SPE) 280 處理器 121296.doc -49- 200817970 Γ 290 處理器 310 隨機事件產生器 320 線性反饋移位暫存器(LFSR)計數器 330 環形振盪器 340 選擇器信號暫存器/解碼器 350 選擇器 352 多工器 360 選擇器 362 多工器 370 選擇器 372 多工器 390 隨機密鑰值產生器 391 多工器 392 多工器 393 協同處理器元件(SPE) 394 協同處理器元件(SPE) 395 Skey儲存器/安全密鑰儲存器 396 隨機事件產生器 397 滲透邏輯 400 多處理器系統 410 SPE0 412 SPE1 414 SPE2 416 SPE3 121296.doc -50- 200817970 Ο 418 SPE4 420 SPE5 422 SPE6 424 SPE7 710 加密開機碼 720 處理器 730 處理器 740 處理器 750 處理器 760 處理器 790 滲透邏輯 121296.doc -51 -

Claims (1)

  1. 200817970 十、申請專利範圍: 1. 一種在一具有複數個處理器之資料處理系統中用於使該 資料處理系統開機的方法,其包含: 將開機碼分割為複數個開機碼分割部分; 將一來自該複數個開機碼分割部分之開機碼分割部分 載入該資料處理系統之該複數個處理器内的複數個開機 處理器中之每一者中;及 將該複數個開機碼分割部分作為複數個會期而在其各 Ί 別相關聯之開機處理器上加以執行,以藉此使該資料處 理系統開機,其中若任一會期導致一開機碼分割部分之 一不成功或被損害執行,則該資料處理系統之開機失 敗。 2. 如請求項1之方法,其中,當完成每一開機碼分割部分 在其之相關聯之會期中的執行時,該複數個處理器中之 一相關聯之執行該開機碼分割部分的開機處理器將該開 、 機碼分割部分之該成功完成發送信號至與一開機碼序列 中之一下一開機碼分割部分相關聯的另一開機處理器。 3. 如請求項1之方法,其中在該複數個開機碼分割部分之 各別相關聯之開機處理器上執行該複數個開機碼分割部 分包含: 對開機處理器間之通信利用一安全性機制以確保該複 數個開機碼分割部分在其之各別相關聯之開機處理器上 的未損害執行。 4. 如請求項3之方法,其中該安全性機制包含以下中之至 121296.doc 200817970 :-者:在開機處理器之間傳遞一安 處理哭夕Ρ弓难、庵也, 匕’在開袖: -之間傳遞-數位簽名;使用一密碼 碼分割部分之一總和檢杳 ' 開 钤/私文―A — -馬’或使用该等信號之公用密 ‘ /私始、密鑰加密。 5.項1之方法’其中開機碼分割部分之—數目等於 開機處理器之—數目。 欠目# 、 6·如請求項丨之方法,其進一步包含: Ο Ο 自:複數個處理器隨機選擇該等開機處理 專開機處理器係該複數個處理器之一子組。 -中。 7.如請求項6之方法,其進一步包含:、、 在該複數個處理器之未被隨 理器上執行遮蔽碼。 巧開私處理器的處 8·如請求項丨之方法,其進_步包含: 隨機選擇哪一開機碼分 聯,其中每一門… ^與母一開機處理器相關 分。 於,、他開機碼分割部 9·如請求項1之方法,其中該等用於在該 執行開機碼分割部分 :處理器上 罢々 曰d係以一網鏈配置、一戸心 置或一主控/受控配置中一 展形配 、一考而配置。 10·如請求項i之方法,苴 ,^ ^ ^中4貝料處理系統係一里# 上多處理器李统,兮g拼 異貝晶片 叩糸、、死4異質晶片上多處理哭备从 據一第一指令集而操作之第 的”、、先具有一根 同於該第-指令集之第二指次夕個根據-不 種貧料處理系統,其包含: 处理态。 121296.doc 200817970 複數個處理器,· % m双调處 其中該開 分的開機 处一叫微碼儲存哭 碼,及 ^碼儲存轉存被分割為複數個開機碼分^ 祸接至該複數個處理器之滲透邏輯,苴 將-來自該複數個開機碼分割部分之開機:渗透邏輯 入該資料處理彳& > ”、、刀割部分載 处理糸統之该钹數個處理器 理器中之每一者中, ^ 灵數個開機處 Τ 五具中该稷數個開檣石民八 作為複數個會期而在其各別相關聯之開機處::部分係 執仃’以藉此使該資料處理系統開機,其σσ上加以 導致一門&八 /、中右任一會期 導致«碼分割部分之-不成功或 資料處理系統之開機失敗。 、。執仃,則该 12. 13. 14. 如睛求項Π之系統,1中,去— 在苴夕士 q /、中田凡成母—開機碼分割部分 在/、之相關聯之會期中的執行時 一 了 茨设數個處理器中之 一相關聯之執行該開機碼分判部分 x ,刀口J 口丨刀的開機處理器將該開 “晴之該成功完成發送信號至與—開機碼序列 ,-下-開機碼分割部分相關聯的另—開機處理器。 :請求項11之系統’其中利用-安全性機制以用於開機 处理器間之通信’從而確保該複數個開機碼分割部分之 未損害執行。 如睛求項13之系統,其中該安全性機制包含以下中之至 少一者:在開機處理ϋ之間傳遞—安全性符記;在開機 處理器之間傳遞—數位簽名;使用一密碼;傳遞一開機 碼分割部分之一總和檢查碼;或使用該等信號之公用密 121296.doc 200817970 15 16 17Ο 18 19. 20.Ο 錄/私密密鑰加密。 .如請求項11之系統,苴中 ^ /、中開機碼分割部分之一數目篝f 開機處理器之一數目。 致目專於 •如請求項11之系統,苴Φ ^ 八中5亥滲透邏輯自該複數個虛採哭 Ik機選擇該等開機處理器, 处里口口 -八中該等開機處理哭俜該 禝數個處理器之一子組。 叩係忑 月求項1 6之系統,其中該 。^ -^ 5文個處理裔中之未被隨機 擇為開機處理器的處理器執行遮蔽碼。 ,如請求項11之系統,其中嗲 碼分割㈣機選擇哪-開機 地 開钺處理态相關聯,且其中各一門 機碼分割部分不同於其他開機碼分割部分。中母開 執r m: 11之系統’其中該等用於在該等開機處理器上 仃開機碼分割部分的會 匈鏈配置、—環形配 主控/欠控配置中之一者而配置。 一種電腦程式產品,其包含一且古^ 電腦可用媒體,其中當在—資:Γ電腦可讀取程式之 電腦可讀取程式導致”心&理系統上執行時’該 彺八蜍致该貧料處理系統·· 將開機碼分割為複數個開機碼分割部分; 將一來自該複數個開機碼分割 #入嗾叙, 4 1刀之開機碼分割部分 複數個開機處理器中之每一者中;及 將該複數個開機碼分判部分 .,,,M , 口」口丨刀作為複數個會期而在1冬 肩聯之開機處理器上加以執行 ’、 系統開機,JL中〜紅_ a 、 資料處理 ’、右一 ^期導致一開機碼分割部分之一 不成功或被損害執行, 貝J 3貝枓處理糸統之開機失敗。 121296.doc
TW096119979A 2006-06-09 2007-06-04 System and method for secure boot across a plurality of processors TW200817970A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/423,342 US20070288740A1 (en) 2006-06-09 2006-06-09 System and method for secure boot across a plurality of processors

Publications (1)

Publication Number Publication Date
TW200817970A true TW200817970A (en) 2008-04-16

Family

ID=38373250

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096119979A TW200817970A (en) 2006-06-09 2007-06-04 System and method for secure boot across a plurality of processors

Country Status (6)

Country Link
US (2) US20070288740A1 (zh)
EP (1) EP2027551A1 (zh)
JP (1) JP5031029B2 (zh)
CN (1) CN101401103B (zh)
TW (1) TW200817970A (zh)
WO (1) WO2007141112A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3916953B2 (ja) * 2001-12-28 2007-05-23 日本テキサス・インスツルメンツ株式会社 可変時分割多重伝送システム
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US8132267B2 (en) 2008-09-30 2012-03-06 Intel Corporation Apparatus and method to harden computer system
US20100083365A1 (en) * 2008-09-30 2010-04-01 Naga Gurumoorthy Apparatus and method to harden computer system
CN102043648A (zh) * 2009-10-23 2011-05-04 中兴通讯股份有限公司 多核系统及其启动方法
US20110099423A1 (en) * 2009-10-27 2011-04-28 Chih-Ang Chen Unified Boot Code with Signature
WO2013009619A2 (en) * 2011-07-08 2013-01-17 Openkeak Inc. System and method for validating components during a booting process
US9465755B2 (en) 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
US9319884B2 (en) 2011-10-27 2016-04-19 T-Mobile Usa, Inc. Remote unlocking of telecommunication device functionality
US9055443B2 (en) 2011-10-27 2015-06-09 T-Mobile Usa, Inc. Mobile device-type locking
US8839004B1 (en) * 2012-04-16 2014-09-16 Ionu Security, Inc. Secure cloud computing infrastructure
US9172538B2 (en) 2012-04-20 2015-10-27 T-Mobile Usa, Inc. Secure lock for mobile device
US10075848B2 (en) 2012-08-25 2018-09-11 T-Mobile Usa, Inc. SIM level mobile security
TWI495785B (zh) * 2013-05-29 2015-08-11 Univ Chaoyang Technology 握壓推動流體之發電裝置
US9268942B2 (en) 2013-06-12 2016-02-23 Arm Limited Providing a trustworthy indication of the current state of a multi-processor data processing apparatus
JP2015011357A (ja) * 2013-06-26 2015-01-19 富士通株式会社 情報処理システム及び情報処理システムの制御方法
CN104281460A (zh) * 2013-07-08 2015-01-14 英业达科技有限公司 伺服器及启动方法
CN104346150B (zh) * 2013-07-30 2017-10-17 华为技术有限公司 多实例业务的可执行文件的生成方法和装置
US9807607B2 (en) 2014-10-03 2017-10-31 T-Mobile Usa, Inc. Secure remote user device unlock
US10769315B2 (en) 2014-12-01 2020-09-08 T-Mobile Usa, Inc. Anti-theft recovery tool
US9916476B2 (en) * 2015-08-28 2018-03-13 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Maintaining cryptoprocessor types in a multinode environment
WO2018042766A1 (ja) * 2016-08-30 2018-03-08 株式会社ソシオネクスト 処理装置、半導体集積回路及び半導体集積回路の起動方法
US10171649B2 (en) 2017-04-21 2019-01-01 T-Mobile Usa, Inc. Network-based device locking management
US10476875B2 (en) 2017-04-21 2019-11-12 T-Mobile Usa, Inc. Secure updating of telecommunication terminal configuration
US10678927B2 (en) * 2017-08-31 2020-06-09 Texas Instruments Incorporated Randomized execution countermeasures against fault injection attacks during boot of an embedded device
US11593119B2 (en) * 2018-04-27 2023-02-28 Tesla, Inc. Autonomous driving controller parallel processor boot order
DE102018133605B4 (de) * 2018-12-27 2023-03-02 Bachmann Gmbh Verfahren und Vorrichtung zur Prüfung der Integrität von Modulen einer Windkraftanlage
US10972901B2 (en) 2019-01-30 2021-04-06 T-Mobile Usa, Inc. Remote SIM unlock (RSU) implementation using blockchain
FR3094520B1 (fr) * 2019-03-25 2021-10-22 St Microelectronics Rousset Clé de chiffrement et/ou de déchiffrement
US11321244B2 (en) 2019-12-16 2022-05-03 Samsung Electronics Co., Ltd. Block interface emulation for key value device
CN111106935B (zh) * 2019-12-27 2023-05-16 天津芯海创科技有限公司 一种支持多端异构模式下的秘钥管理架构
US11868635B2 (en) * 2020-04-20 2024-01-09 Western Digital Technologies, Inc. Storage system with privacy-centric multi-partitions and method for use therewith
US11423153B2 (en) * 2020-08-18 2022-08-23 Raytheon Company Detection of malicious operating system booting and operating system loading
US11409846B2 (en) * 2021-01-14 2022-08-09 Safelishare, Inc. User controlled trusted and isolated computing environments
US11797679B2 (en) * 2021-07-28 2023-10-24 Dell Products, L.P. Trust verification system and method for a baseboard management controller (BMC)

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63121978A (ja) * 1986-11-11 1988-05-26 Fujitsu Ltd 大規模組合せ問題の最適化処理装置
JPH04216159A (ja) * 1990-12-17 1992-08-06 Hitachi Ltd 計算機の高速立ち上げ方式および計算機システム
US5555373A (en) * 1995-02-06 1996-09-10 International Business Machines Corporation Inactivity monitor for trusted personal computer system
US5675772A (en) * 1995-03-23 1997-10-07 Industrial Technology Research Institute Device and method for reconfiguring a computer system with an incompatible CPU
JPH08272756A (ja) * 1995-03-31 1996-10-18 Toshiba Corp マルチプロセッサシステムの起動方法
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
JP2988518B2 (ja) * 1997-03-17 1999-12-13 日本電気株式会社 マルチプロセッサ制御方式
US6192475B1 (en) * 1997-03-31 2001-02-20 David R. Wallace System and method for cloaking software
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
JP3614650B2 (ja) * 1998-03-20 2005-01-26 富士通株式会社 マルチプロセッサ制御方式及びこれに用いられるブート装置及びブート制御装置
US6141756A (en) * 1998-04-27 2000-10-31 Motorola, Inc. Apparatus and method of reading a program into a processor
US6216216B1 (en) * 1998-10-07 2001-04-10 Compaq Computer Corporation Method and apparatus for providing processor partitioning on a multiprocessor machine
CA2252078C (en) * 1998-10-28 2009-02-17 Certicom Corp. Power signature attack resistant cryptographic system
FR2787900B1 (fr) * 1998-12-28 2001-02-09 Bull Cp8 Circuit integre intelligent
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US6282601B1 (en) * 1999-03-31 2001-08-28 International Business Machines Corporation Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
US6578131B1 (en) * 1999-04-27 2003-06-10 Microsoft Corporation Scaleable hash table for shared-memory multiprocessor system
US6415348B1 (en) * 1999-08-23 2002-07-02 Advanced Micro Devices, Inc. Flexible microcontroller architecture
US6550019B1 (en) * 1999-11-04 2003-04-15 International Business Machines Corporation Method and apparatus for problem identification during initial program load in a multiprocessor system
US6473857B1 (en) * 1999-12-06 2002-10-29 Dell Products, L.P. Centralized boot
DE10000503A1 (de) * 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
US6532538B1 (en) * 2000-02-17 2003-03-11 International Business Machines Corporation Method and system for supporting multiple operating systems on the same disk running on different computers at the same time
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
US6754818B1 (en) * 2000-08-31 2004-06-22 Sun Microsystems, Inc. Method and system for bootstrapping from a different boot image when computer system is turned on or reset
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
US7036023B2 (en) * 2001-01-19 2006-04-25 Microsoft Corporation Systems and methods for detecting tampering of a computer system by calculating a boot signature
US6807553B2 (en) * 2001-04-23 2004-10-19 Safenet B.V. Digital true random number generator circuit
US7065654B1 (en) * 2001-05-10 2006-06-20 Advanced Micro Devices, Inc. Secure execution box
US7203747B2 (en) * 2001-05-25 2007-04-10 Overture Services Inc. Load balancing system and method in a multiprocessor system
FI114416B (fi) * 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US6694435B2 (en) * 2001-07-25 2004-02-17 Apple Computer, Inc. Method of obfuscating computer instruction streams
US6641050B2 (en) * 2001-11-06 2003-11-04 International Business Machines Corporation Secure credit card
US7082542B2 (en) * 2001-12-21 2006-07-25 Intel Corporation Power management using processor throttling emulation
US7343484B2 (en) * 2002-03-28 2008-03-11 O2Micro International Limited Personal computer integrated with personal digital assistant
US7065641B2 (en) 2002-06-13 2006-06-20 Intel Corporation Weighted processor selection apparatus and method for use in multiprocessor systems
US7121639B2 (en) * 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
GB2406943B (en) * 2002-12-12 2005-10-05 Advanced Risc Mach Ltd Processing activity masking in a data processing system
US7315874B2 (en) * 2003-03-14 2008-01-01 Nxp B.V. Electronic circuit for random number generation
US7337314B2 (en) * 2003-04-12 2008-02-26 Cavium Networks, Inc. Apparatus and method for allocating resources within a security processor
US7200772B2 (en) * 2003-04-29 2007-04-03 Intel Corporation Methods and apparatus to reinitiate failed processors in multiple-processor systems
US7171568B2 (en) * 2003-06-13 2007-01-30 International Business Machines Corporation Remote power control in a multi-node, partitioned data processing system
US8838950B2 (en) * 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
US20050160474A1 (en) * 2004-01-15 2005-07-21 Fujitsu Limited Information processing device and program
US7426749B2 (en) * 2004-01-20 2008-09-16 International Business Machines Corporation Distributed computation in untrusted computing environments using distractive computational units
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
EP1596270A1 (en) * 2004-05-10 2005-11-16 Dialog Semiconductor GmbH Micro-controller controlled power management chip
US7949883B2 (en) * 2004-06-08 2011-05-24 Hrl Laboratories, Llc Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US7627781B2 (en) * 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
JP4489030B2 (ja) * 2005-02-07 2010-06-23 株式会社ソニー・コンピュータエンタテインメント プロセッサ内にセキュアな起動シーケンスを提供する方法および装置
US7822995B2 (en) * 2005-03-03 2010-10-26 Seagate Technology Llc Apparatus and method for protecting diagnostic ports of secure devices
US20070071233A1 (en) * 2005-09-27 2007-03-29 Allot Communications Ltd. Hash function using arbitrary numbers
US7461275B2 (en) * 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US7562211B2 (en) * 2005-10-27 2009-07-14 Microsoft Corporation Inspecting encrypted communications with end-to-end integrity
CN1764106A (zh) * 2005-11-16 2006-04-26 乔超 一种防止有通信条件/功能的软硬件被盗用的系统和方法
US8015565B2 (en) * 2005-11-21 2011-09-06 International Business Machines Corporation Preventing livelocks in processor selection of load requests
US7610481B2 (en) * 2006-04-19 2009-10-27 Intel Corporation Method and apparatus to support independent systems in partitions of a processing system
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US20070288739A1 (en) 2006-06-09 2007-12-13 Dale Jason N System and method for masking a boot sequence by running different code on each processor
US20070288738A1 (en) 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors

Also Published As

Publication number Publication date
JP5031029B2 (ja) 2012-09-19
CN101401103A (zh) 2009-04-01
CN101401103B (zh) 2012-04-18
JP2009540405A (ja) 2009-11-19
WO2007141112A1 (en) 2007-12-13
US20080229092A1 (en) 2008-09-18
US20070288740A1 (en) 2007-12-13
EP2027551A1 (en) 2009-02-25
US8046574B2 (en) 2011-10-25

Similar Documents

Publication Publication Date Title
TW200817970A (en) System and method for secure boot across a plurality of processors
US7779273B2 (en) Booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7774616B2 (en) Masking a boot sequence by providing a dummy processor
US8037293B2 (en) Selecting a random processor to boot on a multiprocessor system
US8046573B2 (en) Masking a hardware boot sequence
US20070288739A1 (en) System and method for masking a boot sequence by running different code on each processor
US9842212B2 (en) System and method for a renewable secure boot
TW480397B (en) Secure memory
TWI266989B (en) Method, apparatus and token device for protection against memory attacks following reset
US20130254494A1 (en) Method and system for process working set isolation
TW200949684A (en) Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
CN117349819A (zh) 用于多核处理器的远程认证
US10057224B2 (en) System and method for initializing a shared secret system
CN110799979B (zh) 用于多核处理器的安全密钥存储
TW201209710A (en) Microprocessor, method of protection and method of revoking first password
JP2003209545A (ja) コア内蔵型集積回路及びそのコア盗用防止方法