專利名稱:應用程序保護系統(tǒng)及方法
技術領域:
本發(fā)明是有關于一種應用程序保護系統(tǒng)及方法,且特別有關于一種提供硬件保護機制的應用程序保護系統(tǒng)及方法。
背景技術:
為了保護知識產權,一些應用程序通常會限定其使用的裝置,以避免應用程序被復制到不同的主機上使用。應用程序的保護可以是采用硬件保護機制。已知地,硬件保護機制可以透過搭配接口模塊(Dongle)與可信賴平臺模塊(Trusted PlatformModule,TPM)的使用,來避免應用程序同時在不同的主機上使用。
對于接口模塊而言,接口模塊中會記錄相應應用程序的確認數據,如授權信息或序列碼。接口模塊必須耦接至安裝此應用程序的主機。當應用程序執(zhí)行時,應用程序會自接口模塊中讀取數據,以確認接口模塊中的數據是否是有效的。若是,則繼續(xù)執(zhí)行應用程序。若否,則不允許應用程序繼續(xù)執(zhí)行??尚刨嚻脚_模塊是安裝于主機的主機板上。可信賴平臺模塊中可以儲存一憑據或金鑰。類似地,憑據或金鑰可以用來判斷是否執(zhí)行應用程序。
對于已知應用程序保護機制而言,接口模塊或應用程序中的保護碼是非常容易被移除的。此外,接口模塊是非常容易遺失的,或是被其他人取走。另外,由于可信賴平臺模塊要求系統(tǒng)輸入輸出系統(tǒng)(BIOS)的支持,大部分目前的主機都必須升級其系統(tǒng)輸入輸出系統(tǒng)來支持可信賴平臺模塊。對于使用者或廠商而言都是非常不便的。
發(fā)明內容
有鑒于此,本發(fā)明提供應用程序保護系統(tǒng)及方法。
本發(fā)明實施例的應用程序保護系統(tǒng)至少包括一安全平臺裝置。安全平臺裝置包括一儲存單元與一處理單元。儲存單元包括一根安全金鑰與一應用程序安全金鑰。安全平臺裝置自一應用程序接收一特定金鑰。處理單元利用根安全金鑰加密特定金鑰,且判斷加密后的特定金鑰是否符合應用程序安全金鑰。若是,允許應用程序執(zhí)行。
本發(fā)明實施例的應用程序保護方法,適用于具有一根安全金鑰與一應用程序安全金鑰的一安全平臺裝置。首先,自一應用程序接收一特定金鑰。利用根安全金鑰加密特定金鑰,且判斷加密后的特定金鑰是否符合應用程序安全金鑰。若是,允許應用程序執(zhí)行。
本發(fā)明上述方法可以透過程序碼方式收錄于實體介質中。當程序碼被機器載入且執(zhí)行時,機器變成用以實行本發(fā)明的裝置。
本發(fā)明所述的應用程序保護系統(tǒng)及方法,配合無線射頻識別碼的應用,可確保安全平臺裝置的最新有效狀態(tài),以有效保護應用程序。
圖1為一示意圖是顯示依據本發(fā)明實施例的應用程序保護系統(tǒng)。
圖2為一示意圖是顯示依據本發(fā)明實施例的儲存單元。
圖3為一流程圖是顯示依據本發(fā)明實施例的應用程序保護方法。
圖4為一流程圖是顯示依據本發(fā)明實施例的數據儲存方法。
圖5為一流程圖是顯示依據本發(fā)明實施例的數據存取方法。
圖6為一流程圖是顯示依據本發(fā)明實施例的安全檢查方法。
圖7為一流程圖是顯示依據本發(fā)明實施例的無線射頻識別碼確認方法。
具體實施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合所附圖示,詳細說明如下。
圖1顯示依據本發(fā)明實施例的應用程序保護系統(tǒng)。
如圖所示,依據本發(fā)明實施例的應用程序保護系統(tǒng)1000包括一應用程序1100與一安全平臺裝置1200。注意的是,安全平臺裝置1200耦接至執(zhí)行應用程序1100的主機(未顯示)。在一些實施例中,主機例如是一個人計算機或是一服務器,包含有運算單元,存儲器等裝置,可以執(zhí)行各種應用程序以達成該應用程序所設計的用途。安全平臺裝置1200可以耦接于主機的連接端口,或是設置于主機的主機板上。安全平臺裝置1200至少包括一處理單元1210、一儲存單元1220與一無線射頻識別碼(RFID)讀取器1230。處理單元1210是用以執(zhí)行本發(fā)明的應用程序保護方法,其細節(jié)將于后進行說明。
儲存單元1220是用以儲存應用程序1100與安全平臺裝置1200的相關數據。圖2顯示依據本發(fā)明實施例的儲存單元。儲存單元1220包括一根安全金鑰1221、一系統(tǒng)組態(tài)區(qū)1222、一應用程序安全金鑰1223與一安全區(qū)1224。根安全金鑰1221為出廠前事先進行編程的一金鑰。應用程序1100無法存取此根安全金鑰1221。系統(tǒng)組態(tài)區(qū)1222中包含系統(tǒng)信息,如系統(tǒng)模式、無線射頻識別碼信息、確認計數器、相應事件觸發(fā)的設定等。系統(tǒng)信息的細節(jié)將于后說明。應用程序1100包括一特定金鑰1110。初始時,應用程序1100將特定金鑰1110傳送至安全平臺裝置1200。處理單元1210利用根安全金鑰1221加密特定金鑰1110,成為應用程序安全金鑰1223,并將其儲存于儲存單元1220中。一旦應用程序安全金鑰1223產生之后,儲存至安全區(qū)1224中的數據皆必須先透過應用程序安全金鑰1223進行加密。
如前所述,儲存單元1220的系統(tǒng)組態(tài)區(qū)1222中可以包含相應事件觸發(fā)的設定。相應事件觸發(fā)的設定可以是由應用程序所設定。在一些實施例中,相應事件觸發(fā)設定的數據結構可以具有初始動作欄位、周期欄位、錯誤動作欄位與時間欄位等。舉例來說,初始動作欄位可以包括2位,其提供系統(tǒng)醒來(WakeUp)、關機(Shutdown)、安全檢查與更新無線射頻識別碼的設定。周期欄位可以包括2位,其提供特定時間、每日、每周與每月的設定。錯誤動作欄位可以包括3位,其提供不進行動作、安全檢查、設定定時炸彈、上鎖、關機等等的設定。時間欄位可以包括16位,其提供時間的詳細設定。
無線射頻識別碼讀取器1230可以依據事件觸發(fā)與/或定期,如每N分鐘產生一個安全無線射頻值,且利用此安全無線射頻值更新無線射頻識別碼(RFID)1231。安全無線射頻值是依據一目前的時間戳記與/或一校驗和產生。在一些實施例中,處理單元1210可以利用下述公式產生安全無線射頻值E(TS,CS),其中,TS為目前的時間戳記,CS是校驗和,且E表示金鑰為根安全金鑰1221的加密函數。無線射頻識別碼讀取器1230亦會讀取無線射頻識別碼1231。
圖3顯示依據本發(fā)明實施例的應用程序保護方法。
如步驟S302,一安全平臺裝置自一應用程序接收一特定金鑰。如步驟S304,利用安全平臺裝置中的一根安全金鑰加密特定金鑰,且如步驟S306,判斷加密后的特定金鑰是否符合安全平臺裝置中的一應用程序安全金鑰。若符合(步驟S306的是),如步驟S308,允許應用程序執(zhí)行,且如步驟S310,重置安全平臺裝置中的一確認計數器。若不符合(步驟S306的否),如步驟S312,不允許應用程序執(zhí)行,且如步驟S314,將安全平臺裝置中的確認計數器加一。之后,如步驟S316,判斷確認計數器是否超過一既定值。若否(步驟S316的否),結束流程。若是(步驟S316的是),如步驟S318,將安全平臺裝置系統(tǒng)模式切換至上鎖模式,以將安全平臺裝置鎖住。
圖4顯示依據本發(fā)明實施例的數據儲存方法。
如步驟S402,安全平臺裝置判斷是否自應用程序接收數據。若否(步驟S402的否),結束流程。若是(步驟S402的是),自應用程序接收數據。如步驟S404,利用安全平臺裝置中的根安全金鑰加密數據,且如步驟S406,將加密后的數據儲存至儲存單元的安全區(qū)中。
圖5顯示依據本發(fā)明實施例的數據存取方法。
如步驟S502,安全平臺裝置判斷是否自應用程序接收一數據存取指令。若否(步驟S502的否),結束流程。若是(步驟S502的是),自應用程序接收數據存取指令。如步驟S504,由儲存單元的安全區(qū)中擷取相應數據存取指令指定的數據,且利用安全平臺裝置中的根安全金鑰解密數據,且如步驟S506,將解密后的數據傳送至應用程序。
圖6顯示依據本發(fā)明實施例的安全檢查方法。值得注意的是,當安裝應用程序的主機或安全平臺裝置開機時與/或相應事件觸發(fā)時,則可以執(zhí)行安全檢查。
如步驟S602,確認安全平臺裝置中的根安全金鑰是否正確。在一些實施例中,確認根安全金鑰可以利用一特定的公式來進行驗證。若確認失敗(步驟S602的否),執(zhí)行步驟S608,進行錯誤動作。注意的是,錯誤動作的細節(jié)將于后說明。若確認正確(步驟S602的是),執(zhí)行步驟S604,確認安全平臺裝置中的應用程序安全金鑰是否正確。在一些實施例中,可以透過雜湊函數來驗證應用程序安全金鑰是否正確。若確認失敗(步驟S604的否),執(zhí)行步驟S608,進行錯誤動作。若確認正確(步驟S604的是),執(zhí)行步驟S606,確認無線射頻識別碼是否存在,且有效。若確認失敗,例如無線射頻識別碼不存在或無效時(步驟S606的否),執(zhí)行步驟S608,進行錯誤動作。若確認正確(步驟S606的是),結束流程。
上述安全檢查方法中所涉及的公式或函數,可利用現(xiàn)有的加密/解密的公式或算法實現(xiàn),其中加密/解密的技術為本領域技術人員利用現(xiàn)有技術可獲得。
圖7顯示依據本發(fā)明實施例的無線射頻識別碼確認方法。如步驟S702,安全平臺裝置自外部讀取無線射頻識別碼。若不存在(步驟S704的否),執(zhí)行步驟S706,確認失敗。若存在(步驟S706的是),執(zhí)行步驟S708,利用安全平臺裝置中的根安全金鑰解密無線射頻識別碼,從而得到一時間戳記與一校驗和。如步驟S710,判斷時間戳記是否有效,且校驗和是否正確。在一些實施例中,安全平臺裝置可以內定一既定時間區(qū)間,如M分鐘,且透過判斷時間戳記是否落于此既定時間區(qū)間之內,來判斷時間戳記是否有效。若時間戳記不有效或校驗和不正確(步驟S710的否),執(zhí)行步驟S706,確認失敗。若時間戳記有效且校驗和正確(步驟S710的是),結束流程。
必須說明的是,進行錯誤動作時可以致使安全平臺裝置進入不同的系統(tǒng)模式。在一些實施例中,不同的系統(tǒng)模式下可以鎖住安全平臺裝置、暫停安全平臺裝置、致使安全平臺裝置關機、致使安全平臺裝置進入休眠狀態(tài)一既定時間、刪除儲存單元中的應用程序安全金鑰或于安全平臺裝置中設置一定時炸彈,以當時間到時將安全平臺裝置破壞等等錯誤動作。值得注意的是,當安全平臺裝置被設置定時炸彈之后,應用程序可以在一既定時間之內提供正確的應用程序安全金鑰,以將定時炸彈解除。另外,當安全平臺裝置被鎖住時,安全平臺裝置停止將安全平臺裝置的儲存單元內所存在的數據輸出,確保安全平臺裝置內的數據安全。此時,應用程序可以提供一特定的解鎖金鑰至安全平臺裝置中。當安全平臺裝置接收到此解鎖金鑰之后,便會將安全平臺裝置自動解鎖。再者,當安全平臺裝置進入休眠狀態(tài)時,應用程序可以提供一特定的醒來指令至安全平臺裝置中。當安全平臺裝置接收到此醒來指令之后,安全平臺裝置將會恢復正常狀態(tài)。
因此,本發(fā)明的系統(tǒng)及方法可以對于應用程序進行保護。應用程序亦可將特定數據以加密形式儲存至安全平臺裝置中,以進一步達到數據保護的目的。另外,配合無線射頻識別碼的應用,更可確保安全平臺裝置的最新有效狀態(tài),以有效保護應用程序。
本發(fā)明的方法,或特定型態(tài)或其部分,可以以程序碼的型態(tài)包含于實體介質,如軟盤、光盤片、硬盤或是任何其他機器可讀取(如計算機可讀取)儲存介質,其中,當程序碼被機器,如計算機載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。本發(fā)明的方法與裝置也可以以程序碼型態(tài)透過一些傳送介質,如電線或電纜、光纖或是任何傳輸型態(tài)進行傳送,其中,當程序碼被機器,如計算機接收、載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。當在一般用途處理器實作時,程序碼結合處理器提供一操作類似于專用邏輯電路的獨特裝置。
以上所述僅為本發(fā)明較佳實施例,然其并非用以限定本發(fā)明的范圍,任何熟悉本項技術的人員,在不脫離本發(fā)明的精神和范圍內,可在此基礎上做進一步的改進和變化,因此本發(fā)明的保護范圍當以本申請的權利要求書所界定的范圍為準。
附圖中符號的簡單說明如下1000應用程序保護系統(tǒng)1100應用程序1110特定金鑰1200安全平臺裝置1210處理單元1220儲存單元1221根安全金鑰1222系統(tǒng)組態(tài)區(qū)1223應用程序安全金鑰1224安全區(qū)1230無線射頻識別碼讀取器1231無線射頻識別碼S302、S304、...、S318步驟S402、S404、S406步驟S502、S504、S 506步驟S602、S604、...、S608步驟S702、S704、...、S710步驟
權利要求
1.一種應用程序保護系統(tǒng),其特征在于,該應用程序保護系統(tǒng)至少包括一安全平臺裝置,包括一儲存單元,包括一根安全金鑰與一應用程序安全金鑰;以及一處理單元,自一應用程序接收一特定金鑰,利用該根安全金鑰加密該特定金鑰,且判斷加密后的該特定金鑰是否符合該應用程序安全金鑰,若是,允許該應用程序執(zhí)行。
2.根據權利要求1所述的應用程序保護系統(tǒng),其特征在于,該安全平臺裝置更自該應用程序接收一數據,該處理單元利用該根安全金鑰加密該數據,且將加密后的該數據儲存至該儲存單元中。
3.根據權利要求1所述的應用程序保護系統(tǒng),其特征在于,當耦接該安全平臺裝置的一主機開機時或相應至少一事件的觸發(fā)時,該處理單元更執(zhí)行一安全檢查,用以確認該根安全金鑰或該應用程序安全金鑰是否正確。
4.根據權利要求3所述的應用程序保護系統(tǒng),其特征在于,該安全平臺裝置更包括一無線射頻識別碼讀取器,用以自該安全平臺裝置外部讀取一無線射頻識別碼,且該安全檢查是利用該根安全金鑰解密該無線射頻識別碼,從而得到一第一時間戳記,且判斷該第一時間戳記是否有效。
5.根據權利要求4所述的應用程序保護系統(tǒng),其特征在于,該安全檢查是利用該根安全金鑰解密該無線射頻識別碼,從而更得到一第一校驗和,且判斷該第一校驗和是否正確。
6.根據權利要求5所述的應用程序保護系統(tǒng),其特征在于,該處理單元更定期利用該根安全金鑰加密一第二時間戳記與一第二校驗和,且依據加密后的該第二時間戳記與該第二校驗和更新該無線射頻識別碼。
7.一種應用程序保護方法,其特征在于,適用于具有一根安全金鑰與一應用程序安全金鑰的一安全平臺裝置,該應用程序保護方法包括下列步驟自一應用程序接收一特定金鑰;利用該根安全金鑰加密該特定金鑰;判斷加密后的該特定金鑰是否符合該應用程序安全金鑰;以及若是,允許該應用程序執(zhí)行。
8.根據權利要求7所述的應用程序保護方法,其特征在于,更包括下列步驟自該應用程序接收一數據;利用該根安全金鑰加密該數據;以及將加密后的該數據進行儲存。
9.根據權利要求7所述的應用程序保護方法,其特征在于,更包括下列步驟自該應用程序接收一數據存取指令,該數據存取指令指定一數據;利用該根安全金鑰解密該數據;以及將解密后的該數據傳送至該應用程序。
10.根據權利要求7所述的應用程序保護方法,其特征在于,更包括當耦接該安全平臺裝置的一主機開機時或相應至少一事件的觸發(fā)時,執(zhí)行一安全檢查,確認該根安全金鑰或該應用程序安全金鑰是否正確。
11.根據權利要求10所述的應用程序保護方法,其特征在于,更包括下列步驟自該安全平臺裝置外部讀取一無線射頻識別碼;利用該根安全金鑰解密該無線射頻識別碼,從而得到一第一時間戳記;以及判斷該第一時間戳記是否有效,以進行該安全檢查。
12.根據權利要求11所述的應用程序保護方法,其特征在于,更包括下列步驟利用該根安全金鑰解密該無線射頻識別碼,從而更得到一第一校驗和;以及判斷該第一校驗和是否正確,以進行該安全檢查。
13.根據權利要求12所述的應用程序保護方法,其特征在于,更包括下列步驟定期利用該根安全金鑰加密一第二時間戳記與一第二校驗和;以及依據加密后的該第二時間戳記與該第二校驗和更新該無線射頻識別碼。
全文摘要
本發(fā)明涉及一種應用程序保護系統(tǒng)及方法,特別涉及一種應用程序保護系統(tǒng),至少包括一安全平臺裝置。安全平臺裝置包括一儲存單元與一處理單元。儲存單元包括一根安全金鑰與一應用程序安全金鑰。安全平臺裝置自一應用程序接收一特定金鑰。處理單元利用根安全金鑰加密特定金鑰,且判斷加密后的特定金鑰是否符合應用程序安全金鑰。若是,允許應用程序執(zhí)行。本發(fā)明所述的應用程序保護系統(tǒng)及方法,配合無線射頻識別碼的應用,可確保安全平臺裝置的最新有效狀態(tài),以有效保護應用程序。
文檔編號G06F21/22GK101034428SQ200710091008
公開日2007年9月12日 申請日期2007年4月5日 優(yōu)先權日2007年4月5日
發(fā)明者陳瑞華, 吳恒和 申請人:威盛電子股份有限公司