TWI675340B - 程式驗證方法 - Google Patents

程式驗證方法 Download PDF

Info

Publication number
TWI675340B
TWI675340B TW107105507A TW107105507A TWI675340B TW I675340 B TWI675340 B TW I675340B TW 107105507 A TW107105507 A TW 107105507A TW 107105507 A TW107105507 A TW 107105507A TW I675340 B TWI675340 B TW I675340B
Authority
TW
Taiwan
Prior art keywords
data
decryption
authorization
interpretation
program
Prior art date
Application number
TW107105507A
Other languages
English (en)
Other versions
TW201935358A (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 神雲科技股份有限公司
Priority to TW107105507A priority Critical patent/TWI675340B/zh
Publication of TW201935358A publication Critical patent/TW201935358A/zh
Application granted granted Critical
Publication of TWI675340B publication Critical patent/TWI675340B/zh

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

一種程式驗證方法,由一電腦裝置來實施,包含:(A)執行一韌體以產生一命令解釋環境;(B)於該命令解釋環境下,在接收到一相關於一目標程式的執行指令後,根據所儲存的一系統管理資料的一系統時間,及一時間區間對解密方式的查找表,獲得涵蓋有該系統時間之時間區間所對應的解密方式,及對應於該目標程式且對應於該解密方式所對應之加密方式的加密授權資料;(C)根據該解密方式,解密該加密授權資料,以產生解密授權資料;及(D)根據該系統管理資料中之對應該目標程式的第一詮釋資料及該解密授權資料,產生一指示出該目標程式是否合法的授權訊息。

Description

程式驗證方法
本發明是有關於一種驗證資料完整性的方法,特別是指一種用於可擴展韌體介面的程式驗證方法。
為了免除基本輸入/輸出系統(Basic Input/Output system, BIOS)的先天限制,英特爾公司(Intel Corporation)發展出一種可延伸式韌體介面(Extensible Firmware Interface, EFI)規格,EFI是一種個人電腦系統的規格,可使用標準的程式語言工具加入新元件,具有更佳的擴充性,由於EFI係以C語言的模組化架構,比使用組合語言的BIOS更有彈性,程式更容易維護、閱讀。
EFI為用於聯繫作業系統(operating system, OS)以及提供連接作業系統與硬體的介面,當EFI所有元件載入完畢時,便會啟動一個類似於作業系統殼層(Shell)的命令解釋環境(即EFI Shell),在EFI Shell中,使用者可以掛載執行任何EFI應用程式或EFI驅動程式,這些程式可以是硬體檢測及除錯軟體、開機管理軟體、設定軟體、作業系統的啟動程式等等。然,這些程式可能為駭客以惡意軟體所植入的惡意程式,因此,現有的電腦裝置會預先儲存對應這些程式的授權資料,以使電腦裝置透過授權資料驗證所對應的這些程式是否合法。
然而,現有的授權資料沒有妥善的保護機制,授權資料可能會外流,且內容可能會被解析,而被駭客偽造非法的授權資料。
因此,本發明的目的,即在提供一種具有保護機制的程式驗證方法。
於是,本發明程式驗證方法由一電腦裝置來實施,該電腦裝置與一儲存裝置電連接,並儲存有一韌體、多個程式、一時間區間對解密方式的查找表,及系統管理資料,該系統管理資料包括一相關於該電腦裝置當前時間的系統時間,及多筆分別對應該等程式的第一詮釋資料,該儲存裝置儲存有每一程式各自所對應的多筆加密授權資料,每一程式各自所對應的該等加密授權資料分別對應多種加密方式,該查找表包括多個時間區間,及多個分別對應該等時間區間且分別對應該等加密方式的解密方式,該程式驗證方法包含一步驟(A)、一步驟(B)、一步驟(C),及一步驟(D)。
在該步驟(A)中,該電腦裝置執行該韌體以產生一命令解釋環境。
在該步驟(B)中,該電腦裝置於該命令解釋環境下,在接收到一相關於一目標程式的執行指令後,根據該系統管理資料的該系統時間及該查找表,獲得涵蓋有該系統時間之時間區間所對應的解密方式,及對應於該目標程式且對應於該解密方式所對應之加密方式的加密授權資料,其中該目標程式為該等程式之一者。
在該步驟(C)中,該電腦裝置根據步驟(B)所獲得的該解密方式,解密步驟(B)所獲得的該加密授權資料,以產生解密授權資料。
在該步驟(D)中,該電腦裝置根據該系統管理資料中之對應該目標程式的第一詮釋資料及該解密授權資料,產生一指示出該目標程式是否合法的授權訊息。
本發明之功效在於:藉由該處理單元根據該系統時間及該查找表獲得該解密方式及該加密授權資料,並根據該解密方式,解密該加密授權資料,以產生該解密授權資料,最後根據該系統管理資料的該第一詮釋資料及該解密授權資料產生指示出該目標程式是否合法的該授權訊息,提高授權資料的安全性,以避免偽造授權資料的情形發生。
參閱圖1,說明用來實施本發明程式驗證方法之一實施例的一電腦裝置100,該電腦裝置100包含一儲存單元11,及一電連接該儲存單元11的處理單元12,該電腦裝置100電連接一儲存裝置200。在本實施例中,該儲存單元11例如為快閃記憶體(Flash Memory),該儲存裝置200例如為外接硬碟(External hard drive),在其他實施方式中,該儲存單元11可為電子可抹除可程式化唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory, EEPROM),不以此為限。
該儲存單元11儲存有一韌體、多個程式、一時間區間對解密方式的查找表、多個分別對應多種不同加密演算法的解密金鑰,及系統管理資料。該查找表包括多個時間區間,及多個分別對應該等時間區間且分別對應多種加密方式的解密方式,每一加密方式對應多個對應該等加密演算法的加密金鑰之至少二者,並指示出一相關於該加密方式所對應的加密金鑰的加密順序,每一解密方式對應該至少二加密金鑰所對應的加密演算法對應的解密金鑰,並指示出一相關於該解密方式所對應的解密金鑰的解密順序,表1示例出該查找表。值得注意的是,在其他實施方式中,每一解密方式係對應該等解密金鑰之一對應者,不以此為限。該系統管理資料包括一相關於該電腦裝置100當前時間的系統時間,及多筆分別對應該等程式的第一詮釋資料,每一第一詮釋資料具有一第一產品名稱及第一客戶名稱之其中至少一者。在本實施例中,該韌體例如為BIOS,該等程式例如為EFI應用程式或EFI驅動程式,該等加密演算法例如為RSA加密演算法、進階加密標準(Advanced Encryption Standard, AES)加密演算法、資料加密標準(Data Encryption Standard, DES)加密演算法,及三重資料加密標準(Triple Data Encryption Standard, 3DES)加密演算法,該系統管理資料例如為系统管理基本輸入/輸出系統(System Management BIOS, SMBIOS)資料。 表1
時間區間 解密方式
1月~3月 RSA, AES, 3DES, DES
4月~6月 RSA, 3DES, AES, DES
7月~9月 RSA, 3DES, DES, AES
10月~12月 AES, RSA, 3DES, DES
該儲存裝置200儲存有每一程式各自所對應的多筆加密授權資料,每一程式各自所對應的該等加密授權資料分別對應該等加密方式,每一加密授權資料包括第二詮釋資料及一授權期間,每一第二詮釋資料具有一第二產品名稱及一第二客戶名稱之其中至少一者。
參閱圖1及圖2,說明該電腦裝置100如何執行本發明程式驗證方法之該實施例。以下詳細說明該實施例所包含的步驟。
在步驟301中,該處理單元12執行該儲存單元11儲存的該韌體以產生一命令解釋環境,在實施例中,該命令解釋環境例如為EFI Shell。
在步驟302中,該處理單元12於該命令解釋環境下,在接收到一相關於一目標程式的執行指令後,該處理單元12根據該系統管理資料的該系統時間及該查找表,獲得涵蓋有該系統時間之時間區間所對應的解密方式,及該儲存裝置200中對應於該目標程式且對應於該解密方式所對應之加密方式的加密授權資料,其中該目標程式為該等程式之一者。舉例來說,若該系統時間為2018/1/1,該處理單元12根據表1可獲得該解密方式所指示出的解密順序為RSA, AES, 3DES, DES,再根據該解密方式可獲得對應該目標程式且以DES, 3DES, AES, RSA的加密方式加密的該加密授權資料。
在步驟303中,該處理單元12取得步驟302所獲得的該解密方式所對應的解密金鑰及該解密順序,並根據該解密金鑰及該解密順序解密步驟302所獲得的該加密授權資料,以產生解密授權資料。值得注意的是,在其他每一解密方式對應該等解密金鑰之一對應者的實施方式中,該處理單元12係僅根據該解密方式所對應的解密金鑰解密該加密授權資料,且該解密授權資料為解密後的加密授權資料,因此該解密授權資料也包括解密後的第二詮釋資料及一授權期間。
在步驟304中,該處理單元12判定對應該目標程式的第一詮釋資料與第二詮釋資料是否匹配,亦即判定該第一詮釋資料的該第一產品名稱及該第一客戶名稱之至少一者是否與該第二詮釋資料的該第二產品名稱及該第二客戶名稱之至少一者相同。當該處理單元12判定出該第一詮釋資料與該第二詮釋資料匹配時,進行步驟305;而當該處理單元12判定出該第一詮釋資料與該第二詮釋資料不匹配時,進行步驟307。
在步驟305中,該處理單元12判定該系統管理資料的該系統時間是否在該解密授權資料的該授權期間內。當該處理單元12判定出該系統時間在該授權期間內時,進行步驟306;而當該處理單元12判定出該系統時間不在該授權期間內時,進行步驟307。舉例來說,若該系統時間為2018/1/1,該授權期間為2016/1/1~2018/12/31,該系統時間在該授權期間內,而若該授權期間為2016/1/1~2017/12/31,則該系統時間不在該授權期間內。
在步驟306中,該處理單元12產生一指示出該目標程式合法的授權訊息。
在步驟307中,該處理單元12產生一指示出該目標程式非法的授權訊息,並移除該目標程式。
要特別注意的是,在本實施例中,在該處理單元12執行步驟302後,若在一預設時間內未產生任何授權訊息,則該處理單元12直接進行步驟307。
綜上所述,本發明程式驗證方法,藉由該處理單元12根據該系統時間及該查找表獲得該解密方式及該加密授權資料,並根據該解密方式,解密該加密授權資料,以產生該解密授權資料。最後根據該系統時間、該系統管理資料的該第一詮釋資料及該解密授權資料的該第二詮釋資料產生指示出該目標程式是否合法的該授權訊息,提高授權資料的安全性,以避免偽造授權資料的情形發生,故確實能達成本發明的目的。
惟以上所述者,僅為本發明的實施例而已,當不能以此限定本發明實施的範圍,凡是依本發明申請專利範圍及專利說明書內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。
100 電腦裝置
11 儲存單元
12 處理單元
200 儲存裝置
301~307 步驟
本發明的其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:  圖1是一方塊圖,示例地繪示一用來實施本發明程式驗證方法之一實施例的電腦裝置;及  圖2是一流程圖,說明本發明程式驗證方法的該實施例。

