TWI772988B - 用於驗證暫存器內容完整性的系統及其方法 - Google Patents

用於驗證暫存器內容完整性的系統及其方法 Download PDF

Info

Publication number
TWI772988B
TWI772988B TW109142153A TW109142153A TWI772988B TW I772988 B TWI772988 B TW I772988B TW 109142153 A TW109142153 A TW 109142153A TW 109142153 A TW109142153 A TW 109142153A TW I772988 B TWI772988 B TW I772988B
Authority
TW
Taiwan
Prior art keywords
scratchpad
contents
integrity
mode
verifying
Prior art date
Application number
TW109142153A
Other languages
English (en)
Other versions
TW202125525A (zh
Inventor
伊蘭 馬格利特
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
Application filed by 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Publication of TW202125525A publication Critical patent/TW202125525A/zh
Application granted granted Critical
Publication of TWI772988B publication Critical patent/TWI772988B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0405Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals comprising complete test loop
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Hardware Redundancy (AREA)
  • Shift Register Type Memory (AREA)

Abstract

一種驗證暫存器的內容完整性的系統,此系統與積體電路一起操作,積體電路包括至少一記憶體、至少一處理器、以及複數暫存器。此系統包括暫存器內容驗證邏輯,在稱為”學習模式”的第一模式下,其讀取至少一些暫存器的內容、計算關於內容的第一雜湊值、以及儲存第一雜湊值藉以提供最新的一參考雜湊值,以及在稱為”驗證模式”的第二模式下,其計算關於內容的第二雜湊值、比較第二雜湊值與參考雜湊值、且因此提供一內容驗證輸出(稱為”錯誤偵測”輸出)以指示參考雜湊值與第二雜湊值是否相等。

Description

用於驗證暫存器內容完整性的系統及其方法
本發明係有關於維持儲存在積體電路的內容完整性。
積體電路記憶體內容的驗證,即記憶體保護、錯誤偵測、或錯誤校正,被認為是重要的目標。因此,積體電路可包括一記憶體陣列和即時記憶體錯誤偵測/校正功能,例如,同位元或錯誤校正編碼(error correction code,ECC)電路。然而,ECC對於大型記憶體而言非常昂貴,並且不如密碼記憶體驗證那麼強大。因此,通常使用例如可實現於韌體或專用硬體的“摘要-重做-比較(digest-redo-compare)”技術來實現密碼記憶體驗證,其中,記憶體內容可以被摘要一次以產生參考摘要。然後,有時(例如,定期)會重做摘要,且每次會進行比較以驗證新摘要是否與參考摘要相同。例如,記憶體空間可以被劃分或分割為多個“區塊(chunk)”。然後,處理器計算並存儲每個區塊的雜湊值(hash),通常儲存一密鑰在晶片上。當處理器從記憶體中的區塊C讀取一個資料塊時,處理器可以讀取或載入整個區塊C,重新計算已載入區塊的雜湊值,然後將最近重新計算的雜湊值與存儲在記憶體中關於區塊C的雜湊值進行比較。如果該比較表示沒有差異,記憶體內容沒有問題,但是如果最近重新計算的雜湊值與儲存的雜湊值不同,那麼假設已知記憶體陣列的物理和電氣完整性是完整的,則表明記憶體內容已被篡改。
在美國專利編號US 8,146,028中描述了傳統的暫存器加倍/複製,這是一種現有的暫存器內容的驗證方法。通常,給定一個包括多個並聯組合的正反器的暫存器,其被認為包括了加倍的記憶體正反器藉以以產出多個正反器,這維持了所有的正反器,並且有時或定期(例如連續地)比較多個正反器之間的值,以偵測複製的實例之間的不匹配,如果檢測到,則表明存在篡改。通常,實現加倍時,暫存器之間沒有依賴關係或互連關係,這是因為每個暫存器都有自己的影子(shadow)和比較邏輯。
在Bertacco的美國專利編號US 8,341,473中描述了可以與在此顯示和描述的任何實施例結合使用的邏輯元件的完整性檢查(但不是其內容的完整性)。Bertacco在https://patents.google.com/patent/US8341473B2/zh-cn描述了一種方法,通過該方法“可以使用四階段分割交易(split-transaction)測試程序來檢查暫存器組的完整性”。
改善積體電路的安全性是積體電路產業中一直關注的問題。提高安全性的一種方法是更好地保護積體電路上暫存器的內容。保護暫存器的內容通常可以確保,在暫存器所在的裝置的正常操作期間,除了有意進行的修改以外,暫存器的內容保持完整。
某些實施例提供一種用於維持積體電路的配置以及/或控制設置的完整性的系統或方法。
某些實施例提供一種用於驗證積體電路上的至少一個寄存器的內容的完整性的系統或方法。
客觀地說,與對積體電路的存儲器的內容驗證相比,對積體電路的暫存器的內容驗證,在文獻中得到的重視要少得多。當完全討論暫存器的內容驗證時,通常是透過例如加倍(例如,複製)來實現的。少數暫存器(在現代積體電路中可能提供的數千個暫存器中的少數暫存器,並且數量正在增加)可能被認為需要內容驗證,然後可以為這些暫存器實現專用的保護硬體。
本文中的某些實施例試圖為大量暫存器(例如,在現代積體電路上的所有數千個暫存器)提供廣泛的保護(內容驗證)。
本文中的某些實施例試圖提供基於摘要的暫存器的內容完整性驗證,當積體電路上存在數千個或更多暫存器時,就晶粒面積而言其更為有效(需要更少的晶粒面積)。
某些實施例試圖提供一種對積體電路的暫存器(例如暫存器組)的內容進行完整性檢查的硬體,其方式為對於積體電路的正常功能是通透的或者不破壞積體電路的正常功能。可以使用在硬體、軟體、或韌體中實現的邏輯來計算用於IC記憶體內容驗證的雜湊值,這通常取決於設計人員對最簡單選項或就硬體而言成本最低的選項的選擇。在驗證記憶體內容時和在驗證暫存器內容時,可以類似地或相同地執行雜湊,但是,通常在計算記憶體的雜湊值時不能使用或存取記憶體,而可以獲得暫存器值卻不會引起任何中斷。
以下術語可以根據在現有技術文獻中出現的任何定義或根據說明書來解釋,或者在其各自的範圍內包括以下內容:
暫存器組(register file):通常意旨在單個積體電路上包括一組暫存器。在Wikipedia的“暫存器組”條目中描述了常規的暫存器組。根據一個實施例,一積體電路包括一個或多個暫存器組,並且針對一給定暫存器組或一組暫存器組中的所有暫存器計算一個摘要。根據一個實施例,一積體電路包括一個或多個暫存器庫(register bank),並且針對一給定暫存器庫或一組暫存器組庫中的所有暫存器計算一個摘要。但是,應當理解,圖1和本文其他地方所指的暫存器組包括至少一組或更一般地包括在單一積體電路上的任何多個暫存器,例如,”暫存器庫”,其包括多個暫存器組或任何其他的暫存器群組。
認證(Auth):意旨在包括摘要。
“摘要(digest)”,也稱為“摘要功能”:將任意大小的資料映射到固定大小的位元串的計算算法或邏輯;作為摘要功能的輸出的該位元串有時被稱為“摘要”。 如本文所使用的術語”摘要”包括密碼摘要,於其中透過諸如密碼雜湊函數的密碼功能來映射資料。但是,並非所有摘要都是加密的,並且更一般地,例如取決於IC設計人員所希望的強度,可以採用任何合適的摘要。例如,摘要可以包括核對和摘要,在這種情況下,資料通常按固定大小的總和進行映射。
快照(snapshot):積體電路的暫存器的當前內容的雜湊值,儲存積體電路中。通常,儲存作為快照的雜湊值不會加上時間戳,這是因為通常僅知道儲存的雜湊值是最新的就足夠了。例如取決於是否儲存了一個完整摘要,或者取決於是否如本文所述的步進式實施例存儲了幾個部分摘要,而可以有一個或多個當前有效的快照。
因此,至少提供以下實施例:
實施例1:一種驗證暫存器內容完整性的系統,此系統與一積體電路一起操作,此積體電路包括至少一記憶體、以及/或至少一處理器、以及/或複數暫存器。此系統包括:一暫存器內容驗證邏輯,當或僅當在稱為”學習模式”的第一模式下,暫存器內容驗證邏輯經設置以讀取至少一些暫存器的內容、以及/或計算第一認證或摘要(例如,關於內容的雜湊值)、以及/或儲存第一雜湊值以提供最新的一參考雜湊值,以及當或僅當在稱為”驗證模式”的第二模式下,暫存器內容驗證邏輯計算關於內容的至少一第二認證或摘要(例如,關於內容的雜湊值)、以及/或比較第二雜湊值與參考雜湊值、且因此提供一內容驗證輸出(稱為”錯誤偵測”輸出)以指示參考雜湊值與第二雜湊值是否相等。
通常,當兩個雜湊值不相等時會偵測到錯誤。
內容驗證輸出(也稱為“錯誤偵測”輸出)(如圖1所示)通常包括兩個雜湊值不相等且可以由硬體接收的指示,該硬體可以響應地執行某些動作。以及/或者,“錯誤偵測”輸出可以包括發出至到韌體的旗標/中斷,該旗標/中斷可以響應地觸發(或給予一指令以執行)某些動作。響應於“錯誤偵測”輸出,可以由硬體以及/或由韌體執行的任何適當的動作,諸如但不限於重置和重新啟動,停止直到電源重啟,或永遠停止。
如本文所述的暫存器的內容驗證的特別優點在於,與記憶體相對的暫存器總是可用於獲得它們的值(以便摘要和比較它們)。不必為了識別暫存器內容以用於摘要/比較目的而“擁有”或接管暫存器的介面接口。相反地,當按常規方式驗證記憶體內容時,當記憶體被仲裁或接管以進行記憶體驗證,記憶體的常規操作中斷,經驗證然後釋放,並且一旦接管了記憶體,該記憶體變為無法用於任何其他操作,直到釋放為止。
本文中實施例的另一特定優點在於克服以下問題:如本領域中已知的,加倍主要用於僅試圖保護少量暫存器的暫存器內容驗證。這個適度的目標可能是因為積體電路上僅一暫存器子集被正確或錯誤地認為是需要保護的,以及/或是因為一開始只有少量暫存器存在於積體電路上-與早期的積體電路一樣,但現在不再如此。因此,無論出於何種原因,從歷史上看,使用加倍(double)進行暫存器的內容驗證所產生的成本負擔都不大。當前,相信許多或大多數積體電路將從數以千計的暫存器的保護中受益,但是透過使用常規加倍來提供這種保護將即使在今天也引起大的成本負擔,並且隨著積體電路設計為包括越來越多的暫存器,這種成本負擔可望變得更大。因此,雖然當每個積體電路僅包括幾個暫存器時加倍可能已經足夠有效,但是每個積體電路被設計為具有更多的暫存器時,其變得越來越不令人滿意,並且實際上每個晶片的暫存器數量不斷增長。本文所示和所述的實施例提供了更高的效率。
應當理解,在實踐中,假設存在相對大量的正反器,此處的實施例添加少於加倍的單元。
可以理解的是,只要積體電路具有一定數量的暫存器,這裡的系統就變得具有成本效益:在該積體電路上實現摘要和驗證邏輯變得適當(比使用倍增更有效),因為一旦超過一定數量的暫存器,摘要比加倍變得更有效率,例如,因為加倍需要邏輯來比較每對摘要,以確保每對都是相同的;在此描述的摘要和驗證邏輯中,不需要/避免使用此邏輯。
即使在現有的積體電路中,也存在使系統具有成本效益的暫存器數目,更不用說每個積體電路的暫存器數目多年來一直在增加的事實。
一般而言,第一雜湊值和第二雜湊值分別包含以下群組中的一個雜湊值:MD5、SHA-1、SHA-2、NTLM、和LANMAN.MD。 通常,必須使用相同的算法來計算第一雜湊值和第二雜湊值,否則比較第一雜湊值和第二雜湊值將沒有任何意義(沒有比較依據)。
實施例2:在前述任一實施例的系統中,當發生一暫存器內容合法修改(也稱為,暫存器值修改)且暫存器內容驗證邏輯處於學習模式時,學習模式的操作中止,以及當該暫存器內容合法修改結束時,該暫存器內容驗證邏輯重新啟動該學習模式且以一新計算出的第一雜湊值來取代先前儲存的該參考雜湊值。
任何暫存器寫入(例如,對“受監視的暫存器”的暫存器寫入)都可以被認為是合法的暫存器修改(這隨後通過本文的實施例而有助於硬體篡改的偵測或防止),而如果認為寫入是合法的,則惡意韌體寫入暫存器可能是不可偵測的。
本文的邏輯可以採用任何合適的方法來確定何時合法暫存器修改結束,而邏輯可以在該時間點切換模式併計算新的雜湊值/摘要。例如,暫存器寫入通常需要一個已知的最大IC時脈週期數c。因此,邏輯可以計數c個時脈,然後邏輯可以安全地(假設暫存器現在保存新值並)計算新的雜湊值/摘要。
實施例3:在前述任一實施例的系統中,當發生一暫存器內容合法修改且暫存器內容驗證邏輯非處於該學習模式時,暫存器內容驗證邏輯在暫存器內容合法修改結束之後且在驗證模式被致能之前致能學習模式。
實施例4:在前述任一實施例的系統中,當發生一暫存器內容合法修改且暫存器內容驗證邏輯處於驗證模式時,中止驗證模式的操作,以及當暫存器內容合法修改結束時,暫存器內容驗證邏輯在返回至驗證模式之前先返回學習模式。
實施例5:一種用於驗證至少一暫存器的複數內容完整性的方法,包括:對一暫存器的內容(又稱為,數值)進行摘要,以產生一摘要;以及藉由比較此摘要與一參考以驗證內容的完整性。
實施例6:在前述任一實施例的系統中,當暫存器內容驗證邏輯在驗證模式下,連續地對暫存器進行雜湊與比較,藉以提供頻繁的複數內容驗證輸出。
實施例7:在前述任一實施例的系統中,每當參考雜湊值與第二雜湊值不相等,內容驗證輸出被以下至少一者接收,從而導致執行至少一動作: 響應地觸發上述動作的一韌體;以及 執行上述動作的一硬體。
實施例8:在前述任一實施例的系統中,上述至少一動作包括重置包括積體電路的裝置。
實施例9:在前述任一實施例的系統中,當參考雜湊值與第二雜湊值不相等,內容驗證輸出可包括發出至韌體的旗標或中斷,用於警告更高層級的軟件。
實施例10:在前述任一實施例的系統中,上述動作包括對積體電路的所有硬體的一完整硬體重置。
此命令可能是“從硬體到硬體”。通常,硬體中的信號會觸發完全或部分/選擇性的IC重置。
實施例11:在前述任一實施例的系統中,上述動作包括一系統重置,例如,再次初始化。
實施例12:在前述任一實施例的系統中,上述動作包括中止包含積體電路的一裝置,直到此裝置的電源關閉且並重新開啟為止。
作為實施例7至12的替代或補充,暫存器內容驗證邏輯可以觸發適當的輸出信息給工程師,建議此IC永遠停止或報廢。暫存器內容驗證邏輯可宣告某些輸出信號,或者可以指示處於這種停止狀態的方式來響應某些存取。
實施例13:在前述任一實施例的方法中,上述參考包括在上述暫存器中的內容進行驗證之前預先對暫存器的內容計算出的一摘要。
實施例14:在前述任一實施例的系統中,上述的多個雜湊值中的每一者係在包括複數暫存器的一暫存器組上計算的。
實施例15:在前述任一實施例的系統中,上述積體電路包括一或多個暫存器組,且上述的多個雜湊值中的每一者是上述一或多個暫存器組中的在一給定暫存器組的所有暫存器上計算的。
實施例16:在前述任一實施例的系統中,上述積體電路包括一或多個暫存器庫,且上述的多個雜湊值中的每一者是在一給定暫存器庫中的所有暫存器上計算的。
實施例17:在前述任一實施例的系統中,其中,暫存器內容驗證邏輯設置在積體電路上。
實施例18:在前述任一實施例的方法中,上述暫存器包括至少一暫存器組。
實施例19:在前述任一實施例的方法中,上述摘要包括一雜湊值。
實施例20:在前述任一實施例的系統中,上述積體電路包括一處理器,具有一入口點(entry point),其包括將在重置後執行的一第一指令,其中,當參考雜湊值與第二雜湊值不相等時,內容驗證輸出觸發一硬體重置信號,使處理器回復到該入口點。
實施例21:在前述任一實施例的系統中,上述暫存器內容驗證邏輯實現於存在於上述積體電路的硬體上。
出現在文本或附圖中的任何商標均為其所有者的財產,在本文中出現的商標僅用於解釋或說明如何實施本發明的一個示範例。
除非另有特別說明,否則從以下討論中可以明顯得知,應理解在整個說明書討論中,利用諸如“處理”、“推算”、“估計”、“選擇”、“排序”、“評分”、 “計算”、“判斷”、“產生”、“在評價”、“分類”、“生成”、“立體匹配”、“暫存”、“偵測”、“關聯”、“疊加”、“獲得”等用語,是指運用以及/或轉換在計算系統的暫存器以及/或記憶體內表示為物理量的資料的至少一個或多個計算機,或計算系統,或處理器或類似的電子計算裝置的動作以及和/或過程。上述的轉換,是指將表示為物理量的資料轉換為在計算系統的記憶體、暫存器、或其他資訊儲存、傳送、或顯示裝置內類似地表示為物理量的其他資料。術語“計算機”應被廣義地解釋為包括具有資料處理能力的任何種類的電子裝置,包括但不限於個人電腦、伺服器、嵌入式核心、計算系統、通信裝置、處理器(例如,數位信號處理器(DSP)、微控制器、現場可程式化邏輯閘陣列(FPGA)、特殊應用積體電路(ASIC)等)、和其他電子計算裝置。
本文單獨列出的元件不必是不同的組件,並且或者可以是相同的結構。可能存在元件或特徵的陳述意指包括(a)元件或特徵存在的實施例;(b)元件或特徵不存在的實施方式;(c)元件或特徵選擇性地存在於其中的實施例,例如,使用者可以配置或選擇元件或特徵是否存在。
應當理解,除非本文另外明確闡明,否則在不同圖式中顯示出的元件以及/或描述中的元件仍可以組合成單個實施例。
在本發明範圍內的方法和系統可包括在具體示出的實施方式中的一些(例如,任何合適的子集)或所有功能塊,其等以任何適當的順序排序。
本文描述和圖示的計算、功能、或邏輯組件可以各種形式實現,例如,作為硬體電路,例如但不限於客定VLSI電路或邏輯閘陣列,或作為可編程硬體裝置設備,例如但不限於FPGA,或作為軟體程式碼,其存儲在至少一種有形或無形電腦可讀媒體中並且可由至少一個處理器或其任何合適的組合來執行。特定功能組件可以由一個多的特定的軟體代碼序列所組成,這些軟體代碼可按照本文所討論的功能組件而共同發揮作用或表現。舉例來說,該組件可以分佈在幾個代碼序列上,例如物件、過程、功能、例程、和程序,但不以前述為限,並且可以源自通常協同運行的多個電腦檔案。
如果適當的話,本文描述的任何邏輯功能可以被實現為即時應用,並且可以採用任何適當的架構選項,例如ASIC或DSP或其任何適當的組合,但不以此為限。實際上,本文提到的任何硬體組件可以包括一個或多個硬體設備,例如可位於同一地點或彼此遠離的晶片。
認證通常應用保留於儲存器(例如記憶體)中的代碼和/或資料區塊。通常,此記憶體在讀取上需要指定存取。
在積體電路中的暫存器,例如配置/控制暫存器,通常儲存積體電路的配置以及/或控制設定。因此,積體電路的暫存器通常例如透過設定積體電路操作的各種模式來配置和控制IC,例如IC如何執行各種功能。IC配置的例子包括設定時脈頻率、致能/禁能某些功能、選擇IO端子的功能等等。因此,駭客可能有動機去侵入配置/控制暫存器以竊取資料,以及/或導致IC或嵌入IC的裝置發生故障。配置和控制記憶體通常是高度分佈的,其等出現在分別耦合到多個不同邏輯功能/方塊的多個邏輯區塊中。
一些實施例可用於將認證應用於暫存器。
根據一些實施例,藉由使用通常用於提供記憶體的內容驗證的方法來提供暫存器的內容驗證,包括摘要一次內容以產生參考摘要,然後定期重做摘要以產生新的摘要,以及在每個這樣的周期中確認新摘要與參考摘要相同。例如,可以提供一種用於檢查至少一個暫存器組的內容完整性的設備,並且該設備可以被配置為至少一次執行包括以下操作的週期:摘要暫存器組的內容(也就是暫存器組中的值)從而產生摘要,並驗證該摘要。
不像讀取記憶體時通常需要指定存取,獲取暫存器的內容一般而言不需要指定存取。存儲在暫存器中的配置和控制設定值通常可由周邊硬體的設計者來決定是否可用或“公開”,以供周邊IC硬體查看和/或使用。這通常是因為,儘管暫存器可以指用於儲存的任何物理結構,但更典型的是,每個暫存器都包含多個並聯組合的正反器,每個正反器都具有輸出,其對於任何周邊硬體而言通常是“可使用”。相反地,通常在功能要求以及獲得儲存在給定儲存單元中的值的合格性或授權條件方面,標準記憶體以要求進行交易的方式構建。
可以理解,如本文所述的對一暫存器組進行摘要是費時的,並且持續摘要是不切實際的。但是,應該理解,由於暫存器組(例如,配置和控制暫存器組)比記憶體更為靜態,因此通常將不需要連續摘要。相對於記憶體,一旦在重置後對配置和控制暫存器在重置進行初始化,配置和控制暫存器通常很少更改。由於對暫存器內容的更改很少或甚至不存在,因此可以相對不頻繁地探查暫存器組(可以驗證其內容,包括此處所述的摘要)。與快速更改的情況相反,更多的記憶體特性需要始終進行下述更改,這可能使此處的摘要不切實際。由於可能隨時發生黑客侵入,因此可以由管理積體電路安全性問題的工程師自行決定探查的頻率。
現在參考第1圖,其表示本發明一實施例的系統1的簡化方塊圖,本發明可提供所示方塊的所有或任何子集。第1圖的裝置通常全部設置在單個積體電路上。第1圖的系統1通常包括以硬體或韌體/軟體實現的暫存器內容驗證邏輯11,用於連續(典型地)對暫存器組內容進行完整性檢查(或稱暫存器內容驗證)。第1圖的系統1也包括一個或多個暫存器10(例如,一或多個暫存器組)。
暫存器內容完整性檢查例如可以在一個或多個暫存器10上循環,暫存器內容通常(假定是)大部分是靜態的,例如重置後後初始化,然後保持幾乎不變。在每個週期中,第1圖的暫存器內容驗證邏輯11通常會對內容進行摘要,並在不中斷系統正常運行的情況下驗證暫存器10中值的摘要。第1圖的系統1包括暫存器內容驗證邏輯11,此暫存器內容驗證邏輯11對暫存器組10內容執行完整性檢查並且例如可存在於硬體中。
替代地或另外地,第1圖的暫存器內容驗證邏輯11可以以軟體或韌體來實現,例如透過分別使用軟體或固體讀取所有相關暫存器10並對其進行摘要/認證。如果這些操作不會不適當地加重本主題系統(例如,積體電路)的性能,那麼前述是合適的。
硬體實現的一個特定優點是,無需為了暫存器內容驗證邏輯11而捆綁或占用匯流排和暫存器存取路徑,而是可以不受干擾或不間斷地繼續其正常操作。例如,硬體實現避免了透過IC匯流排存取每個暫存器的任何需要。前述是有利的,這是因為如果透過IC匯流排存取暫存器,則那些IC匯流排所供應的其他功能可能至少部分被中斷,例如延遲,這可能會對這些IC匯流排所供應的其他功能所貢獻的全部IC功能產生不利影響。
通常,正反器輸出(例如,在受保護的暫存器內並聯正反器所輸出邏輯信號)被路由到任何合適的附加目的地。例如:
1.目的地可能包括給定的IC“區塊”,例如,當到達信號為“1”時,該區塊可被致能;當到達信號為“0”時,該區塊可被禁能。
2.目的地可能包括用以選擇要使用哪個時脈的邏輯,其中,該邏輯用以選擇時脈A(例如,當到達信號為“1”時)或選擇時脈B(到達當信號為“0”時)。
因此,由於摘要功能的增加以及/或由於為此目的而提供的附加佈線,專用於暫存器的晶粒面積可能會增加。
在第1圖中,這四個梯形方塊表示根據某些實施例提供的各個解碼器/多工器15~18,其從多個暫存器10收集輸入並且基於控制信號傳遞子集。例如,多個暫存器10的輸出可以經過一組選擇器和解碼器以產生存儲在暫存器中的位元子集,與沒有存儲在該暫存器中的位元不同,該暫存器的子集是受到關注的。
第2圖顯示了暫存器內容完整性驗證方法。此方法將透過第1~2圖來說明。此方法可以包括以下操作中以適當順序排序的所有或任何子集。
操作a:設計階段(步驟S20):IC的設計人員確保IC的結構能夠實現此處的實施例。通常,在設計階段期間,從積體電路上的複數暫存器中選擇一組特定的暫存器。此選擇通常發生在設計階段期間,其確定哪一組暫存器(例如,可能是在積體電路上的所有暫存器,或者在積體電路上的某一組暫存器)接受由此處顯示和描述的完整性檢查功能所實施的完整性監控。
該組暫存器可以包括對於監視資料完整性(例如,識別由外部硬體進行的任何不必要更改)特別重要的一組暫存器組。
第1圖的裝置中所示的暫存器10可代表該組暫存器。
此外,設計人員可以在設計階段選擇一種雜湊方法(例如,以下方法之一:MD5、SHA-1、SHA-2、NTLM、以及LANMAN.MD),並且可僅包括在積體電路上的一種類型的引擎(僅執行此選擇的雜湊方法的引擎),因為每個額外的引擎都會在晶粒面積方面產生不必要的成本。
在設計階段之後,例如第1圖裝置可以開始正常操作,且該操作方法可以包括以下操作的全部或任何子集。
操作b(步驟S21):暫存器被重置,例如,IC硬體將其設置為特定的固定默認值。
操作c(步驟S22):通常將暫存器初始化為構成IC常規操作的正常事件序列的一部分。此暫存器初始化通常由韌體執行。
操作d(步驟S23):致能第1圖的裝置(例如,第1圖的暫存器內容驗證邏輯11)。第1圖之暫存器內容驗證邏輯11的狀態機最初將系統置於“學習模式(study mode)”。
在學習模式下,系統從暫存器10(例如,暫存器組)中獲取暫存器值,並使用,例如第1圖所示,可以硬體或韌體/軟體實施的適當摘要功能來對獲取的暫存器值進行摘要或雜湊值(或對捕獲的暫存器實施任何其他的認證),從而產生期望值,亦稱為可儲存在如第1圖所示的”快照(snapshot)”13的期望摘要。在此實施例中,實施適當摘要功能的硬體例如可以是第1圖的處理器12。
如果在學習模式期間的任何時候,暫存器內容驗證邏輯11的系統狀態機接收到一個指示LW(又稱為“合法寫入(legit write)”),表明正在進行合法的暫存器值修改,則狀態機將中止第1圖的系統1的操作,並且例如在等待足以確保現已完成修改的適當數量的時脈週期後,再次開始學習程序,重新捕獲暫存器以產生更新的摘要。
“合法寫入”通常來自IC的主處理器,通常結合所有受保護暫存器的的寫入指示。
通常,當積體電路的主處理器(例如)發出暫存器寫入時,處理器通常會提交一組地址和資料,然後其等伴隨用來指示寫入交易的控制信號。然後,為了IC邏輯將地址解碼,以確定要寫入的暫存器。
因此,由系統的狀態機接收到的指示LW可以包括有效目標位址與指示一寫入交易的一控制信號的邏輯組合,此目標位置將被解碼以指向本文所述被監控或保護的暫存器組內的一暫存器。
此指示LW通常包括常規積體電路用於執行暫存器寫入的指示。
重新獲取時,獲取暫存器的順序通常會有所不同,以致於無法在“學習模式(study mode)”和“驗證模式(verify mode)”下對攻擊進行計時。應當理解,摘要可以被認為是涉及依序處理或“求和”二進制值。通常,每次完成摘要時,例如,於每一週期,以不同的順序進行處理,或者以不同的順序“加總”“和”。舉一個簡化的例子來說,也許某個積體電路只有3個暫存器-A、B、和C。因此,例如:在一周期n中初次對這些暫存器進行摘要時,可以遵循以下順序:暫存器A然後是暫存器C然後是暫存器B,即首先摘要暫存器A,接著是暫存器C,然後是暫存器B。在下一次,例如在周期n+1中,順序可以是暫存器C然後是暫存器A然後是暫存器B,即首先是摘要暫存器C,接著是暫存器A,然後是暫存器B。下一次,摘要的順序可以是暫存器B然後是暫存器C然後是暫存器A,依此類推。在每個週期中對暫存器進行摘要的順序可以例如是由第1圖的狀態機來隨機確定的,或者可以遵循例如可以儲存在第1圖的狀態機中的設置模式。例如,如果一個周期使用暫存器A然後使用暫存器C然後使用暫存器B,則下一個周期始終使用暫存器C然後使用暫存器A然後使用暫存器B,再下一個周期使用暫存器B然後使用暫存器C然後使用暫存器A,然後下一個周期回到使用暫存器A然後使用暫存器C然後使用暫存器B,依此類推。
上述是有利的,因為如果獲取暫存器的順序發生變化,則很難或不可能對本文所示和所述的完整性檢查功能的攻擊計時。這是因為成功的攻擊通常需要在學習模式被致能的學習階段期間與”驗證模式”(如下文的參考操作e)被致能的驗證階段期間都攻擊相同的暫存器。
如果每個週期每次都始終以相同的順序使用暫存器,則更容易分辨出隨時都在對哪一暫存器進行摘要以及/或更容易相應地正確對攻擊計時。相反地,例如,如上所述,如果在不同的週期中使用不同的順序,對成功的攻擊計時變得更加困難,甚至不可能。
操作e(步驟S24).當對所有暫存器進行摘要時,狀態機將第1圖的系統切換到“驗證模式”,在該模式中,第1圖的暫存器內容驗證邏輯11至少一次,並且通常至少多次(例如連續地),執行以下檢驗週期。
週期操作I:使用第1圖的摘要功能(例如,透過第1圖的處理器12)來對第1圖的暫存器的內容進行摘要。
週期操作II:例如,透過第1圖的比較器14對被摘要的內容與在“學習模式”期間獲得的預期摘要(也稱為“快照”)進行比較,從而驗證(或未驗證)摘要的內容。根據比較結果,產生一內容認證輸出OCV,又稱為”錯誤偵測”輸出。
關於週期操作I,可以使用任何合適的摘要操作,例如MD5、SHA-1、SHA-2、NTLM、和LANMAN.MD),以在周期操作I中對暫存器內容進行摘要(並且每當相關的暫存器值中的改變撤銷了當前摘要時,相同的摘要可用於重新計算一摘要)。
通常,為多個暫存器的內容計算一個摘要,而不是為每個暫存器計算一個摘要。損益平衡點通常為幾千個暫存器位元。換句話說,就晶粒面積而言,在例如幾千個暫存器位元的“損益平衡點”處,本文示出和描述的透過摘要方法的完整性檢查變得比加倍更有效。可以理解,即使在今天,許多或大多數常見的積體電路具有至少1K個暫存器(即8K個暫存器位元),有時甚至更多。為了計算損益平衡點,考慮到例如SHA1的示例摘要,並判斷例如按照常規可能需要多少邏輯單元來實現,合成構成摘要引擎的邏輯,從而判斷透過本文所示且所述在硬體中的摘要方法來實現完整性檢查所需的單元數。
合成操作例如可以由EDA工具來執行,並且可包括在RTL中獲取多個邏輯方程式並將其等合併到合適的VLSI技術的多個邏輯閘中,然後可以將其等放置在IC佈局中並進行製造。
單元數,例如大約為5,000個的邏輯單元,可以被認為是暫存器位元數量的範圍,相對於復制,該範圍將透過本文所示和所述的摘要方法來證明完整性檢查是合理的。這產生了損益平衡數量的暫存器(例如,假設每個位元有8個暫存器,則5k個暫存器位元對應於5k/8個戰存器)。應當理解,損益平衡點尤其取決於為其計算單一摘要時的暫存器的數量。如果為更多暫存器計算摘要,則需要更多硬體來計算摘要,這會增加損益平衡點。
在週期操作II中,對某些暫存器內容的摘要(即暫存器內容的“參考摘要結果”)的驗證通常包括重新摘要相同的暫存器內容,從而產生第二摘要結果,並將第二摘要結果與參考摘要結果進行比較,以產生內容認證輸出OCV; 如果兩者之間沒有差異,則認為摘要已被“驗證”。在操作f(步驟S25)中,如所描述的,如果在任何學習或驗證期間的任何時候,接收到用於合法暫存器值修改(也稱為“合法寫入”)的指示LW,則第1圖的暫存器內容驗證邏輯11將中止驗證並返回為學習模式,從而重新獲取暫存器以產生更新的期望值,也就是期望摘要。通常,在這一點上,先前存儲的過期的預期摘要,又稱為快照,其被丟棄,例如替換為新近更新的預期摘要。
可以理解的是,每次執行此方法時,上述操作c、d、e、I、II都不必全部執行,舉例來說,此處所述的方法可以在每次啟動IC時執行,或有時可以在啟動IC時執行。發生這種情況時,可以初始化暫存器(一次;如果重置或重啟動IC,初始化可能會再次發生,在這種情況下,通常該方法可回溯到最開始)。通常接著(在暫存器初始化之後)進入學習模式,以計算摘要。然後,操作模式可以切換到驗證模式。然後可以不時地、週期性地、或連續地重新計算摘要,並且通常每次都將其與原始摘要進行比較。這可能會永遠持續下去,例如直到被以下事件阻止:偵測到錯誤(例如,因為重新計算的摘要與原始摘要之間的比較失敗)、或者寫入受監視的暫存器(在這種情況下,操作模式通常會返回學習模式以再次進行摘要)、或者電源關閉或IC重置,在這種情況下,該方法通常回復至重置和初始化。
第1圖的暫存器內容完驗證邏輯11(例如上述操作方法)的速度以及/或週期性以及/或重複頻率的決定通常與正常的IC活動無關,因此,驗證週期可在任何速度下發生或週期性的發生,這通常取決於設計人員對安全性和功率消耗的考慮。根據一個實施例,暫存器被連續地掃描和摘要,並且非常頻繁地進行摘要與適當的參考之間的比較。但是,如果認為較低的安全性是已足夠的以及/或功率消耗是重要的設計考慮因素,則掃描、摘要、和比較則不需要連續進行,而可不那麼頻繁地進行,例如,僅偶爾,或例如週期行地進行。在完整性檢查硬體(例如,第1圖除暫存器組10本身之外的所有元件)的功率消耗與暫存器內容安全性之間需要權衡。因此,在某種程度上,安全性較為重要而功率消耗不太重要,因此,掃描、摘要、和比較會頻繁執行,而在安全性不太重要而功率消耗較為重要的使用案例中,掃描、摘要、和比較不會那麼頻繁地進行。步進操作 (stepping) ,也稱為步進式完整性檢查
根據某些實施例,完整性檢查是在多個步驟中執行或分批執行,而不是一次執行全部。考慮一個積體電路,例如,板上有N=500個暫存器。根據某些實施例,可以將暫存器分部或劃分為例如S=5個集合或部分,並且可以不針對每個暫存器而是針對每個N:S=100個暫存器來計算並保持摘要(例如,作為快照)。。這樣一來,人們可能會更早地知道(在執行了多個步驟中的某些之後,而不是在執行了全部之後)某個暫存器是否損壞。通常,對於每個s,在計算部分s+1的摘要之前(通常作為條件),將針對部分s(s=1…S)而計算出的摘要與部分s的先前存儲的摘要進行比較。該步進式實施例使得可以較早地(相對於非步進式實施例)偵測到暫存器已損壞,這尤其有利,因為這消除了從多個步驟中執行剩餘步驟的需要(如果損壞的暫存器係包括在最後一部分以外的其他部分中)。例如,如果第一部分的摘要失敗(通過比較發現其不等於第一部分的先前存儲的摘要),則不再需要計算第二、第三、和第四部分的摘要。
在此描述的每個元件可以具有在此述或所示的所有屬性,或者根據其他實施例,可以具有在此描述的屬性的任何子集。
如果韌體用於實現本文中的某些實施例,則可以將其保存在非揮發記憶體中,例如快閃記憶體或ROM。
二者擇一地,本文描述的某些實施例可以部分地或排他地(即,沒有韌體)在硬體中實現,在這種情況下,本文描述的一些或全部變量、參數、連續操作、和計算可以在硬體中。
應當理解,諸如“強制性”、“要求”、“需要”、和“必須”之類的術語是指為了清楚起見而在本文描述的特定實施方式或應用的背景下做出的實施選擇,並且無意進行限制,因為,在一替代實施方式中,相同的元件可能被定義為非強制性和非必需的,甚至可能被完全排除。
系統實施例係包括相應的處理實施例,反之亦然。特徵也可以與本領域中已知的特徵相結合,尤其是不限於在先前技術一節或其中提到的出版物中描述的那些特徵。
應當理解,為清楚起見,在本文分開的實施例的上下文中描述的的任何特徵、特性、邏輯、模組、操作方塊、、操作、或功能,也可以在單個實施例中結合,除非說明書或一般性知識特別表明某些教示是相互矛盾的而不能結合。本文所示和所述的任何系統可以用於實現或結合本文所示和所述的任何操作或方法。
相反,為簡潔起見,在本文單個實施例的上下文中描述的的任何模組、操作方塊、操作、或功能,可單獨提供,或者可透過包括本領域已知的特徵(特別是,儘管不限於在先前技術一節或其中提到的出版物中描述的內容)的任何合適的子結合來提供,或者可以其他順序排序的方式來提供。
用語“例如”,係用於表示一示例,而無意於進行限制。每一方法可以包括圖示或描述的適當排序的一些或全部操作,如本文所示或所述。
1:系統 10:暫存器/暫存器組 11:暫存器內容驗證邏輯 12:處理器 13:快照 14:比較器 15~18:解碼器/多工器 S20~S25:步驟 LW:指示(合法寫入) OCV:內容認證輸出(錯誤偵測輸出)
第1圖是根據某些實施例的系統的簡化框圖。所示方塊的所有或任何子集可經提供而以如圖所示的適當方式相互關聯。 第2圖是根據某些實施例的方法的簡化流程圖。所示操作的所有或任何子集可經提供而以如圖所示的適當順序排序。
S20~S25:步驟

