TW201506671A - 運算裝置、方法與系統 - Google Patents
運算裝置、方法與系統 Download PDFInfo
- Publication number
- TW201506671A TW201506671A TW103109868A TW103109868A TW201506671A TW 201506671 A TW201506671 A TW 201506671A TW 103109868 A TW103109868 A TW 103109868A TW 103109868 A TW103109868 A TW 103109868A TW 201506671 A TW201506671 A TW 201506671A
- Authority
- TW
- Taiwan
- Prior art keywords
- data items
- computing device
- program
- output
- signature
- Prior art date
Links
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本發明的一實施例提供一種運算裝置,包括一輸入橋接器(input bridge)、一輸出橋接器、一處理核心以及一認證邏輯。該輸入橋接器接收具有複數個資料項的一序列,該序列是該運算裝置在一程式的執行中所使用。該處理核心,耦接以接收來自輸入橋接器的該等資料項且執行該程式,以使得該輸出橋接器輸出對應該序列中的一給定資料項的一信號。該認證邏輯,當該處理核心執行該程式時,耦接以接收並認證該等資料項,並在該給定資料項被該認證邏輯認證前,禁止該輸出橋接器輸出該信號。
Description
本發明關於一種運算系統,特別是在用以安全執行儲存(secured execution)在外部裝置的程式的方法與系統。
在安全運算系統(secured computing systems)中,一安全運算裝置(secured computing device)通常會與一個或多個外部裝置進行溝通。一外部裝置一班包含至少一個記憶裝置,以儲存複數個程式指令(program instructions),該等程式指令是被該運算裝置內的一處理核心(processing core)所執行。在一些例子中,運算裝置與外部裝置之間的通信連結並不安全,這使得安全運算裝置通常需要去驗證從該通信連結接收到的資料的完整性與真偽。真偽驗證(authenticity validation)指的是一接收裝置(如一安全運算裝置),可以確認接收到的資料是從一個合法來源(如一被授權的記憶裝置)所傳送。資料的完整性是指這些資料在被輸入到接收裝置前並沒有被修改。在下文與申請專利範圍的描述中,”驗證”(authentication)指的是可以用來確定資料的完整性、真偽或兩者的技術。
用來驗證儲存在電腦環境外的外部裝置的程式碼(code)與資料是已知的技術。舉例來說,美國專利申請號2010/0070779,其揭露內容被合併在本申請書並作為參考(incorporated herein by reference),已經揭露了一種方法,用
以保護被一加密演算法加密的資料的完整性,該加密演算法提供至少一個中介狀態(intermediary state),其在加密動作與解密動作是相同的。這個中介狀態在加密動作中被取樣以產生一簽章。該專利申請文件的揭露內容特別是應用在保護被認為是安全的一積體電路外的記憶體所儲存的內容的隱私、完整性與真偽。
美國專利號8108941的揭露內容被合併在本申請書並作為參考(incorporated herein by reference)。該專利描述了一處理器,連接到一非揮發性記憶體,儲存第一記憶體驗證資訊,其用以驗證該非揮發性記憶體。該處理器包括一運算單元,一認證記憶體、一驗證資訊取得單元、一記憶體驗證單元以及一記憶體存取控制單元。該運算單元利用儲存在該非揮發性記憶體的資訊進行一運作。該認證記憶體與該運算單元被整合形成一體,且該認證記憶體儲存第二記憶體驗證資訊以驗證該非揮發性記憶體。驗證資訊取得單元用以自該非揮發性記憶體取得第一記憶體驗證資訊。記憶體驗證單元比較第一記憶體驗證資訊與第二記憶體驗證資訊以驗證該非揮發性記憶體。當記憶體驗證單元成功驗證後,記憶體存取控制單元允許對該非揮發性記憶體的一存取動作。
美國專利號8140824的揭露內容被合併在本申請書並作為參考(incorporated herein by reference)。該專利描述了一電腦程式產品,包括一可電腦使用的媒體,其儲存有一電腦可讀取程式,用以驗證程式碼,如啟動程式碼(boot code)。一記憶體定址引擎被應用來選擇一記憶體的一部分,做為一程
式的一步驟值(step value),與作為一第一輸入雜湊值(hash value)。該步驟值則允許以一第二輸入雜湊值對複數個記憶體部份做非交換(non-commutative)累積性的雜湊計算,如將前一個雜湊值左移(rotated left)。一驗證電路被應用以根據該第二雜湊值與該記憶體的該部份執行一雜湊運算。一比較電路則比較驗證電路的輸出與一預期值。
本發明的一實施例提供一種運算裝置,包括一輸入橋接器(input bridge)、一輸出橋接器、一處理核心以及一認證邏輯。該輸入橋接器接收具有複數個資料項的一序列,該序列是該運算裝置在一程式的執行中所使用。該處理核心,耦接以接收來自輸入橋接器的該等資料項且執行該程式,以使得該輸出橋接器輸出對應該序列中的一給定資料項的一信號。該認證邏輯,當該處理核心執行該程式時,耦接以接收並認證該等資料項,並在該給定資料項被該認證邏輯認證前,禁止該輸出橋接器輸出該信號。
在一些實施例中,該資料項包括複數個程式指令,且該給定資料項,包括一輸出指令。該處理核心藉由執行包括該輸出指令在內的該等程式指令,以被配置以執行該程式。在另一些實施例中,該認證邏輯認證該等資料項的動作與該處理核心執行該程式的過程是非同步的。在另一些實施例中,在程式執行中,當該被給定資料項已經被該處理核心使用過後,該認證邏輯才認證該被給定資料項,且延遲該輸出橋接器輸出該信號,直到該認證邏輯完成該被給定資料項的認證。
在另一實施例中,該認證邏輯藉由計算該等資料項的一個或多個數位簽章,並分別比對該運算裝置透過該輸入橋接器所接收到的複數個原始簽章與該等計算到的簽章的方式,以認證該等資料項。在另一實施例中,如果至少一個計算的簽章與對應的原始簽章不符合的話,該認證邏輯產生一警示信號。在另一實施例中,該輸入橋接器藉由接收具有複數個資料項的第一與第二區塊的方式接收該等資料項,其中當該第一區塊內的所有資料項都被認證後,該輸入橋接器才接收該第二區塊。
此外,根據本發明的另一實施例,一種方法也被提出。該方法包括在一運算裝置內透過一輸入橋接器接收有複數個資料項的一序列,該序列是該運算裝置的一處理核心在一程式的執行中所使用;該處理核心執行該程式,以使得該運算裝置輸出對應該序列中的一給定資料項的一信號;以及當該處理核心執行該程式時,使用一認證邏輯以認為該等資料項,並在該給定資料項被該認證邏輯認證前,禁止該輸出橋接器輸出該信號。
本發明的另一實施例更提供一種運算系統,包括一外部裝置與一運算裝置。該外部裝置,用以提供具有複數個資料項的一序列。該運算裝置,包括一輸入橋接器(input bridge)、一輸出橋接器、一處理核心以及一認證邏輯。該輸入橋接器接收具有複數個資料項的一序列,該序列是該運算裝置在一程式的執行中所使用。該處理核心,耦接以接收來自輸入橋接器的該等資料項且執行該程式,以使得該輸出橋接器輸出
對應該序列中的一給定資料項的一信號。該認證邏輯,當該處理核心執行該程式時,耦接以接收並認證該等資料項,並在該給定資料項被該認證邏輯認證前,禁止該輸出橋接器輸出該信號。
關於本發明之詳細內容可參考下文中實施例的描述並參酌對應之圖示,此一領域內之習知技藝者當可更清楚本發明之內容。
24‧‧‧安全運算裝置
26‧‧‧安全外部裝置
28‧‧‧非安全外部裝置
42‧‧‧分享金鑰
44‧‧‧輸入橋接器
48‧‧‧處理核心
56‧‧‧簽章引擎
40‧‧‧外部簽章引擎
36A、36B‧‧‧介面
32A、32B‧‧‧記憶體
DATA ITEM‧‧‧資料項
SIGNATURE‧‧‧簽章
ALERT‧‧‧警示信號
STALL OUTPUT‧‧‧停止輸出
STALL CORE INPUT‧‧‧停止核心輸入
OUT REQUEST‧‧‧輸出請求
52‧‧‧驗證邏輯
Ctr/Adr‧‧‧控制/位址
58‧‧‧簽章緩衝器
56‧‧‧簽章引擎
KEY‧‧‧金鑰
60‧‧‧輸出橋接器
48‧‧‧處理核心
44‧‧‧輸入橋接器
50‧‧‧快取
Ctr/Adr/DATA‧‧‧控制/位址/資料
DATA‧‧‧資料
64‧‧‧安全系統輸出
30‧‧‧安全系統輸入
80‧‧‧安全狀態
84‧‧‧不安全狀態
88‧‧‧認證狀態
第1圖為根據本發明之一安全運算裝置的一實施例的功能方塊示意圖。
第2圖為根據本發明之一實施例的一安全運算系統20的一方塊示意圖。
第3圖為根據本發明之一實施例的一安全狀態機的示意圖。
第4圖為根據本發明之一實施例的一驗證方法的流程示意圖。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式之一較佳實施例的詳細說明中,將可清楚的呈現。以下實施例中所提到的方向用語,例如:上、下、左、右、前或後等,僅是參考附加圖式的方向。因此,使用的方向用語是用來說明並非用來限制本發明。
安全運算系統從一外部裝置接收資料(或是一信息)
時,通常會在使用資料前去驗證資料的完整性(integrity)與真偽(authenticity)。本文中提到的複數個實施例是藉由使用數位簽章(digital signature)來做資料的驗證。一個數位簽章通常包括一位元串(bit-string),其通常與資料儲存在一起或是在傳送端(sender side),如一記憶裝置,即時產生,並被與資料一同被傳送給接收端(receipt side),如一安全運算裝置,以供進行認證。接收端會計算接收到的資料的一簽章,並且將計算到的簽章與傳送端的原始簽章進行比對。如果兩個簽章符合,則接收端就可以假定接收到的資料是真實(authentic),且沒有被任何未授權方(unauthorized party)修改過。
在很多例子中,簽章的產生與驗證是根據資料訊息以及一私鑰。產生簽章的演算法通常被設計使得未授權方無法在不得知私鑰的情況下產生合法的簽章。此外,任何關於資料訊息的改變,如改變資料的完整性,都會導致在接收端的簽章驗證失敗。
使用私鑰來產生簽章的認證的多種方法已經是習知技藝者所熟知。舉例來說,一個傳送者可以使用一個私鑰來產生一簽章,其中接收者使用一公鑰來驗證該簽章。在另一個例子中,傳送者與接收者會分享一個共用金鑰(common key),該共用鑰是傳送者與接收者之間是保密的。在現有的技術中,關於在傳送者與接收者之間交換金鑰的方法是被習知技藝者熟知的。在驗證完對應一資料的一簽章後(假設該金鑰的保密並未被破壞),安全運算裝置便可以安全地處理接收到的資料。舉例來說,當資料包含了複數個電腦程式指令時,該運算
裝置就可以安全第執行被認證過的程式,而不用冒著讓安全或加密資訊被曝露的風險。
在安全方面,可能會影響運算裝置內部處理的未被認證的程式指令與其他資料項(data term),根據本發明實施例的目的,可以被分為兩類。處理第一類(first category)的未認證資料項並不會曝露任何安全或加密資訊,且在該類型的資料項因此被認為是中性指令或是中性資料項。另一方面來說,處理第二類(second category)的未認證資料項可能造成安全或私密資訊被直接或間接的被曝露。第二類型的資料項因此被認為是輸出指令。
關於本發明的複數個實施例在本文中會被描述,這些實施例提供了關於改進安全運算裝置內的認證動作的方法與系統。在一實施例中,在一運算裝置內的一處理核心會透過一輸入橋接器(input bridge)接收來自外部裝置的指令並執行,外部裝置可能是一記憶體。這些指令都被一數位簽章所簽署。該些指令中的一部分,如輸出指令,可能會使得處理核心透過一輸出橋接器(output bridge),輸出資訊。上文中所指的輸入橋接器(input bridge)與輸出橋接器(output bridge)是一種上位說法,泛指運算裝置可以用以接收信號或傳送信號的所有連接。而在說明書與申請專利範圍中,信號這一詞泛指的是進入該運算裝置,或離開該運算裝置中,任何攜帶資訊的通道(channel),不管是不是透過一實體信號的連接。關於非實體信號通道(non-physical)的例子,包括了有條件地執行重置操作的複數個信號,這些信號可能是從側信道攻擊(side-channel
attacks)撿取到的信號(如電源線上的電壓模式(voltage pattern))、電磁輻射的改變(electro-magnetic emission)以及可能被曝露給攻擊者的安全資訊(secured information)。
透過輸入橋接器接收的複數個指令會被運算裝置內專門的驗證邏輯所驗證。驗證動作通常是與該程式的部份被處理核心所執行時,平行地被實現。當處理核心遭遇到一輸出指令,且該輸出指令尚未被驗證時,該驗證邏輯會抑制輸出橋接器,並延遲信號的實際輸出,直到該輸出指令與所以在該輸出指令前的的所有指令都被驗證。因此,在避免私密資訊被無意地曝露的同時,也可避免不必要的執行延遲(delay of execution),讓效能得以最大化。
在一實施例中,該外部裝置包括一非安全記憶裝置(unsecured memory device)。該記憶裝置的容量的一部分被用來儲存對應記憶體區塊的複數個簽章。該運算裝置從該記憶裝置接收資料與對應的簽章,並驗證複數個信號區塊。接收到的資料可以先被儲存在一快取(cache),或是同時被處理核心所執行,一但發生一快取失效(cache miss)事件,則會再自外部裝置重新抓取(re-fetching)資料。運算裝置會運行在一模式下,在該模式下,一但抓取多個資料區快,多個簽章就會被抓取、儲存以及驗證,而不是讓運算裝置運作在單一區塊的抓取-認證(fetch-authenticate)周期。這樣的運作模式可增強運算裝置的效率。
在另一實施例中,外部裝置包括一安全記憶裝置(secured memory device),並與一簽章引擎(equipped with)配備
在一起。安全記憶裝置分享一密鑰(secret key)給運算裝置,安全記憶裝置可以產生、維持以及傳送資料簽章給該運算裝置。該資料簽章的產生可能是藉著計算在該裝置介面上傳送的一個或多個資料項(或是一個區塊的資料項)、且/或位址、且/或控制信號上的一信息文摘(message digest),來產生該資料簽章。一密鑰可以被用來做為一種子(seed),以產生一隨機亂數序列(pseudo-random sequence),且該隨機亂數序列會用以與該信息文摘混合。或者該信息文摘可以被一適當的密鑰進行加密以產生該簽章。用以送出複數個資料簽章到運算裝置的排程選擇(scheduling alternatives)包括:即時傳送(sending exhaustively,當簽章一產生就馬上傳送)、周期性傳送、根據要求時才傳送,或是根據其他任何的排程方法,如將多個排程方法集合起來並且同時運作。運算裝置自記憶裝置接收資料與對應的簽章,並使用該簽章驗證接收到的資料。同樣例,對於使用非安全記憶裝置的實施例來說,接收到的資料會先被儲存在一快取(cache),或是同時被處理核心所執行。一但發生一快取失效(cache miss)事件,則會再自外部裝置重新抓取(re-fetching)資料。
第1圖為根據本發明之一實施例的一安全運算系統20的一方塊示意圖。在第1圖的例子中,一安全運算裝置24與一安全外部裝置26以及一非安全外部裝置28溝通。安全外部裝置26以及非安全外部裝置28分別包括記憶體32A與32B,記憶體32A與32B以資料項為基本單位儲存資料(資料項也可以被視為是資料區塊)。資料項的數位簽章被計算後儲存在非安全
外部裝置28內的記憶體32B。安全外部裝置26同樣也可以儲存計算到的簽章並儲存在記憶體32A(圖上未繪出)。安全外部裝置26可以藉由計算與安全運算裝置24傳送的信號,如資料、位址、且/或控制信號,來產生簽章。詳細動作請參考以下說明。
下文以及申請專利範圍中的”資料項”,指的可能是儲存在記憶裝置(如安全外部裝置26以及非安全外部裝置28)內的資料,且/或在一安全記憶裝置(如安全外部裝置26)與一運算裝置(如安全運算裝置24)之間溝通的資料、位址且/或控制信號。舉例來說,一個被儲存的資料項可能包括一程式指令或一數據字(data word)。此外,一個被儲存的資料項可能包括複數個程式指令或複數個數據字。
安全運算裝置24可用以處理由安全外部裝置26以及非安全外部裝置28分別透過介面36A與36B傳送的複數個資料項。安全運算裝置24透過一輸入橋接器(input bridge)44接收指令,並執行對應的程式。
在一些實施例中,安全外部裝置26以及非安全外部裝置28分別會在記憶體32A與記憶體32B中儲存一個或多個資料項與一個或多個簽章。在一些實施例中,安全外部裝置26以及非安全外部裝置28內的簽章會預先被計算並儲存。這些簽章可以來自所有的資料項或是部份的資料項。舉例來說,一個簽章可能被計算到,以對一群資料項簽署,該等資料項包括了一個電腦程式的子程序(subroutine)。此外,簽章也可能從複數個資料項組成的適當大小的區塊所計算得到。在一些實施例中,所有的資料項都被使用單一金鑰所簽署。在其他例子中,
該等資料項的複數個子集合可能被用不同的金鑰所簽署。
用以計算簽章的金鑰可以被編程(programmed)或以習知的多種方法,如(但非以此為限)使用一非揮發性記憶體、一次性可編程(one time programmable)非揮發性記憶體、電子熔絲、實體不可預測功能(physical unpredictable function,PUF,或是可簡稱為實體不可被複製功能(physical unclonable function)),儲存在安全運算裝置24且/或安全外部裝置26內。此外,藉由在一安全環境中,分別以一適當的分享金鑰對安全外部裝置26可以與安全運算裝置24編程使得安全外部裝置26可以與安全運算裝置24配對,或是藉由已知之金鑰交換方法來讓安全外部裝置26可以與安全運算裝置24配對。
當安全運算裝置24與安全外部裝置26溝通時,安全外部裝置26內的一簽章引擎40,可以對通過介面36A的複數個程式指令、資料、控制信號且/或位址信號產生一簽章。此外,簽章引擎40針對儲存在記憶體32A內的複數個資料項計算一個或多個簽章。由簽章引擎40計算的複數個數位簽章可以被儲存在記憶體32A內,並根據要求傳送或是其他的排程方法傳送給安全運算裝置24。
在一些實施例中,在安全外部裝置26以及非安全外部裝置28內的全部或部分資料項是被加密的。在這些實施例中,簽章引擎40可能更包括一加密裝置(encrypting cipher),且安全運算裝置24會包括一解密裝置(decrypting cipher)。解密裝置會被提供一種金鑰,以對加密的資料項解密。解密的動作會早於一處理核心48的執行動作。
輸入橋接器44被做為是安全外部裝置26以及安全運算裝置24之間的雙向通信介面,並傳送接收到的資料項給處理核心48。處理核心48一般來說包括安全系統20的主中央處理器(CPU),可能還包括其他額外的處理器以及匯流排主控(bus master),以協調核心的內部與輸入/輸出活動。
安全運算裝置24內的簽章引擎會從接收到的資料項(且/或其他資料、位址、且/或控制信號)計算簽章,並用以驗證接收到的資料項的真偽。如果驗證失敗,安全運算裝置24會採取適當的方法以避免祕密資料(secret information)流出或被曝露。安全運算裝置24的結構與詳細功能請參考第2圖與對應的說明。
在一些實施例中,在藉由簽章引擎56或40計算簽章前,要被簽署的資料的長度會被調整,使其符合做簽章計算的輸入資料的特定長度。
第2圖為根據本發明之一實施例的安全運算系統20的一方塊示意圖。在第2圖中,安全運算裝置24與一外部裝置溝通,該外部裝置在圖上被以安全系統輸入30的方塊所表示。安全系統輸入30,舉例來說,可能包括第1圖的安全外部裝置26以及非安全外部裝置28、一記憶裝置或是其他資料項與簽章的適當來源。在後文中的說明中,「安全系統輸入」與「外部裝置」這兩個名詞是可以互換。
安全運算裝置24產生位址信號與控制信號,並透過輸入橋接器44發送,以存取儲存在外部裝置的記憶體中的資料。處理核心48產生位址信號與控制信號,並透過輸入橋接器
44發送,以從外部裝置讀取資料項,如程式指令。輸入橋接器44接受並傳送資料項給處理核心48,以做進一步的執行動作。在一些實施例中,資料項會在傳送給處理核心48前(或同時),先被快取儲存在一本地快取記憶體50內。
接收的資料項也會被輸入到驗證邏輯52以及簽章引擎56。驗證邏輯52以及簽章引擎56可能會跟處理核行48同時運作或是不同步(asynchronously)運作。驗證邏輯52更會藉由產生適當的控制信號與位址信號,並透過輸入橋接器44發送到外部裝置,以讀取儲存在外部裝置或由外部裝置所產生的該等資料項的原始簽章。或者是這些簽章可能會與資料一起被安全系統輸入30傳送給輸入橋接器44。使用接收到的資料項與對應的金鑰,簽章引擎56計算該等資料項的一簽章,並將該簽章傳送給驗證邏輯52做為驗證使用。驗證邏輯52藉由比對由簽章引擎56計算的簽章與原始簽章,來驗證接收到的資料項的真偽與完整性。在一些實施例中,驗證邏輯52可能會在致能輸入橋接器44以接收後續的資料項之前,先將儲存在簽章暫存器58內的所有簽章驗證完。另外一種的簽章驗證方法請參考下文。
輸出橋接器60連接處理核心48至安全系統輸出(secured system output)64,也可以被視為是輸出通道。安全系統輸出64包括任何位址空間(address space)到藉由處理核心48的一寫入或讀取操作,這可能會直接或間接地暴露安全資訊,以及其它種類的接收器可能接收來自輸出橋接器60的信號。除此之外,這些位置空間,或該些位置空間的一部分可能會根據安全系統20的配置或狀態的變化而被動態地改變。
在下文與申請專利範圍中,一資料項或一程式指令在輸出橋接器60(可被安全系統輸出64接收或感測)產生的結果,被視為是一輸出指令。在一些實施例中,當執行到一輸出指令時,處理核心48發送一輸出請求(OUT REQUEST)信號給認證邏輯52。隨之而來的,當被致能了,輸出橋接器60對一輸出指令的回應被視為是輸出一信號。複數個輸出指令的例子的執行可能會讓安全資料暴露到安全系統輸出64,包括:寫入一非揮發性記憶體(non-volatile memory,NVM),且/或一單次編程(one-time programmable)記憶體;寫入一外部界面,如該系統內的另一個晶片,記憶裝置或是通用輸入/輸出信號;存取鎖定位元(lock-bits),測試模式,時脈組態(clock configuration)與重置暫存器(reset register);存取安全加速模組(這邊指的是可以執行安全功能的模組,安全功能如計算AES、SHA1、SHA256、RSA或ECC值)的控制且/或組態暫存器),可能會將私密資訊與金鑰暴露給使用側信道攻擊(side-channel attacks)技術的攻擊者,該技術如電源分析或電磁干擾分析。
輸入橋接器44可做為認證控制邏輯52與處理核心48之間的仲裁器。在初始狀態,處理核心48得到較高的優先權限去從外部裝置130抓取資料項。當被要求時,然而(位於如第3圖的一驗證狀態),認證邏輯52可以停止輸入橋接器44不要在抓取後續的資料項,或是藉由激活一停止核心輸入(STALL CORE INPUT)阻擋資料項,並接管輸入橋接器44以讀取外部儲
存或產生的簽章。在一些實施例中,必須要等到先前抓取得所有資料項都被驗證後,才可以讓後續的資料項被輸入。此外,驗證邏輯52可以停止輸出橋接器60,並且藉由激活一停止輸出(STALL OUTPUT)信號的方式,禁止任何對安全輸出64的存取。安全運算裝置24的功能性,特別是使用在避免私密資料被暴露的停止功能的使用上,則在第3圖的敘述中有更清楚地描述。
雖然上述的簽章驗證技術是藉由比較由簽章引擎56計算的簽章與透過輸入橋接器44接收到的簽章的方式達成,但在其它例子中,簽章驗證的動作可以根據雜湊訊息摘要hash message digests)的比較結果來判斷。用以計算簽章的演算法有時會使用雜湊功能或加密功能。
在一實施例中,運算安全運算裝置24與一安全安全外部裝置26進行溝通,對應某些資料的一簽章包含一信息摘要(message digest),該信息摘由是使用一雜湊功能(hash function)對該些資料計算得來。該信息摘要可以從在界面36A傳送的一個或多個資料項、且/或資料、位址、且/或控制信號所計算得到。該信息摘要可能會藉由安全運算裝置24與26對飛的資料作及時地更新與計算。
安全外部裝置26可以被排程,且即時地、週期性地或是根據安全運算裝置24的要求,傳送信息摘要簽章給安全運算裝置24。一但接收到更新的信息摘要,認證控制邏輯會比較由安全外部裝置26計算的信息摘要與一內部計算得到的信息摘要,內部計算得到的信息摘要是由簽章引擎56針對接收到
的資料所求得。接著驗證該被簽署的資料的真偽。在安全運算裝置24與26之間分享的密鑰42,可以被作為一種子,以產生一隨機亂數序列(pseudo-random sequence),該序列接著會被與信息摘要資料一起被混合。
在其他例子中,取代將信息摘要與根據一密鑰產生的一序列混合的方式,一加密演算法使用一密鑰對該信息摘要加密,並產生一簽章。接收端,如安全運算裝置24,接收資料與簽章,並使用一特定鑰匙對接收到的簽章解密,恢復原始未加密的信息摘要以及根據接收到的信息重新計算該信息摘要。如果原始的信息摘要與重新計算的信息摘要相符,該資料則會被暫時認定已經認證。複數個雜湊與加密功能的例子,該例子包括安全雜湊演算法(secure hash algorithm)SHA-1、與進階加密演算法(advanced encryption algorithm,AES)。
第1、2圖中的運算安全運算裝置24、外部安全外部裝置26與28的配置都只是舉例說明,非將本發明限制於此。在其他實施例中,任何適合的配置都可以被使用。運算安全運算裝置24、外部安全外部裝置26與28內的不同元件可以改用任何適合的硬體來實現,如特殊應用積體電路(Application-specific integrated circuit,ASIC)或是現場可程式化閘陣列(Field-programmable gate array,FPGA)。在一些實施例中,運算安全運算裝置24、外部裝設26與28的部份元件可被用軟體實現,或是使用軟體與硬體結合的方式來實現。舉例來說,在本實施例中,簽章引擎56與驗證邏輯52可以被專門的硬體模組所實現。在另一實施方式中,簽章計算以及加密/
解密功能可以由具有簽章引擎56與40的硬體所實現,或是由被處理核心48執行的軟體所實現,或是由軟體與硬體的結合來實現。
一般來說,運算安全運算裝置24內的處理核心48包括至少一個通用電腦處理器,可用以執行軟體的方式實現上述的功能。舉例來說,軟體可能是透過網路,從運算安全運算裝置24所下載,又或是被提供且/或儲存在非暫態的有形媒體(non-transitory tangible media),如磁性、光學或電子式的記憶體。
第3圖為根據本發明之一實施例的一安全狀態機的示意圖。安全運算裝置24的一些安全方面與運作模式是從狀態機的三個狀態與狀態間定義的轉換規則(transition rule)衍生而來。在安全狀態80,透過輸入橋接器44,一資料項與指令正被執行,以及先前被執行過的資料項,都是已經被驗證邏輯52所驗證過。安全狀態80是三個狀態中的唯一一個狀態,在該狀態內,安全運算裝置24可被允許存取安全系統輸出64。在狀態80的期間,安全運算裝置24也被允許透過輸入橋接器44接收複數個資料項。一但接收到資料項,狀態機就會過渡到不安全狀態84。
在不安全狀態84時,至少有一部分剛接收到的資料項的真偽並沒有被確認,且此時安全運算裝置24不被允許存取安全系統輸出。當處理核心48遭遇到一輸出指令時,實際去存取輸出通道的動作會被延遲,換句話說,輸出橋接器60輸出的輸出信號會被延遲,直到輸出指令被驗證為止。在不安全狀
態84時,處理核心48仍繼續處理中性資料項,中性資料項指的是沒有要求要存取系統輸出64的資料項,即便這些中性資料項也還沒有被驗證。
從不安全狀態84到一認證狀態88的轉變是否會發生,端看驗證邏輯52是否有接收到一認證請求(AUTHENTICATION REQUEST)信號。在認證狀態88內,驗證邏輯停止輸入橋接器44接收新的資料項,並且接管從輸入橋接器44到外部裝置30內的原始簽章。驗證邏輯52比較了原始簽章與由簽章引擎56計算得到的簽章,以驗證資料。如先前所提到的,驗證邏輯52驗證資料項的動作可能與處理核心48執行的資料項不同步。
多種的觸發可以產生一驗證請求信號,這使得狀態機的狀態被轉換到認證狀態88。一些觸發的例子提供作為參考:當處理核心48試圖要得到安全系統輸出64的存取權限,且該裝置並不是在安全狀態80時,該輸出請求信號(OUT REQUEST)被激活。
週期性地或是在前一次訪問認證狀態後一預定超時時間(timeout)後,激活該輸出請求信號。
當被配置給作認證的簽章的一記憶體空間滿了。舉例來說,如具有一非安全記憶體的一實施例,其驗證多個等待中的簽章,詳細動作請參考下文。
當輸入橋接器44並沒有被傳送資料項的動作所佔領,也因此認證邏輯52可以透過輸入橋接器,去取得除存在安
全系統輸入30的簽章。
當資料項在狀態88被驗證為真實時,狀態機轉換回安全狀態80。否則,當驗證失敗時,驗證邏輯52就會發出一警示信號。
當警告信號產生時,安全運算裝置24可以採用很多種手段以維持在一高度安全的等級。一些安全運算裝置24可以根據警示信號,採用的對應動作如下:重設該安全環境;抹除秘密資料,如密鑰;強制安全運算裝置24暫時中止所有的運作,如處理/認證資料項,且額外的去停止輸入與輸出橋接器;回應的程度可以依據驗證失敗的事件的數量。舉例來說,安全運算裝置24可以在確認一定數量的驗證失敗事件後,重新啟動運作,且更積極地會贏,如刪除安全資訊或再有一認證失敗發生就終止所有活動。
本文目前描述的是安全系統20的一實施例,其中該外部裝置包括一不安全記憶體非安全外部裝置28,如現成(off-the-shelf)的一非揮發的儲存裝置。在本例子中,該記憶裝置儲存複數個資料項,該等資料項包括了複數個電腦程式指令(且可能包括相關資料),要被安全運算裝置24所執行。非安全外部裝置28可以配置適當比例的儲存空間以儲存簽章。舉例來說,75%的儲存空間會用來儲存使用者資料,而25%的空間用來儲存簽章。簽章可能是根據複數個區塊的複數個資料項所計算得到(在記憶裝置之外)。舉例來說,每一256位元的記憶區塊
可能被簽署一64位元的簽章。
假定在本例子中,安全安全運算裝置24是配備有快取記憶體50,其具有一256位元大小的快取線(cache line)。透過輸入橋接器44被讀取的資料項先被儲存在快取,或是同時被傳送給處理核心48處理。在一快取失效(cache miss)事件上,運安全運算裝置24會抓取新的資料項到快取中。每256位元區塊中,由處理核心48執行程式指令的動作以及由簽章引擎56計算簽章的動作是同時被實現的。安全運算裝置24可以儲存多個簽章在簽章緩衝器58內,這樣就可以在實際執行真偽驗證前,致能多個數據提取(data fetch)。根據驗證請求(AUTHENTICATION REQUEST),處理核心48會暫停,且認證邏輯會自外部記憶非安全外部裝置28讀取對應的原始簽章,並且比較原始簽章與計算得到的簽章。當所有等待中的簽章都被驗證後,處理核心48恢復執行的動作。
上述實施例的配置(configuration)都只是一例子說明而已,非將本發明限制於此。任何適合的輸入與記憶元件的配置都可以被使用。舉例來說,其他的資料區塊大小或簽章大小都是可行的。在另一個例子中,任何適合的簽章緩衝器的大小也可以被使用。在另一實施例中,32位元的簽章也可以自128位元的區塊所計算得到。這些資料區塊被儲存在具有一128位元快取線的快取記憶體內,且高達5個未驗證簽章可以被儲存在一160位元簽章緩衝器內。
第3圖中的狀態機的配置只是一個範例配置,僅是發明人提供作為說明,非將本發明限制於此。在其他實施例
中,任何適合數量的狀態以及任何狀態間適合的轉換規則(transition rule)都可以被使用。
第4圖為根據本發明之一實施例的一驗證方法的流程示意圖,該方法可以被安全運算裝置24所實現。在一程式碼接收步驟100中,安全運算裝置24接收要被處理核心執行的電腦程式指令。一但透過輸入橋接器44接收到程式指令,安全運算裝置24轉換到不安全狀態84。安全運算裝置24在請求確認步驟104中,先確認是否有一等待中的認證請求。如果步驟104中沒有需要執行任何驗證,處理核心在執行步驟108中執行接收到的程式指令。除此之外,安全運算裝置24會繼續到一驗證步驟116(下文有說明)。
當該等指令的執行已經被實現,安全運算裝置24在指令確認步驟112中,會確認是否處理核心48正在處理一中性指令,或是處理須要存取安全系統輸出64的指令。一但處理核心48正在處理的是中性指令,安全運算裝置24回到步驟104。否則,則可以假定處理核心48正在執行一尚未被認證過的輸出指令,且處理核心試圖得到安全系統輸出64的存取權。安全運算裝置24接著繼續到認證步驟116,在該步驟時,安全運算裝置24的狀態被轉換成認證狀態88。在這個狀態下,認證控制邏輯52停止處理核心48的執行,並藉由激活一停止輸出(STALL OUTPUT)信號來抑制輸出橋接器60,接著接由如上述比較計算到的簽章的方式來執行驗證(authentication validation)。
在驗證步驟120中,安全運算裝置24會確認在步驟
116是否有發現簽章比對成功的情形。如果簽章比對成功,則安全運算裝置24在安全狀態轉換步驟124中,被轉換到安全狀態80,且處理核心48恢復執行。在安全狀態80中,安全運算裝置24被允取去從外部記憶體抓取程式指令,並且可以安全地存取安全系統輸出64。如果在步驟120的認證失敗,驗證邏輯52在一警示步驟132產生一警示信號,並回到步驟100以抓取額外的程式指令。安全運算裝置24可能會以前述的回應方式進行回應。
在檢查步驟128中,安全運算裝置24檢查是否所有抓取的指令都已經被執行。如果都已經執行完畢,安全運算裝置24會回到步驟100以抓取子程式指令。除此之外,安全運算裝置24會回到步驟104去檢查是否還有一等待中的認證請求。
上述第4圖的方法只是一個例子說明,並非將本發明限制於此。在本發明的範籌內,可以完成本方法目的的其它方法都可以被使用。舉例來說,在步驟116中暫停處理核心的動作可以被替換,讓該處理核心可以繼續執行中性指令且/或延遲實際上要存取安全系統輸出64的動作,直到所有的指令都被驗證完畢。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限
制本發明之權利範圍。
20‧‧‧安全運算系統
24‧‧‧安全運算裝置
26‧‧‧安全外部裝置
28‧‧‧非安全外部裝置
42‧‧‧分享金鑰
44‧‧‧輸入橋接器
48‧‧‧處理核心
56‧‧‧簽章引擎
40‧‧‧外部簽章引擎
36A、36B‧‧‧介面
32A、32B‧‧‧記憶體
DATA ITEM‧‧‧資料項
SIGNATURE‧‧‧簽章
Claims (19)
- 一種運算裝置,包括:一輸入橋接器(input bridge),其耦接以接收具有複數個資料項的一序列,該序列是該運算裝置在一程式的執行中所使用;一輸出橋接器;一處理核心,耦接以接收來自輸入橋接器的該等資料項且執行該程式,以使得該輸出橋接器輸出對應該序列中的一給定資料項的一信號;以及一認證邏輯,當該處理核心執行該程式時,耦接以接收並認證該等資料項,並在該給定資料項被該認證邏輯認證前,禁止該輸出橋接器輸出該信號。
- 如申請專利範圍第1項所述之運算裝置,其中該資料項包括複數個程式指令,且該給定資料項,包括一輸出指令,且該處理核心藉由執行包括該輸出指令在內的該等程式指令,以被配置為執行該程式。
- 如申請專利範圍第1項所述之運算裝置,其中該認證邏輯認證該等資料項的動作與該處理核心執行該程式的過程是非同步的。
- 如申請專利範圍第1項所述之運算裝置,其中在該處理核心執行該程式的過程中,已經使用該被給定資料項之後,該認證邏輯才認證該被給定資料項,且延遲該輸出橋接器輸出該信號,直到該認證邏輯完成該被給定資料項的認證。
- 如申請專利範圍第1項所述之運算裝置,其中該認證邏輯藉 由計算該等資料項的一個或多個數位簽章,並分別比對該運算裝置透過該輸入橋接器所接收到的複數個原始簽章與該等計算到的簽章的方式,以認證該等資料項。
- 如申請專利範圍第5項所述之運算裝置,其中如果至少一個計算的簽章與對應的原始簽章不符合的話,該認證邏輯產生一警示信號。
- 如申請專利範圍第5項所述之運算裝置,其中該輸入橋接器藉由接收具有複數個資料項的第一與第二區塊的方式接收該等資料項,其中當該第一區塊內的所有資料項都被認證後,該輸入橋接器才接收該第二區塊。
- 一種方法,包括:在一運算裝置內透過一輸入橋接器接收有複數個資料項的一序列,該序列是該運算裝置的一處理核心在一程式的執行中所使用;該處理核心執行該程式,以使得該運算裝置輸出對應該序列中的一給定資料項的一信號;以及當該處理核心執行該程式時,使用一認證邏輯以認為該等資料項,並在該給定資料項被該認證邏輯認證前,禁止該輸出橋接器輸出該信號。
- 如申請專利範圍第8項之方法,其中該資料項包括複數個程式指令,且該給定資料項,包括一輸出指令,且該處理核心藉由執行包括該輸出指令在內的該等程式指令,以被配置為執行該程式。
- 如申請專利範圍第8項之方法,其中認證該等資料項的動作 包括以與該處理核心執行該程式的過程非同步的方式認證該等資料項。
- 如申請專利範圍第8項之方法,其中認證該等資料項的動作包括在該處理核心執行該程式的過程中,已經使用該被給定資料項之後,該認證邏輯才認證該被給定資料項,且延遲輸出該信號,直到該被給定資料項完成認證。
- 如申請專利範圍第8項之方法,其中認證該等資料項的動作包括計算該等資料項的一個或多個數位簽章,並分別比對該運算裝置透過該輸入橋接器所接收到的複數個原始簽章與該等計算到的簽章。
- 如申請專利範圍第12項之方法,其中認證該等資料像的動作包括當至少一個計算的簽章與對應的原始簽章不符合的話,產生一警示信號。
- 如申請專利範圍第12項之方法,其中接收儲存有複數個資料項的一序列的動作包括接收第一與第二區塊的複數個資料項,其中當該第一區塊內的所有資料項都被認證後,接收該第二區塊的動作才被致能。
- 一種運算系統,包括:一外部裝置,用以提供具有複數個資料項的一序列;以及一運算裝置,包括:一輸入橋接器(input bridge),其耦接以接收具有複數個資料項的一序列,該序列是該運算裝置在一程式的執行中所使用;一輸出橋接器; 一處理核心,耦接以接收來自輸入橋接器的該等資料項且執行該程式,以使得該輸出橋接器輸出對應該序列中的一給定資料項的一信號;以及一認證邏輯,當該處理核心執行該程式時,耦接以接收並認證該等資料項,並在該給定資料項被該認證邏輯認證前,禁止該信號從該輸出橋接器被輸出。
- 如申請專利範圍第15項之運算系統,其中該外部裝置包括一記憶裝置,用以儲存該等資料項與認證資訊,且該運算裝置更包括一簽章引擎,用以產生至少一些該認證資訊。
- 如申請專利範圍第15項之運算系統,其中該外部裝置包括一加密記憶裝置,用以產生至少一些該認證資訊。
- 如申請專利範圍第17項之運算系統,其中該加密記憶裝置針對由該加密裝置傳送給該運算裝置的一些資料項,產生認證資訊,且該認證邏輯使用該認證資訊認證該等資料項。
- 如申請專利範圍第17項之運算系統,其中該加密記憶裝置包含一非揮發記憶體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/965,256 US9703945B2 (en) | 2012-09-19 | 2013-08-13 | Secured computing system with asynchronous authentication |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201506671A true TW201506671A (zh) | 2015-02-16 |
TWI549020B TWI549020B (zh) | 2016-09-11 |
Family
ID=52555178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103109868A TWI549020B (zh) | 2013-08-13 | 2014-03-17 | 運算裝置、方法與系統 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR101656092B1 (zh) |
CN (1) | CN104376277B (zh) |
TW (1) | TWI549020B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156632B (zh) * | 2015-05-17 | 2019-10-29 | 新唐科技股份有限公司 | 安全装置及在其内提供安全服务至主机的方法、安全设备 |
DE102015209123A1 (de) * | 2015-05-19 | 2016-11-24 | Robert Bosch Gmbh | Recheneinrichtung und Betriebsverfahren hierfür |
CN108399328B (zh) * | 2017-02-08 | 2021-04-27 | 新唐科技股份有限公司 | 系统存储器内容认证设备及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100985784B1 (ko) * | 2003-05-02 | 2010-10-06 | 엘지전자 주식회사 | 대화형 광디스크의 인증 방법 |
CN1981527A (zh) * | 2003-12-05 | 2007-06-13 | 美国电影协会 | 显示适配器的保密视频系统 |
JP4537908B2 (ja) | 2005-03-29 | 2010-09-08 | 株式会社東芝 | プロセッサ、メモリ、コンピュータシステムおよびシステムlsi |
US20070133437A1 (en) * | 2005-12-13 | 2007-06-14 | Wengrovitz Michael S | System and methods for enabling applications of who-is-speaking (WIS) signals |
US8452981B1 (en) | 2006-03-01 | 2013-05-28 | Nvidia Corporation | Method for author verification and software authorization |
DE102008011925B4 (de) * | 2008-02-29 | 2018-03-15 | Globalfoundries Inc. | Sicheres Initialisieren von Computersystemen |
TW201305842A (zh) * | 2011-07-29 | 2013-02-01 | Lionic Corp | 在儲存裝置上即時監控檔案系統以維護安全的方法與裝置 |
-
2014
- 2014-03-13 KR KR1020140029902A patent/KR101656092B1/ko active IP Right Grant
- 2014-03-17 TW TW103109868A patent/TWI549020B/zh active
- 2014-03-18 CN CN201410101468.XA patent/CN104376277B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104376277B (zh) | 2018-01-05 |
TWI549020B (zh) | 2016-09-11 |
KR20150020017A (ko) | 2015-02-25 |
CN104376277A (zh) | 2015-02-25 |
KR101656092B1 (ko) | 2016-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9703945B2 (en) | Secured computing system with asynchronous authentication | |
JP6998435B2 (ja) | メモリ動作の暗号化 | |
US9954826B2 (en) | Scalable and secure key management for cryptographic data processing | |
US8670568B2 (en) | Methods and systems for utilizing cryptographic functions of a cryptographic co-processor | |
US9208355B1 (en) | Apparatus, system and method for providing cryptographic key information with physically unclonable function circuitry | |
US20140281587A1 (en) | Systems, methods and apparatuses for using a secure non-volatile storage with a computer processor | |
WO2021103921A1 (zh) | 数据的加解密方法、装置、系统及存储介质 | |
US20170012774A1 (en) | Method and system for improving the data security during a communication process | |
US8774407B2 (en) | System and method for executing encrypted binaries in a cryptographic processor | |
TWI549020B (zh) | 運算裝置、方法與系統 | |
JP2017526220A (ja) | 順不同(out of order)データに対する推論的暗号処理 | |
JP2015015542A (ja) | 情報処理システム | |
US20230113906A1 (en) | An apparatus and method of controlling access to data stored in a non-trusted memory | |
Eshwarappa Dandur et al. | Networked Embedded System Security: Technologies, Analysis and Implementation | |
Durahim et al. | Transparent code authentication at the processor level | |
Szefer | Basic Computer Security Concepts |