Claims (6)

  1. 一種程式驗證方法由一電腦裝置來實施,該電腦裝置與一儲存裝置電連接,並儲存有一韌體、多個程式、一時間區間對解密方式的查找表、系統管理資料,及多個分別對應多種不同加密演算法的解密金鑰,該系統管理資料包括一相關於該電腦裝置當前時間的系統時間,及多筆分別對應該等程式的第一詮釋資料,該儲存裝置儲存有每一程式各自所對應的多筆加密授權資料,每一程式各自所對應的該等加密授權資料分別對應多種加密方式,該查找表包括多個時間區間,及多個分別對應該等時間區間且分別對應該等加密方式的解密方式,每一解密方式對應該等解密金鑰之至少二者,並指示出一相關於該解密方式所對應的解密金鑰的解密順序,該程式驗證方法包含以下步驟:(A)執行該韌體以產生一命令解釋環境;(B)於該命令解釋環境下,在接收到一相關於一目標程式的執行指令後,根據該系統管理資料的該系統時間及該查找表,獲得涵蓋有該系統時間之時間區間所對應的解密方式,及對應於該目標程式且對應於該解密方式所對應之加密方式的加密授權資料,其中該目標程式為該等程式之一者;(C)根據步驟(B)所獲得的該解密方式所對應的解密金鑰及該解密順序,解密步驟(B)所獲得的該加密授權資料,以產生解密授權資料;及(D)根據該系統管理資料中之對應該目標程式的第一 詮釋資料及該解密授權資料,產生一指示出該目標程式是否合法的授權訊息。
  2. 如請求項1所述的程式驗證方法,該電腦裝置還儲存有多個分別對應多種不同加密演算法的解密金鑰,每一解密方式對應該等解密金鑰之一對應者,其中,在步驟(C)中係根據該解密方式所對應的解密金鑰解密該加密授權資料。
  3. 如請求項1所述的程式驗證方法,每一加密授權資料包括第二詮釋資料,其中,步驟(D)包括以下子步驟:(D-1)判定對應該目標程式的第一詮釋資料與第二詮釋資料是否匹配;(D-2)當判定出該第一詮釋資料與該第二詮釋資料匹配時,產生一指示出該目標程式合法的授權訊息;及(D-3)當判定出該第一詮釋資料與該第二詮釋資料不匹配時,產生一指示出該目標程式非法的授權訊息。
  4. 如請求項3所述的程式驗證方法,其中,在步驟(D-1)中,該第一詮釋資料具有一第一產品名稱及第一客戶名稱之其中至少一者,該第二詮釋資料具有一第二產品名稱及一第二客戶名稱之其中至少一者。
  5. 如請求項3所述的程式驗證方法,每一加密授權資料還包括一授權期間,其中,在子步驟(D-1)及(D-2)間步驟(D)還包括以下子步驟:(D-4)判定該系統管理資料的該系統時間是否在該解密授權資料的該授權期間內;在子步驟(D-2)中當判定出該第一詮釋資料與該第二詮釋 資料匹配且該系統時間在該授權期間內時,產生指示出該目標程式合法的該授權訊息,且在子步驟(D-4)後步驟(D)還包括以下子步驟:(D-5)當判定出該系統時間不在該授權期間內時,產生指示出該目標程式非法的該授權訊息。
  6. 如請求項1所述的程式驗證方法,其中,在步驟(A)中,該命令解釋環境為可擴展韌體介面指令殼層。