Claims (19)

  1. 一種用於驗證暫存器內容完整性的系統,該系統與一積體電路一起操作,該積體電路包括至少一記憶體、至少一處理器、以及複數暫存器,包括:一暫存器內容驗證邏輯,其中,在一第一模式下,該暫存器內容驗證邏輯讀取該等暫存器中至少一些暫存器的一內容、計算關於該內容的一第一雜湊值、且儲存該第一雜湊值以提供最新的一參考雜湊值,以及在一第二模式下,該暫存器內容驗證邏輯計算關於該內容的一第二雜湊值、比較該第二雜湊值與該參考雜湊值、且提供一內容驗證輸出以指示該參考雜湊值與該第二雜湊值是否相等;其中:當發生一暫存器內容合法修改且該暫存器內容驗證邏輯處於該第二模式時,中止該第二模式的操作;以及當該暫存器內容合法修改結束時,該暫存器內容驗證邏輯在返回至該第二模式之前先返回該第一模式。
  2. 如請求項1之用於驗證暫存器內容完整性的系統,其中:當發生一暫存器內容合法修改且該暫存器內容驗證邏輯處於該第一模式時,該第一模式的操作中止;以及當該暫存器內容合法修改結束時,該暫存器內容驗證邏輯重新啟動該第一模式,且以一新計算出的第一雜湊值來取代先前儲存的該參考雜湊值。
  3. 如請求項1之用於驗證暫存器內容完整性的系統, 其中,當發生一暫存器內容合法修改且該暫存器內容驗證邏輯非處於該第一模式時,該暫存器內容驗證邏輯在該暫存器內容合法修改結束之後且在該第二模式被致能之前致能該第一模式。
  4. 如請求項1之用於驗證暫存器內容完整性的系統,其中,當該暫存器內容驗證邏輯在該第二模式下,連續地對該等暫存器進行雜湊與比較,藉以提供複數個該內容驗證輸出。
  5. 如請求項1之用於驗證暫存器內容完整性的系統,其中,每當該參考雜湊值與該第二雜湊值不相等,該內容驗證輸出被以下至少一者接收,從而導致執行至少一動作:響應地觸發該至少一動作的一韌體;以及執行該至少一動作的一硬體。
  6. 如請求項5之用於驗證暫存器內容完整性的系統,其中,該至少一動作包括重置包括該積體電路的一裝置。
  7. 如請求項1之用於驗證暫存器內容完整性的系統,其中,當該參考雜湊值與該第二雜湊值不相等,該內容驗證輸出可包括發出至一韌體的一旗標或一中斷用於警告更高層級的軟件。
  8. 如請求項5之用於驗證暫存器內容完整性的系統,其中,該動作包括對該積體電路的所有硬體的一完整硬體重置。
  9. 如請求項5之用於驗證暫存器內容完整性的系統,其中,該動作包括一系統重置。
  10. 如請求項5之用於驗證暫存器內容完整性的系統,其中,該動作包括中止包含該積體電路的一裝置,直到該裝置的電源關閉且並重新開啟為止。
  11. 如請求項1之用於驗證暫存器內容完整性的系 統,其中,該等雜湊值中的每一者是在包括複數暫存器的一暫存器組上計算的。
  12. 如請求項11之用於驗證暫存器內容完整性的系統,其中,該積體電路包括一或多個暫存器組,且該等雜湊值中的每一者是在該一或多個暫存器組中的一給定暫存器組的所有暫存器上計算的。
  13. 如請求項11之用於驗證暫存器內容完整性的系統,其中,該積體電路包括一或多個暫存器庫,且該等雜湊值中的每一者是在一給定暫存器庫中的所有暫存器上計算的。
  14. 如請求項1之用於驗證暫存器內容完整性的系統,其中,該暫存器內容驗證邏輯設置在該積體電路上。
  15. 如請求項14之用於驗證暫存器內容完整性的系統,其中,該積體電路包括:一處理器,具有一入口點(entry point),其包括將在重置後執行的一第一指令;其中,當該參考雜湊值與該第二雜湊值不相等時,該內容驗證輸出觸發一硬體重置信號,使該處理器回復到該入口點。
  16. 如請求項1之用於驗證暫存器內容完整性的系統,其中,該暫存器內容驗證邏輯實現於存在於該積體電路的一硬體上。
  17. 一種用於驗證暫存器內容完整性的方法,包括:在一第一模式下,計算一暫存器的內容以產生一參考摘要;在該第一模式之後的一第二模式下,驗證該暫存器的內容的完整性,包括: 對該暫存器的內容進行摘要,以產生一摘要;以及藉由比較該摘要與該參考摘要以驗證該暫存器的內容的完整性;當在該第二模式下發生一暫存器內容合法修改時,中止該第二模式的操作;以及當該暫存器內容合法修改結束時,在返回至該第二模式之前先返回該第一模式。
  18. 如請求項17之用於驗證暫存器內容完整性的方法,其中,該暫存器包括至少一暫存器組。
  19. 如請求項17之用於驗證暫存器內容完整性的方法,其中,該摘要包括一雜湊值。
