TW201514753A - 電子裝置的軟體-硬體認證方法與其對應裝置 - Google Patents
電子裝置的軟體-硬體認證方法與其對應裝置 Download PDFInfo
- Publication number
- TW201514753A TW201514753A TW103131946A TW103131946A TW201514753A TW 201514753 A TW201514753 A TW 201514753A TW 103131946 A TW103131946 A TW 103131946A TW 103131946 A TW103131946 A TW 103131946A TW 201514753 A TW201514753 A TW 201514753A
- Authority
- TW
- Taiwan
- Prior art keywords
- authentication
- challenge string
- software
- string
- 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/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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本發明揭示一種電子裝置軟體-硬體認證的方法,包含,首先經由一挑戰字串輸入埠(CSIP)從電子裝置輸入一挑戰字串(CS),挑戰字串(CS)是一追蹤數據(trace data)字串,且是依據軟體在該電子裝置上執行的部份運算而產生。其次經由此追蹤數據字串可產生一用於認證程序上之一認證結果,根據此認證結果,一軟體可用以認證電子裝置的硬體單元,或是一硬體單元可用以認證該軟體。最後,依據產生的認證結果實施此認證程序。
Description
本發明是一種認證的方法與裝置,特別是一種用於一電子裝置的軟體-硬體認證方法與其對應裝置。
認證是一個確認數據或者實體屬性真實與否的動作。隨著電子時代來臨,對於電子裝置提供認證功能的需求與日俱增,特別是包含硬體元件與軟體元件的電子裝置。
這類認證功能需要硬體認證軟體的方法,以及軟體認證硬體的方法。在硬體認證軟體的方法中,依據不同的認證結果,與認證相關的硬體可啟動部分硬體功能來使得軟體正常運算,或是使部分硬體功能失效以防止軟體的正常運算。在軟體認證硬體的方法中,依據不同的認證結果,軟體可確認是否可實施修改軟體流程控制變數或是確認是否可實施修改指令碼,以便與硬體正常運作。
根據本發明的一實施方式,揭示一電子裝置軟體-硬體認證的方法。此方法包含以下步驟:經由一挑戰字串輸
入埠(Challenge String Input Port,CSIP)從電子裝置輸入一挑戰字串(Challenge String,CS),其中該挑戰字串是一追蹤數據(trace data)字串,且是依據軟體在該電子裝置上執行的部份運算而產生;在認證程序中使用的認證結果,係基於追蹤數據字串而產生,根據此認證結果,一軟體可認證電子裝置的硬體單元,或是硬體單元可用以認證該軟體;以及依據產生的認證結果實施認證程序。
根據本發明的另一實施方式,揭示一電子裝置軟體-硬體認證的裝置。該裝置包含一挑戰字串輸入埠(CSIP),一認證結果產生單元以及一認證實施單元。挑戰字串輸入埠(CSIP)用於接受來自該電子裝置的挑戰字串(CS)。挑戰字串(CS)是一追蹤數據(trace data)字串,且是依據軟體在電子裝置上執行一運算而產生。在認證程序中使用的認證結果,係基於追蹤數據字串而產生,根據此認證結果,一軟體可用以認證電子裝置的硬體單元,或是硬體單元用以認證該軟體。該認證實施單元依據該產生的認證結果實施認證程序。
本發明的實施方式,揭示一電子裝置軟體-硬體認證的方法。該方法包含以下步驟:經由一挑戰字串輸入埠(CSIP)從電子裝置輸入一挑戰字串(CS),其中該挑戰字串(CS)是一追蹤數據字串,且是依據軟體在該電子裝置上執行的一運算而產生;獲得一認證金鑰(Authentication Key,AK);依據認證金鑰的資訊,將挑戰字串轉換成認證字串(Authentication String,AS),同時讓認證字串的長度等於或者短於該挑戰字串(CS)的長度;依據認證金鑰(AK)與認證字串(AS),產生認證結果簽章(Authentication Result Signature,ARS);比較認證結果簽章(ARS)與一已知簽章(Pre-Known Signature,
PKS),以決定認證程序的認證結果;以及依據認證程序的認證結果實施認證程序。
參考以下描述與申請專利範圍將更容易明瞭本發明的特徵與優點。應該明瞭的是,以上的描述與以下的詳細描述僅是說明例而且用於進一步說明本發明的申請專利範圍,本發明並不侷限於此。
110-150,410~480‧‧‧步驟
300‧‧‧軟體-硬體認證電子裝置
310‧‧‧挑戰字串輸入埠
320‧‧‧認證結果產生單元
330‧‧‧認證實施單元
340‧‧‧追蹤數據過濾器
350‧‧‧認證金鑰(AK)輸入單元
360‧‧‧冗餘過濾器
370‧‧‧簽章比較單元
380‧‧‧修補單元
CSIP‧‧‧挑戰字串輸入埠
CS‧‧‧挑戰字串
trace data‧‧‧追蹤數據
CSL‧‧‧挑戰字串長度
AS‧‧‧認證字串
AK‧‧‧認證金鑰
ECSL‧‧‧預期挑戰字串長度
ARS‧‧‧認證結果簽章
PKS‧‧‧已知簽章
第1圖是本發明一電子裝置的軟體-硬體認證方法的流程圖。
第2圖是依據認證金鑰將挑戰字串(CS)轉換成認證字串(AS)的實施例。
第3圖是本發明實施例的一電子裝置的軟體-硬體認證裝置的方塊圖。
第4圖是本發明另一實施例的一電子裝置的軟體-硬體認證方法的流程圖。
請參閱第1圖,此流程圖描繪了本發明實施例的電子裝置軟體-硬體認證之方法。電子裝置軟體-硬體認證之方法可採取計算機程式產品的形式出現,且儲存在非揮發(non-transitory)計算機可讀取儲存媒體,並且該儲存媒體具有計算機可讀取指令。適合的儲存媒體,包含非揮發性記憶體,例如,唯讀記憶體(ROM),可程式化唯讀記憶體(PROM),可抹除可程式化唯讀記憶體(EPROM),以及電子
可抹除可程式化唯讀記憶體(EEPROM);揮發性記憶體,例如靜態隨機存取記憶體(SRAM),動態隨機存取記憶體(DRAM),雙倍數據率靜態隨機存取記憶體(DDR-RAM);光學儲存裝置,例如CD-ROM與DVD-ROM;以及磁性儲存裝置,例如硬碟機與軟碟機。
第1圖的方法流程從步驟110開始。首先,一挑戰字串(Challenge String,CS)經由一挑戰字串輸入埠(Challenge String Input Port,CSIP)從電子裝置輸入(步驟110)。在電子裝置上執行中的軟體可以是需要認證一電子裝置上的硬體單元,以確認此軟體可在該硬體單元上執行一般作業,或者是需要由硬體單元進行認證,以獲得在該硬體單元上執行的許可。在本發明實施例中,挑戰字串(CS)是一追蹤數據(trace data)字串,且是依據軟體在電子裝置上執行的部份運算而產生。依據本發明的一實施例,挑戰字串輸入埠(CSIP)可使用一或多個硬體暫存器或者一些共享記憶體以接收該挑戰字串(CS)。再者,追蹤數據表示出一軟體程式的逐步執行行為,或者更廣泛的來說,表示出一序列主控制器指令(master commands)的逐步執行行為。如此之追蹤數據,就像指令執行追蹤數據或是匯流排交換追蹤數據,通常藉由一些硬體功能而產生,而且此些硬體功能可經由探測微處理器、匯流排主控制器或匯流排控制器內部的訊號,來監控該軟體或匯流排主控制器的行為。用於產生追蹤數據的硬體功能通常是可以分別加以控制的,而且硬體功能通常不會受到本身行為正被追蹤的軟體或匯流排主控制器的控制。依據本發明的另一實施例,經由軟體指令或匯流排主控制器命令而設定的追蹤數據記號(trace data marker),可用來致能硬
體功能以讓本身正被追蹤的軟體或匯流排主控制器直接控制追蹤數據的捕捉,或是讓其他監控軟體或匯流排主控制器來控制追蹤數據的捕捉。
其次,在認證程序中使用的認證結果,係基於追蹤數據字串執行一認證程序後產生,這個認證結果可讓軟體用以認證電子裝置的硬體單元,或是讓硬體單元認證該軟體(步驟120)。
接下來,流程前進至步驟130,依據產生的認證結果實施認證程序。因為挑戰字串是依據在電子裝置上執行的軟體運算而產生的一追蹤數據串列,所以駭客不容易推算出追蹤數據的哪個部份是用於認證。再者,因為追蹤數據通常不由軟體存取(追蹤數據通常經由硬體連接直接傳輸),所以本發明是很難被駭客攻擊的。
依據本發明的一實施例,在步驟120產生的認證結果可為“通過”或是“失敗”。“通過”與“失敗”分別代表用於認證程序的兩個不同狀態。因此,當認證結果是“通過”,依賴認證程序的軟體或硬體單元可實施正常運作(步驟140)。當認證結果是“失敗”,依賴認證程序的軟體或硬體單元不實施正常運作(步驟150)。然而,在其他實施例中,依據這些狀態所實施的運作可能會各不相同,本發明並不侷限於此。
對於軟體需要認證電子裝置的硬體單元的實施例,該軟體的程式碼部分可能需要修補(fix-up)。根據本發明實施例,當產生的認證結果是“通過”,依賴認證程序的軟體可修補該軟體的程式碼部分,以使得軟體可實施正常運作(步驟140)。當產生的認證結果是“失敗”,該軟體需要修補的程式碼部分可保持不變,如此一來該軟體就無法實施正常運作
(步驟150)。
根據本發明的另一實施例,電子裝置的軟體-硬體認證的方法,可以進一步包含取得一認證金鑰(Authentication Key,AK)的方法。認證金鑰可由直接連線的(hard-wired)邏輯電路獲得、也可由電子裝置的外部輸入取得、或者由電子裝置的嵌入式(embedded)非揮發儲存裝置或以上裝置的某一組合中取得。其中,認證金鑰的至少一部份是軟體所未知的,然而認證金鑰亦可包括部份已知的數值,例如電子裝置的序號,用以辨識電子裝置。
其次,依據認證金鑰的資訊,將挑戰字串(CS)轉換成認證字串(Authentication String,AS),同時讓認證字串的長度等於或者短於挑戰字串(CS)的長度。請參閱第2圖,此圖描繪了依據認證金鑰的資訊,將挑戰字串(CS)轉換成認證字串(AS)的實施例。在此實施例中,依據認證金鑰資訊,將挑戰字串(CS)轉換成認證字串(AS)的步驟,可以是根據認證金鑰的部分資訊來移除挑戰字串(CS)的冗餘數據R0,R1,...,RM以獲得認證字串(AS)B0,B1,...,BN。本發明的其他實施例中,根據認證金鑰的資訊,將挑戰字串(CS)轉換成認證字串(AS)的步驟,亦可以是透過將挑戰字串(CS)壓縮至認證字串(AS)而達成。
在轉換挑戰字串(CS)的步驟後,依據認證金鑰(Authentication key,AK)與認證字串(AS),產生使用於認證程序的認證結果簽章(Authentication Result Signature,ARS)。產生認證結果簽章(ARS)的函數可為檢查碼函數(checksum function)、CRC函數、加密函數(cryptography function)例如RC4,MD5,SHA-1,DES,RSA,AES等,或者
是其他使用全部認證字串(AS)以及全部或部分認證金鑰(AK)以產生認證結果簽章(ARS)的映射函數。
隨後,認證結果簽章(ARS)進一步與一已知簽章(Pre-Known Signature,PKS)比較,以決定認證結果。在本發明的實施例中,已知簽章(PKS)可經由直接連線的邏輯電路產生,或是預先儲存在一儲存單元,以做為比較之用。由此,在步驟130所規範的認證程序,可以根據比較過程而決定的認證結果進一步被執行。
在本發明的實施例中,也可考慮使用挑戰字串長度(CSL)進行認證。例如,一相關聯於由挑戰字串輸入埠(CSIP)輸入之挑戰字串(CS)的挑戰字串長度數值可以被驗證。其次,挑戰字串長度(CSL)數值可與相關聯於認證金鑰(AK)的預期挑戰字串長度(ECSL)數值進行比較。根據挑戰字串長度(CSL)數值與認證金鑰(AK)的預期挑戰字串長度(ECSL)數值的比較結果,可進一步決定認證結果。例如,當認證結果簽章(ARS)與已知簽章(PKS)不相匹配時,認證結果可決定為失敗。而當挑戰字串長度(CSL)數值等於預期挑戰字串長度(ECSL)數值而且認證結果簽章(ARS)與已知簽章(PKS)相匹配時,認證程序的認證結果為通過。再者,當挑戰字串長度(CSL)數值大於預期挑戰字串長度(ECSL)數值而且認證結果簽章(ARS)與已知簽章(PKS)相匹配時,認證程序的認證結果為不真實失敗(FALSE-FAIL)。“通過”,“失敗”與“不真實失敗”表示認證程序的三種不同狀態。對於認證程序而言,可以實施一種或多種類型的認證結果(即“通過”,“失敗”與“不真實失敗”,或其組合),用以致能(enable)或禁能(disable)依賴認證程序的軟體或硬體單元。因此,可藉由這些類型的
認證結果而提供不同的認證程度。
第3圖顯示本發明的軟體-硬體認證電子裝置的裝置方塊圖。軟體-硬體認證電子裝置的裝置300包含一挑戰字串輸入埠(CSIP)310,一認證結果產生單元320,以及一認證實施單元330。認證結果產生單元320與認證實施單元330可藉由至少一微處理或任他任何類型的控制單元加以實施。
挑戰字串(CS)來自電子裝置且透過挑戰字串輸入埠(CSIP)310所取得。軟體可以是用於認證電子裝置的硬體,以確認該軟體是否可在該硬體上實施正常運算,或者是需要被硬體所認證,以獲得在硬體執行的許可。挑戰字串(CS)是一追蹤數據(trace data)字串,且是依據軟體在電子裝置上執行的部份運算而產生。依據本發明的一實施例,挑戰字串輸入埠(CSIP)310可使用一或多個硬體暫存器或者一些共享記憶體以接收該挑戰字串(CS)。再者,追蹤數據表示出一軟體程式的逐步執行行為,或者更廣泛的來說,表示出一序列主控制器指令(master commands)的逐步執行行為。如此之追蹤數據,就像指令執行追蹤數據(trace data)或是匯流排交換追蹤數據,通常藉由一些硬體功能而產生,而且該硬體功能是經由探測微處理器、匯流排主控制器或匯流排控制器內部的訊號以監控該軟體或匯流排主控制器的行為。用於產生追蹤數據的硬體通常是可以分別加以控制的,通常不會受到本身行為正被追蹤的軟體或匯流排主控制器的控制。依據本發明的另一實施例,經由軟體指令或匯流排主控制器命令而設定的一追蹤數據記號(trace data marker),可以被一追蹤數據過濾器340用來致能硬體功能以讓本身正被追蹤的軟體或匯流排主控制器直接控制追蹤數據的捕捉,或是讓其他
監控軟體或匯流排主控制器來控制追蹤數據的捕捉。
在認證程序中使用的認證結果,係由認證結果產生單元320基於追蹤數據字串執行一認證程序後產生,這個認證結果可讓軟體用以認證電子裝置的硬體單元,或是讓硬體單元認證軟體。認證實施單元330依據認證結果實施認證程序。因為挑戰字串是依據在電子裝置上執行的軟體運算而產生的一追蹤數據串列,所以駭客不容易推算出追蹤數據中的哪個部份是用於認證。再者,因為追蹤數據通常不由軟體存取(追蹤數據通常經由硬體連接直接傳輸),所以本發明是很難被駭客攻擊的。
對於軟體認證該電子裝置的硬體單元,該軟體的程式碼部分可能需要修補(fix-up)。在本發明的實施例中,軟體-硬體認證電子裝置的裝置300包含一修補單元380。當認證結果是通過,修補單元380可修補部分的軟體程式碼。在本發明的實施例中,依據由產生的認證結果導出的控制/狀態/指示旗標(indication flag),修補單元380可修補該軟體的部分程式碼。當產生的認證結果是失敗,修補單元380失效,如此不執行修補運算而且依賴認證程序的軟體程式碼仍維持相同,並且該軟體不執行正常運算。
根據本發明的一實施例,軟體-硬體認證電子裝置的裝置300包含一認證金鑰(AK)輸入單元350,一冗餘過濾器360以及一簽章比較單元370。認證金鑰(AK)可透過認證金鑰(AK)輸入單元350取得。認證金鑰(AK)輸入單元350可由直接連線的(hard-wired)邏輯電路以取得金鑰,也可連接電子裝置的外部輸入端,或者連接電子裝置的嵌入式(embedded)非揮發儲存裝置或以上裝置的某一組合以取得
金鑰。其中,認證金鑰的至少一部份是軟體所未知的,然而認證金鑰的部份可為已知的數值,例如電子裝置的序號,用以辨識電子裝置。
依據認證金鑰的資訊,冗餘過濾器360將挑戰字串(CS)轉換成認證字串(AS),同時讓認證字串的長度等於或者短於挑戰字串(CS)的長度。根據此實施例,依據認證金鑰的資訊,冗餘過濾器360移除挑戰字串(CS)的冗餘數據來獲得認證字串。在本發明的其他實施例中,冗餘過濾器360可以將挑戰字串(CS)壓縮以產生認證字串(AS)。
在轉換挑戰字串(CS)後,依據認證金鑰(AK)與認證字串(AS),簽章比較單元370產生認證結果簽章(ARS)。簽章比較單元370可執行一檢查碼函數(checksum function)、CRC函數、加密函數(cryptography function)例如RC4,MD5,SHA-1,DES,RSA,AES等,或者使用全部認證字串(AS)以及全部或部分認證金鑰(AK)以產生認證結果簽章(ARS)的映射函數。
隨後,簽章比較單元370執行認證結果簽章(ARS)與一已知簽章(PKS)的比對,以決定認證結果。認證實施單元330依據比較過程而決定的認證結果可進一步實施認證程序。
在本發明的實施例中,關於認證,也可考慮使用挑戰字串長度(CSL)。例如,認證結果產生單元320確認一挑戰字串長度(CSL)數值,此挑戰字串長度數值是指經由挑戰字串輸入埠(CSIP)310輸入之挑戰字串(CS)的長度。接著,認證結果產生單元320可比較挑戰字串長度(CSL)數值與認證金鑰(AK)的預期挑戰字串長度(ECSL)數值。並根據挑戰
字串長度(CSL)數值與認證金鑰(AK)的預期挑戰字串長度(ECSL)數值的比較結果,由簽章比較單元370決定認證結果。例如,當認證結果簽章(ARS)與已知簽章(PKS)不相匹配時,簽章比較單元370可決定認證結果為失敗。而當挑戰字串長度(CSL)數值等於預期挑戰字串長度(ECSL)數值,而且認證結果簽章(ARS)與已知簽章(PKS)相匹配時,簽章比較單元370可決定認證結果為通過。再者,當相關挑戰字串長度(CSL)數值大於預期挑戰字串長度(ECSL)數值,而且認證結果簽章(ARS)與已知簽章(PKS)相匹配時,簽章比較單元370可決定認證程序的認證結果為不真實失敗(FALSE-FAIL)。“通過”,“失敗”與“不真實-失敗”表示認證程序的三種不同狀態。對於認證程序而言,可以實施一種或多種類型的認證結果(即“通過”,“失敗”與“不真實失敗”,或其組合),用以致能(enable)或禁能(disable)依賴認證程序的軟體或硬體單元。因此,可藉由這些類型的認證結果而提供不同的認證程度。
請參考第4圖,此流程圖描繪了本發明實施例的電子裝置軟硬體認證之方法。電子裝置軟硬體認證之方法可採取計算機程式產品的形式出現,儲存在非暫時性(non-transitory)計算機可讀取儲存媒體,並且該儲存媒體具有計算機可讀取指令。可使用任何適合的儲存媒體,包含非揮發性記憶體,例如,唯讀記憶體(ROM),可程式化唯讀記憶體(PROM),可抹除可程式化唯讀記憶體(EPROM),以及電子可抹除可程式化唯讀記憶體(EEPROM);揮發性記憶體,例如靜態隨機存取記憶體(SRAM),動態隨機存取記憶體(DRAM),雙倍數據率靜態隨機存取記憶體(DDR-RAM);
光學儲存裝置,例如CD-ROM與DVD-ROM;以及磁性儲存裝置,例如硬碟機與軟碟機。
第4圖的方法流程從步驟410開始。首先,一挑戰字串(CS)經由一挑戰字串輸入埠(CSIP)從電子裝置輸入(步驟410)。該軟體可以是需要認證該電子裝置的硬體單位以確認軟體可在硬體單元上執行一般作業,或者需要由硬體單位認證以獲得在硬體單元上執行的許可。依據本發明的一實施例,挑戰字串輸入埠(CSIP)可使用一或多個硬體暫存器或者一些共享記憶體以接收該挑戰字串(CS)。
在步驟420,取得認證金鑰(AK)。藉由直接連線的(hard-wired)邏輯電路,或連接電子裝置的外部輸入,或者連接電子裝置的嵌入式(embedded)非揮發儲存裝置或以上裝置的某一組合以取得認證金鑰(AK)。其中,認證金鑰的至少一部份是軟體所未知的,然而認證金鑰的部份亦可為已知的數值,例如電子裝置的序號,用以辨識該電子裝置。
其次,依據認證金鑰的資訊,將挑戰字串(CS)轉換成認證字串(AS),同時讓該認證字串的長度等於或者短於該挑戰字串(CS)的長度(步驟430)。在此實施例中,依據認證金鑰的資訊,根據認證金鑰的部分資訊來移除挑戰字串(CS)的冗餘數據,以達成步驟430的轉換,以獲得認證字串(AS)。本發明的其他實施例中,將挑戰字串(CS)轉換成認證字串(AS)的步驟(步驟430),亦可以是透過將挑戰字串(CS)壓縮至認證字串(AS)而達成。
在轉換該挑戰字串(CS)後,依據認證金鑰(AK)與認證字串(AS),產生認證結果簽章(ARS)(步驟440)。產生認證結果簽章(ARS)的函數可用於檢查碼函數(checksum
function)、CRC函數、加密函數(cryptography function)例如RC4,MD5,SHA-1,DES,RSA,AES等,或者是其他使用全部認證字串(AS)以及全部或部分認證金鑰(AK),以產生該認證結果簽章(ARS)的任何其他映射函數。
隨後,認證結果簽章(ARS)與一已知簽章(PKS)比較,以決定認證結果(步驟450)。在本發明的實施例中,已知簽章(PKS)可經由直接連線(hard-wired)的邏輯電路產生,或是預先儲存在一儲存單元,以做為比較之用。由此,認證程序(步驟460)可以根據比較過程而決定的認證結果進一步被執行。
依據本發明的實施例,認證結果可為“通過”或是“失敗”。因此,當認證結果是通過時,依賴認證程序的軟體或硬體單元可實施正常運算(步驟470)。當認證結果是失敗時,依賴認證程序的軟體或硬體單元不實施正常運作(步驟480)。
在本發明的實施例中,關於認證,也可使用挑戰字串長度(CSL)。例如,一相關聯於由挑戰字串輸入埠(CSIP)輸入之挑戰字串(CS)的挑戰字串長度(CSL)數值可以被驗證。其次,挑戰字串長度(CSL)數值可與相關聯於認證金鑰(AK)的預期挑戰字串長度(ECSL)數值進行比較。根據該挑戰字串長度(CSL)數值與認證金鑰(AK)的預期挑戰字串長度(ECSL)數值的比較結果,可進一步決定認證結果。例如,當認證結果簽章(ARS)與已知簽章(PKS)不相匹配時,認證結果可決定為失敗,而當相關挑戰字串長度(CSL)數值等於預期挑戰字串長度(ECSL)數值,而且認證結果簽章(ARS)與已知簽章(PKS)相匹配時,認證程序的認證結果為通過。再者,
當相關挑戰字串長度(CSL)數值大於預期挑戰字串長度(ECSL)數值,而且認證結果簽章(ARS)與已知簽章(PKS)相匹配時,認證程序的認證結果為不真實失敗(FALSW-FAIL)。“通過”,“失敗”與“不真實失敗”表示認證程序的三種不同狀態。對於該認證程序而言,可以實施一種或多種類型的認證結果(即“通過”,“失敗”與“不真實失敗”,或其組合),用以致能(enable)或禁能(disable)依賴認證程序的軟體或硬體單元。因此,可藉由這些類型的認證結果而提供不同的認證程度。
對於軟體認證該電子裝置的硬體單元,該軟體的程式碼部分可能需要修補(fix-up)。根據本發明實施例,當認證結果是通過時,依賴認證程序的軟體可修補該軟體的程式碼部分,使得軟體可實施正常運算(步驟470)。當認證結果是失敗時,該軟體需要修補的程式碼部分可保持不變,如此一來該軟體就無法實施正常運作(步驟480)。
在本發明實施例中,挑戰字串(CS)是一追蹤數據(trace data)字串,且是依據軟體在電子裝置上執行的部份運算而產生。依據本發明的一實施例,追蹤數據表示一軟體程式的逐步執行行為,或者廣泛的來說,表示出一序列主控制器指令(master commands)的逐步執行行為。如此之追蹤數據,類似指令執行追蹤數據(trace data)或是匯流排交換追蹤數據,通常藉由一些硬體功能而產生,而且硬體功能是經由探測微處理器、匯流排主控制器或匯流排控制器內部的訊號以監控該軟體或匯流排主控制器的行為。用於產生追蹤數據的硬體功能通常是可以分別加以控制的,通常不會受到本身行為正被追蹤的軟體或匯流排主控制器的控制。依據本發明
的另一實施例,經由軟體指令或匯流排主控制器命令而設定的追蹤數據記號(trace data marker),可用來致能硬體功能以讓本身正被追蹤的軟體或匯流排主控制器直接控制追蹤數據的捕捉,或是讓其他監控軟體或匯流排主控制器來控制追蹤數據的捕捉。
再者,本發明用於電子裝置的軟體-硬體認證之方法包含依據追蹤數據(trace data)字串以產生認證結果的步驟。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
110-150‧‧‧步驟
Claims (20)
- 一種電子裝置軟體-硬體認證的方法,至少包含:經由一挑戰字串輸入埠(CSIP)從一電子裝置輸入一挑戰字串(CS),其中該挑戰字串(CS)是一追蹤數據(trace data)字串,且是依據一軟體在該電子裝置上執行的部份運算而產生;依據該追蹤數據字串,執行一認證程序後,產生一認證結果,根據該認證結果,該軟體對該電子裝置的一硬體單元進行認證,或是該硬體單元對該軟體進行認證;以及依據該認證結果實施該認證程序。
- 如請求項1之電子裝置軟體-硬體認證的方法,其中該追蹤數據來自於一軟體程式的逐步執行行為,或者主指令順序。
- 如請求項1之電子裝置軟體-硬體認證的方法,更包含:使用一追蹤數據指標(trace data marker)以捕捉該追蹤數據。
- 如請求項1之電子裝置軟體-硬體認證的方法,更包含:獲得一認證金鑰(AK);依據該認證金鑰(AK)的資訊,將該挑戰字串(CS)轉換成一認證字串(AS),使得該認證字串的長度等於或者短於該挑戰字串(CS)的長度; 依據該認證金鑰(AK)與該認證字串(AS),產生一認證結果簽章(ARS);以及比較該認證結果簽章(ARS)與一已知簽章(PKS),依據簽章比較結果所決定的認證結果,進一步實施該認證程序。
- 如請求項4之電子裝置軟體-硬體認證的方法,更包含:確認一挑戰字串長度(CSL)數值,此挑戰字串長度數值是指經由該挑戰字串輸入埠(CSIP)所接收的該挑戰字串(CS)的長度;以及比較該挑戰字串長度(CSL)數值以及對應於該認證金鑰(AK)的一預期挑戰字串長度(ECSL)數值,根據比較該挑戰字串長度(CSL)數值與該預期挑戰字串長度(ECSL)數值的結果,進一步決定該認證結果。
- 如請求項5之電子裝置軟體-硬體認證的方法,更包含:當該認證結果簽章(ARS)與該已知簽章(PKS)不相匹配時,決定該認證結果為失敗;當該挑戰字串長度(CSL)數值等於該預期挑戰字串長度(ECSL)數值,而且該認證結果簽章(ARS)與該已知簽章(PKS)相匹配時,決定該認證結果為通過;以及當該挑戰字串長度(CSL)數值大於該預期挑戰字串長度(ECSL)數值,而且該認證結果簽章(ARS)與該已知簽章(PKS)相匹配時,決定該認證結果為不真實-失敗。
- 如請求項1之電子裝置軟體-硬體認證的方法,其中該軟體的部分程式碼需要修補(fix-up),以及實施該認證程序的步驟包含:當該認證結果是通過時,修補該軟體的部分程式碼。
- 一種電子裝置軟體-硬體認證的裝置,至少包含:一挑戰字串輸入埠(CSIP),該挑戰字串輸入埠(CSIP)用於接受來自一電子裝置的一挑戰字串(CS),該挑戰字串(CS)是一追蹤數據(trace data)字串,而且是依據一軟體在該電子裝置上執行的部份運算而產生;一認證結果產生單元,執行一認證程序後,產生一認證結果,根據該認證結果,該軟體用以認證該電子裝置的一硬體單元,或是該硬體單元用以認證該軟體;以及一認證實施單元,依據該認證結果,實施該認證程序。
- 如請求項8之電子裝置軟體-硬體認證的裝置,其中該裝置更包含:一追蹤數據過濾器,用於使用一追蹤數據指標(trace data marker)來捕捉該追蹤數據。
- 如請求項8之電子裝置軟體-硬體認證的裝置,更包含:一認證金鑰(AK)輸入單元,用於取得一認證金鑰(AK);一冗餘過濾器,依據該認證金鑰的資訊,將該挑戰字串(CS)轉換成一認證字串(AS),其中該認證字串的長度等於或者短於該挑戰字串(CS)的長度;以及 一簽章比較單元,依據該認證金鑰(AK)與該認證字串(AS),產生一認證結果簽章(ARS),並將該認證結果簽章(ARS)與一已知簽章(PKS)進行比較以決定該認證結果,其中該認證實施單元根據該認證結果進一步實施該認證程序。
- 如請求項10之電子裝置軟體-硬體認證的裝置,其中該認證結果產生單元用以驗證一挑戰字串長度(CSL)數值,此挑戰字串長度數值是指經由該挑戰字串輸入埠(CSIP)輸入的該挑戰字串(CS)的長度,以及將該挑戰字串長度(CSL)數值與該認證金鑰(AK)的一預期挑戰字串長度(ECSL)數值進行比較,根據比較該挑戰字串長度(CSL)數值與該預期挑戰字串長度(ECSL)數值的結果,該簽章比較單元進一步決定該認證結果。
- 如請求項11之電子裝置軟體-硬體認證的裝置,其中:當該認證結果簽章(ARS)與該已知簽章(PKS)不相匹配時,該簽章比較單元決定該認證結果為失敗;當該挑戰字串長度(CSL)數值等於該預期挑戰字串長度(ECSL)數值,而且該認證結果簽章(ARS)與該已知簽章(PKS)相匹配時,該簽章比較單元決定該認證結果為通過;以及當該挑戰字串長度(CSL)數值大於該預期挑戰字串長度(ECSL)數值,而且該認證結果簽章(ARS)與該已知簽章 (PKS)相匹配時,該簽章比較單元決定該認證結果為不真實-失敗。
- 如請求項8之電子裝置軟體-硬體認證的裝置,其中該軟體的部分程式碼需要修補(fix-up),該裝置更包含:當該認證結果是通過時,一修補單元用以修補該軟體的部分程式碼。
- 一種電子裝置軟體-硬體認證的方法,至少包含:經由一挑戰字串輸入埠(CSIP)從一電子裝置輸入一挑戰字串(CS);獲得一認證金鑰(AK);依據該認證金鑰(AK)的資訊,將該挑戰字串(CS)轉換成一認證字串(AS),其中該認證字串的長度等於或者短於該挑戰字串(CS)的長度;依據該認證金鑰(AK)與該認證字串(AS),產生一認證結果簽章(ARS);比較該認證結果簽章(ARS)與一已知簽章(PKS),以決定該認證程序的認證結果;以及依據該認證程序的認證結果,實施該認證程序。
- 如請求項14之電子裝置軟體-硬體認證的方法,更包含:驗證一挑戰字串長度(CSL)數值,此挑戰字串長度數值是指經由該挑戰字串輸入埠(CSIP)所接收的該挑戰字串(CS)的長度;以及 比較該挑戰字串長度(CSL)數值以及該認證金鑰(AK)的一預期挑戰字串長度(ECSL)數值,根據該挑戰字串長度(CSL)數值與該認證金鑰(AK)的該預期挑戰字串長度(ECSL)數值的比較結果,進一步決定該認證結果。
- 如請求項14之電子裝置軟體-硬體認證的方法,更包含:當該認證結果簽章(ARS)與該已知簽章(PKS)不相匹配時,決定該認證結果為失敗;當該挑戰字串長度(CSL)數值等於該預期挑戰字串長度(ECSL)數值,而且該認證結果簽章(ARS)與該已知簽章(PKS)相匹配時,決定該認證結果為通過;以及當該挑戰字串長度(CSL)數值大於該預期挑戰字串長度(ECSL)數值,而且該認證結果簽章(ARS)與該已知簽章(PKS)相匹配時,決定該認證結果為不真實-失敗。
- 如請求項14之電子裝置軟體-硬體認證的方法,其中該軟體的部分程式碼需要修補(fix-up),而且實施認證程序更包含:當該認證結果是通過時,修補該軟體的部分程式碼。
- 如請求項14之電子裝置軟體-硬體認證的方法,其中該認證字串(AS)是依據該認證金鑰(AK)的部分資訊將該挑戰字串(CS)的冗餘數據移除而達成,或是將該挑戰字串(CS)壓縮進入該認證字串(AS)而達成。
- 如請求項14之電子裝置軟體-硬體認證的方法,其中該挑戰字串(CS)是一追蹤數據(trace data)字串,且是依據軟體在該電子裝置上執行的部份運算而產生,該方法更包含:依據該追蹤數據(trace data)的字串,產生該認證結果。
- 如請求項14之電子裝置軟體-硬體認證的方法,更包含:使用一追蹤數據指標(trace data marker)以捕捉該追蹤數據。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/044,227 US9239918B2 (en) | 2013-10-02 | 2013-10-02 | Method and apparatus for software-hardware authentication of electronic apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201514753A true TW201514753A (zh) | 2015-04-16 |
TWI552019B TWI552019B (zh) | 2016-10-01 |
Family
ID=52741528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103131946A TWI552019B (zh) | 2013-10-02 | 2014-09-16 | 電子裝置的軟體-硬體認證方法與其對應裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9239918B2 (zh) |
CN (1) | CN104517050B (zh) |
TW (1) | TWI552019B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10382461B1 (en) * | 2016-05-26 | 2019-08-13 | Amazon Technologies, Inc. | System for determining anomalies associated with a request |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754761A (en) | 1995-03-06 | 1998-05-19 | Willsey; John A. | Universal sofeware key process |
EP1126655A1 (de) | 2000-02-15 | 2001-08-22 | Siemens Aktiengesellschaft | Verfahren zur Authentizitätssicherung von Hard- und Software in einem vernetzten System |
US20030093381A1 (en) * | 2001-11-09 | 2003-05-15 | David Hohl | Systems and methods for authorization of data strings |
JP2003271965A (ja) * | 2002-03-19 | 2003-09-26 | Fujitsu Ltd | 手書き署名認証プログラム、方法、及び装置 |
US7216369B2 (en) | 2002-06-28 | 2007-05-08 | Intel Corporation | Trusted platform apparatus, system, and method |
US20040098591A1 (en) | 2002-11-15 | 2004-05-20 | Fahrny James W. | Secure hardware device authentication method |
US20060064756A1 (en) | 2004-09-17 | 2006-03-23 | Ebert Robert F | Digital rights management system based on hardware identification |
US7739517B2 (en) | 2005-03-31 | 2010-06-15 | Intel Corporation | Hardware-based authentication of a software program |
JPWO2007083347A1 (ja) * | 2006-01-17 | 2009-06-11 | 富士通株式会社 | 通信端末装置、サーバ装置、データ管理システム、データ管理方法及びデータ管理プログラム |
TWI386021B (zh) * | 2007-08-07 | 2013-02-11 | Chunghwa Telecom Co Ltd | Dispersed call tracking screens with versatile characters and reliability Methods and systems |
TWI385556B (zh) * | 2008-10-08 | 2013-02-11 | Via Tech Inc | 電腦認證方法及使用該方法之軟體及硬體 |
US9262632B2 (en) * | 2010-11-03 | 2016-02-16 | Virginia Tech Intellectual Properties, Inc. | Using power fingerprinting (PFP) to monitor the integrity and enhance security of computer based systems |
CN102752115B (zh) * | 2012-07-04 | 2015-09-16 | 北京天龙融和软件有限公司 | 挑战码生成方法及装置、动态口令认证方法及系统 |
-
2013
- 2013-10-02 US US14/044,227 patent/US9239918B2/en active Active
-
2014
- 2014-09-16 TW TW103131946A patent/TWI552019B/zh active
- 2014-09-24 CN CN201410493160.4A patent/CN104517050B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104517050A (zh) | 2015-04-15 |
US9239918B2 (en) | 2016-01-19 |
TWI552019B (zh) | 2016-10-01 |
CN104517050B (zh) | 2017-11-17 |
US20150095978A1 (en) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5703391B2 (ja) | 耐タンパー性ブート処理のためのシステム及び方法 | |
US9660807B2 (en) | System and method for verifying changes to UEFI authenticated variables | |
CN111095213A (zh) | 嵌入式程序的安全引导方法、装置、设备及存储介质 | |
WO2017133559A1 (zh) | 安全启动方法及装置 | |
US9633185B2 (en) | Device having secure JTAG and debugging method for the same | |
CN106156635A (zh) | 终端启动方法和装置 | |
JP5718373B2 (ja) | 不揮発性メモリのメモリブロックを検査する方法 | |
WO2018076648A1 (zh) | 一种芯片的安全启动方法及装置、计算机存储介质 | |
WO2016161704A1 (zh) | 医疗检测设备的使用控制方法、系统和医疗检测设备 | |
US20140310535A1 (en) | Electronic Device with Flash Memory Component | |
CN110543768B (zh) | 一种在bios中控制可信根的方法和系统 | |
CN113434853A (zh) | 一种将固件烧录至存储设备的方法及控制器 | |
CN105678162A (zh) | 一种基于tpm的操作系统安全启动控制方法 | |
JP2016111446A (ja) | メモリコントローラ、メモリコントローラの制御方法及びメモリシステム | |
CN111177693B (zh) | 一种验证终端根证书的方法、装置、设备和介质 | |
CN112148314A (zh) | 一种嵌入式系统的镜像验证方法、装置、设备及存储介质 | |
US20160301532A1 (en) | Device security | |
JP2012104132A (ja) | 情報生成システム及びその方法 | |
TWI552019B (zh) | 電子裝置的軟體-硬體認證方法與其對應裝置 | |
CN108810002B (zh) | 安全芯片的多ca应用系统及方法 | |
CN116032484A (zh) | 一种通信设备安全启动的方法、装置和电子设备 | |
JP5049179B2 (ja) | 情報処理端末装置及びアプリケーションプログラムの起動認証方法 | |
CN107315962A (zh) | 一种嵌入式平台的可信处理模块 | |
KR20140112837A (ko) | 임베디드 시스템, 이를 포함하는 인증 시스템, 및 인증 방법 | |
TW201319862A (zh) | 嵌入式元件與控制方法 |