TW202223626A - 於離線環境下使用的軟體授權驗證方法 - Google Patents
於離線環境下使用的軟體授權驗證方法 Download PDFInfo
- Publication number
- TW202223626A TW202223626A TW109143388A TW109143388A TW202223626A TW 202223626 A TW202223626 A TW 202223626A TW 109143388 A TW109143388 A TW 109143388A TW 109143388 A TW109143388 A TW 109143388A TW 202223626 A TW202223626 A TW 202223626A
- Authority
- TW
- Taiwan
- Prior art keywords
- application
- serial number
- software
- hard disk
- application software
- Prior art date
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一種於離線環境下使用的軟體授權驗證方法,包括下列步驟:於電子裝置上執行應用軟體;取得序號並將序號輸入應用軟體;對序號進行解密,以至少取得應用軟體的申請使用期限以及電子裝置的硬碟於序號被提出申請時的硬碟識別時間;取得電子裝置的硬碟當前的上電時間;基於硬碟識別時間以及上電時間計算應用軟體在電子裝置上的已使用時間;基於已使用時間以及申請使用期限判斷應用軟體的授權是否過期;及,於判斷應用軟體的授權過期時禁能應用軟體。通過本發明的技術方案,軟體被允許在離線環境下自行執行授權期限的驗證動作。
Description
本發明涉及一種授權期限的驗證方法,尤其涉及一種軟體的授權期限的驗證方法。
為了令電腦可以執行各種功能,一般都需要在電腦中安裝對應的軟體。而為了避免軟體被濫用,例如被不當複製、無期限地持續使用等,軟體開發商一般會對軟體設定一個授權使用期限。當電腦執行軟體時,會經由一個驗證機制來驗證軟體的授權使用期限,並且於軟體的授權使用期限過期後禁止軟體被繼續使用。
目前市面上常見的軟體,多是採用線上驗證的方式。具體地,線上驗證的方式是在軟體被執行時,由遠端的伺服器來取得軟體的相關資訊,藉此驗證軟體的授權是否已經過期。然而,對於部分在不具備網路連線環境中(例如工廠)所使用的電腦來說,並無法使用上述線上驗證的方式來進行軟體的驗證動作。
針對離線環境,目前常見的驗證方式是透過硬體鎖來進行驗證。具體地,當軟體被執行時,電腦會到硬體鎖(通常為USB Dongle)中讀取必要資料,並且於正確地取得了必要資料後,允許軟體被開啟。然而,通過硬體鎖驗證的方式需要使用額外的硬體,增加了驗證成本。並且,只要使用者取得了所述硬體鎖,通常就可以無限制地持續使用該軟體,實不具經濟效益。
另外,部分廠商亦提出軟體鎖的驗證方式。具體地,軟體鎖的驗證方式是在電腦的檔案系統中寫入特定的資料,以做為軟體的驗證基礎。然而,只要有心人士於檔案系統中找到所述資料,並且對所述資料進行竄改(例如修改資料中記錄的使用期限),即會使得預設的驗證方式失效。
有鑑於此,本技術領域確實急需一種可以在離線環境中使用,同時又難以被破解的驗證方法。
本發明的主要目的,在於提供一種於離線環境下使用的軟體授權驗證方法,可以在不需連網、不需使用額外硬體、並且也不需在電子裝置中寫入額外檔案的情況下實現軟體的授權期限的驗證。
為了達成上述的目的,本發明的驗證方法主要包括下列步驟:於一電子裝置上執行一應用軟體;取得一序號並將該序號輸入該應用軟體;對該序號進行解密,以至少取得該應用軟體的一申請使用期限以及該電子裝置的一硬碟於該序號被提出申請時的一硬碟識別時間;取得該硬碟當前的一上電時間;基於該硬碟識別時間以及該上電時間計算該應用軟體在該電子裝置上的一已使用時間;基於該已使用時間以及該申請使用期限判斷該應用軟體的授權是否過期;及,於判斷該應用軟體的授權過期時禁能(Disable)該應用軟體。
與相關技術相比,本發明可以在離線環境下對軟體的授權期限進行驗證,並且不需要使用額外硬體也不需要寫入額外檔案,不但降低了離線驗證所需的成本,同時也降低了驗證方法被破解的可能性。
茲就本發明之一較佳具體實施例,配合圖式,詳細說明如後。
本發明揭露了一種於離線環境下使用的軟體授權驗證方法(下面將於說明書中簡稱為驗證方法),主要應用於各式電子裝置上,例如個人電腦(Personal Computer, PC)、筆記型電腦(Laptop)、平板電腦(Tablet)、伺服器(Server)、工業電腦(Industrial PC, IPC)、智慧型行動裝置(Intellectual Mobile Device)等,以協助電子裝置在離線環境下對內部安裝的應用軟體進行授權期限是否過期的驗證程序。
請參閱圖1,為本發明之具體實施例的系統架構圖。本發明的驗證方法主要是應用於如圖1所示的電子裝置1,並且電子裝置1至少具有處理器11,以及電性連接處理器11的硬碟12與傳輸單元13。使用者可以將應用軟體121安裝在電子裝置1的硬碟12中,並且通過處理器11來執行應用軟體121。當應用軟體121第一次被處理器11執行時,電子裝置1可通過傳輸單元13發送序號的申請碼至發行端伺服器2,並且再接收發行端伺服器2針對應用軟體121所產生並回覆的序號。本發明中,當電子裝置1接收所述序號並且輸入至應用軟體121後,應用軟體121即可基於序號的內容來執行離線的驗證動作。
上述發行端伺服器2指的是由提供應用軟體121的軟體開發商所運行的伺服器,由於這個軟體開發商具備有應用軟體121的授權權限,因此可以通過發行端伺服器2來生成並提供用來開通應用軟體121的序號。本發明的其中一個技術特徵在於,發行端伺服器2所生成的序號中夾帶了可以讓應用軟體121執行離線的驗證動作的有效資訊。
值得一提的是,所述傳輸單元13可為無線傳輸單元(例如電信傳輸單元、Wi-Fi傳輸單元、藍牙傳輸單元、Zigbee傳輸單元、近場通訊(Near Field Communication, NFC)傳輸單元等)或有線傳輸單元(例如USB傳輸單元),但不加以限定。本發明中,使用者可以在將應用軟體121安裝至電子裝置1並且取得了對應的序號後,將電子裝置1移動到離線環境(例如工廠)中使用。於此情境下,應用軟體121仍然可以藉由序號的內容來進行離線的驗證動作,藉此避免應用軟體121的使用時間超過原本的授權期限。
值得一提的是,本發明中,應用軟體121會記錄所取得的序號,並且,電子裝置1每一次執行應用軟體121時,應用軟體121皆會基於序號執行一次離線的驗證動作,藉此有效地追蹤應用軟體121的授權期限。
於一實施例中,電子裝置1還具備有電性連接處理器11的輸入單元14。所述輸入單元14可例如為鍵盤、滑鼠、觸控螢幕等,但不加以限定。於此實施例中,使用者可以通過輸入單元14輸入申請應用軟體121的序號所需的必要資料(容後詳述),並且向發行端伺服器2提出序號的申請請求。
於一實施例中,電子裝置1還具備有電性連接處理器11的顯示單元15。所述顯示單元15可例如為液晶顯示器(Liquid Crystal Display, LCD)或觸控螢幕等,但不加以限定。於此實施例中,電子裝置1可以通過顯示單元15來顯示相關視窗,以導引使用者於視窗中填寫所述必要資料。
如前文所述,本發明主要是藉由有線或無線的方式向發行端伺服器2提出應用軟體121的序號的申請請求,以令發行端伺服器2生成並發送對應的序號。於一實施例中,電子裝置1是基於所述必要資料來產生一個申請碼,並且將申請碼傳送至發行端伺服器2(例如可通過電子郵件、簡訊、傳真等),以向發行端伺服器2提出序號的申請請求。
參閱圖2,為本發明之具體實施例的申請碼產生流程圖。首先,使用者於電子裝置1中安裝應用軟體121,並且於安裝完成後執行應用軟體121(步驟S10)。本發明中,應用軟體121在第一次被執行後,會經由電子裝置1的顯示單元15顯示序號的申請視窗(步驟S12)。接著,使用者可以藉由申請視窗的導引,操作電子裝置1的輸入單元14以進行資料的輸入,以令應用軟體121取得申請人資訊(步驟S14),並且取得使用者所需的申請使用期限(步驟S16)。並且,為了能夠於離線環境下判斷應用軟體121的授權期限是否過期,本發明的其中一個技術特徵在於,應用軟體121進一步向電子裝置1發出請求,以取得電子裝置1中的硬碟12的硬碟資訊(步驟S18)。
於一實施例中,所述申請人資訊可例如為申請人(即,當前的使用者)的姓名、電子信箱、電話等,但不加以限定。所述申請使用期限可以為一段時間長度(例如一年、兩年)或一個授權到期日期(例如2021年12月31日),使用者可視應用軟體121的授權規則或授權費用自行選擇所需的申請使用期限。所述硬碟資訊指的是電子裝置1目前使用的硬碟12的相關資訊,並且本實施例中的硬碟資訊至少須包含在使用者提出序號的申請請求的當下,硬碟12的一個硬碟識別時間。
於一實施例中,應用軟體121在上述步驟S18中是向電子裝置1請求自我監測、分析及報告技術(Self-Monitoring Analysis and Reporting Technology, S.M.A.R.T)資料,並且將S.M.A.R.T資料中記錄的硬碟12的電源打開小時數(Power-on hours)做為所述硬碟識別時間。本發明中,應用軟體121主要是將所述硬碟識別時間記錄於序號的申請碼中(如後詳述),如此一來,當應用軟體121在執行離線的驗證動作時,可以將硬碟識別時間做為一個絕對時間,用來指出應用軟體121第一次在電子裝置1上被執行的時間點。
所述S.M.A.R.T資料為電腦相關技術領域中的公知技術,於此不再贅述。
值得一提的是,為了將應用軟體121與電子裝置1進行綁定,避免應用軟體121被不當地複製到其他電子裝置上使用,應用軟體121在前述步驟S18中取得的硬碟資訊還可進一步包括電子裝置1的設備識別碼(Unique Device Identifier, UDID)。更具體地,所述設備識別碼可為電子裝置1的硬碟12的設備識別碼。藉由在申請碼中夾帶硬碟12的設備識別碼,應用軟體121在取得了序號時,可以藉由序號中記錄的設備識別碼來判斷電子裝置1的硬碟12是否被更換過(容後詳述)。
接著,應用軟體121對所述申請人資訊、申請使用期限及硬碟資訊進行加密運算,以產生一筆申請碼(步驟S20)。於一實施例中,應用軟體121可採用高級加密標準(Advanced Encryption Standard, AES)演算法來執行加密運算並產生申請碼,其中,所述申請碼可為由大小寫英文字母、數字及符號所組成的亂數串,但不以此為限。
本發明中,申請碼的主要用途在於令發行端伺服器2可以產生對應的序號,因此只要申請碼正確夾帶了必要資料,則申請碼可以不需要被加密。例如,應用軟體121可以將上述申請人資訊、申請使用期限以及硬碟資訊直接組成一串字串,以節省電子裝置1的運算資源。
於步驟S20後,應用軟體121通過電子裝置1上的傳輸單元13將申請碼傳送至發行端伺服器2(步驟S22)。發行端伺服器2接收了申請碼後,即可依據申請碼的內容來產生對應的序號。本發明中,所述序號只有用來產生申請碼的應用軟體121以及電子裝置1可以使用,屬於一個獨立無二的序號。
於一實施例中,應用軟體121在前述步驟S22中可以通過無線的傳輸單元13來將申請碼傳送至發行端伺服器2,例如,通過電子郵件、簡訊、藍牙傳輸、Zigbee傳輸、Wi-Fi傳輸等。於另一實施例中,電子裝置1可通過有線的傳輸單元13與發行端伺服器2連接,例如,通過USB傳輸線,並且應用軟體121在前述步驟S22中可以通過有線方式將申請碼傳送至發行端伺服器2。惟,上述皆僅為本發明的具體實施範例,但不以上述者為限。
請同時參閱圖3A及圖3B,分別為本發明之具體實施例的序號申請示意圖以及申請碼產生示意圖。
如圖3A所示,當使用者於電子裝置1上第一次執行應用軟體121並且必須申請所述序號時,應用軟體121會藉由電子裝置1的顯示單元15顯示一個申請視窗。於這個申請視窗上,使用者可以通過輸入單元14輸入申請人資訊31,並且選擇所需的申請使用期限32。
於圖3A的實施例中,申請人資訊31是以申請人姓名及電子信箱為例,而申請使用期限32是以一段時間長度(一年或兩年)為例,但是並不以此為限。於其他實施例中,申請人資訊31還可包括如申請人的出生年月日、電話號碼、身份證字號等,申請使用期限32還可例如為一個確切的授權到期日期。
除了前述的申請人資訊31以及申請使用期限32外,應用軟體121還會進一步向電子裝置1提出請求,以取得電子裝置1的硬碟12的硬碟資訊(例如設備識別碼及電源打開小時數)以及系統時間等申請資料。而如圖3B所示,應用軟體121在對上述申請資料進行了加密處理後,即可產生一組由亂數組成的申請碼33。本發明中,應用軟體121所產生的申請碼33中夾帶了上述所有資訊(例如申請人資訊31、申請使用期限32、硬體資訊、系統時間等)。
續請參閱圖4,為本發明之具體實施例的序號產生流程圖。本發明中的發行端伺服器2指的是開發並提供所述應用軟體121的軟體開發商所運行的線上(Online)或線下(Offline)伺服器,並且發行端伺服器2可通過內建的傳輸單元(圖未標示)接收由使用者端的電子裝置1所傳送的申請碼33(步驟S30)。
於接收了申請碼33後,發行端伺服器2對申請碼33進行解密,以還原並取得申請碼33中所夾帶的各項資訊(步驟S32)。本發明中,發行端伺服器2主要是採用與電子裝置1在前述步驟S20中相同的演算法來對申請碼33進行解密。應用軟體121於步驟S20中基於哪些資料產生申請碼,發行端伺服器2在解密申請碼後就會相對應地得到同樣的資料。於一實施例中,發行端伺服器2可以在解密申請碼後,得到如申請人資訊31、申請使用期限32、硬碟資訊(包括硬碟識別時間、設備識別碼)等,但不加以限定。
步驟S32後,發行端伺服器2首先可判斷申請人資訊31是否正確(步驟S34)。具體地,發行端伺服器2在步驟S34中可判斷申請人姓名是否填寫錯誤(例如有無應用軟體121的購買記錄),以及判斷電子信箱是否正確(例如即時發送信件至電子信箱並請申請人進行電子信箱驗證),但不以此為限。若申請人資訊32不正確,則發行端伺服器2不產生應用軟體121的序號,而可直接發送錯誤訊息至電子裝置1,或是發送錯誤訊息至申請人的電子信箱。於判斷申請人資訊31正確後,發行端伺服器2接著可記錄申請人資訊31(步驟S36),例如寫入資料庫(圖未標示)中。
惟,上述僅為本發明的具體實施範例,於其他實施例中,發行端伺服器2可不判斷申請人資訊31是否正確,亦可不需記錄申請人資訊31。
於一實施例中,發行端伺服器2進一步取得序號的申請日期(步驟S38)。具體地,發行端伺服器2於步驟S38中主要可取得發行端伺服器2當前的系統時間,例如作業系統(Operating System, OS)的標準時間或是基本輸入輸出系統(Basic Input/Output System, BIOS)時間,並且將發行端伺服器2的所述系統時間做為序號的申請日期。更具體地,所述申請日期等於發行端伺服器2收到所述申請碼的日期,並且等於應用軟體121的序號的生成日期。
如前文所述,電子裝置1主要是在第一次執行應用軟體121時產生並發出所述申請碼,因此,所述申請日期也可以做為一個絕對時間,用來指出應用軟體121第一次在電子裝置1上被執行的時間點。然而,相較於申請碼中記錄的其他資訊(例如硬碟識別時間),所述申請日期可能較不精確(因為系統時間較容易遭到竄改),因此上述步驟S38不必然被執行。
接著,發行端伺服器2對所取得的資料進行另一種形式的加密運算,以產生專屬於應用軟體121的序號(步驟S40)。值得一提的是,發行端伺服器2在步驟S40中,主要是採用與前述步驟S20中不同的演算法來進行加密運算,以產生所述序號。
最後,發行端伺服器2再藉由有線或無線的傳輸方式,將所產生的序號傳送至使用者端的電子裝置1(步驟S42),以令使用者將序號輸入應用軟體121,進而開通應用軟體121。
於一實施例中,應用軟體121產生的申請碼中包含了申請人資訊31、申請使用期限32及硬碟資訊,因此在步驟S40中,發行端伺服器2係對申請使用期限32及該硬碟資訊進行加密運算,以產生序號。其中,所述硬碟資訊可以僅包含硬碟12的硬碟識別時間(即電源打開小時數),或是同時包含硬碟識別時間以及設備識別碼。
於另一實施例中,發行端伺服器2在接收並解密了申請碼後,還進一步取得發行端伺服器2的系統時間以做為序號的申請日期。在步驟S40中,發行端伺服器2係對申請使用期限32、申請日期及該硬碟資訊進行加密運算,以產生序號。
於又一實施例中,使用者選擇的申請使用期限32為一段時間長度,而發行端伺服器2在產生序號前,會先依據申請日期(例如2020年1月1日)及申請使用期限32(例如兩年)來計算應用軟體121的一個授權到期日期(即,2022年1月1日)。於此實施例中,發行端伺服器2係對申請使用期限32、授權到期日期以及硬碟資訊進行加密運算,以產生序號。意即,所產生的序號中直接夾帶了應用軟體121的授權到期日期。
本發明中,應用軟體121是依據使用者提出序號的申請請求時的電子裝置1的資訊來生成申請碼,而發行端伺服器2則是依據申請碼的內容來產生專屬於應用軟體121的序號。因此,應用軟體121在接收了發行端伺服器2所產生的序號後,即可依據序號的內容來自行進行授權期限是否過期的驗證動作。
參閱圖5,為本發明之具體實施例的驗證流程圖。首先,電子裝置1藉由處理器11來執行應用軟體121(步驟S50)。若使用者還沒有輸入過序號,則應用軟體121會通過顯示單元15顯示一個序號輸入視窗(圖未標示),令使用者將從發行端伺服器2收到的序號輸入到應用軟體121中(步驟S52)。
於另一實施例中,應用軟體121可以在產生了申請碼並且將申請碼傳送至發行端伺服器2後自動進行等待,而在電子裝置1接收到發行端伺服器2所傳送的序號後,應用軟體121可自行從電子裝置1上取得所述序號。於此實施例中,應用軟體121不需要顯示所述序號輸入視窗,使用者也不需要手動輸入序號。
步驟S52後,應用軟體121對所接收的序號進行解密,以取得序號中夾帶的資訊(步驟S54)。於一實施例中,所述序號中至少記錄有應用軟體121的申請使用期限32,以及電子裝置1的硬碟12在使用者提出序號的申請請求時的硬碟識別時間。
步驟S54後,應用軟體121進一步向電子裝置1提出請求,以取得電子裝置1的硬碟12當前的上電時間(步驟S56)。於取得了硬碟12當前的上電時間後,應用軟體121即可基於序號中夾帶的硬碟識別時間以及所述上電時間來計算應用軟體121在電子裝置1上的已使用時間(步驟S58)。
具體地,序號中所夾帶的硬碟識別時間,指的是在使用者提出序號的申請請求時,電子裝置1的S.M.A.R.T資料中所記錄的硬碟12的電源打開小時數(下稱第一電源打開小時數),而電子裝置1在步驟S56中提供的上電時間,為在應用軟體121提出請求時,電子裝置1的S.M.A.R.T資料中所記錄的硬碟12的電源打開小時數(下稱第二電源打開小時數)。於上述步驟S58中,應用軟體121主要是以第二電源打開小時數減去第一電源打開小時數,以得到應用軟體121在電子裝置1上的已使用時間。
於步驟S58後,應用軟體121基於已使用時間以及申請使用期限32判斷應用軟體121的授權是否過期(步驟S60)。舉例來說,若已使用時間等於或大於申請使用期限32,則應用軟體121認定授權已經過期。於步驟S60中,應用軟體121是於判斷授權尚未過期時啟動應用軟體121(步驟S62),並且於判斷授權已經過期時禁能應用軟體121(步驟S64)。
值得一提的是,應用軟體121向電子裝置1請求硬碟12的上電時間的時間點,必然晚於使用者提出序號的申請請求的時間點,因此,所述第二電源打開小時數減去第一電源打開小時數後,必然會得到一個正數。由於電子裝置1內部的數據容易遭到有心人士的篡改,也容易因為技術原因而產生錯誤,因此應用軟體121在計算所述已使用時間時若發現第二電源打開小時數減去第一電源打開小時數的結果為負數(即,第二電源打開小時數小於第一電源打開小時數),則可 直接認定授權已經過期,並且禁能應用軟體121。
如前文所述,應用軟體121所取得的序號的內容會與申請碼的內容相對應,因此除了計算前述的已使用時間並且藉由已使用時間來判斷授權是否過期之外,應用軟體121還可依據實際狀況,藉由別的資料來執行離線的驗證動作。
請同時參閱圖6A及圖6B,分別為本發明的第一部分驗證流程圖以及第二部分驗證流程圖。於本實施例中,電子裝置1首先通過處理器11執行應用軟體121(步驟S70),接著,由應用軟體121判斷序號是否已經輸入(步驟S72)。若應用軟體121尚未接收過序號,則可通過序號輸入視窗接收使用者輸入序號,或是從電子裝置1上自動取得發行端伺服器2所回覆的序號(步驟S74)。
值得一提的是,只有在第一次執行應用軟體121時,才需要輸入序號。只要輸入過一次序號,應用軟體121就會記錄這個序號,於後續的所有執行程序中,使用者都不需要再次輸入序號。
於接收到了序號後,應用軟體121可先判斷此序號是否合法(步驟S76),並且於判斷序號不合法時,禁能應用軟體121(步驟S94),即,立刻關閉應用軟體121,或是封鎖電子裝置1對應用軟體121進行操作的權限。於一實施例中,應用軟體121記錄有發行端伺服器2於前述步驟S40中所使用的加密演算法,並且於步驟S76中,應用軟體121是於不能正確解密所接收的序號時,判斷此序號不合法。
惟,上述僅為本發明的其中一個具體實施範例,於其他實施例中,本發明的應用軟體121也可以在收到序號後直接對序號進行解密,而不判斷序號的合法性。
接著,應用軟體121對序號進行解密,以取得序號中夾帶的資訊(步驟S78)。
於一實施例中,應用軟體121於前述步驟S20中將電子裝置1的硬碟12的設備識別碼(下面稱為第一設備識別碼)做為申請碼的生成參數的其中之一,並且發行端伺服器2於前述步驟S40中也將第一設備識別碼做為序號的生成參數的其中之一。因此,應用軟體121在對序號進行解密後,可以得到所述第一設備識別碼。其中,第一設備識別碼用來指出電子裝置1在使用者提出序號的申請請求時所使用的硬碟12。
本實施例中,應用軟體121會向電子裝置1提出請求,以取得電子裝置1當前使用的硬碟12的設備識別碼(下面稱為第二設備識別碼)(步驟S80),並且,應用軟體121會判斷第一設備識別碼與第二設備識別碼是否相符(步驟S82)。
若第一設備識別碼與第二設備識別碼不相符,代表電子裝置1或硬碟12已經遭到更換,因此應用軟體121將會執行前述步驟S94,以禁能應用軟體121。反之,若第一設備識別碼與第二設備識別碼相符,代表硬體沒有更換,因此應用軟體121會繼續執行剩餘的驗證動作。
於一實施例中,發行端伺服器2於前述步驟S40中會將所述申請日期做為序號的生成參數之一。因此,應用軟體121在對序號進行解密後,可以得到所述申請日期。其中,所述申請日期用來指出使用者提出序號的申請請求的時間點。
本實施例中,應用軟體121會向電子裝置1提出請求,以取得電子裝置1的系統時間(步驟S84),其中系統時間可例如為OS時間或是BIOS時間,不加以限定。接著,應用軟體121基於從序號中取得的申請日期以及申請使用期限32來計算應用軟體121的授權到期日期,並且再判斷電子裝置1的系統時間是否超過授權到期日期(步驟S86)。
舉例來說,所述申請日期可以是一個絕對日期,例如2020年1月1日,所述申請使用期限32可以是一段時間長度,例如兩年。藉此,應用軟體121可以計算得出所述授權到期日期為2022年1月1日。於步驟S86中,只要電子裝置1的系統時間尚未超過授權到期日期,代表授權尚未過期。
然而如前文所述,由於電子裝置1的系統時間能夠被輕易地更改,因此除了系統時間的比較之外,本發明的應用軟體121還會繼續執行其他的驗證動作。
於另一實施例中,發行端伺服器2在步驟S38中取得了所述申請日期後,會先依據申請日期以及申請使用期限32計算出一個授權到期日期。於前述步驟S40中,發行端伺服器2會將所述授權到期日期做為序號的生成參數的其中之一。於此實施例中,應用軟體121在對序號進行解密後可以直接得到所述授權到期日期。如此一來,應用軟體121在取得電子裝置1的系統時間後,可以直接執行前述步驟S86以判斷授權是否過期,而不需要再執行額外的計算程序。
值得一提的是,於前述實施例中,使用者在申請序號時所選擇的申請使用期限32主要為一段時間長度,例如一年、兩年等(如圖3A所示),然而於其他實施例中,使用者亦可直接選擇一個確切的授權到期日期做為所述申請使用期限32。於此實施例中,發行端伺服器2與應用軟體121都不需要再另外執行額外的計算程序以計算授權到期日期,而可進一步提升驗證動作的執行速度。
接著,應用軟體121向電子裝置1提出請求,以取得電子裝置1的硬碟12當前的上電時間(步驟S88)。接著,應用軟體121基於序號中夾帶的硬碟識別時間以及所述上電時間來計算應用軟體121目前在電子裝置1上的已使用時間,並且判斷已使用時間是否已超過序號中夾帶的申請使用期限32(步驟S90)。
同樣地,本實施例中的硬碟識別時間,指的是在使用者提出序號的申請請求時,電子裝置1的S.M.A.R.T資料中所記錄的硬碟12的第一電源打開小時數;而電子裝置1在步驟S88中所提供的上電時間,為在應用軟體121提出請求時,電子裝置1的S.M.A.R.T資料中所記錄的硬碟12的第二電源打開小時數。於步驟S90中,應用軟體121以第二電源打開小時數減去第一電源打開小時數,以得到應用軟體121在電子裝置1上的已使用時間。
若於步驟S90中判斷已使用時間已經超過申請使用期限32,應用軟體121即判定授權已經過期,因此禁能應用軟體121(步驟S94);若於步驟S90中判斷已使用時間沒有超過申請使用期限32,則應用軟體121即判定授權尚未過期,並且允許開啟應用軟體121(步驟S92)。本實施例中,應用軟體121主要是在已使用時間大於或等於申請使用期限32時,認定已使用時間超過申請使用期限32,並且於已使用時間小於申請使用期限32時,認定已使用時間沒有超過申請使用期限32。
於另一實施例中,應用軟體121在解密了序號後可以得到序號的申請日期以及申請使用期限32,其中申請使用期限32記錄的是一個確切的授權到期日期(例如2022年12月31日)。本實施例中,應用軟體121可以基於申請日期(例如2020年1月1日)以及所述已使用時間(例如9000小時)來計算一個假定日期(即,假定為當前日期)。而於前述步驟S90中,應用軟體121可以將假定日期是否超過授權到期日期做為依據,判斷應用軟體121的授權是否已經過期。惟,上述說明皆僅為本發明的幾個具體實施範例,但不以上述說明者為限。
通過本發明的上述驗證方法,應用軟體可以在離線環境下對自身的授權期限進行驗證,藉此以較低的成本得到最高的保護強度,對於軟體開發者來說,實為一大福音。
惟,上述僅為本發明的部分具體實施範例,發行端伺服器2可視應用軟體121所產生的申請碼的內容而定,基於不同的資料來產生用來進行驗證的序號,而不僅以上述實施例的範圍為限。
以上所述僅為本發明之較佳具體實例,非因此即侷限本發明之專利範圍,故舉凡運用本發明內容所為之等效變化,均同理皆包含於本發明之範圍內,合予陳明。
1:電子裝置
11:處理器
12:硬碟
121:應用軟體
13:傳輸單元
14:輸入單元
15:顯示單元
2:發行端伺服器
31:申請人資料
32:申請使用期限
33:申請碼
S10~S22:申請碼產生步驟
S30~S42:序號產生步驟
S50~S64、S70~S94:驗證步驟
圖1為本發明之具體實施例的系統架構圖。
圖2為本發明之具體實施例的申請碼產生流程圖。
圖3A為本發明之具體實施例的序號申請示意圖。
圖3B為本發明之具體實施例的申請碼產生示意圖。
圖4為本發明之具體實施例的序號產生流程圖。
圖5為本發明之具體實施例的驗證流程圖。
圖6A為本發明的第一部分驗證流程圖。
圖6B為本發明的第二部分驗證流程圖。
S50~S64:驗證步驟
Claims (15)
- 一種於離線環境下使用的軟體授權驗證方法,運用於至少具有一處理器及一硬碟的一電子裝置,並且包括下列步驟: a)由該處理器執行一應用軟體; b)取得一序號,並將該序號輸入該應用軟體; c)取得該序號中夾帶的資訊,其中該序號至少記錄該應用軟體的一申請使用期限,以及該硬碟於該序號被申請時的一硬碟識別時間; d)取得該硬碟當前的一上電時間; e)基於該硬碟識別時間及該上電時間計算該應用軟體於該電子裝置上的一已使用時間; f)基於該已使用時間及該申請使用期限判斷該應用軟體的授權是否過期;及 g)於該應用軟體的授權已經過期時禁能該應用軟體。
- 如請求項1所述的於離線環境下使用的軟體授權驗證方法,其中該硬碟識別時間為在該序號被申請時,該電子裝置的一自我監測、分析及報告技術資料中記錄的該硬碟的一第一電源打開小時數,該上電時間為該電子裝置當前的該自我監測、分析及報告技術資料中所記錄的該硬碟的一第二電源打開小時數,該步驟e是以該第二電源打開小時數減去該第一電源打開小時數以計算該已使用時間。
- 如請求項2所述的於離線環境下使用的軟體授權驗證方法,其中該序號中還記錄該序號的一申請日期,該申請使用期限記錄一授權到期日期,該步驟f是基於該申請日期、該已使用時間及該授權到期日期判斷該應用軟體的授權是否過期。
- 如請求項2所述的於離線環境下使用的軟體授權驗證方法,其中該序號中還記錄一第一設備識別碼,並且該步驟c之後還包括下列步驟: c11)取得該硬碟的一第二設備識別碼; c12)判斷該第一設備識別碼與該第二設備識別碼是否相符;及 c13)於該第一設備識別碼與該第二設備識別碼不相符時禁能該應用軟體。
- 如請求項2所述的於離線環境下使用的軟體授權驗證方法,其中該序號中還記錄該應用軟體的一授權到期日期,並且該步驟c之後還包括下列步驟: c21)取得該電子裝置的一系統時間; c22)判斷該系統時間是否超過該授權到期日期;及 c23)於判斷該系統時間超過該授權到期日期時禁能該應用軟體。
- 如請求項2所述的於離線環境下使用的軟體授權驗證方法,其中該步驟c之後還包括下列步驟: c31)判斷該序號是否合法;及 c32)於判斷該序號不合法時禁能該應用軟體,其中該應用軟體於不能正確解密該序號時判斷該序號不合法。
- 如請求項2所述的於離線環境下使用的軟體授權驗證方法,其中該電子裝置還包括一傳輸單元,該步驟b是通過該傳輸單元接收從一發行端伺服器所生成並發送的該序號。
- 如請求項7所述的於離線環境下使用的軟體授權驗證方法,其中該步驟a之後還包括下列步驟: a01)於需要申請該應用軟體的該序號時,取得申請人資訊、該申請使用期限及該電子裝置的該硬碟的硬碟資訊,其中該硬碟資訊至少包括該硬碟識別時間; a02)對該申請人資訊、該申請使用期限及該硬碟資訊進行一第一加密運算以產生一申請碼;及 a03)通過該傳輸單元傳送該申請碼至該發行端伺服器,其中該發行端伺服器基於該申請碼產生該序號。
- 如請求項8所述的於離線環境下使用的軟體授權驗證方法,其中該步驟a之後還包括下列步驟: a04)由該發行端伺服器接收該申請碼; a05)對該申請碼進行解密以取得該申請人資訊、該申請使用期限及該硬碟資訊; a06)記錄該申請人資訊; a07)對該申請使用期限及該硬碟資訊進行一第二加密運算以產生該序號;及 a08)將該序號傳送至該電子裝置。
- 如請求項9所述的於離線環境下使用的軟體授權驗證方法,其中該硬碟資訊還包括該硬碟的一第一設備識別碼。
- 如請求項9所述的於離線環境下使用的軟體授權驗證方法,其中該步驟a07前還包括一步驟a007):取得該發行端伺服器的系統時間以作為該序號的一申請日期,該步驟a07是對該申請使用期限、該申請日期及該硬碟資訊進行該第二加密運算以產生該序號。
- 如請求項11所述的於離線環境下使用的軟體授權驗證方法,其中該步驟a07包括下列步驟: a071)依據該申請日期及該申請使用期限計算一授權到期日期;及 a072)對該申請使用期限、該授權到期日期及該硬碟資訊進行該第二加密運算以產生該序號。
- 一種於離線環境下使用的軟體授權驗證方法,運用於至少具有一處理器及一硬碟的一電子裝置,並且包括下列步驟: a)由該處理器執行一應用軟體; b)由該應用軟體取得一序號; c)該應用軟體對該序號進行解密,以至少取得該應用軟體的一申請日期、一授權到期日期、以及該硬碟於該序號被申請時的一第一設備識別碼及一第一電源打開小時數; d)取得該電子裝置的該硬碟當前的一第二設備識別碼; e)於判斷該第一設備識別碼與該第二設備識別碼不相符時禁能該應用軟體; f)取得該電子裝置當前的一系統時間; g)於判斷該系統時間超過該授權到期日期時禁能該應用軟體; h)取得該硬碟當前的一第二電源打開小時數; i)基於該第一電源打開小時數及該第二電源打開小時數計算該應用軟體於該電子裝置上的一已使用時間; j)基於該申請日期及該已使用時間計算一假定日期;及 k)於判斷該假定日期超過該授權到期日期時禁能該應用軟體。
- 如請求項13所述的於離線環境下使用的軟體授權驗證方法,其中該步驟a之後還包括下列步驟: a01)於產生該序號的一申請請求時,通過該電子裝置取得申請人資訊、一申請使用期限、該第一電源打開小時數及該第一設備識別碼; a02)對該申請人資訊、該申請使用期限、該第一電源打開小時數及該第一設備識別碼進行一第一加密運算以產生一申請碼;及 a03)傳送該申請碼至一發行端伺服器,其中該發行端伺服器基於該申請碼產生該序號。
- 如請求項14所述的於離線環境下使用的軟體授權驗證方法,其中該步驟a之後還包括下列步驟: a04)由該發行端伺服器接收該申請碼; a05)對該申請碼進行解密以取得該申請人資訊、該申請使用期限、該第一電源打開小時數及該第一設備識別碼; a06)記錄該申請人資訊; a07)取得該發行端伺服器的系統時間以作為該序號的一申請日期; a08)依據該申請日期及該申請使用期限計算一授權到期日期; a09)對該申請日期、該授權到期日期、該第一設備識別碼及該第一電源打開小時數進行一第二加密運算以產生該序號,其中該第二加密運算不同於該第一加密運算;及 a10)將該序號傳送至該電子裝置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109143388A TW202223626A (zh) | 2020-12-09 | 2020-12-09 | 於離線環境下使用的軟體授權驗證方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109143388A TW202223626A (zh) | 2020-12-09 | 2020-12-09 | 於離線環境下使用的軟體授權驗證方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202223626A true TW202223626A (zh) | 2022-06-16 |
Family
ID=83062639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109143388A TW202223626A (zh) | 2020-12-09 | 2020-12-09 | 於離線環境下使用的軟體授權驗證方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW202223626A (zh) |
-
2020
- 2020-12-09 TW TW109143388A patent/TW202223626A/zh unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108076057B (zh) | 一种基于区块链的数据保全系统及方法 | |
US7134144B2 (en) | Detecting and responding to a clock rollback in a digital rights management system on a computing device | |
CN101578609B (zh) | 安全启动计算设备 | |
US9246916B2 (en) | Specifying rights in a digital rights license according to events | |
US8250630B2 (en) | Detecting unauthorized computer access | |
US9582656B2 (en) | Systems for validating hardware devices | |
KR101402542B1 (ko) | 지속형 보안 시스템 및 지속형 보안 방법 | |
CN101441692B (zh) | 实现计算机硬件和软件绑定的方法 | |
US20190026442A1 (en) | Offline activation for application(s) installed on a computing device | |
US20120084850A1 (en) | Trustworthy device claims for enterprise applications | |
CN107528830B (zh) | 账号登陆方法、系统及存储介质 | |
JP5916737B2 (ja) | サービスとして信用できるデバイスクレーム | |
WO2020125134A1 (zh) | 自定义模型防篡改方法、装置、终端设备及存储介质 | |
WO2018166163A1 (zh) | Pos终端控制方法、pos终端、服务器及存储介质 | |
US8850563B2 (en) | Portable computer accounts | |
CN105005721A (zh) | 基于计算机开机钥匙的计算机授权开机控制系统及方法 | |
US20220179927A1 (en) | Verifying method for software authorization under offline environment | |
CN109582238B (zh) | 一种硬盘绑定、匹配方法、系统及电子设备和存储介质 | |
JP3936980B1 (ja) | 電子ファイル管理システムおよび電子ファイル管理プログラム | |
US20120304264A1 (en) | Key protecting method and a computing apparatus | |
JP2008234048A (ja) | 電子ファイル管理システムおよび電子ファイル管理プログラム | |
TW202223626A (zh) | 於離線環境下使用的軟體授權驗證方法 | |
CN113127818A (zh) | 一种基于区块链的数据授权方法、装置及可读存储介质 | |
CN112579998B (zh) | 信息交互平台中的网页访问方法、管理系统和电子设备 | |
TWI466527B (zh) | 根據裝置識別碼產生通行碼的系統、方法及該系統中的伺服端裝置 |