TWI691858B - 應用程式的驗證方法、電腦裝置及其主機板 - Google Patents

應用程式的驗證方法、電腦裝置及其主機板 Download PDF

Info

Publication number
TWI691858B
TWI691858B TW107147091A TW107147091A TWI691858B TW I691858 B TWI691858 B TW I691858B TW 107147091 A TW107147091 A TW 107147091A TW 107147091 A TW107147091 A TW 107147091A TW I691858 B TWI691858 B TW I691858B
Authority
TW
Taiwan
Prior art keywords
application program
verification
application
time parameter
input
Prior art date
Application number
TW107147091A
Other languages
English (en)
Other versions
TW202024979A (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 TW107147091A priority Critical patent/TWI691858B/zh
Application granted granted Critical
Publication of TWI691858B publication Critical patent/TWI691858B/zh
Publication of TW202024979A publication Critical patent/TW202024979A/zh

Links

Images

Abstract

本發明揭露一種應用程式的驗證方法、電腦裝置及其主機板,應用程式安裝於具有一基本輸入輸出系統及一計時器的一電腦裝置,驗證方法包括:應用程式傳送一詢問值至基本輸入輸出系統。基本輸入輸出系統從計時器取得第一時間參數,並藉由運算機制將第一時間參數及詢問值轉換成第一驗證碼,及將第一驗證碼傳送至應用程式,應用程式從計時器取得第二時間參數,並藉由運算機制將第二時間參數及詢問值轉換成第二驗證碼。應用程式於接收到該第一驗證碼後比對第一驗證碼及第二驗證碼,若兩者相等或相差小於一臨界值則通過驗證,否則不通過驗證。

Description

應用程式的驗證方法、電腦裝置及其主機板
本發明與驗證方法有關,尤指一種應用程式的驗證方法、電腦裝置及其主機板。
現有的應用程式基於智慧財產權保護,通常會限定可合法使用它的電腦裝置,避免應用程式被複製到其它不合法(未經合法授權)的電腦裝置上使用。為達到這個目的,目前已有綁定硬體資訊的保護機制,在此機制中,應用程式一被啟動就會先讀取並驗證安裝它的電腦裝置中的硬體資訊,例如中央處理器編碼、硬碟序號等等,並只在驗證通過時才允許該電腦裝置正常執行它。這種機制雖可將應用程式與可正常執行它的合法電腦裝置綁定在一起,但因硬體資訊缺乏動態變化,故容易遭到破解,使得有心人士可恣意地將應用程式安裝到任意的電腦裝置上使用。
為解決過去驗證硬體資訊之應用程式保護機制易被破解的問題,本發明提供一種新的應用程式驗證方法,該驗證方法採取動態溝通機制而不易破解,可提高驗證上的安全性,有效避免應用程式被複製到其它不合法的電腦裝置上使用。
應用程式安裝於具有一基本輸入輸出系統及一計時 器的一電腦裝置,驗證方法包括:應用程式傳送一詢問值至基本輸入輸出系統。基本輸入輸出系統從計時器取得第一時間參數,並藉由運算機制將第一時間參數及詢問值轉換成第一驗證碼,及將第一驗證碼傳送至應用程式,應用程式從計時器取得第二時間參數,並藉由運算機制將第二時間參數及詢問值轉換成第二驗證碼。應用程式於接收到該第一驗證碼後比對第一驗證碼及第二驗證碼,若兩者相等或相差小於一臨界值則通過驗證,否則不通過驗證。
在一實施例中,本發明應用程式之驗證方法的詢問值為一亂數、一預設固定值及電腦裝置的一硬體識別碼的至少其中之一。
在一實施例中,本發明應用程式之驗證方法當驗證不通過,應用程式停止運作、或發出警示訊號、或停止運作並發出警示訊號。
在一實施例中,本發明應用程式之驗證方法當驗證通過,應用程式正常執行。
在一實施例中,本發明應用程式之驗證方法傳送詢問值的步驟包括:應用程式將詢問值寫入電腦裝置的一輸入輸出埠,以觸發一系統管理中斷,使得電腦裝置進入一系統管理模式,基本輸入輸出系統從輸入輸出埠讀取詢問值。
在一實施例中,本發明應用程式之驗證方法傳送第一驗證碼的步驟包括:基本輸入輸出系統將第一驗證碼寫入輸入輸出埠後,電腦裝置離開系統管理模式,應用程式從輸入輸出埠讀取第一驗證碼。
在一實施例中,本發明應用程式之驗證方法的第一時間參數及第二時間參數關於時間中的數字部分。
本發明另提供一種電腦裝置,其包括一主機板且安裝一應用程式,該主機板至少具有一基本輸入輸出系統、一輸入輸出埠及一計時器。其中,該基本輸入輸出系統與該應用程式用於執行上述驗證方法。
本發明另提供一種電腦主機板,具有一基本輸入輸出系統、一輸入輸出埠及一計時器,基本輸入輸出系統執行以下步驟:在一應用程式所觸發的一系統管理模式下,從輸入輸出埠讀取應用程式所寫入之一詢問值;從計時器取得一第一時間參數,並藉由一運算機制將第一時間參數及詢問值轉換成一第一驗證碼;及將第一驗證碼寫入輸入輸出埠後,並結束系統管理模式。
在一實施例中,本發明電腦主機板中的第一時間參數關於一時間中的數字部分。
承上所述,本發明應用程式的驗證方法係為一種雙向動態的加密機制,藉由轉換時間參數,達到動態加密的效果,進一步達到綁定應用程式與硬體的功能,據此可廣泛應用於各種電腦裝置及電腦主機板中。
1:電腦裝置
11:主機板
111:基本輸入輸出系統
112:輸入輸出埠
113:計時器
2:應用程式
a、b、c、a1~a2、b1~b3:步驟
圖1顯示本發明方法之一較佳實施例的流程圖。
圖2顯示執行本發明方法之一電腦裝置的方塊圖。
圖3顯示本發明方法之應用程式傳送詢問值之步驟的流程圖。
圖4顯示本發明方法之應用程式傳送第一驗證碼至應用程式之步驟的流程圖。
圖1顯示本發明之應用程式的驗證方法的一個較佳實施例,驗證方法由圖2所示的一電腦裝置1執行,電腦裝置1包括一主機板11,主機板11至少具有一基本輸入輸出系統(BIOS)111、一輸入輸出埠(I/O port)112及一計時器(例如RTC)113。應用程式2安裝於電腦裝置1。
如圖1所示,驗證方法包括以下步驟a~c:
步驟a:應用程式2傳送一詢問值至基本輸入輸出系統111。
步驟b:基本輸入輸出系統111從計時器113取得一第一時間參數,並藉由一運算機制將第一時間參數及詢問值轉換成一第一驗證碼,及將第一驗證碼傳送至應用程式2,應用程式2從計時器113取得一第二時間參數,並藉由運算機制將第二時間參數及詢問值轉換成一第二驗證碼。需注意的是,於此處所揭露取得第一時間參數以及取得第二時間參數在時間上並無差異,亦即,當基本輸入輸出系統111從計時器113取得第一時間參數時,應用程式2亦從計時器113取得第二時間參數,並無先後取得順序的差異。
步驟c:應用程式2於接收到該第一驗證碼後比對第一驗證碼及第二驗證碼,若兩者相等或相差小於一臨界值則通過驗證,否則不通過驗證。其中,若驗證通過,應用程式2正常執行,亦即,應用程式2繼續執行其原本應進行之功能。若不通過驗證,則應用程式2停止運作、或發出警示訊號、或停止運作並發出警示訊號。
上述詢問值可為應用程式2產生的一亂數、一預設固定值及電腦裝置1的硬體識別碼(例如中央處理器編碼、硬碟序號)的至少其中之一,但不以此為限。
上述第一時間參數及第二時間參數關於一時間中的數字部分,例如秒數、分秒數、時分秒數、日時分秒數、年日時分秒數、或前述的任意組合。舉例來說,若基本輸入輸出系統111取得第一時間參數(或應用程式2取得第二時間參數)的時間是:「2018年12月1日上午8點55分28秒」,則第一時間參數(或第二時間參數)可以是其中的秒數「28」,或是其中的分秒數「5528」,或是其中的時分秒數「085528」、或是其中的日時分秒數「015528」,或是其中的月日時分秒數「12015528」、或是其中的年月日時分秒數「201812015528」,此外,也可以是前述數字中的某一種組合,例如月數與秒數之組合「1228」,但不以此為限。 基。。
如圖3所示,上述應用程式2傳送詢問值的步驟a可包括以下步驟a1~a2:
步驟a1:應用程式2將詢問值寫入電腦裝置1的輸入輸出埠112,例如I/O port B2,以觸發一系統管理中斷(SMI:System Management Interrupt),使得電腦裝置1的一中央處理器(CPU)110進入到一系統管理模式(SMM:System Management Mode),在此模式下,電腦裝置1的控制權轉移至基本輸入輸出系統111,使得基本輸入輸出系統111得以執行隨後的步驟a2及上述步驟b。
步驟a2:基本輸入輸出系統111從輸入輸出埠112讀取詢問值。
基本輸入輸出系統111讀取到詢問值,即如上述步驟b,將詢問值與第一時間參數轉換成第一驗證碼,並傳送第一驗證碼至應用程式2,如圖4所示,傳送的步驟包括以下步驟b1、b2及b3。
步驟b1:基本輸入輸出系統111將第一驗證碼寫入輸入輸出埠112。
步驟b2:電腦裝置1離開系統管理模式,例如執行RSM指令,以使電腦裝置1離開系統管理模式,此時,控制權移回電腦裝置1的一作業系統,使得應用程式2得以執行隨後的步驟b3及上述的步驟b與c。
步驟b3:應用程式2從輸入輸出埠112讀取第一驗證碼。接著,應用程式2即如上述步驟b與c所述,產生第二驗證碼,並進行驗證。
由於上述應用程式驗證方法的整個驗證流程所需運算時間極短,通常是在1秒以內,因此,應用程式2從計時器113取得第二時間參數的時間點,通常會跟基本輸入輸出系統111從計時器113取得第一時間參數的時間點相差不到1秒,而第一、二時 間參數都是取到秒數,不是毫秒、微秒或更小,因此,基本輸入輸出系統111與應用程式2兩者在計時器113的最小計時單位內分別所取得的第一時間參數通常會等於第二時間參數。然而,考慮到運算時間有可能延遲,故允許第一時間參數與第二時間參數相差小於一臨界值,例如相差小於1~5秒其中任一者。
此外,上述的步驟b3中,應用程式2亦可設定在一段預設時間後從輸入輸出埠112讀取第一驗證碼。例如,設定2秒的預設時間,其並不限定在步驟b2之後,應用程式2隨即從輸入輸出埠112讀取第一驗證碼。
於運算上述第一、二驗證碼時,基本輸入輸出系統111與應用程式2都是採取相同的運算機制,例如將詢問值與第一時間參數(或第二時間參數)相加、相減、相乘或相除,但不以此為限。另外,運算機制還可進一步包含加密運算。
於實際的運用中,本發明上述驗證方法可以在應用程式2啟動時進行,也可選擇在應用程式2執行期間進行一或多次,例如在應用程式2中任意選擇數個程式點來進行上述驗證方法。
以遊戲的應用程式為例,遊戲可以在啟動時、遊戲過程中,或者啟動時以及遊戲過程中執行上述驗證方法。若遊戲啟動時,進行遊戲的驗證,在遊戲通過驗證時,遊戲則正常執行。若遊戲不通過驗證,則強制遊戲結束而無法啟動,或者遊戲仍可啟動,但在遊戲過程中發出警示訊號,或者強制遊戲結束及/或發出警示訊號。
此外,本發明應用程式的驗證方法可根據不同的程式指令、運算機制或者兩者的結合綁定特定對應的電腦裝置。進一步而言,上述步驟a1中,應用程式2將詢問值寫入電腦裝置1的輸入輸出埠112,其係藉由指令(command)連同詢問值寫入至電腦裝置1的輸入輸出埠112中,而不同的指令係對應至不同的應用程式2,以便於綁定特定對應的電腦裝置。相似地,藉由不同的運算機制可 綁定特定對應的電腦裝置。
綜上所述可知,本發明上述驗證方法一方面要求應用程式2需額外執行上述步驟中的一些事項,一方面也要求基本輸入輸出系統111需額外執行上述步驟中的另一些事項,兩者密切搭配始能完成驗證,換言之,電腦裝置1與應用程式2已藉此方式完成互相綁定,其它無法配合執行上述驗證方法或執行但無法通驗證的不合法電腦裝置,緃使安裝了應用程式2也無法正常執行,故本發明上述驗證方法確實可有效避免應用程式2被複製到不合法電腦裝置上使用。再者,由於上述第一驗證碼及第二驗證碼中都是從具有動態變化的時間參數運算得到的,故均為一種動態驗證碼而不容易破解,此外,第一驗證碼及第二驗證碼還轉換了詢問值,在詢問值為亂數的情況下,其動態變化更難猜測而更不容易破解,故本發明上述驗證方法,具有安全性高而不易破解的優點,更可廣泛應用於各種電腦裝置及電腦主機板中。
a、b、c:步驟

Claims (10)

  1. 一種應用程式的驗證方法,該應用程式安裝於具有一基本輸入輸出系統及一計時器的一電腦裝置,該驗證方法包括:該應用程式傳送一詢問值至該基本輸入輸出系統;該基本輸入輸出系統從該計時器取得一第一時間參數,且藉由一運算機制將該第一時間參數及該詢問值轉換成一第一驗證碼,及將該第一驗證碼傳送至該應用程式,該應用程式從該計時器取得一第二時間參數,並藉由該運算機制將該第二時間參數及該詢問值轉換成一第二驗證碼;以及該應用程式於接收到該第一驗證碼後比對該第一驗證碼及該第二驗證碼,若兩者相等或相差小於一臨界值則通過驗證,否則不通過驗證。
  2. 如請求項1所述之應用程式的驗證方法,其中該詢問值為一亂數、一預設固定值及該電腦裝置的一硬體識別碼的至少其中之一。
  3. 如請求項1所述之應用程式的驗證方法,其中當驗證不通過,該應用程式停止運作、或發出警示訊號、或停止運作並發出警示訊號。
  4. 如請求項1所述之應用程式的驗證方法,其中當驗證通過,該應用程式正常執行。
  5. 如請求項1所述之應用程式的驗證方法,其中傳送該詢問值的步驟包括:該應用程式將該詢問值寫入該電腦裝置的一輸入輸出埠,以觸發一系統管理中斷,使得該電腦裝置進入一系統管理模式,該基本輸入輸出系統從該輸入輸出埠讀取該詢問值。
  6. 如請求項5所述之應用程式的驗證方法,其中傳送該第一驗證碼的步驟包括:該基本輸入輸出系統將該第一驗證碼寫入該輸入輸出埠後,該電腦裝置離開該系統管理模式,該應用程式從該輸入輸出埠讀取該第一驗證碼。
  7. 如請求項1之應用程式的驗證方法,其中該第一時間參數及第二時間參數關於一時間中的數字部分。
  8. 一種電腦裝置,包括一主機板且安裝一應用程式,該主機板至少具有一基本輸入輸出系統、一輸入輸出埠及一計時器,其中該基本輸入輸出系統與該應用程式執行如請求項1至7任一項所述的驗證方法。
  9. 一種電腦主機板,具有一基本輸入輸出系統、一輸入輸出埠及一計時器,該基本輸入輸出系統執行以下步驟:在一應用程式所觸發的一系統管理模式下,從該輸入輸出埠讀取該應用程式所寫入之一詢問值;從該計時器取得一第一時間參數,並藉由一運算機制將該第一時間參數及該詢問值轉換成一第一驗證碼;及 將該第一驗證碼寫入該輸入輸出埠,並結束該系統管理模式。
  10. 如請求項9所述的電腦主機板,其中該第一時間參數關於一時間中的數字部分。
TW107147091A 2018-12-26 2018-12-26 應用程式的驗證方法、電腦裝置及其主機板 TWI691858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW107147091A TWI691858B (zh) 2018-12-26 2018-12-26 應用程式的驗證方法、電腦裝置及其主機板

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107147091A TWI691858B (zh) 2018-12-26 2018-12-26 應用程式的驗證方法、電腦裝置及其主機板

Publications (2)

Publication Number Publication Date
TWI691858B true TWI691858B (zh) 2020-04-21
TW202024979A TW202024979A (zh) 2020-07-01

Family

ID=71132659

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107147091A TWI691858B (zh) 2018-12-26 2018-12-26 應用程式的驗證方法、電腦裝置及其主機板

Country Status (1)

Country Link
TW (1) TWI691858B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW589569B (en) * 2001-04-09 2004-06-01 Phoenix Tech Ltd Systems and methods for computer device authentication
TWI430131B (zh) * 2010-04-22 2014-03-11 Advantech Co Ltd 具有安全鎖之電腦系統與執行安全鎖之方法
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
TWI476622B (zh) * 2009-07-22 2015-03-11 Giga Byte Tech Co Ltd 電腦裝置安全性之管理方法
EP3001341A1 (en) * 2014-09-26 2016-03-30 Nxp B.V. NFC device, software installation method, software uninstallation method, computer program and article of manufacture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW589569B (en) * 2001-04-09 2004-06-01 Phoenix Tech Ltd Systems and methods for computer device authentication
TWI476622B (zh) * 2009-07-22 2015-03-11 Giga Byte Tech Co Ltd 電腦裝置安全性之管理方法
TWI430131B (zh) * 2010-04-22 2014-03-11 Advantech Co Ltd 具有安全鎖之電腦系統與執行安全鎖之方法
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
EP3001341A1 (en) * 2014-09-26 2016-03-30 Nxp B.V. NFC device, software installation method, software uninstallation method, computer program and article of manufacture

Also Published As

Publication number Publication date
TW202024979A (zh) 2020-07-01

Similar Documents

Publication Publication Date Title
US11507654B2 (en) Secure environment in a non-secure microcontroller
US7302590B2 (en) Systems and methods for providing time-and weight-based flexibly tolerant hardware ID
US7739517B2 (en) Hardware-based authentication of a software program
CN103559448B (zh) 一种用于安全环境的处理器
US8930705B1 (en) System and method for authenticating remote execution
RU2007122339A (ru) Изолированное вычислительное окружение, привязанное к центральному процессору и материнской плате
US8380634B2 (en) First computer process and second computer process proxy-executing code on behalf of first process
US20050132217A1 (en) Secure and backward-compatible processor and secure software execution thereon
US20070256138A1 (en) Computer-implemented method and system for binding digital rights management executable code to a software application
TW200941339A (en) Uses of known good code for implementing processor architectural modifications
US20200117804A1 (en) Secure management and execution of computing code including firmware
US11966461B2 (en) Virtual environment type validation for policy enforcement
Bognar et al. Mind the gap: Studying the insecurity of provably secure embedded trusted execution architectures
US10761922B2 (en) Method and system to decrease measured usage license charges for diagnostic data collection
TWI691858B (zh) 應用程式的驗證方法、電腦裝置及其主機板
Nunes et al. Privacy-from-birth: Protecting sensed data from malicious sensors with VERSA
US20170316471A1 (en) Method and system to decrease measured usage license charges for diagnostic data collection
WO2022148149A1 (zh) 一种许可证文件的管理方法、装置和设备
CN111368264A (zh) 应用程序的验证方法、电脑装置及其主机板
Rajput et al. {ICSPatch}: Automated Vulnerability Localization and {Non-Intrusive} Hotpatching in Industrial Control Systems using Data Dependence Graphs
Unnibhavi et al. Secure and Policy-Compliant Query Processing on Heterogeneous Computational Storage Architectures
JP7112449B2 (ja) 強制自己認証機能を備えたコンピューターシステム
Liu et al. Software Solution of Secure Debug Based on RISC-V CPU
TWI801856B (zh) 依於子程式執行之應用程式控管方法
Fang et al. InvisiGuard: Data Integrity for Microcontroller-Based Devices via Hardware-Triggered Write Monitoring