TWI654559B - 應用多核心處理器執行安全確認的開機方法與其系統 - Google Patents
應用多核心處理器執行安全確認的開機方法與其系統Info
- Publication number
- TWI654559B TWI654559B TW106118282A TW106118282A TWI654559B TW I654559 B TWI654559 B TW I654559B TW 106118282 A TW106118282 A TW 106118282A TW 106118282 A TW106118282 A TW 106118282A TW I654559 B TWI654559 B TW I654559B
- Authority
- TW
- Taiwan
- Prior art keywords
- core
- memory
- booting
- core processor
- computer system
- Prior art date
Links
Abstract
一種應用多核心處理器執行安全確認的開機方法與相關系統,以多核心處理器執行的安全確認的運算係用於測試電腦系統是否為一特定用途的安全系統。使用多核心處理器處理安全確認的任務可以提供更有效率的運算過程,其中主要是以多個核心分別執行電腦系統週邊的安全確認任務。根據一實施例,在開機程序中,系統將分配多核心處理器的各核心對各個儲存媒體平行執行不同的安全確認任務。
Description
本發明關於一種電腦系統的安全確認技術,特別是一種應用電腦系統中多核心處理器,並以各核心分別執行不同儲存媒體的安全確認的開機方法與其系統。
將電腦開啟後,系統準備初始化,首先由基本輸出入系統(BIOS基本輸出入系統)開始,利用BIOS基本輸出入系統所記載的系統硬體資訊分別驅動各種週邊硬體,包括決定開機磁區、記憶體分配、輸出入埠的狀態,並開始進入開機自我檢測程序(POST),包括檢查各連接週邊與設定,如中央處理器、記憶體、鍵盤、滑鼠等裝置的狀態。當根據BIOS基本輸出入系統所載資訊由開機磁區載入作業系統(OS)之後,開始進入作業系統啟動程序。
為了突破傳統BIOS基本輸出入系統的限制,於是產生了一種稱為可延伸韌體介面(Extensible Firmware Interface,EFI)基本輸出入系統,EFI後來發展為統一可延伸韌體介面(Unified EFI,UEFI),此類BIOS基本輸出入系統除了進行硬體辨識、控制與系統資源掌控外,更有系統地分配儲存空間,其中定義的可延伸韌體介面用以溝通硬體、韌體與作業系統。
此類可延伸韌體介面基本輸出入系統內不可區分為硬體控制
與作業系統管理,其中可設有可延伸韌體介面的驅動程式,作為硬體辨識、控制與系統資源控制,包括可以載有作業系統,甚至可獨立執行作業系統。
更者,可延伸韌體介面基本輸出入系統的特性之一是一種具有彈性的驅動程式模組架構,可以擴充其中驅動程式,因此相較於傳統寫入不易改寫的記憶體型態的BIOS基本輸出入系統,此可擴充性使得此類基本輸出入系統可被改寫。
不過,這個可修正的特色可能也威脅到電腦系統的安全性,例如若應用在需要高安全性的遊戲系統(或是博奕系統)中,將需要在開機程序中偵測可延伸韌體介面基本輸出入系統是否有被竄改的疑慮。更者,除了防止UEFI BIOS被竄改外,對於要求安全的系統來說,其中的儲存媒體更需要安全確認,特別是在開機程序中需要額外的時間來確認各種儲存媒體是否有安全疑慮。
逐漸成為電腦系統普遍採用的基本輸出入系統的一種可延伸韌體介面基本輸出入系統(UEFI/EFI BIOS基本輸出入系統)具有彈性可擴充的程式特性,但用於需要嚴格安全驗證的電腦系統而言,此類可延伸韌體介面基本輸出入系統的特性可能會導致被不當竄改而有安全上的疑慮,本揭露書提出的應用多核心處理器執行安全確認的開機方法則更應用到整個電腦系統的各種系統,如作業系統與遊戲系統,並在開機程序中以多核心分別執行不同儲存媒體的安全確認。
在一實施例中,在應用多核心處理器執行安全確認的開機方法中,在開機程序中先啟始電腦系統的可延伸韌體介面基本輸出入系統,並通過基本輸出入系統中的程序識別電腦系統的硬體,再以此程序偵測電腦系統的多核心處理器,以及依據開機程序中多個任務而啟用多核心處理器的多個核心,接著分配每個啟用的
核心平行處理多個任務的一個,並在在任務完成後,系統將決定是否啟動電腦系統的作業系統。
進一步地,以多核心中的一個核心執行確認UEFI BIOS的任務,先將儲存在電腦系統的一記憶體的一基本輸出入系統特徵值(BIOS digest)取出,以此比對在開機程序中即時運算的一當前基本輸出入系統特徵值(present BIOS digest);同時,可以另一核心執行確認作業系統(OS)的任務,此任務是先取出儲存在記憶體的作業系統特徵值(OS digest),以此比對在開機程序中運算的當前作業系統特徵值(present OS digest);同時,又可以一核心執行確認電腦系統中遊戲系統(gaming system)的任務,此任務先取出儲存在記憶體的一遊戲系統特徵值(gaming-system digest),以此比對在開機程序中運算的當前遊戲系統特徵值(present gaming-system digest)。
經比對預先設定的特徵值後,當可延伸韌體介面基本輸出入系統、作業系統與遊戲系統完成確認後,表示沒有被竄改的問題,電腦系統開始啟動而進入作業系統。
所述特徵值(digest)係對儲存於一儲存媒體的可延伸韌體介面基本輸出入系統、作業系統與遊戲系統的程式碼(包括編譯後的程式),以逐位元運算得到各個特徵值,並儲存在電腦系統的記憶體中。以此為比對基礎,與開機程序中即時運算的特徵值比對,可以對各儲存媒體中的系統執行安全確認。
在另一實施例中,揭露書描述一種應用多核心處理器執行安全確認的開機系統,系統包括有第一記憶體,用以儲存電腦系統的UEFI BIOS的韌體,有第二記憶體,用以儲存基本輸出入系統特徵值、作業系統特徵值,以及遊戲系統特徵值,有第三記憶體,用以儲存電腦系統的作業系統的程式碼(包括編譯後的程式)。另有實施例顯示電腦系統更包括一遊戲系統,同樣應先儲存遊戲系統特徵值。
系統設有一加密模組,於開機程序中,以此應用多核心處理器執行安全確認的方法,包括啟始開機程序、啟始UEFI BIOS、通過UEFI BIOS,加密模組識別電腦系統的硬體,並偵測得到多核心處理器的資訊,能依據開機程序中多個任務而啟用多核心處理器的多個核心。在一任務中,分配第一核心執行確認UEFI BIOS的韌體,在另一任務中,分配第二核心執行確認作業系統的程式,並在任務完成後,決定是否啟動電腦系統的作業系統。
在另一實施例中,系統更包括第四記憶體,第四記憶體儲存遊戲系統的程式碼,並在開機程序中分配第三核心執行確認遊戲系統的任務。
為了能更進一步瞭解本發明為達成既定目的所採取之技術、方法及功效,請參閱以下有關本發明之詳細說明、圖式,相信本發明之目的、特徵與特點,當可由此得以深入且具體之瞭解,然而所附圖式與附件僅提供參考與說明用,並非用來對本發明加以限制者。
101‧‧‧多核心處理器
102‧‧‧記憶體匯流排
103‧‧‧基本輸出入系統
111‧‧‧加密模組
104‧‧‧非揮發性記憶體
112‧‧‧特徵值
105‧‧‧硬碟機
113‧‧‧作業系統
201‧‧‧基本輸出入系統
202‧‧‧第一特徵值
203‧‧‧作業系統
204‧‧‧第二特徵值
30‧‧‧第一記憶體
32‧‧‧第二記憶體
33‧‧‧第三記憶體
34‧‧‧第四記憶體
301‧‧‧開機區塊
302‧‧‧主區塊
303‧‧‧固定變數區塊
304‧‧‧安全特徵值
305‧‧‧剩餘空間
306‧‧‧作業系統
307‧‧‧遊戲系統
40‧‧‧多核心處理器
421‧‧‧基本輸出入系統
423‧‧‧啟動加載程序
425‧‧‧加密模組
427‧‧‧特徵值
42‧‧‧快閃記憶體
S501~S515‧‧‧安全確認的開機流程
圖1顯示電腦系統的架構示意圖;圖2A顯示為由一加密模組產生特徵值的實施例圖;圖2B顯示由一加密模組產生特徵值的另一實施例圖;圖3顯示儲存UEFI BIOS、作業系統與遊戲系統的特徵值的記憶體區塊實施例示意圖;圖4顯示為應用多核心處理器執行安全確認的開機系統的實施例示意圖;圖5顯示的流程圖描述應用多核心處理器執行安全確認的開機方法的流程實施例。
揭露書描述應用電腦系統中多核心處理器(multi-core processor)執行安全確認(security verification)的開機方法與其系統實施例。電腦系統中的統一可延伸韌體介面/可延伸韌體介面基本輸出入系統(Unified Extensible Firmware Interface Basic Input/Output System,UEFI BIOS)為一種可修改的基本輸出入系統,並逐漸廣泛應用在現代的電腦系統中。
可延伸韌體介面基本輸出入系統可在電腦系統開機程序中初始化電腦系統中韌體與硬體,然而這類可被修改/編程的UEFI BIOS卻可能為電腦系統帶來風險,使得BIOS或是各種系統有可能被惡意竄改的風險。因此,對於安全性要求高的電腦系統來說,需要對BIOS與系統進行安全確認的措施。
舉例來說,遊戲系統或博奕系統對於安全性的要求極高,不能容忍任何安全上的威脅,各種可能的安全疑慮將可能導致電腦系統被未被授權的人或是惡意程式所攻擊,而處於易受駭的狀態。因此,當電腦系統啟動後進入開機程序時,揭露書提出的安全確認機制將對電腦系統中特定安全性要求高的系統執行安全確認,如其中的作業系統(operating system)、遊戲系統(gaming system)等,應嚴格地對其中程式碼(包括編譯後的程式)執行安全確認。
在開機程序中的安全確認目的是防止程式碼被不當竄改,免得程式當中被埋下隱藏的程式碼,所述的應用多核心處理器執行安全確認的開機方法即僅允許通過安全確認的系統繼續運作,如遊戲系統/博奕系統,只有在開機程序中完成安全確認才能在沒有安全威脅下被正常啟動。
然而,開機程序將因為執行了安全確認而延長了開機時間,在一實施方案中,在具有多核心處理器的電腦系統中,多個處理核心將可被有效應用在開機程序中,避免安全確認運行而延遲過長的開機時間。多核心處理器是指電腦系統中一個具有兩個以上處理核心的單一運算元件,而多個處理核心為實際處理數據的運
算單元。
當具有多核心處理器的電腦系統在開機程序中被初始化,多核心處理器的多核心處理程序將被啟始,並同時啟用其中處理核心,讓處理核心處於運作狀態。在電腦系統開機程序中,開機程序先偵測多核心處理器的多個處理核心,多個處理核心分別運行多核心處理程序,並在一多核心服務協定(MP-service protocol)規範下管理多處理核心的處理程序。通過此多核心服務協定,多個處理核心可被選擇性地啟用(enabled)或停用(disabled)。
多核心服務協定定義了兩類處理器,多個處理核心之一被定義為啟動處理器(bootstrap processor,BSP),其餘核心則為應用處理器(application processors,APs)。當具有多核心處理器的電腦系統開機,或是被重置(reset)之後,開機程序中將有一程序運行此多核心服務協定,此時,動態地,有一個處理核心被選定為啟動處理器(BSP),核心編號可為核心‘0’,其餘處理核心則被選為應用處理器(AP),核心編號可為核心1、核心2、核心3等。
揭露出提出的系統採用了安全確認機制,在開機程序中確認電腦系統是否為安全,特別是能確保UEFI BIOS不被不當竄改。安全確認的措施可適用於UEFI BIOS記憶體以外的各種儲存媒體中的內容。根據揭露書描述的實施例,應用電腦系統中多核心處理器執行安全確認的開機方法特別是利用了多核心處理器中多個處理程序可以平行運行在不同儲存媒體的安全確認程序的優點,讓電腦系統可以在特定服務協定下平行處理開機程序中的多個任務,藉此在開機程序執行安全確認程序,為一種高安全性的解決方案。
參考圖1顯示的實施例示意圖,其中描述了電腦系統的架構,電腦系統包括有幾種儲存媒體,分別儲存UEFI BIOS韌體、相關特徵值(digests)與作業系統。
在此實施例示意圖中,顯示電腦系統中的多核心處理器101,
而作為電腦系統的中央處理器,電腦系統不排除可以採用兩個或以上的多核心處理器。多核心處理器101為一個封裝有多個處理核心的晶片,此例顯示為四核心處理器(quad-core processor),其中有四個獨立的處理核心,示意圖顯示核心編號分別為核心0(core 0)、核心1(core 1)、核心2(core 2)與核心3(core 3),各處理核心運行的程序用以讀取與執行中央處理器的指令。
電腦系統使用了一記憶體匯流排(memory I/O bus)102經一前側匯流排(front-side bus)連結系統中的多核心處理器101,並通過此記憶體匯流排與其他記憶體通訊。記憶體匯流排102提供多核心處理器101存取系統資源的通道,每個處理核心更可個別獨立存取系統資源。如此,多個處理核心可以同時執行多個指令。
在此實施例中,示意圖顯示有多種形式的儲存媒體,例如第一記憶體103,用以記載UEFI BIOS的韌體程式碼;第二記憶體104用以儲存各種特徵值(digests)112;以及一個硬碟機105,用以儲存至少有作業系統113的程式碼。為了實現在開機過程中執行安全確認程序,根據實施例之一,在UEFI BIOS的第一記憶體103中安裝有一指令集,以一加密模組(cryptography module)111為例,加密模組111可以是一個內嵌在UEFI BIOS韌體中的程式集。當UEFI BIOS啟始,連帶加密模組111被啟動。
在一實施方案中,前述用以儲存UEFI BIOS韌體程式的第一記憶體103可以為一種串列週邊介面(serial peripheral interface,SPI)快閃記憶體,但不排除可以其他形式的儲存媒體實現。第二記憶體104為非揮發性記憶體,亦同樣可為串列週邊介面(SPI)快閃記憶體,亦可為一種電子抹除式可複寫唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM),電子連接第一記憶體103。第二記憶體104用以儲存特徵值112,特徵值主要為自UEFI BIOS以及作業系統運算得出用以執行安全確認的一種數位資訊,例如對BIOS的韌體程式碼與
作業系統程式碼以一特定演算法逐位元運算得到各個特徵值。前述第一記憶體103與第二記憶體104可為電腦系統中裝載於主機板上的記憶體晶片。
電腦系統運行時,電腦系統仍可以提供額外的儲存裝置儲存作業系統113的程式碼,作業系統113在開機程序的最後程序中載入主記憶體中,也可載入到硬碟機105。更者,多核心處理器101通過記憶體匯流排102存取硬碟機105。硬碟機105可以為一或多個邏輯或實體磁碟分割區,也就是電腦系統可以包括兩個或多個分開的邏輯或實體磁碟分割區,提供給不同的作業程序。舉例來說,系統可以預備作業系統的磁碟,或有其他用途的磁碟,如遊戲系統。
根據一實施例,記載於第一記憶體103的UEFI BIOS安裝的加密模組111如一種韌體驅動程式(firmware-based driver),加密模組111為一執行安全確認的開機程序之一,其目的之一係為檢查UEFI BIOS是否被不當竄改,加密模組111的另一目的是要確保硬碟機105或其他儲存媒體中的程式的安全。
進一步地,運行於開機程序中的安全確認程序需要先取得連結一特定記憶區塊的映像(image)的特徵值,特徵值包括自UEFI BIOS的初始狀態(initial state)或是前一次經確認的狀態(previous approved state)下的映像運算得到的簽章值(signature value)。同樣地,作業系統也形成自己的特徵值,也可為由作業系統的初始狀態或是前次(或某一次)經確認的狀態下的映像運算得到的簽章值。對於具有遊戲系統的電腦系統而言,遊戲系統特徵值可為由遊戲系統的初始狀態或是前次經確認的狀態下的映像運算得到的簽章值。對於儲存於一儲存媒體的可延伸韌體介面基本輸出入系統、作業系統與遊戲系統的程式碼,系統係以逐位元運算(bit-to-bit computation)得到各個特徵值,並儲存在電腦系統的記憶體中,其中事先運算得到的特徵值是作為安全確認比對的參
考值,也包括在開機程序中當下運算得到特徵值。此類以特徵值為比對基礎的安全確認方案,可以用來檢查是否這些比對對象(特定儲存位置的內容)有被不當竄改的疑慮。
可參考圖2A,其中顯示由加密模組運算產生的特徵值的概圖,基於UEFI BIOS為可修改的特性,系統在開機程序中對基本輸出入系統201執行安全確認,由加密模組111先行對初始狀態或是經確認的狀態下的基本輸出入系統201運算第一特徵值202,加密模組111於是可在開機程序中執行安全確認程序,用以檢查基本輸出入系統201是否被竄改。加密模組111可為硬體或軟體實現的程序,程式部分可以載於系統的任何儲存空間中,包括載於UEFI BIOS相關的快閃記憶區塊中。
以上所述安全確認程序主要是用以確認UEFI BIOS中的可變區塊是否被竄改,先是由載於UEFI BIOS中的加密模組111運算得到第一特徵值202,第一特徵值202作為比對的參考值,用以對照開機程序中由加密模組111即時運算得到的UEFI BIOS當下的特徵值,藉由此安全確認程序,根據比對的結果,系統可以判斷出UEFI BIOS是否有被竄改的問題。
同樣地,安全確認機制可應用在電腦系統的其他儲存媒體所儲存的系統上,如作業系統的程式碼,以及特定系統的程式指令等。實施例可參考圖2B所示,其中第二特徵值204為加密模組111根據作業系統203的初始狀態或前次經確認的狀態運算得到的特徵值,在安全確認程序中,加密模組111在開機程序中被啟動,以即時運算當下作業系統203的特徵值,與預先運算的第二特徵值204比對,藉此確認儲存於特定儲存媒體中的作業系統203是否有被竄改的問題。
同樣的安全確認機制也應用在遊戲系統上,例如,為了確保遊戲系統的安全性,由加密模組111啟始的安全確認程序先自遊戲系統的初始狀態或前次確認過的狀態運算得到特徵值,再於開
機程序中即時從遊戲系統的特定記憶區塊中運算得到當下的特徵值,經由比對得到是否被竄改的結果。
最後,系統可以根據特徵值的比對結果來判斷作業系統或是遊戲系統有被竄改的疑慮。
以上描述的安全確認機制使用了由UEFI BIOS與作業系統/遊戲系統運算得出的安全特徵值(第一特徵值202、第二特徵值204),以及在開機程序中即時自UEFI BIOS與作業系統/遊戲系統運算得到的當下的特徵值,兩者比對的結果將反映出安全確認的記憶區塊是否有被竄改的問題。而所述儲存於特定記憶區塊的安全特徵值(202,204)可以被更新,特別是舊的特徵值可以最新已被確認內容的UEFI BIOS、作業系統/遊戲系統重新運算得到的特徵值所取代。例如,當電腦系統的管理者同意或授權修改BIOS或作業系統的內容,更新後的內容將重新運算得到新的特徵值,用以取代原本的特徵值。
儲存在特定記憶區塊的安全特徵值(202,204)本身應該安全地儲存在電腦系統中的特定記憶區塊,安全特徵值(202,204)也應具備防止被盜取或竄改的措施。例如,可以特定加密演算法對安全特徵值(202,204)運算後才儲存在特定記憶區塊中。在開機程序中,加密模組111應重新解密被加密的安全特徵值(202,204)來比對即時運算的特徵值。
參考圖3顯示的各記憶區塊與特徵值的關係概圖。其中顯示有第一記憶體30,用以儲存UEFI BIOS的韌體程式,為了確保UEFI BIOS未被竄改,可以將UEFI BIOS的記憶區塊設定為防寫保護。原本第一記憶體30為可重複寫入的快閃記憶體,或是其他非揮發性記憶體;第二記憶體32可以為另一快閃記憶體或其他非揮發記憶體,如EEPROM,用以記載特徵值。第二記憶體32可以如硬碟機或特定形式的儲存媒體。作業系統306的程式碼儲存在第三記憶體33、硬碟機,或是特定儲存媒體。遊戲系統307儲存
在第四記憶體34中,同樣可以為硬碟機或其他形式儲存媒體。
進一步地,如本實施例圖所示,第一記憶體30中的UEFI BIOS設有開機區塊(boot block)301、主區塊(main block)302與固定變數區塊(fixed variable block)303。開機區塊301為基本輸出入系統定義的一個區塊,在開機程序中轉換到程式段(code section),然而,開機區塊301在轉換到程式段前的程式碼應該在安全確認程序中保持不變。主區塊302用以儲存UEFI BIOS的主程式碼,也可以為加密模組儲存的記憶區塊,但實際實施時加密模組也不限於儲存在此記憶區塊中。這個固定變數區塊303一般為UEFI BIOS儲存基本輸出入系統變數的記憶區塊。UEFI BIOS的變數可以在每次開機程序中被修改,因此,此固定變數區塊303特別為一種防止寫入的記憶區塊,以確保UEFI BIOS符合安全的要求。
在一般實施例中,以上所述第二記憶體、第三記憶體與第四記憶體可以為同一個儲存裝置,或是一個儲存裝置中的三個不同分割區,或是三個獨立的儲存裝置。進一步地,作業系統306的相關作業程式可以儲存在第三記憶體33的一個分割區中,遊戲系統307的程式可以儲存在第四記憶體34的一個分割區中。在一範例中,遊戲系統不一定為一獨立的系統,而可以為作業系統306的一部分,也就是第三記憶體33與第四記憶體34可以為一個硬碟機中的兩個分別的分割區,或是兩個分開的實際硬碟機,亦可以為其他特定形式的儲存媒體。
安全確認的機制讓本揭露書提出的系統分割第二記憶體32為多個記憶空間,用以通過記憶體匯流排儲存安全特徵值304,可以為多個特徵值。第二記憶體32用以儲存由第一記憶體31、第三記憶體33與第四記憶體34中的內容運算所得到的安全特徵值304。
在此實施例中,安全特徵值304包括有第一特徵值,第一特徵值為由第一記憶體30中UEFI BIOS的固定變數區塊303以一特
定加密演算法運算得到。安全特徵值304包括有第二特徵值,第二特徵值由第三記憶體33的作業系統306以一演算法運算得出。安全特徵值304包括有第三特徵值,第三特徵值由第四記憶體34中的遊戲系統307以一演算法運算得到。圖中虛線表示安全特徵值304通過加密模組運算儲存在第二記憶體32的固定變數區塊303,以及儲存在特定儲存媒體中的作業系統306與遊戲系統307的特徵值。所述特定演算法主要是對UEFI BIOS、作業系統或遊戲系統逐位元、位元組運算得到特徵值。
在一實施例中,UEFI BIOS中載有在安全確認程序中得出特徵值的程式,可以將儲存安全特徵值304以外的空間,也就是第二記憶體32的剩餘空間305,設為空值(void),以符合UEFI BIOS規格。並設有指向器(pointer),用以指出儲存安全特徵值304的記憶體位址,使得處理器可以根據記憶體位址得出特徵值。
在一實施例中,加密模組安裝於UEFI BIOS的某個記憶區塊中,加密模組用以執行加密演算法,可以對UEFI BIOS韌體與特定儲存媒體中的程式碼(或程式)運算得出特徵值,所述加密演算法可為一種安全散列演算法(SHA,Secure Hash Algorithm),用以執行加密雜湊演算(cryptographic hash algorithm),以能對加密對下逐位元運算得出特徵值。其中係對儲存於儲存媒體的可延伸韌體介面基本輸出入系統、作業系統與遊戲系統的程式碼,以逐位元運算得到各個特徵值,並儲存在電腦系統的記憶體中。
另一加密演算法如一種1977年開發的RSA(Ron Rivest,Adi Shamir and Leonard Adleman),用以執行非對稱加密演算,應用在本揭露書提出的安全確認的開機方法中,包括運算安全特徵值,以及開機程序中當下的特徵值。
所述執行於開機程序中的安全確認運算同時應用在UEFI BIOS與儲存媒體中的程式碼,相較於以一個處理核心在開機程序中執行安全確認的方式(包括僅有一個核心的處理器,或是多核
心處理器但僅喚起一個核心處理的方式),本揭露書提出的應用多核心處理器執行安全確認的開機方法更採用了多核心處理器,能夠根據任務需求啟用多個處理核心,並在開機程序中實現平行處理任務的處理程序,相關系統描述可參考圖4。
圖中顯示電腦系統中的多核心處理器40包括封裝了兩個以上的核心在一個晶片(IC)中,此例顯示為四個處理核心,在開機程序中,這些獨立的處理核心可以分別處理各自的執行緒(threads),並且是平行運行。多核心處理器40中的核心分別編號為核心0、核心1、核心2與核心3。開機程序可以是重新啟動電腦系統,或是重開機的程序。
在開機程序中,多核心處理器40經一初始化程序後,當偵測到有一個核心適格成為啟動處理器(BSP),即選定此核心為啟動處理器(BSP),其餘的核心則為應用處理器(AP)。啟動處理器將執行UEFI BIO中的啟動碼(boot-strap code),以設定出一個系統環境(systematic environment),並設定資料結構(data structures),以開始初始化應用處理器(AP)。舉例來說,前述核心編號為核心0,核心0的暫存器(register)產生一個啟動處理器旗幟(BSP flag),即選定為啟動處理器。前述加密模組425的程式安裝於一快閃記憶體42,快閃記憶體42用於儲存UEFI BIOS 421的韌體程式碼。
當系統被開機,UEFI BIOS 421初始化多核心處理器40以及電腦系統的周邊,並依據多核心服務協定設定多核心處理器40的啟動處理器(BSP)與應用處理器(APs)。在開機程序中,UEFI BIOS讀取啟動加載程序(boot loader)423,啟動加載程序423為安裝於快閃記憶體42中的程序,用以載入作業系統以及開機程序需要的軟體程式至系統記憶體。開機程序同時運行一個開機自我測試程序(power-on self-test process)。
UEFI BIOS 421初始化多核心處理器40,其中應用處理器
(AP)啟始,並進入休眠模式,等待啟動處理器(BSP)啟動這些應用處理器(AP)開始執行分派的指令,例如揭露書所描述的安全確認程序。此時,加密模組425分派多個處理核心(包括BSP與AP)分別執行不同的安全確認任務。
在UEFI BIOS被啟始後,加密模組425特別用於判斷UEFI BIOS的韌體程式是否有被不當修改,同時亦用於判斷作業系統或是遊戲系統的程式是否有被竄改。在此之前,系統先預備各個儲存媒體中程式的安全特徵值,包括初始狀態或前次經確認狀態下的基本輸出入系統特徵值,形成系統多個特徵值427之一,在本範例中,特徵值427儲存在快閃記憶體42中。另包括作業系統特徵值以及/或遊戲系統特徵值。系統初始計算各個儲存媒體的特徵值,以上各種特徵值都是涵蓋在圖示中特徵值427中。
圖4示意描述著利用多核心處理器40中多個核心(核心0、核心1、核心2與核心3),包括啟動處理器與應用處理器,分別運行開機程序中的多個任務。
核心0可以被選定為啟動處理器(BSP),其餘核心1、核心2與核心3被選定為應用處理器(AP),初始狀態下,應用處理器的初始值與啟動處理器同步。加密模組425運作如多核心處理器40的控制器,先取得各種安全特徵值427,加密模組425對UEFI BIOS 421、作業系統與/或遊戲系統執行安全確認運算,加密模組425應用多核心服務協定分配各核心執行各自對應的任務,如圖示的任務1、任務2、任務3等。
多核心處理器40在本揭露書提出的發明中擔負重要的工作。在一任務中,在開機程序中啟始的加密模組425將指示個別的處理核心即時運算得到當前基本輸出入系統特徵值,其中記載的資訊即反映了基本輸出入系統的現狀,加密模組425取出預先儲存於特定記憶區塊的安全特徵值之一的基本輸出入系統特徵值,接著比對基本輸出入系統特徵值與當前基本輸出入系統特徵值,加
密模組425將依據比對結果判斷是否UEFI BIOS有被變動的問題。
在另一任務中,加密模組425指示另一處理核心即時運算得到當前作業系統特徵值,此特徵值記載的資訊反映作業系統當下的狀態,加密模組425更取出預先儲存的作業系統特徵值,並比對當前作業系統特徵值與作業系統特徵值。加密模組425能夠根據比對結果判斷作業系統是否有被不當修改的問題。根據一實施例,加密模組425繼續在另一任務中指示不同的處理核心計算特定儲存媒體中特定系統的當下的特徵值,如針對遊戲系統/博奕系統的程式碼(某個關鍵記憶區塊)運算得到當前遊戲系統特徵值,其中資訊即反映遊戲系統的當前狀態,加密模組425於是比對當前遊戲系統特徵值與預先儲存在特定記憶區塊的遊戲系統特徵值,比對結果將反映出遊戲系統是否有被不當修改。
在開機程序中,本範例中四個核心分別處理被分配到的任務,可以順序或是非順序地處理個別被分配的任務,可參考圖5顯示的流程圖,流程圖描述了以多核心處理器執行的安全確認的開機方法,方法由電腦系統實現。
電腦系統提供了多樣的儲存媒體、記憶體給不同的用途,系統包括有第一記憶體,如一種快閃記憶體,以儲存UEFI BIOS的韌體程式;系統提供第二記憶體,用以儲存基本輸出入系統特徵值、作業系統特徵值與遊戲系統特徵值。第二記憶體可以為一種非揮發性記憶體,如快閃記憶體或硬碟機,其中儲存的特徵值記載的資訊反映出各系統的初始狀態或是前次經過確認的狀態。系統提供第三記憶體,這是儲存作業系統程式/程式碼的記憶區塊,或可再提供第四記憶體,用以儲存特定系統,如遊戲系統/博奕系統,的程式或程式碼。在開機程序中被啟動的加密模組將啟始多核心處理器的個別核心,平行處理不同的任務。
根據方法實施例,當電腦啟動而開機,如步驟S501,接著如步驟S503,UEFI BIOS被啟始與初始化,如步驟S505,基本輸出
入系統(如UEFI BIOS)啟始後,同時啟動其中的加密模組,由加密模組識別電腦系統的硬體資訊,如步驟S507,加密模組於是可以取得多核心處理器的資訊,包括偵測得到的多個核心,如步驟S509。同時,加密模組也根據設定的資訊,知悉多個開機程序中的任務,如步驟511,根據欲執行的任務啟用多個核心,並分配各啟用的核心執行個別執行緒,用以處理被分配的任務,如步驟S513。
例如,在第一任務中,分配第一核心確認UEFI BIOS的韌體;在第二任務,分配第二核心確認作業系統的程式、程式碼,或特定記憶區塊的內容;在第三任務中,分配第三核心確認遊戲系統的程式、程式碼或特定記憶區塊的內容。當這些任務完成後,系統將可判斷是否要啟動而進入作業系統,如步驟S515。
在開機程序中,若經上述各個核心執行的安全確認程序確認所指派的各種確認動作都符合安全標準,即可順利進入作業系統。舉例來說,若確認延伸韌體介面基本輸出入系統、作業系統與遊戲系統的內容特徵值都符合預先儲存的安全特徵值,即可起動作頁系統。
綜上所述,在本揭露書提出的開機程序中的安全確認的開機方法與系統中,多個開機程序的任務特別由多核心處理器的多個核心處理,以特定程序通過多核心服務協定指示個別的核心平行處理不同的任務,不同於習知技術僅以單一核心處理器,或是多核心處理器的單一核心處理開機程序中的多個任務的方式,本揭露書提出的方法將可提供更有效率的方式來執行高安全性要求的系統的安全確認步驟。
以上所述僅為本發明之較佳可行實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
Claims (14)
- 一種應用多核心處理器執行安全確認的開機方法,包括:啟始一開機程序;啟始一電腦系統的一可延伸韌體介面基本輸出入系統;通過該可延伸韌體介面基本輸出入系統,識別該電腦系統的硬體;通過一多核心服務協定偵測該電腦系統的多核心處理器,取得該多核心處理器的核心數量,其中多個核心係以該多核心服務協定選擇地啟用或停止,以依據該開機程序中多個任務而啟用該多核心處理器的多個核心;分配每個啟用的核心平行處理一任務,至少包括分配一第一核心執行確認該可延伸韌體介面基本輸出入系統的韌體的任務,以及分配一第二核心執行確認該電腦系統的作業系統的任務;以及當該可延伸韌體介面基本輸出入系統與該作業系統完成確認後,該電腦系統啟動該作業系統。
- 如請求項1所述的應用多核心處理器執行安全確認的開機方法,更包括:分配一第三核心執行確認該電腦系統中的一遊戲系統的任務。
- 如請求項2所述的應用多核心處理器執行安全確認的開機方法,其中確認該可延伸韌體介面基本輸出入系統的任務是比對在該開機程序中運算的一當前基本輸出入系統特徵值與儲存在該電腦系統的一記憶體的一基本輸出入系統特徵值;確認該作業系統的任務是比對在該開機程序中運算的一當前作業系統特徵值與儲存在該記憶體的一作業系統特徵值;確認該遊戲系統的任務是比對在該開機程序中運算的一當前遊戲系統特徵值與儲存在該記憶體的一遊戲系統特徵值。
- 如請求項3所述的應用多核心處理器執行安全確認的開機方法,其中,更包括完成確認該遊戲系統後,該電腦系統才啟動該作業系統。
- 如請求項4所述的應用多核心處理器執行安全確認的開機方法,其中,係對儲存於一儲存媒體的該可延伸韌體介面基本輸出入系統、該作業系統與該遊戲系統的程式碼,以逐位元運算得到各個特徵值,並儲存在該電腦系統的記憶體中。
- 如請求項4所述的應用多核心處理器執行安全確認的開機方法,其中,以一加密模組執行識別該電腦系統硬體、偵測該多核心處理器、啟用該多個核心,以及分配各啟用的核心執行多個任務之一。
- 如請求項6所述的應用多核心處理器執行安全確認的開機方法,其中該加密模組為內嵌於該可延伸韌體介面基本輸出入系統的程式,當該可延伸韌體介面基本輸出入系統啟始後,啟動該加密模組。
- 一種應用多核心處理器執行安全確認的開機系統,包括:一第一記憶體,用以儲存一電腦系統的一可延伸韌體介面基本輸出入系統的韌體;一第二記憶體,用以儲存一基本輸出入系統特徵值、一作業系統特徵值,以及一遊戲系統特徵值;一第三記憶體,用以儲存該電腦系統的一作業系統的程式碼;一加密模組,於一開機程序中,應用該多核心處理器執行安全確認的方法,該方法包括:啟始該開機程序;啟始該可延伸韌體介面基本輸出入系統;通過該可延伸韌體介面基本輸出入系統,識別該電腦系統的硬體;通過一多核心服務協定偵測該電腦系統的多核心處理 器,取得該多核心處理器的核心數量,其中多個核心係以該多核心服務協定選擇地啟用或停止,以依據該開機程序中多個任務而啟用該多核心處理器的多個核心;在一任務中,分配一第一核心執行確認該可延伸韌體介面基本輸出入系統的韌體;在另一任務中,分配一第二核心執行確認該作業系統的程式碼;以及當該可延伸韌體介面基本輸出入系統與該作業系統完成確認後,該電腦系統啟動該作業系統。
- 如請求項8所述的應用多核心處理器執行安全確認的開機系統,更包括一第四記憶體,該第四記憶體儲存一遊戲系統的程式碼,並分配一第三核心執行確認該遊戲系統的任務。
- 如請求項9所述的應用多核心處理器執行安全確認的開機系統,其中確認該可延伸韌體介面基本輸出入系統的任務是比對在該開機程序中運算的一當前基本輸出入系統特徵值與儲存在該電腦系統的一記憶體的一基本輸出入系統特徵值;確認該作業系統的任務是比對在該開機程序中運算的一當前作業系統特徵值與儲存在該記憶體的一作業系統特徵值;確認該遊戲系統的任務是比對在該開機程序中運算的一當前遊戲系統特徵值與儲存在該記憶體的一遊戲系統特徵值。
- 如請求項10所述的應用多核心處理器執行安全確認的開機系統,其中,更包括完成確認該遊戲系統後,該電腦系統才啟動該作業系統。
- 如請求項11所述的應用多核心處理器執行安全確認的開機系統,其中,係對儲存於一儲存媒體的該可延伸韌體介面基本輸出入系統、該作業系統與該遊戲系統的程式碼,以逐位元運算得到各個特徵值,並儲存在該電腦系統的記憶體中。
- 如請求項11所述的應用多核心處理器執行安全確認的開機系統,其中該第二記憶體、該第三記憶體與該第四記憶體係在一相同的儲存裝置中、一個儲存裝置的三個分割區,或是三個分開的儲存裝置。
- 如請求項8所述的應用多核心處理器執行安全確認的開機系統,其中該加密模組為內嵌於該可延伸韌體介面基本輸出入系統的程式,當該可延伸韌體介面基本輸出入系統啟始後,啟動該加密模組。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106118282A TWI654559B (zh) | 2017-06-02 | 2017-06-02 | 應用多核心處理器執行安全確認的開機方法與其系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106118282A TWI654559B (zh) | 2017-06-02 | 2017-06-02 | 應用多核心處理器執行安全確認的開機方法與其系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201903601A TW201903601A (zh) | 2019-01-16 |
TWI654559B true TWI654559B (zh) | 2019-03-21 |
Family
ID=65803469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106118282A TWI654559B (zh) | 2017-06-02 | 2017-06-02 | 應用多核心處理器執行安全確認的開機方法與其系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI654559B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI724424B (zh) * | 2019-05-17 | 2021-04-11 | 英商鼎通盛股份有限公司 | 開機驗證程序加速方法與電腦系統 |
CN110716756B (zh) * | 2019-10-15 | 2023-03-14 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200743027A (en) | 2006-05-11 | 2007-11-16 | Insyde Software Corp | Computer boot method using a multi-core/hyper-threading processor |
TW201319827A (zh) | 2011-11-04 | 2013-05-16 | Inventec Corp | 執行多重作業系統的方法及電子裝置 |
TW201510767A (zh) | 2013-09-11 | 2015-03-16 | Quixant Plc | 安全認證電子裝置、安全開機方法與電腦可存取儲存裝置 |
TW201610849A (zh) | 2014-09-08 | 2016-03-16 | 廣達電腦股份有限公司 | 自動地配置電腦系統中之基本輸入輸出系統效能設定檔的裝置、方法及非暫態電腦可讀取記錄媒體 |
-
2017
- 2017-06-02 TW TW106118282A patent/TWI654559B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200743027A (en) | 2006-05-11 | 2007-11-16 | Insyde Software Corp | Computer boot method using a multi-core/hyper-threading processor |
TW201319827A (zh) | 2011-11-04 | 2013-05-16 | Inventec Corp | 執行多重作業系統的方法及電子裝置 |
TW201510767A (zh) | 2013-09-11 | 2015-03-16 | Quixant Plc | 安全認證電子裝置、安全開機方法與電腦可存取儲存裝置 |
TW201610849A (zh) | 2014-09-08 | 2016-03-16 | 廣達電腦股份有限公司 | 自動地配置電腦系統中之基本輸入輸出系統效能設定檔的裝置、方法及非暫態電腦可讀取記錄媒體 |
Also Published As
Publication number | Publication date |
---|---|
TW201903601A (zh) | 2019-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9230116B2 (en) | Technique for providing secure firmware | |
US7721341B2 (en) | Method and system for allowing code to be securely initialized in a computer | |
US11042644B2 (en) | Method and system for security verification in a booting process with a multi-core processor | |
JP6137499B2 (ja) | 方法および装置 | |
US10216936B2 (en) | Method of preventing computer malfunction, computer program, and computer | |
JP4823481B2 (ja) | 安全な環境を初期化する命令を実行するシステムおよび方法 | |
US9208292B2 (en) | Entering a secured computing environment using multiple authenticated code modules | |
US20090164770A1 (en) | Hypervisor runtime integrity support | |
TW201535145A (zh) | 使用保護讀取儲存器安全地儲存韌體數據之系統及方法 | |
JP2011527777A (ja) | 安全な起動メカニズムを備えたコンピュータシステム | |
US8886955B2 (en) | Systems and methods for BIOS processing | |
WO2015057891A1 (en) | Multi-threaded low-level startup for system boot efficiency | |
US11119789B2 (en) | Kernel space measurement | |
US8108905B2 (en) | System and method for an isolated process to control address translation | |
TW201510767A (zh) | 安全認證電子裝置、安全開機方法與電腦可存取儲存裝置 | |
TWI654559B (zh) | 應用多核心處理器執行安全確認的開機方法與其系統 | |
CN112292679A (zh) | 密码模块和用于密码模块的运行方法 | |
TWI743480B (zh) | 電腦系統與其開機方法 | |
JP2013156799A (ja) | システム・ファームウェアの更新方法およびコンピュータ | |
JP6744256B2 (ja) | 確認システム、制御装置及び確認方法 | |
TWI779515B (zh) | 用於判定有無篡改統一可擴展韌體介面(uefi)之方法及系統、及相關非暫時性電腦可讀媒體 | |
US11507700B2 (en) | Firmware-based method for securely enabling hardware devices during a computing platform boot sequence | |
TWI724424B (zh) | 開機驗證程序加速方法與電腦系統 | |
US20220342996A1 (en) | Information processing apparatus, method of controlling the same, and storage medium | |
Papakotoulas et al. | Sustaining the Trust of an IoT Infrastructure |