TWI655555B - 基本輸入輸出系統之保護設備與方法 - Google Patents
基本輸入輸出系統之保護設備與方法 Download PDFInfo
- Publication number
- TWI655555B TWI655555B TW106122674A TW106122674A TWI655555B TW I655555 B TWI655555 B TW I655555B TW 106122674 A TW106122674 A TW 106122674A TW 106122674 A TW106122674 A TW 106122674A TW I655555 B TWI655555 B TW I655555B
- Authority
- TW
- Taiwan
- Prior art keywords
- message digest
- basic input
- output system
- microprocessor
- random number
- Prior art date
Links
Landscapes
- Storage Device Security (AREA)
Abstract
一種基本輸入輸出系統之保護設備。加密訊息文摘包括對應基本輸入輸出系統內容之第一訊息文摘之加密版本。竄改偵測器在所規定之間隔與事件發生之集合時產生基本輸入輸出系統檢查中斷以存取基本輸入輸出系統內容以及加密訊息文摘、指示微處理器產生對應於基本輸入輸出系統內容之第二訊息文摘與對應加密訊息文摘之解密訊息文摘、比較第二訊息文摘與解密訊息文摘,且當第二訊息文摘不同於解密訊息文摘時,防止微處理器之操作。完成目前基本輸入輸出系統檢查後,亂數產生器產生亂數。聯合測試工作群組控制鏈編程所規定之間隔與事件發生之集合。
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、822、824、826、828、NOBOOT、TCODE、BSONLY、JT[1:N]‧‧‧匯流排
230‧‧‧快取記憶體
232‧‧‧系統軟體
234‧‧‧應用程式
236‧‧‧基本輸入輸出系統
302、402、502、602、702、802‧‧‧提取邏輯
304、404、504、604、704、804‧‧‧轉譯器
306、406、506、606、706、806‧‧‧執行邏輯
308、408、508、608、708、808‧‧‧密碼機/散列單元
310、410、510、610、710、810‧‧‧密鑰儲存器
312、412、512、612、712、812‧‧‧重置控制器
314、414、514、614、714、814‧‧‧竄改偵測器
316、416、516、616、716、816‧‧‧開機載入器
318、418、518、618、718、818‧‧‧匯流排介面
430、630、730、830‧‧‧亂數產生器
432、732、832‧‧‧竄改計時器
542、742、842‧‧‧事件偵測器
652、752、852‧‧‧分區選擇器
851‧‧‧接腳
853‧‧‧竄改偵測微碼儲存器
854‧‧‧JTAG控制鏈
855‧‧‧JTAG匯流排介面元件
856‧‧‧存取控制元件
857‧‧‧機器特定暫存器
858‧‧‧熔絲
I/O ACCESS‧‧‧輸入/輸出存取信號
OTHER‧‧‧其他事件信號
RBUS‧‧‧亂數匯流排
RESET‧‧‧重置信號
SHUTDOWN‧‧‧關機信號
SPEED‧‧‧處理器速度改變信號
TBUS‧‧‧竄改匯流排
VMMAP‧‧‧虛擬記憶體映射改變信號
第1圖係顯示設置在現今計算系統之主機板之實體元件的方塊圖;第2圖係顯示第1圖中各元件相互連接之方塊圖,用以說明計算系統如何配置基本輸入/輸出系統;第3圖係顯示根據本發明一實施例所述之架構的方塊圖,用以保護計算系統之基本輸入/輸出系統; 第4圖係顯示根據本發明一實施例所述之週期性架構的方塊圖,用以保護計算系統之基本輸入/輸出系統;第5圖係顯示根據本發明一實施例所述之基於事件架構的方塊圖,用以保護計算系統之基本輸入/輸出系統;第6圖係顯示根據本發明一實施例所述之基於驅動架構的方塊圖,用以保護計算系統之基本輸入/輸出系統;第7圖係顯示根據本發明一實施例所述之安全基本輸入/輸出系統竄改保護架構的方塊圖;以及第8圖係顯示根據本發明一實施例所述之可編程之安全基本輸入/輸出系統竄改保護架構的方塊圖。
為讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:本發明的示範以及說明的實施例描述如下。為了清楚起見,並非實際實施的所有特徵都描述於此。對於本領域技術人員將會理解,在任何這種實際實施例的開發,許多特定於實現的決策均達到特定目標,例如符合與系統相關以及商業相關的約束,可從一實施方式改變成另一個。此外,將會理解,這種開發成果可能是複雜以及耗時,但是對於具有本發明之優勢的本領域之技術人員仍然是例行任務。對此技藝之人士而言,較佳實施例的各種修改是顯而易見的,且於此所定義的一般原理可以應用到其他的實施例。因此,本發明並不旨在局限於所示以及本文所描述的具體實施例,而是應被賦予最寬的範圍相 一致的原則以及所揭露之本發明的新穎特徵。
本發明將根據下列圖式來描述。描繪在圖式中的不同結構、系統和裝置係僅作為說明,並不會使得此技藝之人士對本發明難以理解。不過,下列圖示是用來敘述與解釋本發明的示範例。使用在此的字與詞組應該被瞭解和理解成有與熟知此技藝之人士所瞭解的字與詞組相一致的意義。用語或詞組沒有特別的定義,也就是,與平常的及熟習此技藝之人士所瞭解之慣例的意義不同的定義的意思是意味著在此使用一致的名稱或詞組。到了名稱或詞組意思是有特別意義的程度,也就是,意義與熟習此技藝之人士所瞭解的不同,這樣的特別定義將明確地列舉在直接地與明確地提供特別定義給該名稱或詞組的定義方式裡的詳細說明中。
積體電路(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程式(包括系統設定資料)的大小為百萬位元組(rnegabytes)。因為提供可儲存百萬位元組資料之晶片內本地記憶體會增加微處理器的尺寸以及耗電量,其將降低元件的可靠度而增加全次的成本,因此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以及竄改偵測微碼所存取。當BIOS檢查觸發發生時,計算系統的正常操作被中斷,而分區選擇器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非法侵入檢查期間欲檢查之分區的下一個數量。在此實施例中,在檢查點觸發時有效之分區的數量無法經由微處理器所執行之秘密應用來預測及預期。在不同實施例中,亂數係用來指示欲檢查之複數分區的下一分區。
參考第8圖,第8圖係顯示根據本發明一實施例所述之可編程之安全基本輸入/輸出系統竄改保護架構的方塊圖800。相似於第7圖之實施例,第8圖的實施例提供了完整的配置,不僅在開機時以及重置時執行計算系統之BIOS的全面檢查,並且在結合參考第4-6圖之技術所使用之操作,亦能對系統的BIOS提供全面的保護。再者,第8圖之實施例包括規定,以便對所規定之時間間隔、事件類型、事件的數量與順序進行編程,其係用於觸發一或多個BIOS分區的BIOS檢查。
第8圖係描述設置在單一晶片並被封裝以安裝在主機板上的微處理器,如先前所描述。在一實施例中,微處理器係相容於x86架構,並且能執行x86指令集的全部指令。在另一實施例中,微處理器係設置在單一晶片之多核心處理器。在另一實施例中,微處理器係虛擬處理核心,其表示能共同使用處理器之邏輯部分內操作系統的實體處理器。為了描述本發明,微處理器的必要元件將描述於後,其中如此技藝人士所知的許多其他元件(例如載入/儲存邏輯、快取記憶體、排序邏輯等)將簡化。
微處理器包括提取邏輯802,其係經由匯流排824 而耦接於轉譯器804。轉譯器804係經由匯流排826而耦接於執行邏輯806。執行邏輯806包括密碼機/散列單元808,其係經由匯流排822而耦接於密鑰儲存器810。執行邏輯806亦包括亂數產生器830。微處理器亦包括匯流排介面818,用以連接微處理器至晶片組。匯流排介面818係經由匯流排828而耦接於重置控制器812。重置控制器812會接收重置信號RESET,並產生關機信號SHUTDOWN。重置控制器812包括竄改偵測器814,其中竄改偵測器814係經由匯流排NOBOOT而耦接於開機載入器816。竄改偵測器814包括竄改計時器832、事件偵測器842以及分區選擇器852。事件偵測器842接收輸入/輸出存取信號I/O ACCESS、虛擬記憶體映射改變信號VMMAP、處理器速度改變信號SPEED以及其他事件信號OTHER。重置控制器812係經由竄改匯流排TBUS以及亂數匯流排RBUS而耦接於執行邏輯806。
微處理器亦包括竄改偵測微碼儲存器853,其係耦接於執行邏輯806以及重置控制器812。微處理器亦具有聯合測試工作群組(Joint Test Action Group,JTAG)控制鏈(chain)854,其係耦接於竄改偵測微碼儲存器853以及JTAG匯流排介面元件855。JTAG匯流排介面元件855經由JTAG匯流排JT[1:N]與JTAG控制器(未顯示)進行通訊。JTAG匯流排JT[1:N]的每一信號會接合至微處理器封裝上所對應的連接接腳851。微處理器亦包括存取控制元件856,其係經由匯流排BSONLY而耦接於JTAG控制鏈854。存取控制元件856亦可耦接於熔絲(fuse)858。存取控制元件856可另外耦接於機器特定暫存器857。
竄改偵測微碼儲存器853可包括暫時儲存器(例如隨機存取存儲器、暫存器等)、非暫時儲存器(例如唯讀記憶體、固定可編程邏輯等),或是暫時儲存器與非暫時儲存器的組合。從竄改偵測微碼儲存器853所提取的微指令係由已知機制指示給微處理器內的執行邏輯806,以執行其它已知操作的編程順序。此外,可從竄改偵測微碼儲存器853提取篡改偵測微碼,以執行上述用於執行基於間隔和基於事件的BIOS篡改檢查的操作。
JTAG匯流排JT[1:N]提供微處理器的邊界掃描和測試,以及JTAG匯流排JT[1:N]的狀態係由測試單元、除錯器(debugger)或在微處理器的外部設備等所操作。JTAG匯流排介面855接收通過匯流排JT[1:N]的JTAG命令,並經過JTAG控制鏈854路由(route)這些信號,以及JTAG控制鏈854係耦接到微處理器內全部可測試元件。除了JTAG掃描和測試特徵之外,微處理器的架構被擴充以允許對所規定的BIOS檢查時間間隔、事件類型以及事件的數量和順序進行編程,而這些事件類型係由在竄改偵測微碼儲存器853中的篡改保護的微碼所使用,以觸發如先前所描述的BIOS檢查。為了完成這些操作,相關聯的JTAG命令係經由控制鏈854且經過匯流排TCODE而路由至竄改偵測微碼儲存器853,以便編程所規定的BIOS檢查時間間隔、事件類型以及事件的數量和順序。
根據本發明第8圖的實施例更提供可防止未授權的使用者在正常邊界掃描和測試操作之外執行任何JTAG活動的機制。在一實施例中,微處理器包括熔絲858,其被燒斷以 指示有害或未授權的JTAG活動將被禁能,其包括所規定的BIOS檢查時間間隔、事件類型,以及事件之數量和順序的編程。在處理器開機或重置時,存取控制元件856會檢查熔絲858的狀態。假如熔絲858未被燒斷,則存取控制元件856經由匯流排BSONLY來指示JTAG控制鏈854,以允許全部JTAG操作,其包括所規定的BIOS檢查時間間隔、事件類型,以及事件之數量和順序的編程。然而,假如熔絲858被燒斷,則存取控制元件856會經由匯流排BSONLY來指示JTAG控制鏈854,以防止正常邊界掃描和測試操作之外的所有JTAG操作。因此,當熔絲858被燒斷時,由微處理器經由JTAG匯流排JT[1:N]所接收的用來編程所規定的BIOS檢查時間間隔、事件類型,以及事件之數量和順序之命令會被忽略,或以其他方式使得不可操作,如同所接收之嘗試讀取竄改偵測微碼儲存器853之內容的命令。
然而,如果需要對所規定的BIOS檢查時間間隔、事件類型以及事件的數量和順序進行編程,或是在熔絲858被燒斷之後而從竄改偵測微碼儲存器853讀取出微碼,本發明實施例亦可提供一種技術,藉以暫時使篡改驗證特徵無效。因此,第8圖的實施例更包括耦接至存取控制元件856的機器特定暫存器857。假如熔絲858已經燒斷,為了暫時能重新致能擴充的JTAG操作,需要特定值出現在機器特定暫存器857中。在一實施例中,該特定值是僅為微處理器的製造商所知的值,其儲存在存取控制元件856內。在某一批中所生產的所有微處理器的該特定值是共有的,或是可以是通用的已知值。在另一實施例中,該特定值是只有微處理器的製造商所知的值,其根據由密 碼機/散列單元808執行之所規定的加密演算法而經由特定數量的次數進行加密,且微處理器唯一的值會作為加密密鑰,以執行特定數量的次數。
因此,在開機/重置時,存取控制元件856會判斷熔絲858是否被燒斷。如果熔絲858被燒斷,則存儲控制元件856會檢查機器特定暫存器857中的特定值。在一實施例中,假如機器特定暫存器857中的特定值是符合於存取控制元件856內的無效值(override),然後存取控制元件856會指示JTAG控制鏈854來致能先前所描述的JTAG操作。使用固定的間隔來檢查機器特定暫存器857,以判斷最初所偵測到的無效值是否仍在其中。如果是,則允許JTAG擴充操作。然而,當在機器特定暫存器857內偵測不到該特定值時,則防止所擴展之JTAG操作。
在另一實施例,存取控制元件856會判斷熔絲858是否被燒斷。假如熔絲858被燒斷,則存取控制元件856會檢查機器特定暫存器857中的特定值並使用密碼機/散列單元808,以便使用微處理器唯一的值來作為密鑰以執行特定數量的次數。假如機器特定暫存器857中的特定值符合加密值,則存取控制元件856會指示JTAG控制鏈854來致能先前所描述之JTAG操作。使用固定的間隔來檢查機器特定暫存器857,以判斷最初所偵測到的無效值是否仍在其中。如果是,則允許JTAG擴充操作。然而,當在機器特定暫存器857內偵測不到該特定值時,則防止所擴展之JTAG操作。
在操作上,第8圖之架構內元件所執行的方式大體 上相似於第3-7圖之架構內的相同名字元件,當熔絲858燒斷時,可使用經由JTAG匯流排介面855所編程之所規定的BIOS檢查時間間隔、事件類型,以及事件之數量和順序,或是藉由使用先前所編程之所規定的BIOS檢查時間間隔、先前所所編程之事件類型,以及先前所所編程之事件之數量和順序。在熔絲858被燒斷且特定值儲存在於機器特定暫存器857中時,本發明之一實施例會另外建立先前所編程之所規定的BIOS檢查時間間隔、先前所所編程之事件類型,以及先前所所編程之事件之數量和順序。於是,在熔絲858被燒斷之後,可允許改變時間間隔、事件類型,以及事件之數量和順序。
然而,除了在重置開機順序的期間偵測BIOS的竄改,第8圖之架構亦包括能檢查BIOS的竄改偵測微碼以及元件,以判斷當計算系統在操作時BIOS是否被竄改。BIOS的有效性檢查是根據來自竄改計時器832之計時器中斷以及如第5-7圖所描述之事件觸發的發生。根據計時器中斷或是事件觸發的發生,分區選擇器852會有效地選擇BIOS的一或多個分區來檢查,如第6圖所描述。
竄改計時器832、事件偵測器842以及分區選擇器852係無法經由執行程式指令來進行存取,而僅能由竄改偵測器814以及竄改偵測微碼所存取。當計時器中斷或是事件觸發發生時,計算系統的正常操作被中斷,而分區選擇器852會指示重置控制器812經由匯流排介面818來提取BIOS唯讀記憶體(未顯示)的一或多個分區之內容,並經由竄改匯流排TBUS而提供所提取的內容至執行邏輯806。包括一或多個所對應之 已加密的數位簽章之內容會經由竄改匯流排TBUS提供至執行邏輯806。竄改偵測微碼會指示密碼機/散列單元808來根據散列演算法而執行一或多個分區的散列,其中BIOS製造商係使用散列演算法來產生一或多個數位簽章。竄改偵測微碼亦指示密碼機/散列單元808,使用儲存在密鑰儲存器810的密鑰來對從BIOS唯讀記憶體提取出來之所對應之一或多個已加密數位簽章進行解密。密碼機/散列單元808所產生之一或多個數位簽章以及已解密之一或多個數位簽章會經由竄改匯流排TBUS提供至竄改偵測器814,其中已解密之一或多個數位簽章的加密版本係儲存在BIOS唯讀記憶體的一或多個特定位置。
竄改偵測器814會對一或多對之數位簽章進行比較。如果全部的比較是相同的,則竄改偵測器814會在事件觸發中斷發生時的時間點來恢復微處理器的控制。如果數位簽章是不同的,則竄改偵測器814會提供關機信號SHUTDOWN。關機信號SHUTDOWN會指示微處理器中剩下的元件來切斷電源或是進入防止正常運行之模式。
在一實施例中,計時器中斷以及事件觸發的組合順序係由竄改偵測微碼所決定。在另一實施例中,由亂數產生器830在BIOS檢查結束時所產生之亂數會指示是否下一BIOS檢查會根據計時器中斷或是事件觸發而啟動。如第4-5圖所顯示,在部分實施例中,亂數產生器830會隨機地改變時間間隔及/或事件類型以及事件的數量。
在另一實施例中,在完成BIOS非法侵入檢查時,竄改偵測微碼會指示亂數產生器830來產生亂數,而不是檢查 固定或是循環數字之複數分區。亂數會被輸入至分區選擇器852,以便設定在下一次BIOS非法侵入檢查期間欲檢查之分區的下一個數量。在此實施例中,在檢查點觸發時有效之分區的數量無法經由微處理器所執行之秘密應用來預測及預期。在不同實施例中,亂數係用來指示欲檢查之複數分區的下一分區。
根據本發明實施例,微處理器之元件被配置來執行先前所描述之功能以及操作。元件包括邏輯、電路、設備或微碼(即微指令或是本機指令)或其組合,或者被用來執行根據本發明所述之功能與操作的等效元件。微處理器內使用來完成功能與操作的元件可以與微處理器中用來執行其它功能和/或操作的其他電路、微碼等共用。根據本發明的應用,微碼是用來表示一或多個微指令。微指令(又稱為本機指令)是由一個單元所執行之指令。例如,微指令可直接由精簡指令集計算機(RISC)微處理器所執行。對於複雜指令集計算機(CISC)微處理器而言,比如x86-相容微處理器,x86指令會被轉譯成相關的微指令,且相關的微指令會直接CISC微處理器中的一或多個單元所執行。
本發明及相對應敍述內容所提供的軟體或是演算法及符號係表示一電腦記憶體裡的資料位元的操作。這些內容及圖示可使本領域之技術人員有效地表達相關內容予本領域之其它技術人員。使用上述的演算法係用以表達自我前後一致的順序。這些步驟需要物理量的物理級操作。一般而言,這些物理量可能是光、電或是磁性號,其可被儲存、轉換、整合、比較及其它操作。有些為了方便,這些信號會被稱為位元、值、 元件、符號、特性、項目、數量或其它相關內容。
然而,需注意的是,這些相似的術語係與物理量有關,並且只是用以方便說明這些物理量。除非另外特別說明,不然上述的術語(如處理、估算、計算、判斷、顯示、或其它相關術語)指的是一電腦系統、一微處理器、一中央處理單元或相似的電子電腦裝置的動作及處理,其操作並轉換資料,其表示物理性、電腦系統的暫存器及記憶體的數量,用以得到其它相似電腦系統的記憶體、暫存器或其它相似的資訊儲存裝置、或顯示裝置的物理量的資料。
需注意到的是,本發明實現軟體的方法係在程式儲存媒體或其它相似型態的傳送媒體上進行編碼。程式儲存媒體可能是電子式(如唯讀記憶體、快閃唯讀記憶體、電子抺除式唯讀記憶體)、隨機存取記憶體磁性裝置(如軟碟或硬碟)或光學式(如唯讀光碟記憶體CD ROM)、以及其它唯讀或隨機存取元件。同樣地,傳送媒體可能是金屬導線、雙絞線、同軸電纜、光纖、或其它習知相似的傳送媒體。本發明並不限制在這些實施例。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中包括通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (60)
- 一種基本輸入輸出系統之保護設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:基本輸入輸出系統內容,其中上述基本輸入輸出系統內容係儲存為可讀文本;以及一加密訊息文摘,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體,用以在所規定之間隔與事件發生之集合時產生一基本輸入輸出系統檢查中斷、根據上述基本輸入輸出系統檢查中斷而對上述基本輸入輸出系統內容以及上述加密訊息文摘進行存取、指示一微處理器產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當上述第二訊息文摘不相同於上述解密訊息文摘時,防止上述微處理器之操作;一亂數產生器,設置在上述微處理器內,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係可隨機改變的;以及一聯合測試工作群組控制鏈,用以編程在一竄改偵測微碼儲存器之上述所規定之間隔與事件發生之集合;其中,篡改保護的微碼是在上述竄改偵測微碼儲存器中, 且上述聯合測試工作群組控制鏈之相關聯的聯合測試工作群組命令經由上述聯合測試工作群組控制鏈而路由至上述竄改偵測微碼儲存器,以編程上述所規定之間隔與事件發生之集合。
- 如申請專利範圍第1項所述之保護設備,其中上述基本輸入輸出系統唯讀記憶體係設置在上述計算系統之一系統板上,且分離於一竄改計時器與上述竄改偵測器。
- 如申請專利範圍第1項所述之保護設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第1項所述之保護設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第1項所述之保護設備,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中一密鑰僅能由上述密碼機/散列單元進行存取。
- 如申請專利範圍第5項所述之保護設備,其中上述微處理器所執行之程式指令係無法存取上述密鑰以及一竄改計時器。
- 如申請專利範圍第1項所述之保護設備,其中上述亂數產生器係設置在上述微處理器內之一執行邏輯。
- 如申請專利範圍第1項所述之保護設備,其中上述微處理器為上述設備的一部份,且耦接於上述基本輸入輸出系統唯讀記憶體,以及上述微處理器包括上述竄改偵測器、上述 亂數產生器以及上述聯合測試工作群組控制鏈。
- 一種基本輸入輸出系統的保護方法,用以保護一計算系統內之一基本輸入輸出系統,包括:儲存基本輸入輸出系統內容以及一加密訊息文摘至一基本輸入輸出系統唯讀記憶體,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;編程在一竄改偵測微碼儲存器之所規定之間隔與事件發生之集合,其中篡改保護的微碼是在上述竄改偵測微碼儲存器中,且相關聯的聯合測試工作群組命令用於編程上述所規定之間隔與事件發生之集合;產生一基本輸入輸出系統檢查中斷,以便在上述所規定之間隔與事件發生之集合中斷上述計算系統的正常操作;回應於上述基本輸入輸出系統檢查中斷,存取上述基本輸入輸出系統內容以及上述加密訊息文摘,並使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘;比較上述第二訊息文摘與上述解密訊息文摘;當上述第二訊息文摘不相同於上述解密訊息文摘時,防止一微處理器之操作;以及使用在上述微處理器內的一亂數產生器,在完成了一目前基本輸入輸出系統檢查之後產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係 可隨機改變的。
- 如申請專利範圍第9項所述之保護方法,更包括:分別地設置上述基本輸入輸出系統唯讀記憶體在上述計算系統之一系統板上。
- 如申請專利範圍第9項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第9項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第9項所述之保護方法,其中上述微處理器包括設置在一執行邏輯內一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
- 如申請專利範圍第13項所述之保護方法,其中上述微處理器所執行之程式指令係無法存取上述密鑰。
- 如申請專利範圍第9項所述之保護方法,其中上述亂數產生 器係設置在上述微處理器之一執行邏輯內。
- 一種基本輸入輸出系統的保護設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:基本輸入輸出系統內容,其中上述基本輸入輸出系統內容係儲存為可讀文本;以及一加密訊息文摘,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體,用以在所規定之間隔與事件發生之集合時產生一基本輸入輸出系統檢查中斷、根據上述基本輸入輸出系統檢查中斷而對上述基本輸入輸出系統內容以及上述加密訊息文摘進行存取、指示一微處理器產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當上述第二訊息文摘不相同於上述解密訊息文摘時,防止上述微處理器之操作,其中上述事件發生包括輸入/輸出存取;一亂數產生器,設置在上述微處理器內,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係可隨機改變的;以及一聯合測試工作群組控制鏈,用以編程在一竄改偵測微碼儲存器之上述所規定之間隔與事件發生之集合; 其中,篡改保護的微碼是在上述竄改偵測微碼儲存器中,且上述聯合測試工作群組控制鏈之相關聯的聯合測試工作群組命令經由上述聯合測試工作群組控制鏈而路由至上述竄改偵測微碼儲存器,以編程上述所規定之間隔與事件發生之集合。
- 如申請專利範圍第16項所述之保護設備,其中上述基本輸入輸出系統唯讀記憶體係設置在上述計算系統之一系統板上,且分離於一竄改計時器與上述竄改偵測器。
- 如申請專利範圍第16項所述之保護設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第16項所述之保護設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第16項所述之保護設備,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中一密鑰僅能由上述密碼機/散列單元進行存取。
- 如申請專利範圍第20項所述之保護設備,其中上述微處理器所執行之程式指令係無法存取上述密鑰以及一竄改計時器。
- 如申請專利範圍第16項所述之保護設備,其中上述亂數產生器係設置在上述微處理器內之一執行邏輯。
- 如申請專利範圍第16項所述之保護設備,其中上述微處理 器為上述設備的一部份,且耦接於上述基本輸入輸出系統唯讀記憶體,以及上述微處理器包括上述竄改偵測器、上述亂數產生器以及上述聯合測試工作群組控制鏈。
- 一種基本輸入輸出系統的保護方法,用以保護一計算系統內之一基本輸入輸出系統,包括:儲存基本輸入輸出系統內容以及一加密訊息文摘至一基本輸入輸出系統唯讀記憶體,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;編程在一竄改偵測微碼儲存器之所規定之間隔與事件發生之集合,其中上述事件發生包括輸入/輸出存取,其中篡改保護的微碼是在上述竄改偵測微碼儲存器中,且相關聯的聯合測試工作群組命令用於編程上述所規定之間隔與事件發生之集合;產生一基本輸入輸出系統檢查中斷,以便在上述所規定之間隔與事件發生之集合中斷上述計算系統的正常操作;回應於上述基本輸入輸出系統檢查中斷,存取上述基本輸入輸出系統內容以及上述加密訊息文摘,並使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘;比較上述第二訊息文摘與上述解密訊息文摘;當上述第二訊息文摘不相同於上述解密訊息文摘時,防止一微處理器之操作;以及 使用在上述微處理器內的一亂數產生器,在完成了一目前基本輸入輸出系統檢查之後產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係可隨機改變的。
- 如申請專利範圍第24項所述之保護方法,更包括:分別地設置上述基本輸入輸出系統唯讀記憶體在上述計算系統之一系統板上。
- 如申請專利範圍第24項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第24項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第24項所述之保護方法,其中上述微處理器包括設置在一執行邏輯內一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
- 如申請專利範圍第28項所述之保護方法,其中上述微處理器所執行之程式指令係無法存取上述密鑰。
- 如申請專利範圍第24項所述之保護方法,其中上述亂數產生器係設置在上述微處理器之一執行邏輯內。
- 一種基本輸入輸出系統的保護設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:基本輸入輸出系統內容,其中上述基本輸入輸出系統內容係儲存為可讀文本;以及一加密訊息文摘,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體,用以在所規定之間隔與事件發生之集合時產生一基本輸入輸出系統檢查中斷、根據上述基本輸入輸出系統檢查中斷而對上述基本輸入輸出系統內容以及上述加密訊息文摘進行存取、指示一微處理器產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當上述第二訊息文摘不相同於上述解密訊息文摘時,防止上述微處理器之操作;一亂數產生器,設置在上述微處理器內,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係可隨機改變的; 一聯合測試工作群組控制鏈,用以編程在一竄改偵測微碼儲存器之上述所規定之間隔與事件發生之集合,其中篡改保護的微碼是在上述竄改偵測微碼儲存器中,且上述聯合測試工作群組控制鏈之相關聯的聯合測試工作群組命令經由上述聯合測試工作群組控制鏈而路由至上述竄改偵測微碼儲存器,以編程上述所規定之間隔與事件發生之集合;一熔絲,用以指示是否對上述所規定之間隔與事件發生之集合的編程禁能;以及一存取控制元件,耦接於上述熔絲以及上述聯合測試工作群組控制鏈,用以判斷上述熔絲的狀態,以及當熔絲被燒斷時,指示上述聯合測試工作群組控制鏈將上述所規定之間隔與事件發生之集合的編程禁能。
- 如申請專利範圍第31項所述之保護設備,其中上述基本輸入輸出系統唯讀記憶體係設置在上述計算系統之一系統板上,且分離於一竄改計時器與上述竄改偵測器。
- 如申請專利範圍第31項所述之保護設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第31項所述之保護設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第31項所述之保護設備,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中一密鑰僅能由上述密碼機/散列單元進 行存取。
- 如申請專利範圍第35項所述之保護設備,其中上述微處理器所執行之程式指令係無法存取上述密鑰以及一竄改計時器。
- 如申請專利範圍第31項所述之保護設備,其中上述亂數產生器係設置在上述微處理器內之一執行邏輯。
- 如申請專利範圍第31項所述之保護設備,其中上述微處理器為上述設備的一部份,且耦接於上述基本輸入輸出系統唯讀記憶體,以及上述微處理器包括上述竄改偵測器、上述亂數產生器以及上述聯合測試工作群組控制鏈。
- 一種基本輸入輸出系統的保護方法,用以保護一計算系統內之一基本輸入輸出系統,包括:儲存基本輸入輸出系統內容以及一加密訊息文摘至一基本輸入輸出系統唯讀記憶體,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;透過一熔絲的狀態,指示是否對所規定之間隔與事件發生之集合的編程致能或禁能;判斷上述熔絲的狀態,以及當上述熔絲被燒斷時,對上述所規定之間隔與事件發生之集合的編程禁能;當上述熔絲沒有被燒斷時,編程在一竄改偵測微碼儲存器之上述所規定之間隔與事件發生之集合,其中篡改保護的微碼是在上述竄改偵測微碼儲存器中,且相關聯的聯合測試工作群組命令用於編程上述所規定之間隔與事件發生之 集合;產生一基本輸入輸出系統檢查中斷,以便在上述所規定之間隔與事件發生之集合中斷上述計算系統的正常操作;回應於上述基本輸入輸出系統檢查中斷,存取上述基本輸入輸出系統內容以及上述加密訊息文摘,並使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘;比較上述第二訊息文摘與上述解密訊息文摘;當上述第二訊息文摘不相同於上述解密訊息文摘時,防止一微處理器之操作;以及使用在上述微處理器內的一亂數產生器,在完成了一目前基本輸入輸出系統檢查之後產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係可隨機改變的。
- 如申請專利範圍第39項所述之保護方法,更包括:分別地設置上述基本輸入輸出系統唯讀記憶體在上述計算系統之一系統板上。
- 如申請專利範圍第39項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第39項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第39項所述之保護方法,其中上述微處理器包括設置在一執行邏輯內一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
- 如申請專利範圍第43項所述之保護方法,其中上述微處理器所執行之程式指令係無法存取上述密鑰。
- 如申請專利範圍第39項所述之保護方法,其中上述亂數產生器係設置在上述微處理器之一執行邏輯內。
- 一種基本輸入輸出系統的保護設備,用以保護一計算系統內之一基本輸入輸出系統,包括:一基本輸入輸出系統唯讀記憶體,包括:基本輸入輸出系統內容,其中上述基本輸入輸出系統內容係儲存為可讀文本;以及一加密訊息文摘,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;一竄改偵測器,耦接於上述基本輸入輸出系統唯讀記憶體,用以在所規定之間隔與事件發生之集合時產生一基本輸入 輸出系統檢查中斷、根據上述基本輸入輸出系統檢查中斷而對上述基本輸入輸出系統內容以及上述加密訊息文摘進行存取、指示一微處理器產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘、比較上述第二訊息文摘與上述解密訊息文摘,以及當上述第二訊息文摘不相同於上述解密訊息文摘時,防止上述微處理器之操作;一亂數產生器,設置在上述微處理器內,其中在完成了一目前基本輸入輸出系統檢查之後,上述亂數產生器產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係可隨機改變的;一聯合測試工作群組控制鏈,用以編程在一竄改偵測微碼儲存器之上述所規定之間隔與事件發生之集合,其中篡改保護的微碼是在上述竄改偵測微碼儲存器中,且上述聯合測試工作群組控制鏈之相關聯的聯合測試工作群組命令經由上述聯合測試工作群組控制鏈而路由至上述竄改偵測微碼儲存器,以編程上述所規定之間隔與事件發生之集合;一熔絲,用以指示是否對上述所規定之間隔與事件發生之集合的編程禁能;一機器特定暫存器,用以儲存一特定值;以及一存取控制元件,耦接於上述熔絲、上述機器特定暫存器以及上述聯合測試工作群組控制鏈,用以判斷上述熔絲被燒斷,以及當上述特定值在儲存在於上述機器特定暫存器的期間符合於上述存取控制元件的無效值,則指示上述聯 合測試工作群組控制鏈將上述所規定之間隔與事件發生之集合的編程致能。
- 如申請專利範圍第46項所述之保護設備,其中上述基本輸入輸出系統唯讀記憶體係設置在上述計算系統之一系統板上,且分離於一竄改計時器與上述竄改偵測器。
- 如申請專利範圍第46項所述之保護設備,其中上述微處理器係使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第46項所述之保護設備,其中上述微處理器係使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第46項所述之保護設備,其中上述微處理器包括設置在一執行邏輯內之一密碼機/散列單元,以及上述第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中一密鑰僅能由上述密碼機/散列單元進行存取。
- 如申請專利範圍第50項所述之保護設備,其中上述微處理器所執行之程式指令係無法存取上述密鑰以及一竄改計時器。
- 如申請專利範圍第46項所述之保護設備,其中上述亂數產生器係設置在上述微處理器內之一執行邏輯。
- 如申請專利範圍第46項所述之保護設備,其中上述微處理器為上述設備的一部份,且耦接於上述基本輸入輸出系統唯讀記憶體,以及上述微處理器包括上述竄改偵測器、上述亂數產生器以及上述聯合測試工作群組控制鏈。
- 一種基本輸入輸出系統的保護方法,用以保護一計算系統內之一基本輸入輸出系統,包括:儲存基本輸入輸出系統內容以及一加密訊息文摘至一基本輸入輸出系統唯讀記憶體,其中上述加密訊息文摘包括對應於上述基本輸入輸出系統內容之一第一訊息文摘之一加密版本;透過一熔絲的狀態,指示是否對所規定之間隔與事件發生之集合的編程禁能;儲存一特定值於一機器特定暫存器;判斷上述熔絲被燒斷,以及當上述特定值在儲存在於上述機器特定暫存器的期間符合於上述存取控制元件的無效值,指示一聯合測試工作群組控制鏈將上述所規定之間隔與事件發生之集合的編程致能;編程在一竄改偵測微碼儲存器之上述所規定之間隔與事件發生之集合,其中篡改保護的微碼是在上述竄改偵測微碼儲存器中,且相關聯的聯合測試工作群組命令用於編程上述所規定之間隔與事件發生之集合;產生一基本輸入輸出系統檢查中斷,以便在上述所規定之間隔與事件發生之集合中斷上述計算系統的正常操作;回應於上述基本輸入輸出系統檢查中斷,存取上述基本輸入輸出系統內容以及上述加密訊息文摘,並使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之一第二訊息文摘以及對應於上述加密訊息文摘之一解密訊息文摘; 比較上述第二訊息文摘與上述解密訊息文摘;當上述第二訊息文摘不相同於上述解密訊息文摘時,防止一微處理器之操作;以及使用在上述微處理器內的一亂數產生器,在完成了一目前基本輸入輸出系統檢查之後產生一亂數,其中上述亂數是用來設定下一個所規定之間隔,以及上述所規定之間隔係可隨機改變的。
- 如申請專利範圍第54項所述之保護方法,更包括:分別地設置上述基本輸入輸出系統唯讀記憶體在上述計算系統之一系統板上。
- 如申請專利範圍第54項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一安全散列演算法來產生上述第二訊息文摘。
- 如申請專利範圍第54項所述之保護方法,其中上述使用用來產生上述第一訊息文摘與上述加密訊息文摘之相同演算法與密鑰來產生對應於上述基本輸入輸出系統內容之上述第二訊息文摘以及對應於上述加密訊息文摘之上述解密訊息文摘之步驟更包括:使用一進階加密標準演算法來產生上述解密訊息文摘。
- 如申請專利範圍第54項所述之保護方法,其中上述微處理器包括設置在一執行邏輯內一密碼機/散列單元,以及上述 第二訊息文摘以及上述解密訊息文摘係由上述密碼機/散列單元所產生,其中上述密鑰僅能由上述密碼機/散列單元進行存取。
- 如申請專利範圍第58項所述之保護方法,其中上述微處理器所執行之程式指令係無法存取上述密鑰。
- 如申請專利範圍第54項所述之保護方法,其中上述亂數產生器係設置在上述微處理器之一執行邏輯內。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710681830.9A CN107273770B (zh) | 2016-10-31 | 2017-08-10 | 基本输入输出系统的保护设备与方法 |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/338,586 US9779242B2 (en) | 2013-11-13 | 2016-10-31 | Programmable secure bios mechanism in a trusted computing system |
US15/338,607 | 2016-10-31 | ||
US15/338,620 | 2016-10-31 | ||
US15/338,598 US9767288B2 (en) | 2013-11-13 | 2016-10-31 | JTAG-based secure BIOS mechanism in a trusted computing system |
US15/338,607 US9779243B2 (en) | 2013-11-13 | 2016-10-31 | Fuse-enabled secure BIOS mechanism in a trusted computing system |
US15/338,586 | 2016-10-31 | ||
US15/338,598 | 2016-10-31 | ||
US15/338,620 US9798880B2 (en) | 2013-11-13 | 2016-10-31 | Fuse-enabled secure bios mechanism with override feature |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201818281A TW201818281A (zh) | 2018-05-16 |
TWI655555B true TWI655555B (zh) | 2019-04-01 |
Family
ID=62949659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106122674A TWI655555B (zh) | 2016-10-31 | 2017-07-06 | 基本輸入輸出系統之保護設備與方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI655555B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI761668B (zh) * | 2019-03-22 | 2022-04-21 | 緯創資通股份有限公司 | 具自我檢測的電腦系統及其偵錯方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020174342A1 (en) * | 2001-05-15 | 2002-11-21 | International Business Machines Corporation | Method and system for setting a secure computer environment |
TW200941277A (en) * | 2008-01-30 | 2009-10-01 | Advanced Micro Devices Inc | Computer system including a main processor and a bound security coprocessor |
US20090292847A1 (en) * | 2008-05-24 | 2009-11-26 | Via Technologies, Inc | Microprocessor apparatus providing for secure interrupts and exceptions |
TW201011643A (en) * | 2008-09-09 | 2010-03-16 | Via Tech Inc | Apparatus and method for updating set of limited access model specific registers in a microprocessor |
TW201519097A (zh) * | 2013-11-13 | 2015-05-16 | Via Tech Inc | 保護基本輸入輸出系統之設備與方法 |
-
2017
- 2017-07-06 TW TW106122674A patent/TWI655555B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020174342A1 (en) * | 2001-05-15 | 2002-11-21 | International Business Machines Corporation | Method and system for setting a secure computer environment |
TW200941277A (en) * | 2008-01-30 | 2009-10-01 | Advanced Micro Devices Inc | Computer system including a main processor and a bound security coprocessor |
US20090292847A1 (en) * | 2008-05-24 | 2009-11-26 | Via Technologies, Inc | Microprocessor apparatus providing for secure interrupts and exceptions |
TW201011643A (en) * | 2008-09-09 | 2010-03-16 | Via Tech Inc | Apparatus and method for updating set of limited access model specific registers in a microprocessor |
TW201519097A (zh) * | 2013-11-13 | 2015-05-16 | Via Tech Inc | 保護基本輸入輸出系統之設備與方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201818281A (zh) | 2018-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9836610B2 (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 | |
US9798880B2 (en) | Fuse-enabled secure bios mechanism with override feature | |
US9779242B2 (en) | Programmable secure bios mechanism in a trusted computing system | |
US10049217B2 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution | |
TW201519097A (zh) | 保護基本輸入輸出系統之設備與方法 | |
US9779243B2 (en) | Fuse-enabled secure BIOS mechanism in a trusted computing system | |
EP3316168B1 (en) | Fuse-enabled secure bios mechanism in a trusted computing system | |
TWI655555B (zh) | 基本輸入輸出系統之保護設備與方法 | |
US10055588B2 (en) | Event-based apparatus and method for securing BIOS in a trusted computing system during execution | |
CN107273770B (zh) | 基本输入输出系统的保护设备与方法 | |
TWI520001B (zh) | 保護基本輸入輸出系統之設備與方法 | |
US9767288B2 (en) | JTAG-based secure BIOS mechanism in a trusted computing system | |
EP3316167B1 (en) | Programmable secure bios mechanism in a trusted computing system | |
EP3316169B1 (en) | Jtag-based secure bios mechanism in a trusted computing system | |
EP3316170B1 (en) | Fuse-enabled secure bios mechanism with override feature | |
US10095868B2 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution |