TWI691858B - 應用程式的驗證方法、電腦裝置及其主機板 - Google Patents
應用程式的驗證方法、電腦裝置及其主機板 Download PDFInfo
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
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所述之應用程式的驗證方法,其中該詢問值為一亂數、一預設固定值及該電腦裝置的一硬體識別碼的至少其中之一。
- 如請求項1所述之應用程式的驗證方法,其中當驗證不通過,該應用程式停止運作、或發出警示訊號、或停止運作並發出警示訊號。
- 如請求項1所述之應用程式的驗證方法,其中當驗證通過,該應用程式正常執行。
- 如請求項1所述之應用程式的驗證方法,其中傳送該詢問值的步驟包括:該應用程式將該詢問值寫入該電腦裝置的一輸入輸出埠,以觸發一系統管理中斷,使得該電腦裝置進入一系統管理模式,該基本輸入輸出系統從該輸入輸出埠讀取該詢問值。
- 如請求項5所述之應用程式的驗證方法,其中傳送該第一驗證碼的步驟包括:該基本輸入輸出系統將該第一驗證碼寫入該輸入輸出埠後,該電腦裝置離開該系統管理模式,該應用程式從該輸入輸出埠讀取該第一驗證碼。
- 如請求項1之應用程式的驗證方法,其中該第一時間參數及第二時間參數關於一時間中的數字部分。
- 一種電腦裝置,包括一主機板且安裝一應用程式,該主機板至少具有一基本輸入輸出系統、一輸入輸出埠及一計時器,其中該基本輸入輸出系統與該應用程式執行如請求項1至7任一項所述的驗證方法。
- 一種電腦主機板,具有一基本輸入輸出系統、一輸入輸出埠及一計時器,該基本輸入輸出系統執行以下步驟:在一應用程式所觸發的一系統管理模式下,從該輸入輸出埠讀取該應用程式所寫入之一詢問值;從該計時器取得一第一時間參數,並藉由一運算機制將該第一時間參數及該詢問值轉換成一第一驗證碼;及 將該第一驗證碼寫入該輸入輸出埠,並結束該系統管理模式。
- 如請求項9所述的電腦主機板,其中該第一時間參數關於一時間中的數字部分。
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)
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 |
-
2018
- 2018-12-26 TW TW107147091A patent/TWI691858B/zh active
Patent Citations (5)
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) | 一种用于安全环境的处理器 | |
RU2007122339A (ru) | Изолированное вычислительное окружение, привязанное к центральному процессору и материнской плате | |
US8103592B2 (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 | |
US11966461B2 (en) | Virtual environment type validation for policy enforcement | |
US10776493B2 (en) | Secure management and execution of computing code including firmware | |
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 | |
Unnibhavi et al. | Secure and Policy-Compliant Query Processing on Heterogeneous Computational Storage Architectures | |
Nunes et al. | Privacy-from-birth: Protecting sensed data from malicious sensors with VERSA | |
TWI691858B (zh) | 應用程式的驗證方法、電腦裝置及其主機板 | |
Rajput et al. | {ICSPatch}: Automated Vulnerability Localization and {Non-Intrusive} Hotpatching in Industrial Control Systems using Data Dependence Graphs | |
US20170316471A1 (en) | Method and system to decrease measured usage license charges for diagnostic data collection | |
CN111368264A (zh) | 应用程序的验证方法、电脑装置及其主机板 | |
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 | |
Zhang et al. | DRSA: Debug Register-Based Self-relocating Attack Against Software-Based Remote Authentication | |
CN116028165A (zh) | 应用和设备之间的事务处理过程 |