TW109142153A 2019-12-17 2020-12-01 用於驗證暫存器內容完整性的系統及其方法 TWI772988B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/717,473 US11386234B2 (en) 2019-12-17 2019-12-17 Security systems and methods for integrated circuits
US16/717,473 2019-12-17

Publications (2)

Publication Number Publication Date
TW202125525A TW202125525A (zh) 2021-07-01
TWI772988B true TWI772988B (zh) 2022-08-01

Family

ID=76317563

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109142153A TWI772988B (zh) 2019-12-17 2020-12-01 用於驗證暫存器內容完整性的系統及其方法

Country Status (4)

Country Link
US (1) US11386234B2 (zh)
JP (1) JP7038185B2 (zh)
CN (1) CN112992249B (zh)
TW (1) TWI772988B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2592436B (en) * 2020-02-28 2022-02-23 Imagination Tech Ltd Critical workload check
TWI829138B (zh) 2022-04-08 2024-01-11 信驊科技股份有限公司 電子裝置以及其資料傳輸的保護裝置
US20230418954A1 (en) * 2022-06-27 2023-12-28 Micron Technology, Inc. Detecting information modification in a memory system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8146028B1 (en) * 2008-11-19 2012-03-27 Xilinx, Inc. Duplicate design flow for mitigation of soft errors in IC operation
US8341473B2 (en) * 2007-10-18 2012-12-25 The Regents Of The University Of Michigan Microprocessor and method for detecting faults therein
US20140335847A1 (en) * 2011-12-28 2014-11-13 Gemalto Sa Method for establishing secure card history and audit for property hand-over
US9583218B1 (en) * 2014-01-24 2017-02-28 Altera Corporation Configurable register circuitry for error detection and recovery
US20180211064A1 (en) * 2017-01-25 2018-07-26 Hewlett Packard Enterprise Development Lp Memory integrity monitoring

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19918620A1 (de) * 1999-04-23 2000-10-26 Giesecke & Devrient Gmbh Sicherung eines Rechnerkerns gegen äußere Manipulationen
US6968460B1 (en) * 2001-05-10 2005-11-22 Advanced Micro Devices, Inc. Cryptographic randomness register for computer system security
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US8140824B2 (en) * 2002-11-21 2012-03-20 International Business Machines Corporation Secure code authentication
US7921300B2 (en) * 2003-10-10 2011-04-05 Via Technologies, Inc. Apparatus and method for secure hash algorithm
GB0601849D0 (en) * 2006-01-30 2006-03-08 Ttp Communications Ltd Method of maintaining software integrity
KR100823738B1 (ko) * 2006-09-29 2008-04-21 한국전자통신연구원 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법
US7853804B2 (en) * 2007-09-10 2010-12-14 Lenovo (Singapore) Pte. Ltd. System and method for secure data disposal
CN101527631B (zh) * 2008-03-04 2011-07-06 财团法人工业技术研究院 基于单向杂凑函数的记录系统与方法
US9613215B2 (en) * 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
JP5335634B2 (ja) * 2009-09-29 2013-11-06 レノボ・シンガポール・プライベート・リミテッド システム管理モードの特権レベルを保護するコンピュータ
US9666241B2 (en) * 2012-01-19 2017-05-30 Quixant Plc Firmware protection and validation
US9396359B2 (en) * 2013-09-09 2016-07-19 Whitecanyon Software, Inc. System and method for encrypted disk drive sanitizing
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
US10185633B2 (en) * 2015-12-15 2019-01-22 Intel Corporation Processor state integrity protection using hash verification
US10116436B1 (en) * 2017-09-26 2018-10-30 Intel Corporation Techniques for preventing memory timing attacks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341473B2 (en) * 2007-10-18 2012-12-25 The Regents Of The University Of Michigan Microprocessor and method for detecting faults therein
US8146028B1 (en) * 2008-11-19 2012-03-27 Xilinx, Inc. Duplicate design flow for mitigation of soft errors in IC operation
US20140335847A1 (en) * 2011-12-28 2014-11-13 Gemalto Sa Method for establishing secure card history and audit for property hand-over
US9583218B1 (en) * 2014-01-24 2017-02-28 Altera Corporation Configurable register circuitry for error detection and recovery
US20180211064A1 (en) * 2017-01-25 2018-07-26 Hewlett Packard Enterprise Development Lp Memory integrity monitoring