TW107105507A 2018-02-14 2018-02-14 程式驗證方法 TWI675340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW107105507A TWI675340B (zh) 2018-02-14 2018-02-14 程式驗證方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107105507A TWI675340B (zh) 2018-02-14 2018-02-14 程式驗證方法

Publications (2)

Publication Number Publication Date
TW201935358A TW201935358A (zh) 2019-09-01
TWI675340B true TWI675340B (zh) 2019-10-21

Family

ID=68618319

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107105507A TWI675340B (zh) 2018-02-14 2018-02-14 程式驗證方法

Country Status (1)

Country Link
TW (1) TWI675340B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321701A (zh) * 2018-03-29 2019-10-11 佛山市顺德区顺达电脑厂有限公司 程序验证方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1310464C (zh) * 2002-09-24 2007-04-11 黎明网络有限公司 一种基于公开密钥体系的数据安全传输的方法及其装置
CN103164244A (zh) * 2013-03-15 2013-06-19 南京工业大学 一种基于通用可扩展固件接口的固件系统远程更新方法
CN103714273A (zh) * 2013-12-31 2014-04-09 深圳市兴邦创新信息技术有限公司 一种基于在线动态授权的软件授权系统及方法
CN105471810A (zh) * 2014-05-28 2016-04-06 北京奇虎科技有限公司 软件授权信息的验证方法及系统
CN107169344A (zh) * 2017-05-10 2017-09-15 威盛电子股份有限公司 阻挡非授权应用程序的方法以及使用该方法的装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1310464C (zh) * 2002-09-24 2007-04-11 黎明网络有限公司 一种基于公开密钥体系的数据安全传输的方法及其装置
CN103164244A (zh) * 2013-03-15 2013-06-19 南京工业大学 一种基于通用可扩展固件接口的固件系统远程更新方法
CN103714273A (zh) * 2013-12-31 2014-04-09 深圳市兴邦创新信息技术有限公司 一种基于在线动态授权的软件授权系统及方法
CN105471810A (zh) * 2014-05-28 2016-04-06 北京奇虎科技有限公司 软件授权信息的验证方法及系统
CN107169344A (zh) * 2017-05-10 2017-09-15 威盛电子股份有限公司 阻挡非授权应用程序的方法以及使用该方法的装置

