TWI520001B - 保護基本輸入輸出系統之設備與方法 - Google Patents

保護基本輸入輸出系統之設備與方法 Download PDF

Info

Publication number
TWI520001B
TWI520001B TW103106704A TW103106704A TWI520001B TW I520001 B TWI520001 B TW I520001B TW 103106704 A TW103106704 A TW 103106704A TW 103106704 A TW103106704 A TW 103106704A TW I520001 B TWI520001 B TW I520001B
Authority
TW
Taiwan
Prior art keywords
basic input
output system
microprocessor
message digest
random number
Prior art date
Application number
TW103106704A
Other languages
English (en)
Other versions
TW201518987A (zh
Inventor
G 葛蘭 亨利
Original Assignee
威盛電子股份有限公司
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
Priority claimed from US14/079,226 external-priority patent/US9129113B2/en
Priority claimed from US14/079,299 external-priority patent/US9183394B2/en
Application filed by 威盛電子股份有限公司 filed Critical 威盛電子股份有限公司
Publication of TW201518987A publication Critical patent/TW201518987A/zh
Application granted granted Critical
Publication of TWI520001B publication Critical patent/TWI520001B/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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Landscapes

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

Description

保護基本輸入輸出系統之設備與方法
本發明係有關於一種微電子,特別是有關於能保護計算系統中基本輸入/輸出系統(basic input/output system,BIOS)的裝置與方法。
計算平台有各種形式和大小,例如:桌上型電腦、筆記型電腦、平板電腦、個人數位助理(PDA)和智慧手機。在這些不同形式的計算平台中,只有少數會採用非常強大的工具。
當計算平台被拆開之後,幾乎所有形式的計算平台係共享相同的基本結構或配置。在其核心是一個中央處理單元(通常是微處理器)、用於儲存程式之記憶體(以硬碟或固態硬碟的形式)、執行程式之更快的記憶體(通常為隨機存取記憶體)以及儲存基本輸入/輸出系統(basic input/output system,BIOS)之記憶體。
對這些平台而言,BIOS是分層編程的最底層,其能啟動標準的操作系統和應用程序,而使用特定計算平台所配置的硬體來執行操作。BIOS通常與硬體介面有大量的關聯性,所以當平台配置有改變時,較高階層的程式不需要修改就可容納這些改變。當然,當有改變時,BIOS通常會被升級,這就是 為什麼BIOS的儲存通常與操作系統和應用程序的儲存係分離。
BIOS不僅包括了計算平台的基本操作,其亦包括配置資料和安全資料(例如計算系統是否被授權來執行特定的應用程序等)。因為BIOS包含了安全資料,所以其通常是駭客之類的目標。例如,藉由修改系統的BIOS,未授權的使用者便能執行未經授權的程序。因此,對系統設計者極為重要的係,當系統不工作而BIOS正在操作時,BIOS的有效性和完整性能得到保護和保證。
因此,為了能支援升級及/或重新編程以支援系統配置的改變,一方面希望系統的BIOS能容易進行存取。而在另一方面,保護或限制對BIOS的內容進行存取是很重要的,以避免未經授權者的篡改。
實現一個或兩個上述目標的一些嘗試會導致架構被限制。例如,移動儲存的BIOS到類似系統之微處理器的同一晶片上以防止BIOS被篡改,但卻完全違背了容易升級的目的,因為BIOS不再是實體存取。其他技術強調BIOS內容的加密,從保護的觀點來看這是有利的,但是這會削減系統的性能。因為每次需要使用到無法接受之數量的操作來對BIOS內容進行解密。
因此,需要一種能支援計算系統之BIOS內容的可存取性以及升級,也能保護BIOS內容免遭未經授權篡改的新穎技術。
本發明提供較佳的技術,用以解決上述問題並滿 足其它問題及缺點以及習知的受限。
本發明提供了一種優秀的技術,用於保護計算系統之BIOS免於攻擊。在一實施例中,提供了一種設備,用以保護一計算系統內之一基本輸入輸出系統。上述設備包括一基本輸入輸出系統唯讀記憶體、一分區選擇器與一竄改偵測器。上述基本輸入輸出系統唯讀記憶體包括複數基本輸入輸出系統內容分區以及複數加密訊息文摘。每一上述基本輸入輸出系統內容分區係儲存為可讀文本,以及每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區。回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,上述分區選擇器選擇一或多個上述基本輸入輸出系統內容分區。上述竄改偵測器耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器。回應於上述基本輸入輸出系統檢查中斷,上述竄改偵測器對一或多個上述基本輸入輸出系統內容分區以及所對應之一或多個上述加密訊息文摘進行存取,並指示一微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘。上述竄改偵測器比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
再者,本發明提供另一種設備,用以保護一計算 系統內之一基本輸入輸出系統。上述設備包括一基本輸入輸出系統唯讀記憶體以及一微處理器耦接於上述基本輸入輸出系統唯讀記憶體。上述基本輸入輸出系統唯讀記憶體包括:複數基本輸入輸出系統內容分區,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本;以及複數加密訊息文摘,其中每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區。上述微處理器包括一分區選擇器以及一竄改偵測器。回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,上述分區選擇器選擇一或多個上述基本輸入輸出系統內容分區。上述竄改偵測器係耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器。回應於上述基本輸入輸出系統檢查中斷,上述竄改偵測器對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取,並指示上述微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘。上述竄改偵測器比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
再者,本發明提供一種方法,用以保護一計算系統內之一基本輸入輸出系統。儲存複數基本輸入輸出系統內容分區以及複數加密訊息文摘至一基本輸入輸出系統唯讀記憶 體,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本,以及每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區。回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,選擇一或多個上述基本輸入輸出系統內容分區。回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取,以及使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘。比較上述第二訊息文摘與上述解密訊息文摘。以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止一微處理器之操作。
再者,本發明提供另一種設備,用以保護一計算系統內之一基本輸入輸出系統。上述設備包括:一基本輸入輸出系統唯讀記憶體,包括:複數基本輸入輸出系統內容分區,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本;以及複數加密訊息文摘,其中每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;一分區選擇器,用以回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,選擇一或多個上述基本輸入輸出系統內容分區;以及一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器,用以 在時間間隔以及事件發生之一組合而產生上述基本輸入輸出系統檢查中斷、回應於上述基本輸入輸出系統檢查中斷而對一或多個上述基本輸入輸出系統內容分區以及所對應之一或多個上述加密訊息文摘進行存取、指示一微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
再者,本發明提供另一種設備,用以保護一計算系統內之一基本輸入輸出系統。上述設備包括:一基本輸入輸出系統唯讀記憶體,包括:複數基本輸入輸出系統內容分區,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本;以及複數加密訊息文摘,其中每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;一微處理器,耦接於上述基本輸入輸出系統唯讀記憶體,包括:一分區選擇器,用以回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,選擇一或多個上述基本輸入輸出系統內容分區;以及一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器,用以在時間間隔以及事件發生之一組合而產生上述基本輸入輸出系統檢查中斷、回應於上述基本輸入輸出系統檢查中斷而對 一或多個上述基本輸入輸出系統內容分區以及所對應之一或多個上述加密訊息文摘進行存取、指示上述微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
再者,本發明提供另一種方法,用以保護一計算系統內之一基本輸入輸出系統。儲存複數基本輸入輸出系統內容分區以及複數加密訊息文摘至一基本輸入輸出系統唯讀記憶體,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本,以及每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區。回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,選擇一或多個上述基本輸入輸出系統內容分區。在時間間隔以及事件發生之一組合而產生上述基本輸入輸出系統檢查中斷。回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取,以及使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或 多個解密訊息文摘。比較上述第二訊息文摘與上述解密訊息文摘。以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止一微處理器之操作。
對於工業上的應用,本發明可實施於微處理器中,其係可使用在一般或特殊用途的計算裝置。
100、200、300、400、500、600、700‧‧‧方塊圖
102‧‧‧主機板
104、204‧‧‧微處理器
106‧‧‧揮發性記憶體
108、208‧‧‧晶片組
110、210‧‧‧基本輸入輸出系統唯讀記憶體
112‧‧‧插座
114、214‧‧‧硬碟介面
206‧‧‧隨機存取記憶體
216、218、220、222、224、322、324、326、328、422、424、426、428、522、524、526、528、622、624、626、628、722、724、726、728、NOBOOT‧‧‧匯流排
230‧‧‧快取記憶體
232‧‧‧系統軟體
234‧‧‧應用程式
236‧‧‧基本輸入輸出系統
302、402、502、602、702‧‧‧提取邏輯
304、404、504、604、704‧‧‧轉譯器
306、406、506、606、706‧‧‧執行邏輯
308、408、508、608、708‧‧‧密碼機/散列單元
310、410、510、610、710‧‧‧密鑰儲存器
312、412、512、612、712‧‧‧重置控制器
314、414、514、614、714‧‧‧竄改偵測器
316、416、516、616、716‧‧‧開機載入器
318、418、518、618、718‧‧‧匯流排介面
430、630、730‧‧‧亂數產生器
432、732‧‧‧竄改計時器
542、742‧‧‧事件偵測器
652、752‧‧‧分區選擇器
I/O ACCESS‧‧‧輸入/輸出存取信號
OTHER‧‧‧其他事件信號
RBUS‧‧‧亂數匯流排
RESET‧‧‧重置信號
SHUTDOWN‧‧‧關機信號
SPEED‧‧‧處理器速度改變信號
TBUS‧‧‧竄改匯流排
VMMAP‧‧‧虛擬記憶體映射改變信號
第1圖係顯示設置在現今計算系統之主機板之實體元件的方塊圖;第2圖係顯示第1圖中各元件相互連接之方塊圖,用以說明計算系統如何配置基本輸入/輸出系統;第3圖係顯示根據本發明一實施例所述之架構的方塊圖,用以保護計算系統之基本輸入/輸出系統;第4圖係顯示根據本發明一實施例所述之週期性架構的方塊圖,用以保護計算系統之基本輸入/輸出系統;第5圖係顯示根據本發明一實施例所述之基於事件架構的方塊圖,用以保護計算系統之基本輸入/輸出系統;第6圖係顯示根據本發明一實施例所述之基於驅動架構的方塊圖,用以保護計算系統之基本輸入/輸出系統;第7圖係顯示根據本發明一實施例所述之安全基本輸入/輸出系統竄改保護架構的方塊圖。
為讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳 細說明如下:本發明的示範以及說明的實施例描述如下。為了清楚起見,並非實際實施的所有特徵都描述於此。對於本領域技術人員將會理解,在任何這種實際實施例的開發,許多特定於實現的決策均達到特定目標,例如符合與系統相關以及商業相關的約束,可從一實施方式改變成另一個。此外,將會理解,這種開發成果可能是複雜以及耗時,但是對於具有本發明之優勢的本領域之技術人員仍然是例行任務。對此技藝之人士而言,較佳實施例的各種修改是顯而易見的,且於此所定義的一般原理可以應用到其他的實施例。因此,本發明並不旨在局限於所示以及本文所描述的具體實施例,而是應被賦予最寬的範圍相一致的原則以及所揭露之本發明的新穎特徵。
本發明將根據下列圖式來描述。描繪在圖式中的不同結構、系統和裝置係僅作為說明,並不會使得此技藝之人士對本發明難以理解。不過,下列圖式是用來敘述與解釋本發明的示範例。使用在此的字與詞組應該被瞭解和理解成有與熟知此技藝之人士所瞭解的字與詞組相一致的意義。用語或詞組沒有特別的定義,也就是,與平常的及熟習此技藝之人士所瞭解之慣例的意義不同的定義的意思是意味著在此使用一致的名稱或詞組。到了名稱或詞組意思是有特別意義的程度,也就是,意義與熟習此技藝之人士所瞭解的不同,這樣的特別定義將明確地列舉在直接地與明確地提供特別定義給該名稱或詞組的定義方式裡的詳細說明中。
積體電路(Integrated Circuit,IC)係製造在一小 塊半導體材料(通常是矽)內的一組電子電路。積體電路也被稱為晶片、微晶片或晶粒(die)。
中央處理單元(Central Processing Unit,CPU)係執行計算機程式(又稱為“計算機應用”或是“應用”)之指令的電子電路(例如“硬體”),其中電子電路係對資料執行包括算術運算、邏輯運算以及輸入/輸出操作等運算。
微處理器係作為在單一積體電路之中央處理單元的電子元件。微處理器會接收數位資料以作為輸入、根據從一記憶體(無論是在晶片內或晶片外)所讀取之指令來處理該資料,以及產生由指令所規定之運算結果來當作輸出。通用的微處理器可以使用在桌上型電腦、行動電話或是平板電腦,並進行如計算、文書編輯、多媒體顯示和瀏覽網際網路的使用。微處理器亦可設置在嵌入式系統,以控制各種各樣的裝置,包括設備、行動電話、智慧型手機和工業控制裝置。
多核心處理器又稱為多核心微處理器,多核心處理器係具有製造在單一積體電路之多個中央處理單元的微處理器。
指令集架構(Instruction Set Architecture,ISA)或是指令集係關於編程之計算機架構的一部分,包括資料類型、指令、暫存器、定址模式、記憶體架構、中斷與異常管理以及輸入/輸出。指令集架構包括由特定中央處理單元所實施之一組運算碼(opcode,即機器語言指令)以及本機命令之規格。
x86-相容微處理器係能執行計算機應用的微處理 器,其中該計算機應用係根據x86指令集架構所編程。
微碼(microcode)係複數微指令。微指令(又稱為“本機指令”)係由微處理器之子單元所執行的一種指令。示範性的子單元包括整數單元、浮點(floating point)單元、MMX單元以及載入/儲存單元。例如,微指令可直接由精簡指令集計算機(reduced instruction set computer,RISC)微處理器所執行。對複雜指令集計算機(complex instruction set computer,CISC)微處理器而言,例如x86-相容微處理器,x86指令會被轉譯(translate)成相關的微指令,以及相關的微指令是直接由CISC微處理器內的一個子單元或多個子單元所執行。
熔絲係一種導電架構,通常安排成細絲。可藉由施加電壓於細絲及/或流經細絲的電流而在選定的位置來燒斷細絲。可使用習知製造技術來設置熔絲於晶粒上,以便在全部可編程的區域來配置細絲。在製造之後,將熔絲架構燒斷(或未燒斷),能提供設置在晶粒上之對應元件所需要的程式化。
有鑑於先前技術中關於在可信任之計算系統中保護關鍵程序以及資料,以及現今系統中的技術來偵測及/或防止對這些程式與資料進行竄改,下面第1-2圖將描述現今系統中的BIOS。隨後,本發明將描述於第3-7圖中。
參考第1圖,方塊圖100係顯示設置在現今計算系統之主機板102(又稱為系統板)之實體元件。主機板102之元件包括微處理器104(又稱為中央處理單元、處理器、處理器晶片等)、揮發性記憶體106(又稱為隨機存取記憶體,RAM)、 晶片組108(又稱為記憶體控制器、記憶體集線器、輸入/輸出集線器或橋晶片(例如北橋或是南僑))、通常被插入至插座112之基本輸入輸出系統(basic input/output system,BIOS)唯讀記憶體(read only memory,ROM)110以及硬碟介面114。主機板102通常跟完成特定計算機配置所需的其他元件(例如電源供應器)被安裝在計算機機殼內(例如桌上型電腦或筆記型電腦機殼、行動電話機殼、平板電腦機殼、機上盒機殼)。如此技藝之人士所知,還有許多額外的元件和零件(例如時脈產生器、風扇、連接器、圖形處理器等)被安裝在主機板102上,而為了簡化描述,這些額外的元件和零件將不顯示。此外,第1圖所顯示之元件104、106、114、108、110與112可以不同形式被設置在主機板102上,且值得注意的是,所顯示之元件104、106、114、108、110與112係參照他們所公認之名稱。在此實施例中,微處理器104係經由主機板102板上的實體介面(未顯示)而耦接於元件106、114、108、110與112,通常為金屬走線(trace)。值得注意的是,由於BIOS唯讀記憶體110在工廠及/或領域中容易遭受到相當頻繁的更換,因此將插座112設置在主機板102上。
參考第2圖,方塊圖200係顯示第1圖之元件104、106、114、108、110與112相互連接之示意圖,用以說明計算系統如何配置基本輸入/輸出系統(Basic Input/Output System,BIOS)。方塊圖200係顯示微處理器204,其中微處理器204包括晶片內(on-chip)高速快取記憶體230。微處理器204係經由記憶體匯流排216而耦接於低速隨機存取記憶體206。微 處理器204亦經由系統匯流排218耦接於晶片組208,以及晶片組208係分別經由硬碟介面匯流排224以及唯讀記憶體匯流排220而耦接於硬碟介面214以及BIOS唯讀記憶體(ROM)210。BIOS唯讀記憶體210可經由BIOS編程匯流排222而耦接至可選之BIOS編程介面(未顯示)。如此技藝之人士所知,第2圖所顯示之配置的變化可包括晶片組208,其亦提供了介面透過系統匯流排218而到隨機存取記憶體206,而不是直接記憶體匯流排216,並可提供其他類型的匯流排(未顯示),用於連接微處理器204到其他類型的週邊介面(例如快速週邊組件互連(PCI Express)、圖形處理器)。
在操作上,如此技藝之人士所知,應用程式234(例如微軟(MICROSOFT®)、WORD®)係儲存在硬碟(或是固態碟)上(未顯示),其係經由硬碟介面214所存取。因為硬碟是一個比較緩慢的裝置,應用程式234在被執行之前,通常會被傳送到外部的隨機存取記憶體206。然後,部分的應用程序234會被快取以供微處理器204在其內部的快取記憶體230內執行。當應用程序234的指令要求微處理器204來執行系統層級之操作(例如儲存文件至硬碟)時,來自操作系統軟體232的指令(例如儲存要求)會被微處理器204所執行,其中來自操作系統軟體232的指令亦被從硬碟載入至隨機存取記憶體206並快取存入內部的快取記憶體230。操作系統軟體232提供了一種更通用的介面,能致能應用程式234來執行系統層級之功能,而不需要特定已知的系統設定。操作系統軟體232亦考慮到微處理器204會同時執行多個應用程式234,並且更執行背景 操作以有效管理隨機存取記憶體206的使用。
然而,操作系統232事實上係在現今計算系統中軟體的中間層級。為了實際連接至計算系統的硬體(例如硬碟),操作系統232必須執行儲存在BIOS唯讀記憶體210內之BIOS 236的指令。BIOS 236通常為許多的小程序,其係作為計算系統之最低層級的軟體,並用以連接操作系統232至計算系統的硬體。相似於操作系統232,BIOS 236會提供通用介面給計算機硬體,以允許操作系統232能存取硬體而不需要特定的介面設計。BIOS 236可使系統設計者能改變計算系統的硬體(例如硬碟、晶片組208、隨機存取記憶體206),而不需要變更到操作系統232或是應用程式234。然而,當系統設定改變時,BIOS 236必須被更新,而這就是為什麼插座112和/或BIOS編程匯流排222必須設置在主機板102,其將使得BIOS唯讀記憶體210能容易被更換或是重新被編程。在一些系統設定中,可經由BIOS唯讀記憶體匯流排220直接重新編程BIOS唯讀記憶體210。因此,為了對BIOS 236進行變更,幾乎全部現今的計算系統都有提供上面的架構。BIOS唯讀記憶體210係一個獨立的元件,以便容易進行重新編程或是更換。
在全部的計算系統設定中,BIOS 236係非常必要的特性,因為其指令可以致能應用程式234以及操作系統232來直接連接硬體。除了能提供連接至系統硬體之外,BIOS 236會執行其他一些系統上必要的正常功能。例如,當系統開機後,BIOS 236內的開機自我檢測程式(power-on self test,POST)會被執行,以便進行硬體測試,並對系統的正確設定以及運行 進行驗證。BIOS 236亦包括程式能識別並指派系統資源給新安裝的裝置。BIOS 236更包括程式能從硬碟下載操作系統232至隨機存取記憶體206,並將系統控制傳送給操作系統232。最後,BIOS 236包括程式能偵測以及防止計算系統的篡改(tampering)。
由於BIOS 236在計算系統的安全性以及操作上是重要的,因此常常成為被非法侵入(hack)以及以其他未經授權之形式進行篡改的一個主要目標。例如,許多眾所皆知的操作系統具有由設備製造商根據計算系統內的BIOS 236所給定之規定,因此允許製造商能販賣具有預先安裝之操作系統的計算系統。通常,製造商會將標記(或“記號”)編程到BIOS 236的特定位置,以及當操作系統開機時,會從BIOS 236的特定位置讀取出標記,以確認係在授權的系統上被開機。如果標記不存在或是不正確,則操作系統將無法開機。
上面的例子是編程現今BIOS 236的許多不同類型的安全特性之一,且提供了BIOS安全功能的深入討論。要注意的是,對系統設計者來說,系統上BIOS 236是篡改的主要目標,因此BIOS 236的保護是主要關心的事項。在上面的例子中,駭客編輯(或重新編程)BIOS 236的目的是為了將計算系統呈現為授權系統給受保護的操作系統,或是修改BIOS,使得操作系統認為其係在授權系統上運作,然而實際上並不是。
如先前所描述,大多數現今的BIOS唯讀記憶體110為主機板102上的單獨元件,且被安裝在插座112,以便在當系統硬體改變而需要變更BIOS 236時能方便進行更換。因 此,在缺少其他安全架構的情況下,像先前所描述的非法侵入是有可能。
因此,系統設計人員已經開發出許多不同的技術來對系統以及運作在系統上之應用程式234和/或操作系統232進行檢測並防止竄改(tamper)。例如,在美國專利公開號2005/0015749中,Mittal提出藉由提供安全記憶體部分以及包括加密技術之邏輯來對程式以及資料進行加密與解密,以保護軟體不會被篡改。然而,BIOS係儲存在系統軟體的獨立記憶體空間,因此在移動BIOS至如微處理器之相同晶片的情況下,無法防止任何形式的竄改。於是,透過更換晶片能輕易對BIOS進行更新。
在美國專利公告號7,831,839中,Hatakeyama揭露一種安全開機唯讀記憶體以及處理器,其中安全開機唯讀記憶體包括加密開機碼(例如BIOS)而處理器包括硬體解密單元。當處理器開機時,已加密之BIOS會被讀取至處理器之內部記憶體,而解密單元會對BIOS進行解密以及認證。如果成功,則處理器會進入安全處理模式,且全部的BIOS要求之後會從內部記憶體被執行。雖然Hatakeyama提供了經由自己內容的加密來保護BIOS的架構,為了能有效執行,必須使用晶片內本地記憶體來儲存已解密的BIOS。如此技藝之人士所知,現今BIOS程式(包括系統設定資料)的大小為百萬位元組(megabytes)。因為提供可儲存百萬位元組資料之晶片內本地記憶體會增加微處理器的尺寸以及耗電量,其將降低元件的可靠度而增加全次的成本,因此Hatakeyama的BIOS保護方法是不利的。
已經開發出來的其他技術係對全部或一部份之BIOS內容進行加密,當每次進行BIOS要求時,需進行解密。因此,這樣的技術會降低了計算系統的性能,特別是在開機時,因為即使使用了晶片內的加密硬體,解密本質上還是緩慢的過程。因此,從性能上來看,加密BIOS內容是不想要的。
因此,所有上述技術(標記、劃分安全記憶體、晶片內本地BIOS記憶體、加密BIOS內容)不容易對系統BIOS唯讀記憶體進行存取,且同時會降低性能影響。因此,本發明提供新穎的技術來應用於BIOS唯讀記憶體,以克服這些限制,其中這些安裝在插座的BIOS唯讀記憶體容易被升級。接著,提供未加密(例如可讀文本)之BIOS內容(例如指令及/或設定資料)。然後,在開機後,能偵測初始的竄改,而不會明顯降低系統的性能。本發明將描述於第3圖-第7圖。
參考第3圖,第3圖係顯示根據本發明一實施例所述之架構的方塊圖300,用以保護計算系統之BIOS。方塊圖300係描述設置在單一晶片並被封裝以安裝在主機板上的微處理器(例如處理器、CPU等),如先前所描述。在一實施例中,微處理器係相容於x86架構,並且能執行x86指令集的全部指令。在另一實施例中,微處理器係設置在單一晶片之多核心處理器。在另一實施例中,微處理器係虛擬處理核心,其表示能共同使用處理器之邏輯部分內操作系統的實體處理器。為了描述本發明,微處理器的必要元件將描述於後,其中如此技藝人士所知的許多其他元件(例如載入/儲存邏輯、快取記憶體、排序邏輯等)將簡化。
微處理器包括提取(fetch)邏輯302,其經由匯流排324而耦接於轉譯器(translator)304。轉譯器304係經由匯流排326而耦接於執行邏輯306。執行邏輯306包括密碼機(crypto)/散列單元(hash unit)308,其係經由匯流排322而耦接於密鑰儲存器310。微處理器亦包括匯流排介面318,用以連接微處理器至晶片組。匯流排介面318係經由匯流排328而耦接於重置控制器312。重置控制器312會接收重置信號RESET,並產生關機信號SHUTDOWN。重置控制器312包括竄改偵測器314,其中竄改偵測器314係經由匯流排NOBOOT而耦接於開機載入器316。重置控制器312係經由竄改匯流排TBUS而耦接於執行邏輯306。
在操作上,提取邏輯302係用以提取程式指令(來自應用程式、操作系統及記憶體中的所快取的BIOS)來執行。程式指令會經由匯流排324而提供至轉譯器304。轉譯器304會將程式指令轉譯為一或多個微指令,其中微指令會由執行邏輯306內的一或多個元件執行,以便執行程式指令所指定的操作。微指令(又稱為微碼或是韌體)係微處理器所特有的,且無法在封裝層級(package level)被存取。
在正常操作的情況下,在開機之後,BIOS指令以及設定資料會被紀錄且快取於虛擬記憶體,並由提取邏輯302進行提取以供執行。然而,微處理器的正常操作是發生在成功的重置以及開機順序之後。重置控制器312接收重置信號RESET,並指示執行邏輯306來執行微碼,以執行自我測試以及啟動系統。為了偵測BIOS的竄改以及防止設置有微處理器之 系統的未被授權的操作,在啟動之前,重置控制器312會經由匯流排介面318來提取BIOS唯讀記憶體(未顯示)的全部內容,並經由竄改匯流排TBUS來提供所提取的內容至執行邏輯306。在一實施例中,BIOS唯讀記憶體的內容包括數位簽章(數位簽章)(又稱為散列(hash)或是訊息文摘(digest)),其係儲存在BIOS唯讀記憶體的特定位置內。如此技藝之人士所知,根據所使用之特定散列運算,對應於BIOS唯讀記憶體(尺寸為4百萬位元組)之散列的數位簽章在尺寸上是非常小(例如256位元),並且由BIOS唯讀記憶體的特定內容所獨有。於是,假如唯讀記憶體的內容被改變,則被改變之內容的散列將導致不同的數位簽章。
在儲存至BIOS唯讀記憶體之前,微處理器的製造商會使用密鑰(cryptographic key)來對數位簽章進行加密,其中密鑰係由BIOS製造商所提供。在微處理器的製造過程中,密鑰會被編程至密鑰儲存器310,之後會無法經由程式指令進行存取。在一實施例中,密鑰係微處理器所獨有的。在一實施例中,密鑰儲存器310的內容僅由密碼機/散列單元308在竄改偵測微碼的控制下進行存取。竄改偵測微碼會指示重置控制器312來提取BIOS唯讀記憶體的內容,其中內容包括已加密的數位簽章,以及所提取的內容會經由竄改匯流排TBUS而提供至執行邏輯306。同時地,竄改偵測微碼會指示密碼機/散列單元308來根據散列演算法而執行BIOS的散列,其中BIOS製造商係使用散列演算法來產生數位簽章。在一實施例中,散列演算法可以是散列(Secure Hash)演算法(例如SHA-0、SHA-1等)。 其他實施例係使用任何已知的訊息摘要(message digest)演算法。竄改偵測微碼亦會指示密碼機/散列單元308來使用儲存在密鑰儲存器310的密鑰,來對從BIOS唯讀記憶體提取出來之已加密數位簽章進行解密。在一實施例中,密碼機/散列單元308係使用數位加密標準(Digital Encryption Standard,DES)演算法來對密鑰進行解密。在另一實施例中,密碼機/散列單元308係使用進階加密標準(Advanced Encryption Standard,AES)演算法。其他實施例係使用任何已知的密碼演算法。密碼機/散列單元308所產生之數位簽章以及已解密之數位簽章會經由竄改匯流排TBUS提供至竄改偵測器314,其中已解密之數位簽章的加密版本係儲存在BIOS唯讀記憶體的特定位置。
竄改偵測器314會對兩數位簽章進行比較。如果兩數位簽章是相同的,則竄改偵測器314會指示開機載入器316可經由匯流排NOBOOT,來開始進行微處理器的正常啟動順序(boot sequence)。如果兩數位簽章是不同的,則竄改偵測器314會提供關機信號SHUTDOWN,並指示開機載入器316來停止啟動順序。關機信號SHUTDOWN會指示微處理器中剩下的元件來切斷電源或是進入防止(preclude)正常運行之模式。
根據本發明之實施例,每次微處理器被重置,僅需要對儲存在BIOS唯讀記憶體之特定位置的加密訊息文摘進行解密,即對256位元串進行解密,而不是4百萬位元組串。此外,本發明之實施例允許使用儲存在實體可存取之配置上的可讀文本(plaintext)BIOS指令/資料,如第1-2圖所描述之配置。BIOS容易被更新,而系統性能不會降低。不需要使用到用來儲 存已解密BIOS之昂貴的內部本地記憶體。此外,儲存在BIOS唯讀記憶體內並用來對訊息文摘加密的密鑰係無法由程式指令所存取。密鑰僅能由密碼機/散列單元308直接存取。
參考第4圖,第4圖係顯示根據本發明一實施例所述之週期性架構的方塊圖400,用以保護計算系統之BIOS。第3圖的架構係在啟動時對系統的BIOS進行保護,但是當系統正常操作時,BIOS有可能會被竄改。因此,在系統的操作期間與上電時,需要能保護BIOS不被非法侵入。因此,提出了週期性的架構來完成這個目的。
方塊圖400係描述設置在單一晶片並被封裝以安裝在主機板上的微處理器,如先前所描述。在一實施例中,微處理器係相容於x86架構,並且能執行x86指令集的全部指令。在另一實施例中,微處理器係設置在單一晶片之多核心處理器。在另一實施例中,微處理器係虛擬處理核心,其表示能共同使用處理器之邏輯部分內操作系統的實體處理器。為了描述本發明,微處理器的必要元件將描述於後,其中如此技藝人士所知的許多其他元件(例如載入/儲存邏輯、快取記憶體、排序邏輯等)將簡化。
微處理器包括提取邏輯402,其係經由匯流排424而耦接於轉譯器404。轉譯器404係經由匯流排426而耦接於執行邏輯406。執行邏輯406包括密碼機/散列單元408,其係經由匯流排422而耦接於密鑰儲存器410。執行邏輯406亦包括亂數產生器430。微處理器亦包括匯流排介面418,用以連接微處理器至晶片組。匯流排介面418係經由匯流排428而耦接於重置控 制器412。重置控制器412會接收重置信號RESET,並產生關機信號SHUTDOWN。重置控制器412包括竄改偵測器414,其中竄改偵測器414係經由匯流排NOBOOT而耦接於開機載入器416。竄改偵測器414包括竄改計時器432。重置控制器412係經由竄改匯流排TBUS以及亂數匯流排RBUS而耦接於執行邏輯406。
在操作上,第4圖之架構內元件所執行的方式大體上相似於第3圖之架構內的相同名字元件。然而,除了在重置開機順序的期間偵測BIOS的竄改,第4圖之架構亦包括能週期性地檢查BIOS之竄改偵測微碼以及元件,以判斷計算系統在操作時BIOS是否被竄改。對密鑰而言,竄改計時器432無法被程式指令所存取,而是專門由竄改偵測器414以及竄改偵測微碼所存取。在一實施例中,竄改計時器432在一時間間隔中對系統的正常操作進行中斷,其中時間間隔係由竄改偵測微碼所設定。在一實施例中,時間間隔係為1毫秒,其係足夠時間來偵測在被非法入侵之BIOS唯讀記憶體中欲取代BIOS唯讀記憶體的實體攻擊。1毫秒的時間間隔亦足夠來偵測欲對現有的BIOS唯讀記憶體進行重新編程的攻擊。當時間間隔被中斷時,重置控制器412會經由匯流排介面418來提取BIOS唯讀記憶體(未顯示)的全部內容,並經由竄改匯流排TBUS而提供所提取的內容至執行邏輯406。竄改偵測微碼會指示重置控制器412來提取BIOS唯讀記憶體的內容,其中內容包括已加密的數位簽章,以及所提取的內容會經由竄改匯流排TBUS而提供至執行邏輯406。同時地,竄改偵測微碼會指示密碼機/散列單元408來根 據散列演算法而執行BIOS的散列,其中BIOS製造商係使用散列演算法來產生數位簽章。竄改偵測微碼亦指示密碼機/散列單元408可使用儲存在密鑰儲存器410的密鑰來對從BIOS唯讀記憶體提取出來之已加密數位簽章進行解密。密碼機/散列單元408所產生之數位簽章以及已解密之數位簽章會經由竄改匯流排TBUS提供至竄改偵測器414,其中已解密之數位簽章的加密版本係儲存在BIOS唯讀記憶體的特定位置。
竄改偵測器414會對兩數位簽章進行比較。如果兩數位簽章是相同的,則竄改偵測器414會在計時器中斷發生時的時間點來恢復微處理器的控制。如果兩數位簽章是不同的,則竄改偵測器414會提供關機信號SHUTDOWN。關機信號SHUTDOWN會指示微處理器中剩下的元件來切斷電源或是進入防止正常運行之模式。
在另一個實施例中,竄改計時器432不是使用固定的時間間隔。在完成週期性之BIOS非法入侵的檢查,竄改偵測微碼指示亂數產生器430來產生亂數,其係輸入至竄改計時器432,以產生下一次BIOS非法入侵檢查的下一個時間間隔。在此方式中,執行入侵檢查的時間係無法預期與預料的。
相似於第3圖的架構,根據本發明之實施例,第4圖的周期性架構執行操作僅需要對儲存在BIOS唯讀記憶體之特定位置的加密訊息文摘進行解密,即對256位元串進行解密,而不是4百萬位元組串。此外,在系統的正常操作期間,週期性的架構會保護安全系統遠離BIOS的非法入侵。
參考第5圖,第5圖係顯示根據本發明一實施例所 述之基於事件(event-based)架構的方塊圖500,用以保護計算系統之BIOS。當計算系統在正常操作時,第4圖的架構可當作另一實施例來保護系統BIOS,但是其中一個是基於事件的發生,而非時間的流逝。這些事件可包括(但並非用以限定):硬碟存取(或是其他形式的輸入/輸出存取)、改變至虛擬記憶體映射(mapping)(此架構可使用在虛擬處理系統的系統設定)、改變至速度以及通常發生在現今計算系統的其他種類的事件。因此,提供基於事件架構來完成這個目的。
方塊圖500係描述設置在單一晶片並被封裝以安裝在主機板上的微處理器,如先前所描述。在一實施例中,微處理器係相容於x86架構,並且能執行x86指令集的全部指令。在另一實施例中,微處理器係設置在單一晶片之多核心處理器。在另一實施例中,微處理器係虛擬處理核心,其表示能共同使用處理器之邏輯部分內操作系統的實體處理器。為了描述本發明,微處理器的必要元件將描述於後,其中如此技藝人士所知的許多其他元件(例如載入/儲存邏輯、快取記憶體、排序邏輯等)將簡化。
微處理器包括提取邏輯502,其中提取邏輯502係經由匯流排524而耦接於轉譯器504。轉譯器504係經由匯流排526而耦接於執行邏輯506。執行邏輯506包括密碼機/散列單元508,其係經由匯流排522而耦接於密鑰儲存器510。執行邏輯506亦包括亂數產生器530。微處理器亦包括匯流排介面518,用以連接微處理器至晶片組。匯流排介面518係經由匯流排528而耦接於重置控制器512。重置控制器512接收重置信號 RESET,並產生關機信號SHUTDOWN。重置控制器512包括竄改偵測器514,其係經由匯流排NOBOOT而耦接於開機載入器516。竄改偵測器514包括事件偵測器542,其接收輸入/輸出存取信號I/O ACCESS、虛擬記憶體映射改變信號VMMAP、處理器速度改變信號SPEED、以及其他事件信號OTHER。重置控制器512係經由竄改匯流排TBUS以及亂數匯流排RBUS而耦接於執行邏輯506。
在操作上,第5圖之架構內元件所執行的方式大體上相似於第3圖與第4圖之架構內的相同名字元件。然而,除了在重置開機順序的期間偵測BIOS的竄改,第4圖之架構亦包括能檢查BIOS的竄改偵測微碼以及元件,以判斷當計算系統在操作時BIOS是否被竄改。BIOS的有效性檢查是根據事件的發生,而不是根據時間。發明人注意到在現今計算系統中,微處理器會執行一些規律地發生之事件,例如I/O存取(即硬碟、快速週邊組件互連(PCI Express))、核心時脈速度改變、操作系統呼叫、系統狀態改變等。因此,事件偵測器542所接收的信號僅是個例子,並非用以限定方塊圖500中能用來觸發BIOS檢查之事件的類型。
相似於密鑰,無法經由執行程式指令來對事件偵測器542進行存取,而事件偵測器542僅能由竄改偵測器514以及竄改偵測微碼所存取。在一實施例中,當上述事件之一者發生時,事件偵測器542會中斷系統的正常操作,即信號I/O ACCESS、VMMAP、SPEED與OTHER之一者存在時。在另一實施例中,當複數個上述事件之一者發生時,事件偵測器542會 中斷系統的正常操作。在另一實施例中,當複數事件發生時(例如I/O存取以及核心時脈速度改變),事件偵測器542會中斷系統的正常操作。所選擇的事件以及發生的次數是由竄改偵測微碼所設定。當中斷發生時,重置控制器512會經由匯流排介面518來提取BIOS唯讀記憶體(未顯示)的全部內容,並經由竄改匯流排TBUS而提供所提取的內容至執行邏輯506。竄改偵測微碼會指示重置控制器512來提取BIOS唯讀記憶體的內容,其中內容包括已加密的數位簽章,以及所提取的內容會經由竄改匯流排TBUS而提供至執行邏輯506。竄改偵測微碼會指示密碼機/散列單元508來根據散列演算法而執行BIOS的散列,其中BIOS製造商係使用散列演算法來產生數位簽章。竄改偵測微碼亦指示密碼機/散列單元508,使用儲存在密鑰儲存器510的密鑰來對從BIOS唯讀記憶體提取出來之已加密數位簽章進行解密。密碼機/散列單元508所產生之數位簽章以及已解密之數位簽章會經由竄改匯流排TBUS提供至竄改偵測器514,其中已解密之數位簽章的加密版本係儲存在BIOS唯讀記憶體的特定位置。
竄改偵測器514會對兩數位簽章進行比較。如果兩數位簽章是相同的,則竄改偵測器514會在事件觸發中斷發生時的時間點來恢復微處理器的控制。如果兩數位簽章是不同的,則竄改偵測器514會提供關機信號SHUTDOWN。關機信號SHUTDOWN會指示微處理器中剩下的元件來切斷電源或是進入防止正常運行之模式。
在另一實施例中,在完成BIOS非法侵入檢查時, 竄改偵測微碼會指示亂數產生器530來產生亂數,而不是使用事件發生的次數。亂數會被輸入至事件偵測器542,以便設定發生在執行下一次BIOS非法侵入檢查設定之前之接續事件的數量。在此實施例中,觸發非法侵入檢查之事件的數量無法經由微處理器所執行之秘密應用來預測及預期。在另一實施例中,亂數係用來改變觸發下一次BIOS非法侵入檢查之事件的類型。
相似於第3圖與第4圖的架構,根據本發明之實施例,第5圖的事件觸發架構執行操作僅需要對儲存在BIOS唯讀記憶體之特定位置的加密訊息文摘進行解密,即對256位元串(即已加密的訊息文摘)進行解密,而不是4百萬位元組串(即全部的BIOS)。此外,在系統的正常操作期間,事件觸發架構會保護安全系統遠離BIOS的非法入侵,其中觸發非法入侵檢查之事件的數量以及類型無法被決定以及強迫。
參考第6圖,第6圖係顯示根據本發明一實施例所述之基於分區(partition-based)架構的方塊圖600,用以保護計算系統之BIOS。當計算系統在正常操作時,第6圖的架構可當作另一實施例來保護系統BIOS,但是其中一個是當竄改計時器中斷(例如第3圖之實施例)或是系統事件所觸發(例如第4圖之實施例)時,僅對BIOS的子集(subset)進行檢查。因此,基於分區機制提供了一種用於性能是相當關鍵的設定,因為在每個觸發點僅有一部份的BIOS被檢查,於是對系統性能的影響較少。
在第6圖之實施例中,BIOS空間被劃分為複數分 區,其中每一分區具有對應的訊息文摘,其中訊息文摘係已加密並儲存在BIOS唯讀記憶體內所對應之位置。在一實施例中,對複數分區的每一分區來說,分區尺寸是相同的。在另一實施例中,複數分區具有不同的尺寸。在一實施例中,回應於BIOS檢查觸發(例如事件發生的計時器中斷),複數分區中僅有一個分區會被檢查。回應於BIOS檢查觸發,複數分區中的多個分區會被檢查。在另一實施例中,回應於BIOS檢查觸發,複數分區中會被檢查之分區數量係由竄改偵測微碼所決定(例如一個重複的週期1-3-1-2)。
方塊圖600係描述設置在單一晶片並被封裝以安裝在主機板上的微處理器,如先前所描述。在一實施例中,微處理器係相容於x86架構,並且能執行x86指令集的全部指令。在另一實施例中,微處理器係設置在單一晶片之多核心處理器。在另一實施例中,微處理器係虛擬處理核心,其表示能共同使用處理器之邏輯部分內操作系統的實體處理器。為了描述本發明,微處理器的必要元件將描述於後,其中如此技藝人士所知的許多其他元件(例如載入/儲存邏輯、快取記憶體、排序邏輯等)將簡化。
微處理器包括提取邏輯602,其中提取邏輯602係經由匯流排624而耦接於轉譯器604。轉譯器604係經由匯流排626而耦接於執行邏輯606。執行邏輯606包括密碼機/散列單元608,其係經由匯流排622而耦接於密鑰儲存器610。執行邏輯606亦包括亂數產生器630。微處理器亦包括匯流排介面618,用以連接微處理器至晶片組。匯流排介面618係經由匯流排628 而耦接於重置控制器612。重置控制器612接收重置信號RESET,並產生關機信號SHUTDOWN。重置控制器612包括竄改偵測器614,其係經由匯流排NOBOOT而耦接於開機載入器616。竄改偵測器614包括分區選擇器652。重置控制器612係經由竄改匯流排TBUS以及亂數匯流排RBUS而耦接於執行邏輯606。
在操作上,第6圖之架構內元件所執行的方式大體上相似於第3-5圖之架構內的相同名字元件。然而,除了在重置開機順序的期間偵測BIOS的竄改,第6圖之架構亦包括能檢查BIOS的竄改偵測微碼以及元件,以判斷當計算系統在操作時BIOS是否被竄改。BIOS的有效性檢查是根據如先前所描述之觸發的發生。根據觸發的發生,分區選擇器652會有效地選擇BIOS的一或多個分區來進行檢查。
相似於密鑰,無法經由執行程式指令來對分區選擇器652進行存取,而分區選擇器652僅能由竄改偵測器614以及竄改偵測微碼所存取。當觸發發生時,計算系統的正常操作被中斷,而分區選擇器652會指示控制器612經由匯流排介面618來提取BIOS唯讀記憶體(未顯示)的一或多個分區之內容,並經由竄改匯流排TBUS而提供所提取的內容至執行邏輯606。包括一或多個所對應之已加密的數位簽章之內容會經由竄改匯流排TBUS提供至執行邏輯606。竄改偵測微碼會指示密碼機/散列單元608來根據散列演算法而執行一或多個分區的散列,其中BIOS製造商係使用散列演算法來產生一或多個數位簽章。竄改偵測微碼亦指示密碼機/散列單元608,使用儲存在 密鑰儲存器610的密鑰來對從BIOS唯讀記憶體提取出來之所對應之一或多個已加密數位簽章進行解密。密碼機/散列單元608所產生之一或多個數位簽章以及已解密之一或多個數位簽章會經由竄改匯流排TBUS提供至竄改偵測器614,其中已解密之一或多個數位簽章的加密版本係儲存在BIOS唯讀記憶體的一或多個特定位置。
竄改偵測器614會對一或多對之數位簽章進行比較。如果全部的比較是相同的,則竄改偵測器614會在事件觸發中斷發生時的時間點來恢復微處理器的控制。如果數位簽章是不同的,則竄改偵測器614會提供關機信號SHUTDOWN。關機信號SHUTDOWN會指示微處理器中剩下的元件來切斷電源或是進入防止正常運行之模式。
在另一實施例中,在完成BIOS非法侵入檢查時,竄改偵測微碼會指示亂數產生器630來產生亂數,而不是檢查固定或是循環數字之複數分區。亂數會被輸入至分區選擇器652,以便設定發生在執行下一次BIOS非法侵入檢查設定之前之接續事件的數量。在此實施例中,在檢查點觸發時有效之分區的數量無法經由微處理器所執行之秘密應用來預測及預期。在不同實施例中,亂數係用來指示欲檢查之複數分區的下一分區。
參考第7圖,第7圖係顯示根據本發明一實施例所述之BIOS竄改保護架構的方塊圖700。第7圖的實施例提供了完整的配置,不僅在開機時以及重置時執行計算系統之BIOS的全面檢查,並且在結合參考第4-6圖之技術所使用之操作,亦能 對系統的BIOS提供全面的保護。
方塊圖700係描述設置在單一晶片並被封裝以安裝在主機板上的微處理器,如先前所描述。在一實施例中,微處理器係相容於x86架構,並且能執行x86指令集的全部指令。在另一實施例中,微處理器係設置在單一晶片之多核心處理器。在另一實施例中,微處理器係虛擬處理核心,其表示能共同使用處理器之邏輯部分內操作系統的實體處理器。為了描述本發明,微處理器的必要元件將描述於後,其中如此技藝人士所知的許多其他元件(例如載入/儲存邏輯、快取記憶體、排序邏輯等)將簡化。
微處理器包括提取邏輯702,其中提取邏輯702係經由匯流排724而耦接於轉譯器704。轉譯器704係經由匯流排726而耦接於執行邏輯706。執行邏輯706包括密碼機/散列單元708,其係經由匯流排722而耦接於密鑰儲存器710。執行邏輯706亦包括亂數產生器730。微處理器亦包括匯流排介面718,用以連接微處理器至晶片組。匯流排介面718係經由匯流排728而耦接於重置控制器712。重置控制器712接收重置信號RESET,並產生關機信號SHUTDOWN。重置控制器712包括竄改偵測器714,其係經由匯流排NOBOOT而耦接於開機載入器716。竄改偵測器714包括竄改計時器732、事件偵測器742以及分區選擇器752。事件偵測器742接收輸入/輸出存取信號I/O ACCESS、虛擬記憶體映射改變信號VMMAP、處理器速度改變信號SPEED以及其他事件信號OTHER。重置控制器712係經由竄改匯流排TBUS以及亂數匯流排RBUS而耦接於執行邏輯 706。
在操作上,第7圖之架構內元件所執行的方式大體上相似於第3-6圖之架構內的相同名字元件。然而,除了在重置開機順序的期間偵測BIOS的竄改,第7圖之架構亦包括能檢查BIOS的竄改偵測微碼以及元件,以判斷當計算系統在操作時BIOS是否被竄改。BIOS的有效性檢查是根據來自竄改計時器732之計時器中斷以及如第5圖所描述之事件觸發的發生。根據計時器中斷或是事件觸發的發生,分區選擇器752會有效地選擇BIOS的一或多個分區來檢查,如第6圖所描述。
竄改計時器732、事件偵測器742以及分區選擇器752係無法經由執行程式指令來進行存取,而分區選擇器752僅能由竄改偵測器714以及竄改偵測微碼所存取。當計時器中斷或是事件觸發發生時,計算系統的正常操作被中斷,而分區選擇器752會指示控制器712經由匯流排介面718來提取BIOS唯讀記憶體(未顯示)的一或多個分區之內容,並經由竄改匯流排TBUS而提供所提取的內容至執行邏輯706。包括一或多個所對應之已加密的數位簽章之內容會經由竄改匯流排TBUS提供至執行邏輯706。竄改偵測微碼會指示密碼機/散列單元708來根據散列演算法而執行一或多個分區的散列,其中BIOS製造商係使用散列演算法來產生一或多個數位簽章。竄改偵測微碼亦指示密碼機/散列單元708,使用儲存在密鑰儲存器710的密鑰來對從BIOS唯讀記憶體提取出來之所對應之一或多個已加密數位簽章進行解密。密碼機/散列單元708所產生之一或多個數位簽章以及已解密之一或多個數位簽章會經由竄改匯流排TBUS 提供至竄改偵測器714,其中已解密之一或多個數位簽章的加密版本係儲存在BIOS唯讀記憶體的一或多個特定位置。
竄改偵測器714會對一或多對之數位簽章進行比較。如果全部的比較是相同的,則竄改偵測器714會在事件觸發中斷發生時的時間點來恢復微處理器的控制。如果數位簽章是不同的,則竄改偵測器714會提供關機信號SHUTDOWN。關機信號SHUTDOWN會指示微處理器中剩下的元件來切斷電源或是進入防止正常運行之模式。
在一實施例中,計時器中斷以及事件觸發的組合順序係由竄改偵測微碼所決定。在另一實施例中,由亂數產生器730在BIOS檢查結束時所產生之亂數會指示是否下一BIOS檢查會根據計時器中斷或是事件觸發而啟動。如第4-5圖所顯示,在部分實施例中,亂數產生器730會隨機地改變時間間隔及/或事件類型以及事件的數量。
在另一實施例中,在完成BIOS非法侵入檢查時,竄改偵測微碼會指示亂數產生器730來產生亂數,而不是檢查固定或是循環數字之複數分區。亂數會被輸入至分區選擇器752,以便設定在下一次BIOS非法侵入檢查期間欲檢查之分區的下一個數量。在此實施例中,在檢查點觸發時有效之分區的數量無法經由微處理器所執行之秘密應用來預測及預期。在不同實施例中,亂數係用來指示欲檢查之複數分區的下一分區。
根據本發明實施例,微處理器之元件被配置來執行先前所描述之功能以及操作。元件包括邏輯、電路、設備或微碼(即微指令或是本機指令)或其組合,或者被用來執行根 據本發明所述之功能與操作的等效元件。微處理器內使用來完成功能與操作的元件可以與微處理器中用來執行其它功能和/或操作的其他電路、微碼等共用。根據本發明的應用,微碼是用來表示一或多個微指令。微指令(又稱為本機指令)是由一個單元所執行之指令。例如,微指令可直接由精簡指令集計算機(RISC)微處理器所執行。對於複雜指令集計算機(CISC)微處理器而言,比如x86-相容微處理器,x86指令會被轉譯成相關的微指令,且相關的微指令會直接CISC微處理器中的一或多個單元所執行。
本發明及相對應敍述內容所提供的軟體或是演算法及符號係表示一電腦記憶體裡的資料位元的操作。這些內容及圖示可使本領域之技術人員有效地表達相關內容予本領域之其它技術人員。使用上述的演算法係用以表達自我前後一致的順序。這些步驟需要物理量的物理級操作。一般而言,這些物理量可能是光、電或是磁性號,其可被儲存、轉換、整合、比較及其它操作。有些為了方便,這些信號會被稱為位元、值、元件、符號、特性、項目、數量或其它相關內容。
然而,需注意的是,這些相似的術語係與物理量有關,並且只是用以方便說明這些物理量。除非另外特別說明,不然上述的術語(如處理、估算、計算、判斷、顯示、或其它相關術語)指的是一電腦系統、一微處理器、一中央處理單元或相似的電子電腦裝置的動作及處理,其操作並轉換資料,其表示物理性、電腦系統的暫存器及記憶體的數量,用以得到其它相似電腦系統的記憶體、暫存器或其它相似的資訊儲 存裝置、或顯示裝置的物理量的資料。
需注意到的是,本發明實現軟體的方法係在程式儲存媒體或其它相似型態的傳送媒體上進行編碼。程式儲存媒體可能是電子式(如唯讀記憶體、快閃唯讀記憶體、電子抺除式唯讀記憶體)、隨機存取記憶體磁性裝置(如軟碟或硬碟)或光學式(如唯讀光碟記憶體CD ROM)、以及其它唯讀或隨機存取元件。同樣地,傳送媒體可能是金屬導線、雙絞線、同軸電纜、光纖、或其它習知相似的傳送媒體。本發明並不限制在這些實施例。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中包括通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
600‧‧‧方塊圖
602‧‧‧提取邏輯
604‧‧‧轉譯器
606‧‧‧執行邏輯
608‧‧‧密碼機/散列單元
610‧‧‧密鑰儲存器
612‧‧‧重置控制器
614‧‧‧竄改偵測器
616‧‧‧開機載入器
618‧‧‧匯流排介面
622、624、626、628、NOBOOT‧‧‧匯流排
630‧‧‧亂數產生器
652‧‧‧分區選擇器
RBUS‧‧‧亂數匯流排
RESET‧‧‧重置信號
SHUTDOWN‧‧‧關機信號
TBUS‧‧‧竄改匯流排

Claims (42)

  1. 一種設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:複數基本輸入輸出系統內容分區,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本;以及複數加密訊息文摘,其中每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;一分區選擇器,用以回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,從上述複數基本輸入輸出系統內容分區中選擇一或多個上述基本輸入輸出系統內容分區,其中所選擇之一或多個上述基本輸入輸出系統內容分區之數量係由一竄改偵測微碼所決定;以及一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器,用以回應於上述基本輸入輸出系統檢查中斷而對所選擇之一或多個上述基本輸入輸出系統內容分區以及所對應之一或多個上述加密訊息文摘進行存取、指示一微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於所選擇之一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息 文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
  2. 如申請專利範圍第1項所述之設備,其中上述基本輸入輸出系統檢查中斷係週期性地在一時間間隔產生。
  3. 如申請專利範圍第1項所述之設備,其中上述基本輸入輸出系統檢查中斷係根據一事件的發生而產生,其中上述事件包括選自下列事件之一者的一或多個發生:一輸入/輸出存取;一處理器速度之改變;以及一虛擬記憶體映射之改變。
  4. 如申請專利範圍第1項所述之設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
  5. 如申請專利範圍第1項所述之設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
  6. 如申請專利範圍第1項所述之設備,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
  7. 如申請專利範圍第6項所述之設備,其中上述微處理器更包括設置在上述執行邏輯內之一亂數產生器,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述分區選擇器係使用上述亂數來隨機地設定在下一個基本輸入輸出系統檢查期間欲檢查之上述基本 輸入輸出系統內容分區的數量。
  8. 一種設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:複數基本輸入輸出系統內容分區,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本;以及複數加密訊息文摘,其中每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;以及一微處理器,耦接於上述基本輸入輸出系統唯讀記憶體,包括:一分區選擇器,用以回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,從上述複數基本輸入輸出系統內容分區中選擇一或多個上述基本輸入輸出系統內容分區,其中所選擇之一或多個上述基本輸入輸出系統內容分區之數量係由一竄改偵測微碼所決定;以及一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器,用以回應於上述基本輸入輸出系統檢查中斷而對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取、指示上述微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於所選擇之一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之 一或多個解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
  9. 如申請專利範圍第8項所述之設備,其中上述基本輸入輸出系統檢查中斷係週期性地在一時間間隔產生。
  10. 如申請專利範圍第8項所述之設備,其中上述基本輸入輸出系統檢查中斷係根據一事件的發生而產生,其中上述事件包括選自下列事件之一者的一或多個發生:一輸入/輸出存取;一處理器速度之改變;以及一虛擬記憶體映射之改變。
  11. 如申請專利範圍第8項所述之設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
  12. 如申請專利範圍第8項所述之設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
  13. 如申請專利範圍第8項所述之設備,其中上述微處理器更包括:一密碼機/散列單元,設置在一執行邏輯內,用以產生上述第二訊息文摘以及上述解密訊息文摘,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
  14. 如申請專利範圍第13項所述之設備,其中上述微處理器更包括:一亂數產生器,設置在上述執行邏輯內,用以在完成了一 目前基本輸入輸出系統檢查之後,產生一亂數,其中上述分區選擇器係使用上述亂數來隨機地設定在下一個基本輸入輸出系統檢查期間欲檢查之上述基本輸入輸出系統內容分區的數量。
  15. 一種方法,用以保護一計算系統內之一基本輸入輸出系統,包括:儲存複數基本輸入輸出系統內容分區以及複數加密訊息文摘至一基本輸入輸出系統唯讀記憶體,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本,以及每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,從上述複數基本輸入輸出系統內容分區中選擇一或多個上述基本輸入輸出系統內容分區,其中所選擇之一或多個上述基本輸入輸出系統內容分區之數量係由一竄改偵測微碼所決定;回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取,以及使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於所選擇之一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘;比較上述第二訊息文摘與上述解密訊息文摘;以及 以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止一微處理器之操作。
  16. 如申請專利範圍第15項所述之方法,其中上述基本輸入輸出系統檢查中斷係週期性地在一時間間隔產生。
  17. 如申請專利範圍第15項所述之方法,其中上述基本輸入輸出系統檢查中斷係根據一事件的發生而產生,其中上述事件包括選自下列事件之一者的一或多個發生:一輸入/輸出存取;一處理器速度之改變;以及一虛擬記憶體映射之改變。
  18. 如申請專利範圍第15項所述之方法,其中上述回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取之步驟更包括:使用一安全散列演算法來產生上述第二訊息文摘。
  19. 如申請專利範圍第15項所述之方法,其中上述回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取之步驟更包括:使用一進階加密標準演算法來產生上述解密訊息文摘。
  20. 如申請專利範圍第15項所述之方法,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行 存取。
  21. 如申請專利範圍第20項所述之方法,其中上述微處理器更包括設置在上述執行邏輯內之一亂數產生器,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述分區選擇器係使用上述亂數來隨機地設定在下一個基本輸入輸出系統檢查期間欲檢查之上述基本輸入輸出系統內容分區的數量。
  22. 一種設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:複數基本輸入輸出系統內容分區,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本;以及複數加密訊息文摘,其中每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;一分區選擇器,用以回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,從上述複數基本輸入輸出系統內容分區中選擇一或多個上述基本輸入輸出系統內容分區,其中所選擇之一或多個上述基本輸入輸出系統內容分區之數量係由一竄改偵測微碼所決定;以及一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器,用以在時間間隔以及事件發生之一組合而產生上述基本輸入輸出系統檢查中斷、回應於上述基本輸入輸出系統檢查中斷而對所選擇之一或多個上述基 本輸入輸出系統內容分區以及所對應之一或多個上述加密訊息文摘進行存取、指示一微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於所選擇之一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
  23. 如申請專利範圍第22項所述之設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
  24. 如申請專利範圍第22項所述之設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
  25. 如申請專利範圍第22項所述之設備,其中時間間隔以及事件發生之上述組合包括時間間隔以及事件發生之一編程順序。
  26. 如申請專利範圍第22項所述之設備,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
  27. 如申請專利範圍第26項所述之設備,其中上述微處理器更包括設置在上述執行邏輯內之一亂數產生器,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產 生一亂數,其中當一事件發生的時間間隔逾期時,上述竄改計時器係使用上述亂數來隨機地設定下一個基本輸入輸出系統檢查中斷是否成立。
  28. 如申請專利範圍第26項所述之設備,其中上述微處理器更包括設置在上述執行邏輯內之一亂數產生器,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述分區選擇器係使用上述亂數來隨機地設定在下一個基本輸入輸出系統檢查期間欲檢查之上述基本輸入輸出系統內容分區的數量。
  29. 一種設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:複數基本輸入輸出系統內容分區,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本;以及複數加密訊息文摘,其中每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;以及一微處理器,耦接於上述基本輸入輸出系統唯讀記憶體,包括:一分區選擇器,用以回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,從上述複數基本輸入輸出系統內容分區中選擇一或多個上述基本輸入輸出系統內容分區,其中所選擇之一或多個上述基本輸入輸出系統內容分區之數量係由一竄改偵測微碼所決定;以及 一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體以及上述分區選擇器,用以在時間間隔以及事件發生之一組合而產生上述基本輸入輸出系統檢查中斷、回應於上述基本輸入輸出系統檢查中斷而對所選擇之一或多個上述基本輸入輸出系統內容分區以及所對應之一或多個上述加密訊息文摘進行存取、指示上述微處理器使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於所選擇之一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止上述微處理器之操作。
  30. 如申請專利範圍第29項所述之設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
  31. 如申請專利範圍第29項所述之設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
  32. 如申請專利範圍第29項所述之設備,其中時間間隔以及事件發生之上述組合包括時間間隔以及事件發生之一編程順序。
  33. 如申請專利範圍第29項所述之設備,其中上述微處理器更包括:一密碼機/散列單元,設置在一執行邏輯內,用以產生上述第二訊息文摘以及上述解密訊息文摘,其中上述密鑰僅能 由上述密碼機/散列單元進行存取。
  34. 如申請專利範圍第33項所述之設備,其中上述微處理器更包括:一亂數產生器,設置在上述執行邏輯內,用以在完成了一目前基本輸入輸出系統檢查之後,產生一亂數,其中當一事件發生的時間間隔逾期時,上述竄改計時器係使用上述亂數來隨機地設定下一個基本輸入輸出系統檢查中斷是否成立。
  35. 如申請專利範圍第33項所述之設備,其中上述微處理器更包括:一亂數產生器,設置在上述執行邏輯內,用以在完成了一目前基本輸入輸出系統檢查之後,產生一亂數,其中上述分區選擇器係使用上述亂數來隨機地設定在下一個基本輸入輸出系統檢查期間欲檢查之上述基本輸入輸出系統內容分區的數量。
  36. 一種方法,用以保護一計算系統內之一基本輸入輸出系統,包括:儲存複數基本輸入輸出系統內容分區以及複數加密訊息文摘至一基本輸入輸出系統唯讀記憶體,其中每一上述基本輸入輸出系統內容分區係儲存為可讀文本,以及每一上述加密訊息文摘包括一第一訊息文摘之一加密版本以及所對應之上述基本輸入輸出系統內容分區;回應於中斷上述計算系統之正常操作的一基本輸入輸出系統檢查中斷,從上述複數基本輸入輸出系統內容分區中選 擇一或多個上述基本輸入輸出系統內容分區,其中所選擇之一或多個上述基本輸入輸出系統內容分區之數量係由一竄改偵測微碼所決定;在時間間隔以及事件發生之一組合而產生上述基本輸入輸出系統檢查中斷;回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取,以及使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於所選擇之一或多個上述基本輸入輸出系統內容分區之所對應之一或多個第二訊息文摘以及對應於一或多個上述加密訊息文摘之所對應之一或多個解密訊息文摘;比較上述第二訊息文摘與上述解密訊息文摘;以及以及當一或多個上述第二訊息文摘以及一或多個上述解密訊息文摘不是成對相同時,防止一微處理器之操作。
  37. 如申請專利範圍第36項所述之方法,其中上述回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取之步驟更包括:使用一安全散列演算法來產生上述第二訊息文摘。
  38. 如申請專利範圍第36項所述之方法,其中上述回應於上述基本輸入輸出系統檢查中斷,對一或多個上述基本輸入輸出系統內容以及所對應之一或多個上述加密訊息文摘進行存取之步驟更包括: 使用一進階加密標準演算法來產生上述解密訊息文摘。
  39. 如申請專利範圍第36項所述之方法,其中時間間隔以及事件發生之上述組合包括時間間隔以及事件發生之一編程順序。
  40. 如申請專利範圍第36項所述之方法,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
  41. 如申請專利範圍第40項所述之方法,其中上述微處理器更包括設置在上述執行邏輯內之一亂數產生器,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中當一事件發生的時間間隔逾期時,上述竄改計時器係使用上述亂數來隨機地設定下一個基本輸入輸出系統檢查中斷是否成立。
  42. 如申請專利範圍第40項所述之設備,其中上述微處理器更包括設置在上述執行邏輯內之一亂數產生器,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述分區選擇器係使用上述亂數來隨機地設定在下一個基本輸入輸出系統檢查期間欲檢查之上述基本輸入輸出系統內容分區的數量。
TW103106704A 2013-11-13 2014-02-27 保護基本輸入輸出系統之設備與方法 TWI520001B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/079,226 US9129113B2 (en) 2013-11-13 2013-11-13 Partition-based apparatus and method for securing bios in a trusted computing system during execution
US14/079,299 US9183394B2 (en) 2013-11-13 2013-11-13 Secure BIOS tamper protection mechanism

Publications (2)

Publication Number Publication Date
TW201518987A TW201518987A (zh) 2015-05-16
TWI520001B true TWI520001B (zh) 2016-02-01

Family

ID=50707192

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103106704A TWI520001B (zh) 2013-11-13 2014-02-27 保護基本輸入輸出系統之設備與方法

Country Status (2)

Country Link
CN (1) CN103810443B (zh)
TW (1) TWI520001B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112908392B (zh) * 2021-02-09 2023-09-15 东芯半导体股份有限公司 控制非易失性存储器参数的控制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802592A (en) * 1996-05-31 1998-09-01 International Business Machines Corporation System and method for protecting integrity of alterable ROM using digital signatures
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
CN1282092C (zh) * 2003-08-25 2006-10-25 联想(北京)有限公司 一种信息处理设备的启动方法
US8019994B2 (en) * 2006-04-13 2011-09-13 Hewlett-Packard Development Company, L.P. Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
GB2482652B (en) * 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register

Also Published As

Publication number Publication date
CN103810443A (zh) 2014-05-21
CN103810443B (zh) 2017-03-01
TW201518987A (zh) 2015-05-16

Similar Documents

Publication Publication Date Title
US9805198B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
US9183394B2 (en) Secure BIOS tamper protection mechanism
US9129113B2 (en) Partition-based apparatus and method for securing bios in a trusted computing system during execution
EP2874092B1 (en) Recurrent BIOS verification with embedded encrypted hash
US9367689B2 (en) Apparatus and method for securing BIOS in a trusted computing system
US10049217B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
US9798880B2 (en) Fuse-enabled secure bios mechanism with override feature
US9779242B2 (en) Programmable secure bios mechanism in a trusted computing system
TW201519097A (zh) 保護基本輸入輸出系統之設備與方法
US9779243B2 (en) Fuse-enabled secure BIOS mechanism in a trusted computing system
US10055588B2 (en) Event-based apparatus and method for securing BIOS in a trusted computing system during execution
EP3316168B1 (en) Fuse-enabled secure bios mechanism in a trusted computing system
TWI655555B (zh) 基本輸入輸出系統之保護設備與方法
TWI520001B (zh) 保護基本輸入輸出系統之設備與方法
CN107273770B (zh) 基本输入输出系统的保护设备与方法
US9767288B2 (en) JTAG-based secure BIOS mechanism in a trusted computing system
EP3316167A1 (en) Programmable secure bios mechanism in a trusted computing system
US10095868B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
EP3316169B1 (en) Jtag-based secure bios mechanism in a trusted computing system
EP3316170A1 (en) Fuse-enabled secure bios mechanism with override feature