Also Published As

Publication number Publication date
US20210182432A1 (en) 2021-06-17
CN112992249A (zh) 2021-06-18
CN112992249B (zh) 2023-12-05
US11386234B2 (en) 2022-07-12
JP2021096852A (ja) 2021-06-24
JP7038185B2 (ja) 2022-03-17
TW202125525A (zh) 2021-07-01

Similar Documents

Publication Publication Date Title
TWI772988B (zh) 用於驗證暫存器內容完整性的系統及其方法
TWI701571B (zh) 判定一碼影像之一驗證雜湊之電腦實施之方法及設備,以及對一訊息進行數位簽署之電腦實施之方法及設備
US20080034350A1 (en) System and Method for Checking the Integrity of Computer Program Code
US8943491B2 (en) Systems and methods for maintaining CRTM code
US11556651B2 (en) Method for secure booting using route switchover function for boot memory bus and apparatus using the same
US10776493B2 (en) Secure management and execution of computing code including firmware
US20110145919A1 (en) Method and apparatus for ensuring consistent system configuration in secure applications
EP1843250B1 (en) System and method for checking the integrity of computer program code
JP7160860B2 (ja) メモリエラーを訂正するためのシステム及び方法
US9213864B2 (en) Data processing apparatus and validity verification method
JP7097407B2 (ja) ビットエラー修正の試行錯誤を優先順位付けるためのシステムおよび方法
US20220391540A1 (en) Register File Protection
US11269637B2 (en) Validating machine-readable instructions using an iterative validation process
US11531785B2 (en) PUF-based data integrity
US20220222183A1 (en) Tagless implicit integrity with multi-perspective pattern search
EP4281893A1 (en) Read-only memory (rom) security
WO2021093931A1 (en) Fault detection system
EP4281891A1 (en) Read-only memory (rom) security