Also Published As

Publication number Publication date
TW201935358A (zh) 2019-09-01

Similar Documents

Publication Publication Date Title
US10931451B2 (en) Securely recovering a computing device
US8209542B2 (en) Methods and apparatus for authenticating components of processing systems
US8364975B2 (en) Methods and apparatus for protecting data
CN109669734B (zh) 用于启动设备的方法和装置
US8826405B2 (en) Trusting an unverified code image in a computing device
US8775784B2 (en) Secure boot up of a computer based on a hardware based root of trust
US11550877B2 (en) Root of trust
KR101209252B1 (ko) 전자기기의 부팅 방법 및 부팅 인증 방법
US8560820B2 (en) Single security model in booting a computing device
JP4027738B2 (ja) デジタルデバイスのセキュリティを守るための、安全なブートローダー
US8688967B2 (en) Secure booting a computing device
JP5635539B2 (ja) リモートプリブート認証
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
US20100082960A1 (en) Protected network boot of operating system
US20090259855A1 (en) Code Image Personalization For A Computing Device
WO2020076408A2 (en) Trusted booting by hardware root of trust (hrot) device
EP3588354A1 (en) Automatic verification method and system
US8108905B2 (en) System and method for an isolated process to control address translation
CN110674525A (zh) 一种电子设备及其文件处理方法
TWI675340B (zh) 程式驗證方法
CN114816549A (zh) 一种保护bootloader及其环境变量的方法及系统
KR101765209B1 (ko) 안전 부팅 장치 및 방법