TW202109327A - 具有強制自行認證功能之計算機系統 - Google Patents
具有強制自行認證功能之計算機系統 Download PDFInfo
- Publication number
- TW202109327A TW202109327A TW109103167A TW109103167A TW202109327A TW 202109327 A TW202109327 A TW 202109327A TW 109103167 A TW109103167 A TW 109103167A TW 109103167 A TW109103167 A TW 109103167A TW 202109327 A TW202109327 A TW 202109327A
- Authority
- TW
- Taiwan
- Prior art keywords
- authentication
- memory
- processor
- computer system
- read
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本發明揭露一種計算機系統,其包含記憶體、處理器和認證執行硬件。處理器係執行軟件,該軟件包含對存儲在記憶體中的數據進行認證的認證程序。認證執行硬件係耦接處理器,並且用以驗證(i)處理器以至少一指定頻率週期性地執行認證程序,以及(ii)認證程序有成功認證數據。
Description
本發明係有關於一種安全計算環境,特別是有關於強制一電腦系統進行自行驗證的方法以及系統。
計算機系統通常包括一個或多個中央處理器(CPU)和存儲器,其中CPU執行存儲在記憶體中的軟件程序。在某些計算機系統中,計算機使用加密技術對計算機執行的軟件進行驗證。
例如在2003年3月28日發表之“安全要求的加密模塊實施指南(SECURITY REQUIREMENTS FOR CRYPTOGRAPHIC MODULES, Implementation Guidelines)”,NIST-FIPS 140-2;2008年7月發行之 FIPS PUB 198-1中的“金鑰雜湊訊息認證碼(The Keyed-Hash Message Authentication Code)”;2015年8月發行之NIST-FIPS 180-4“安全哈希標準(Secure Hash Standard,SHS)”;以及,2017年8月發行之“ 可延伸韌體介面論壇(UEFI)規範”,版本2.7(勘誤A),皆描述用於驗證韌體(和其他軟件或數據)真實性(authenticity)的方法。
根據一實施例,本發明提出一種計算機系統,包含:一記憶體;一處理器,用以執行軟件,該軟件包含對存儲在該記憶體中的數據進行認證的一認證程序;以及 一認證執行硬件,其耦接該處理器並用以驗證該處理器是否以至少一指定的頻率定期執行該認證程序,以及驗證是否該認證程序有成功認證該數據。
根據一實施例,當該處理器未能以該至少一指定頻率執行該認證程序時,認證執行硬件啟動一回應措施。根據一實施例,當該認證程序無法認證該數據時,認證執行硬件係啟動一回應措施。
根據一實施例,認證程序在成功認證該數據時係指示該處理器設定(assert)一訊號有效,並且認證執行硬件係包含一計時器用以驗證該訊號是否以至少該指定頻率定期被設定有效。根據一實施例,處理器係用以從一唯讀記憶體執行該認證程序,並且只有當驗證從該唯讀記憶體執行一既定執行(given run)時,該認證執行硬件才決定該認證程式之該既定執行有成功完成。根據一實施例,認證執行硬件藉由偵測該認證程式之命令是否是從該唯讀記憶體取得,以驗證該既定執行是否是從唯讀記憶體中執行。
根據一實施例,本發明提出一種強制自行認證方法,包含:使用一處理器執行軟件,其中該軟件包含一認證程序用以對存儲在一記憶體中的數據進行認證;使用耦接該處理器的一認證執行硬件,驗證該處理器是否以至少一指定頻率定期執行該認證程序,以及驗證認證程序是否有成功認證該數據。
以下將配合圖式及實施例來詳細說明本發明之實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
當在此使用時,除非文中另行明確地表示,否則「一」、「該」、「此」等單數型式亦旨在包含複數型式。
計算機系統(具體而言,包含有微控制器)通常包含隨機存取記憶體(RAM),其存儲韌體代碼(FW)和數據。例如,儲存在一唯讀記憶體(ROM )中的嵌入式開機引導程式(bootloader)可以從串列式快閃記憶體下載韌體程式碼,然後從隨機存取記憶元件中執行。在其它實施例,韌體代碼可以通過並列或是串列匯流排,以有線或無線的方式,從網路或從其它外部來源下載。
嵌入式開機引導程式可對其下載的韌體代碼進行認證,例如,使用加密技術,像是基於金鑰的簽章(key-based signature);當ROM代碼被認為是安全的,則下載的韌體代碼是可信賴的。然而,一旦下載後,有時候只要供應給計算機系統的電源不中斷,韌體代碼可能會執行很長的時間,例如幾個月或幾年。一旦駭客破壞計算機系統安全並載入一修改過的代碼,例如,駭客可對晶片之供應電源產生一突波(glitch)、或是致能一除錯端口(debug port)、或是直接注入數據至隨機存取記憶元件(RAM),則上述修改過的代碼會被永遠執行,變成嚴重的安全隱患。以下段落中,上述修改過的韌體代碼會稱為"惡意韌體代碼(malicious FW)"或是"惡意代碼(malicious code)"。
本發明的實施例會揭露一種方法以及系統,用以強制一計算機系統週期地自行驗證,藉此降低惡意韌體代碼取代真實韌體代碼而長時間執行的風險。在一實施例中,韌體代碼包含認證功能,其用於週期地(例如,藉由一可程式化計時器來觸發)認證記憶體內容全部或是其一部分。如果認證失敗,計算機系統發出一重置訊號;或是,在一實施例中,發出不可屏蔽的中斷(non-maskable interrupt,NMI);或是,在另一實施例中,計算機系統停止執行。接著,計算機系統將重開機,廢棄儲存在隨機存取記憶元件中的韌體代碼。
在一些實施例中,計算機系統包含強制認證電路(forced-authentication circuit, FAC),其亦稱為認證執行硬件,用以驗證(i)韌體代碼有週期性且足夠頻率地執行認證功能,以及(ii)認證有成功完成。在一範例實施例,如果認證程序成功完成(也就是說,韌體代碼或是其一部份通過認證),則韌體代碼設定一認證OK訊號(其通常是暫存器中的一位元)有效。在此例中,強制認證電路包含一計時器,當認證OK訊號設定有效時。計時器重置;實際上,計時器會從最後一次認證成功一直計數時間。如果計時器達到一預設門檻值,則強制認證電路會強制計算機系統重開機,例如,強制認證電路可發出重置訊號或是一NMI。
在實施例中,強制認證電路不可由軟件存取,軟件只能設定認證OK訊號。在一些實施例中,認證功能儲存在唯讀記憶體(ROM),韌體代碼週期地調用認證功能。在一實施例中,為了防止不是成功認證的偽造認證OK訊號,如果最後一個命令不是從唯讀記憶體取得的,強制認證電路會忽視認證OK訊號(AUTHENTICATION-OK signal); 因此,如果儲存在必定安全的唯讀記憶體中的認證功能表示成功,才可接受認證OK訊號。
雖然以上說明係有關於韌體代碼之認證,但本發明之實施例不限於認證全部韌體代碼,而可僅認證部分韌體代碼,或是可認證計算機系統之記憶體中的數據。
綜上所述,本發明之實施例可強制計算機系統週期地認證儲存在隨機存取記憶元件的數據(例如全部韌體代碼)。計算機系統中的電路可確保當在一預設時間門檻值中隨機存取記憶元件中的數據認證失敗會造成系統重置、NMI、或者停止韌體代碼執行、或是其他回應措施。除了基於ROM的韌體代碼可通知認證成功,因為韌體代碼不可存取此電路,所以韌體代碼無法偽造一成功認證。除了週期地調用(invoke)認證功能,上述新增機制不會影響使用者軟件性能。
系統說明(SYSTEM DESCRIPTION)
根據本發明的實施例,本發明提出幾個計算機系統及其元件的範例。應注意的是,本發明之範圍不受此些範例的限制。
第1圖係為根據本發明一實施例示意性繪示具有強制認證功能之計算機系統之方塊圖100。
計算機系統102包含一中央處理單元(CPU)104(其亦稱為處理器),用以執行儲存在記憶體之程序;一唯讀記憶體(ROM)106,其用以儲存初始啟動代碼(initial boot code)、以及其他功能與數據,例如受信任韌體代碼功能(trusted FW function);以及一隨機讀取記憶體(RAM)108,其用以儲存韌體代碼以及數據。唯讀記憶體106以及隨機存取記憶體108可共同稱為計算機系統記憶體。
為了下載韌體代碼,計算機系統102更可包含一外部快閃記憶體介面110,其用以與串列式快閃記憶體112進行通訊,串列式快閃記憶體112可在計算機系統外部儲存韌體代碼。可選地,計算機系統102可包含其他用於下載韌體代碼的介面,例如網路介面114,其用於計算機系統以及網路(例如,乙太網)之間的通訊,並從網路下載韌體代碼; 一串列匯流排介面116,用以進行計算機系統以及外部裝置在串列匯流排(例如,積體電路匯流排(I2
C))上的通訊,且在串列匯流排上下載韌體代碼。可選地,計算機系統102可包含其他介面用以從外部來源下載韌體代碼。將在以下段落提供外部來源的範例。
根據本發明的實施例,當計算機系統102載入韌體代碼,計算機系統會使用例如加密簽章(cryptographic signature),以認證韌體代碼(或是其一部份)。認證程序(至少一部分)通常是儲存在唯讀記憶體106中,如果認證失敗,則計算機系統將不載入韌體代碼,例如計算機系統可停止執行、重置系統、或是產生不可屏蔽之中斷(NMI)。如果認證成功,中央處理單元104會載入韌體代碼至隨機存取記憶體108,接著,中央處理單元104從隨機存取記憶體執行此韌體代碼。此時可斷開(disconnect)串列式快閃記憶體112。
在計算機系統之一些應用中,中央處理單元可長時間執行此韌體代碼。例如,在生產車間的計算機系統可下載穩定且成熟的程序控制韌體代碼,接著執行此韌體代碼,如果電力不中斷,可能會執行幾個月或是幾年。在這段長時間內駭客會有機會攻擊計算機系統,並改變韌體代碼;例如,駭客可能會在供電源端輸入突波、致能一除錯端口、或是直接注入數據至隨機存取記憶體。因此,僅在韌體代碼載入之前由計算機系統執行韌體代碼之認證是不夠的。
為了減輕此風險,在本發明的實施例中,計算機系統執行的韌體代碼必須包含對隨機存取記憶體數據之週期性認證。例如,每10秒進行一次認證,而根據性能與花費在認證上的電力,以及安全隱患以及恢復時間之間的取捨,實際的認證頻率可以從幾秒一次到幾小時一次。在一些實施例中,認證頻率不是固定的,但是必須界定計算機系統執行兩次認證之間的最大時間。
然而,駭客可禁能此週期性認證而讓惡意的韌體代碼能長時間執行。為了消除此風險,計算機系統102更包含一強制認證電路(FAC)118。每當一認證成功執行完成,強制認證電路118從中央處理單元104接收表示認證成功的訊號。強制認證電路可包含一計時器,並在不會比預設門檻值更長的期間中驗證新的認證成功訊號係為中央處理單元發出。
根據搭配第1圖描述的實施例,認證程序(至少一部分)係儲存在唯讀記憶體106,並藉由調用基於唯讀記憶體的功能在隨機存取記憶體中執行韌體代碼。強制認證電路更用以監控中央處理單元對記憶體之存取,且除非一成功認證之指示是由基於唯讀記憶體之指令執行結果,否則強制認證電路會阻擋此認證成功之指示訊號。因此,駭客無法偽造認證成功執行的指示訊號,且強制認證電路118將可及時偵測認證失敗。在一預先定義時間週期中,當認證失敗或無法執行認證時,將結束惡意韌體代碼之執行。
可以理解的是,第1圖所示之運算系統102之實施例係為一實施例範例。根據本發明所揭露之技術之運算系統不限於上述舉例說明。在其他實施例,例如,可使用任何外部快閃記憶體介面110、網路介面114以及串列匯流排介面116,以從串列式快閃記憶體及/或網路及/或串列匯流排下載韌體代碼。在一些實施例中,韌體代碼可經由適當介面以無線方式下載;在其他的實施例,韌體代碼可透過快速系統匯流排下載,例如透過快捷外設互聯標準(peripheral component interconnect express,PCIe);以及每一個介面110、114、116可與複數個裝置連接。
在實施例中,中央處理單元104可為一個以上相同或是不同型式之中央處理單元的組合;唯讀記憶體106及/或隨機存取記憶體108可包含複數個唯讀記憶體/隨機存取記憶體實體。
第2圖係為根據本發明一實施例之當自行認證失敗時對運算系統進行保護的時序波形圖200。時序波形包含韌體執行波形202,其繪示各種韌體代碼執行來源;一認證結果波形204,其表示認證執行失敗或是成功。計時器波形206,其表示用於驗證重複認證執行之計時器之操作;以及一重置波形208,其表示計算機系統之重置操作。
時序波形圖200更包含時間指示(time indicator)210以及212,用以分別表示認證執行開始以及停止;時間指示214,用以表示中央處理單元開始執行惡意代碼之時間點;以及一時間指示216,其用以表示回應認證失敗而計算機系統重置。
一開始,從隨機存取記憶體執行韌體代碼。接著,在時間指示210,韌體代碼調用儲存在唯讀記憶體中的認證程序。在時間指示212,認證完成,且韌體代碼產生一認證OK訊號,其傳送至第1圖之強制認證電路118。
當強制認證電路接收此認證OK訊號時,計時器係重覆地增加計數且重置以測量經過時間(elapsed time)。當新訊號總是能及時接收到時,計時器不會達到門檻值。
上述順序包含從隨機存取記憶體執行韌體代碼,接著從唯讀記憶體執行認證,認證通過指示重覆三次,直到在時間指示214,韌體代碼開始執行被篡改的(惡意)代碼。下一次認證軟件執行時將會產生認證失敗訊號(在時間指示216),因此計算機系統重置。
第3圖係示意性繪示根據本發明一實施例之當軟件無法執行自行認證軟件時對運算系統進行保護的時序波形圖300。
時序波形圖300一開始類似時序波形圖200,在時間指示214之前兩時序波形圖是相同的。然而,載入至隨機存取記憶體的惡意韌體代碼在時間指示214不調用儲存在唯讀記憶體中的認證功能。因此,沒有認證OK指示訊號產生,計時器不會重置,而計時器在時間指示310達到門檻值。強制認證電路接著產生重置訊號,使得計算機系統重啟動。
綜上所述,根據搭配第2與3圖描述之範例實施例,如果在時間指示214下載的韌體代碼不是正確的,則此韌體代碼會造成隨機存取記憶體數據之週期性認證失敗或是無法在預設門檻值到達之前認證成功,而在認證失敗或是計時器達到門檻值時,計算機系統將直接重置或是由強制認證電路重置。
可以理解的是,第2與3圖所繪示之運算系統之波形係僅為範例實施例。本發明所揭露之技術之計算機系統之波形並不限於上述舉例。在其他實施例,例如,認證程序可分開成多區段,而在此些區段之間分別從隨機存取記憶體執行韌體代碼,例如,在必須有快速回應時間(fast response time)的應用中,其無法讓韌體代碼為了一完整認證程序中而暫停執行其他功能。在其他的實施例中,強制認證電路118不產生重置訊號,而是由強制認證電路停止所有中央處理單元之執行;在一實施例中,強制認證電路產生一NMI,而在另一實施例中,如果認證失敗,強制認證電路可產生重置訊號,而如果計時器達到門檻值,則強制認證電路產生NMI。
再者,如果(i)認證程序沒有在至少指定頻率下定期地被調用,或是(ii)如果認證程序之某次調用沒有成功完成認證,則強制認證電路118可啟動其他任何適當的回應措施。
第4圖係示意性繪示根據本發明一實施例之計算機系統中強制自行認證之電路結構之方塊圖400。中央處理單元104與唯讀記憶體106以及隨機存取記憶體108進行通訊。強制認證電路118用以監控中央處理單元、唯讀記憶體以及隨機存取記憶體之間的數據處置。強制認證電路亦經由認證OK線(AUTHENTICATION-OK wire,圖中標示為 AUTH-OK)耦接於中央處理單元104,中央處理單元可透過認證OK線上的訊號以表示此認證軟件成功完成。
強制認證電路118包含一計時器402,其用以計數收到兩次認證OK訊號之間的時間(例如,計數固定頻率時脈訊號之週期);以及一比較器(comparator, 圖中標示為CMP)404,其用以比較計時器402輸出的時間與一預設門檻值(圖中標示為THRESHOLD),當此時間等於門檻值時,比較器404產生一重置訊號(圖中標示為RESET)。在第4圖之範例實施例中,認證OK訊號係為中央處理單元104之其中一IO接腳上的訊號,而藉由中央處理單元之一輸出指令來產生認證OK訊號。
惡意韌體代碼可能會嘗試愚弄上述的強制認證機制,例如,惡意韌體代碼可週期地設定認證OK指示。因此,在一實施例中,只有當儲存在唯讀記憶體之指令被執行而使得中央處理單元表示認證OK,才會讓計時器402重置,則上述風險可以得到解決。
強制認證電路118更包含一邏輯閘406(圖中顯示為及(AND)閘)、一致能認證指示正反器408、一ROM指令提取偵測器410、以及一RAM指令提取偵測器412。只有當致能認證指示正反器408被設定(圖中標示為SET)時,邏輯閘406才能將認證OK指示從中央處理單元104傳遞到計時器402。當用以監控中央處理單元對記憶體存取之ROM指令提取偵測器410偵測到中央處理單元從唯讀記憶體提取一指令時,正反器才會被設定(圖中標示為SET),當RAM指令提取偵測器412偵測到中央處理單元從隨機存取記憶體提取指令時,正反器被重置(圖中標示為CLEAR)。因此,只有從唯讀記憶體提取指令之後以及從隨機存取記憶體提取指令之前的認證OK指示能讓計時器402重置(圖中標示為CLEAR)。
在計算機系統102之一些實施例中,執行管路(execution pipeline)可能會造成相對於對應的指令提取的寫入動作延遲。因此,對認證OK指示設定有效的唯讀記憶體指令可藉由至少一指令延遲對應的指令提取,如果下一指令是從隨機存取記憶體執行,則可阻止計時器重置。在此些實施例中,認證軟件必須繼續從唯讀記憶體執行幾個週期,例如執行預設數量的NOP指令,直到執行管路清空。
在再一實施例中,ROM指令提取偵測器410用以設定一"致能認證辨識旗標(enable authentication identification flag)",以回應對唯讀記憶體中認證常用程式之第一位址的提取。因此,惡意韌體代碼不能跳至常用程式(其用以設定認證OK訊號有效)之尾部而不執行此常用程式,因此唯讀記憶體常用程式可完整執行。
可以理解的是,第4圖之強制認證電路118之實施例係為一舉例式實施例。本發明所揭露之技術之強制認證電路不限於上述舉例。在其他實施例,例如,中央處理單元104可寫入一記憶體位址(指向既有記憶體或不存在的記憶體)以表示認證OK訊號。在此實施例,強制認證電路118包含一認證OK偵測器(AUTHENTICATION-OK-detector),其監控中央處理單元對記憶體之存取以及偵測認證OK訊號。此認證OK偵測器之輸出訊號係輸入邏輯閘406,以來自中央處理單元104的認證OK線。在一實施例中,比較器404產生NMI,而不產生重置訊號;在另一實施例中,比較器404產生停止訊號,以停止中央處理單元。
因此,根據本發明的上述實施例,長時間從隨機存取記憶體執行韌體代碼的計算機系統可保護防範韌體代碼被未經授權的修改。此保護包含,第一,韌體代碼(包含全部韌體代碼或是其一部份)必須週期地認證儲存在隨機存取記憶體中的數據;第二,認證軟件(至少一部分)儲存在唯讀記憶體中,相對而言不易受駭客攻擊;第三,計算機中的電路包含一計時器,如果認證延遲超過一預設門檻值,則此電路重置、停止或是中斷中央處理單元;第四,電路藉由驗證上述認證OK指示訊號是由基於唯讀記憶體之指令所啟動,以保護認證OK指示訊號不受駭客攻擊。
可以理解的是,第1-4圖中計算機系統以及強制認證電路之實施例係為舉例式實施例。本發明所揭露之技術之計算機系統以及強制認證電路不受上述舉例說明之限制。在其他實施例,例如,韌體代碼係從外部快閃記憶體(而非隨機存取記憶體)執行,因此其需要週期地自行驗證。隨機存取記憶體108可為靜態或是動態記憶體、嵌入式或是外部記憶體。中央處理單元104可為任何一種微控制器(例如,RISC或CISC)、或是複數個處理器。
在本發明之一些實施例中,中央處理單元可包含一快取記憶體,用以頻繁存取數據;在此些實施例中,認證軟件之至少一部分係通常在非快取模式(non-cached mode)下執行。
計算機系統102或是其元件可用任何適當的硬件來實現,例如特殊應用積體電路(ASIC)、或是受保護之現場可程式邏輯閘陣列(FPGA)。在一些實施例中,控制器之一些或是全部元件可用軟件、硬件或是硬件與軟件之組合來實現。
通常,中央處理單元104包含一通用處理器,其可用軟件編程以執行本發明上述之功能。此軟件可透過網路以電子訊號形式下載至處理器,例如,此軟件可提供及/或儲存在非暫時性有形媒體上,例如磁性記憶體、光學記憶體或是電子記憶體。
唯讀記憶體106可用其他類型記憶體來仿真,例如使用快閃記憶體、隨機存取記憶體或是一次性可程式化記憶體,其具有寫入/抹除禁能邏輯電路,因此可仿真不能修改的唯讀記憶體。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
100:方塊圖
102:計算機系統
104:中央處理單元
106:唯讀記憶體
108:隨機讀取記憶體
110:外部快閃記憶體介面
112:串列式快閃記憶體
114:網路介面
116:串列匯流排介面
118:強制認證電路
200、300:時序波形圖
202、204、206、208、302、304、306、308:波形
210、212、214、216、310:時間指示
400:方塊圖
402:計時器
404:比較器
406:邏輯閘
408:致能認證指示正反器
410:ROM指令提取偵測器
412:RAM指令提取偵測器
第1圖係為示意性地示出根據本發明實施例的具有強制認證的計算機系統的方塊圖。
第2圖係為根據本發明一實施例示意性地示出當自行認證失敗時對第1圖之電腦系統進行保護的時序波形圖。
第3圖係為根據本發明一實施例示意性地示出當軟件無法執行自行認證軟件時對第1圖之電腦系統進行安全保護的時序波形圖。
第4圖係為根據本發明一實施例示意性繪示在電腦系統中強制自行認證之電路之結構。
上述圖式為示意性且並未按比例縮放。圖式中相對尺寸與比例因精確與/或方便之目的而放大或縮小,且尺寸為任意的且不限於此。於圖式中相似之參考符號代表相似之元件。
100:方塊圖
102:計算機系統
104:中央處理單元
106:唯讀記憶體
108:隨機讀取記憶體
110:外部快閃記憶體介面
112:串列式快閃記憶體
114:網路介面
116:串列匯流排介面
118:強制認證電路
Claims (12)
- 一種計算機系統,包含: 一記憶體; 一處理器,用以執行軟件,該軟件包含對存儲在該記憶體中的數據進行認證的一認證程序;以及 一認證執行硬件,其耦接該處理器並用以驗證該處理器是否以至少一指定的頻率定期執行該認證程序,以及驗證該認證程序是否成功認證該數據。
- 如請求項1所述之計算機系統,其中當該處理器未能以該至少一指定頻率定期執行該認證程序時,該認證執行硬件係啟動一回應措施。
- 如請求項1所述之計算機系統,其中當該認證程序無法認證該數據時,該認證執行硬件係啟動一回應措施。
- 如請求項1所述之計算機系統,其中該認證程序在成功認證該數據時係指示該處理器設定一訊號有效,並且該認證執行硬件係包含一計時器用以驗證該訊號是否以至少該指定頻率定期地被設定有效。
- 如請求項1所述之計算機系統,其中該處理器係用以從一唯讀記憶體執行該認證程序,並且只有當驗證從該唯讀記憶體執行一既定執行時,該認證執行硬件才決定該認證程式之該既定執行成功完成。
- 如請求項5所述之計算機系統 ,其中該認證執行硬件藉由偵測該認證程式之命令是否從該唯讀記憶體取得,以驗證該既定執行是否是從唯讀記憶體中執行。
- 一種強制自行認證方法,包含: 使用一處理器執行軟件,其中該軟件包含一認證程序用以對存儲在一記憶體中的數據進行認證;以及 使用耦接該處理器的一認證執行硬件,驗證是否該處理器以至少一指定頻率定期執行該認證程序,以及驗證是否認證程序成功認證該數據。
- 如請求項7所述之強制自行認證方法,更包含: 當該處理器未能以該至少一指定頻率定期執行該認證程序時,由該認證執行硬件啟動一回應措施。
- 如請求項7所述之強制自行認證方法,更包含: 當該認證程序未能認證該數據時,由該認證實施硬件啟動一回應措施。
- 如請求項7所述之強制自行認證方法,其中該認證程序係指示該處理器在成功認證該數據時設定一訊號有效,且驗證該處理器以該至少一指定頻率定期執行該認證程序的步驟包含: 使用該認證執行硬件之一計時器,其中該訊號係以該至少一指定頻率定期被設定為有效。
- 如請求項7所述之強制自行認證方法,其中執行該軟件之步驟包含: 從一唯讀記憶體執行該認證程序,並且其中驗證該認證程序成功認證該數據之步驟包含: 僅在驗證該認證程序之一既定執行係從該唯讀記憶體執行,才決定該認證程序之該既定執行成功完成。
- 如請求項11所述之強制自行認證方法,其中驗證該既定執行是否從該唯讀記憶體執行之步驟包含: 偵測該認證程序之命令是否是從該唯讀記憶體取得。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/541,218 | 2019-08-15 | ||
US16/541,218 US11436315B2 (en) | 2019-08-15 | 2019-08-15 | Forced self authentication |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202109327A true TW202109327A (zh) | 2021-03-01 |
TWI775041B TWI775041B (zh) | 2022-08-21 |
Family
ID=74568363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109103167A TWI775041B (zh) | 2019-08-15 | 2020-02-03 | 具有強制自行認證功能之計算機系統及強制自行認證方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11436315B2 (zh) |
JP (1) | JP7112449B2 (zh) |
CN (1) | CN112395587B (zh) |
TW (1) | TWI775041B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032737B (zh) * | 2021-03-15 | 2021-11-30 | 清华大学 | 软件的保护方法、装置、电子设备及存储介质 |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5740404A (en) | 1993-09-27 | 1998-04-14 | Hitachi America Limited | Digital signal processor with on-chip select decoder and wait state generator |
US5737748A (en) | 1995-03-15 | 1998-04-07 | Texas Instruments Incorporated | Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory |
US6289408B1 (en) | 1995-05-08 | 2001-09-11 | Apple Computer, Inc. | Bus interface with address mask register for transferring selected data from one bus to another |
US5696994A (en) | 1995-05-26 | 1997-12-09 | National Semiconductor Corporation | Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes |
US5713306A (en) | 1995-09-26 | 1998-02-03 | Johnson; Arnold B. | Feline playground system |
US6088450A (en) | 1996-04-17 | 2000-07-11 | Intel Corporation | Authentication system based on periodic challenge/response protocol |
US6026293A (en) * | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
US6049876A (en) | 1998-02-09 | 2000-04-11 | Motorola, Inc. | Data processing system and method which detect unauthorized memory accesses |
US6510522B1 (en) | 1998-11-20 | 2003-01-21 | Compaq Information Technologies Group, L.P. | Apparatus and method for providing access security to a device coupled upon a two-wire bidirectional bus |
US7155615B1 (en) | 2000-06-30 | 2006-12-26 | Intel Corporation | Method and apparatus for providing a secure-private partition on a hard disk drive of a computer system via IDE controller |
US7350083B2 (en) | 2000-12-29 | 2008-03-25 | Intel Corporation | Integrated circuit chip having firmware and hardware security primitive device(s) |
JP3501129B2 (ja) * | 2001-02-09 | 2004-03-02 | 株式会社三洋物産 | 制御装置 |
US7065654B1 (en) | 2001-05-10 | 2006-06-20 | Advanced Micro Devices, Inc. | Secure execution box |
US6832317B1 (en) | 2001-05-10 | 2004-12-14 | Advanced Micro Devices, Inc. | Personal computer security mechanism |
US7206933B2 (en) * | 2001-07-09 | 2007-04-17 | Advanced Micro Devices, Inc. | Software modem with privileged mode driver authentication |
US20030061494A1 (en) | 2001-09-26 | 2003-03-27 | Girard Luke E. | Method and system for protecting data on a pc platform using bulk non-volatile storage |
JP2003162511A (ja) * | 2001-11-22 | 2003-06-06 | Seiko Epson Corp | 認証システム、ペン型入力装置及び認証処理用プログラム |
EP1355460B1 (en) | 2002-04-16 | 2005-10-05 | ROBERT BOSCH GmbH | Method for monitoring a communication media access schedule of a communication controller of a communication system |
EP1429224A1 (en) * | 2002-12-10 | 2004-06-16 | Texas Instruments Incorporated | Firmware run-time authentication |
US7205883B2 (en) | 2002-10-07 | 2007-04-17 | Safenet, Inc. | Tamper detection and secure power failure recovery circuit |
US20080177994A1 (en) | 2003-01-12 | 2008-07-24 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
US7398345B2 (en) | 2003-06-12 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | Inter-integrated circuit bus router for providing increased security |
US7010639B2 (en) | 2003-06-12 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Inter integrated circuit bus router for preventing communication to an unauthorized port |
US20050021968A1 (en) | 2003-06-25 | 2005-01-27 | Zimmer Vincent J. | Method for performing a trusted firmware/bios update |
US20050132186A1 (en) | 2003-12-11 | 2005-06-16 | Khan Moinul H. | Method and apparatus for a trust processor |
US7664836B2 (en) | 2004-02-17 | 2010-02-16 | Zhe Khi Pak | Device and method for booting an operation system for a computer from a passive directly attached network device |
US7607021B2 (en) | 2004-03-09 | 2009-10-20 | Cisco Technology, Inc. | Isolation approach for network users associated with elevated risk |
US7496929B2 (en) | 2004-05-28 | 2009-02-24 | Intel Corporation | Performance of operations on a hardware resource through integral interpretive execution |
US20060059360A1 (en) | 2004-07-01 | 2006-03-16 | Ortkiese Jerry B | Authenticating controller |
US7774619B2 (en) | 2004-11-17 | 2010-08-10 | Broadcom Corporation | Secure code execution using external memory |
EP1659472A1 (en) * | 2004-11-22 | 2006-05-24 | Research In Motion Limited | Method and Device for Authenticating Software |
US20060156008A1 (en) * | 2005-01-12 | 2006-07-13 | Microsoft Corporation | Last line of defense ensuring and enforcing sufficiently valid/current code |
US8090919B2 (en) | 2007-12-31 | 2012-01-03 | Intel Corporation | System and method for high performance secure access to a trusted platform module on a hardware virtualization platform |
US20070109015A1 (en) | 2005-11-15 | 2007-05-17 | Alcatel | Switched integrated circuit connection architectures and techniques |
US20080276302A1 (en) | 2005-12-13 | 2008-11-06 | Yoggie Security Systems Ltd. | System and Method for Providing Data and Device Security Between External and Host Devices |
US10180809B2 (en) | 2006-05-17 | 2019-01-15 | Richard Fetik | Secure application acceleration system, methods and apparatus |
US20080282017A1 (en) | 2007-05-09 | 2008-11-13 | Microsoft Corporation | Serial Peripheral Interface Switch |
US7797115B2 (en) | 2007-08-13 | 2010-09-14 | Nuvoton Technology Corporation | Time interval measurement for capacitive detection |
US8631488B2 (en) | 2008-08-04 | 2014-01-14 | Cupp Computing As | Systems and methods for providing security services during power management mode |
GB2477774A (en) | 2010-02-12 | 2011-08-17 | Icera Inc | Overriding production processor authentication restrictions through remote security unit for development code testing |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8832452B2 (en) | 2010-12-22 | 2014-09-09 | Intel Corporation | System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves |
KR20120092222A (ko) | 2011-02-11 | 2012-08-21 | 삼성전자주식회사 | 보안 부팅 방법 및 보안 부트 이미지 생성 방법 |
US8813227B2 (en) | 2011-03-29 | 2014-08-19 | Mcafee, Inc. | System and method for below-operating system regulation and control of self-modifying code |
US20120255014A1 (en) | 2011-03-29 | 2012-10-04 | Mcafee, Inc. | System and method for below-operating system repair of related malware-infected threads and resources |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
JP5543949B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | 制御装置およびモニタプログラム |
TWI467408B (zh) * | 2011-11-15 | 2015-01-01 | Mstar Semiconductor Inc | 嵌入式元件與控制方法 |
KR101301022B1 (ko) | 2011-12-23 | 2013-08-28 | 한국전자통신연구원 | 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법 |
US20130254906A1 (en) | 2012-03-22 | 2013-09-26 | Cavium, Inc. | Hardware and Software Association and Authentication |
US20130312099A1 (en) | 2012-05-21 | 2013-11-21 | Mcafee, Inc. | Realtime Kernel Object Table and Type Protection |
US9158628B2 (en) | 2013-11-27 | 2015-10-13 | American Megatrends, Inc. | Bios failover update with service processor having direct serial peripheral interface (SPI) access |
US10303880B2 (en) | 2014-07-24 | 2019-05-28 | Nuvoton Technology Corporation | Security device having indirect access to external non-volatile memory |
US10783250B2 (en) | 2014-07-24 | 2020-09-22 | Nuvoton Technology Corporation | Secured master-mediated transactions between slave devices using bus monitoring |
US9569638B2 (en) | 2014-12-31 | 2017-02-14 | Google Inc. | Trusted computing |
US10114970B2 (en) | 2015-06-02 | 2018-10-30 | ALTR Solutions, Inc. | Immutable logging of access requests to distributed file systems |
US10095891B2 (en) | 2015-06-08 | 2018-10-09 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
US10452582B2 (en) | 2015-06-08 | 2019-10-22 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
US10691807B2 (en) | 2015-06-08 | 2020-06-23 | Nuvoton Technology Corporation | Secure system boot monitor |
CN105117314B (zh) * | 2015-07-07 | 2017-07-11 | 福州瑞芯微电子股份有限公司 | 一种Memory模块的验证方法及*** |
US10346605B2 (en) * | 2016-06-28 | 2019-07-09 | Paypal, Inc. | Visual data processing of response images for authentication |
US10380879B2 (en) | 2017-06-14 | 2019-08-13 | Allegro Microsystems, Llc | Sensor integrated circuits and methods for safety critical applications |
JP6584487B2 (ja) * | 2017-12-20 | 2019-10-02 | キヤノン株式会社 | 情報処理装置、その制御方法およびプログラム |
US11086998B2 (en) | 2018-01-30 | 2021-08-10 | Dell Products L.P. | Modifiable policy action secure boot violation system |
-
2019
- 2019-08-15 US US16/541,218 patent/US11436315B2/en active Active
-
2020
- 2020-01-17 CN CN202010052436.0A patent/CN112395587B/zh active Active
- 2020-02-03 TW TW109103167A patent/TWI775041B/zh active
- 2020-04-11 JP JP2020071381A patent/JP7112449B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP7112449B2 (ja) | 2022-08-03 |
US20210049258A1 (en) | 2021-02-18 |
US11436315B2 (en) | 2022-09-06 |
TWI775041B (zh) | 2022-08-21 |
JP2021034011A (ja) | 2021-03-01 |
CN112395587B (zh) | 2024-05-24 |
CN112395587A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2069992B1 (en) | Protecting interfaces on processor architectures | |
US8839236B2 (en) | Virtual machine support for metered computer usage | |
US8341393B2 (en) | Security to extend trust | |
US11972033B2 (en) | Alert handling | |
US8028165B2 (en) | Trusted platform field upgrade system and method | |
JP2007525774A (ja) | ランタイム・セキュリティ保証用の自律型メモリ・チェッカ | |
JP6735872B2 (ja) | コンピュータシステム及びコンピュータシステムを初期化する方法 | |
US20240281152A1 (en) | Transparently Attached Flash Memory Security | |
Francillon et al. | Systematic treatment of remote attestation | |
CN113614723A (zh) | 更新信号 | |
CN112651030A (zh) | 一种面向bmc固件***安全的可信启动方法 | |
TWI775041B (zh) | 具有強制自行認證功能之計算機系統及強制自行認證方法 | |
EP1465038B1 (en) | Memory security device for flexible software environment | |
TWI605357B (zh) | 電腦系統以及電腦系統操作方法 | |
CN112052455A (zh) | 安全启动***、方法及装置 | |
TWI728377B (zh) | 安全啟動系統、方法及裝置 | |
CN112307481B (zh) | 一种***可信启动方法、电子设备及计算机可读存储介质 | |
US20170017794A1 (en) | Method and device for protecting a computing apparatus against manipulation | |
RU2630890C1 (ru) | Способ обеспечения защищённой работы вычислительного средства и прибор для его осуществления |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |