啟用碼方式註冊的實現原理述

2021-07-15 23:46:24 字數 3034 閱讀 1971

加密混淆授權

目前,商用軟體和共享軟體絕大部份都是採用註冊碼授權的方式來保證軟體本身不被盜用,以保證自身的利益。儘管很多常用的許多軟體系統的某些版本已經被別人破解,但對於軟體特殊行業而言,註冊碼授權的方式還是一種保護軟體系統本身的一種有效的手段。

通常而言,註冊碼授權方式有以下幾種方式:

l 安裝序列號方式

這是最為常用的方式,

microsoft

提供的產品(例如:windows系列產品、office系列產品等等)都是採用這種方式。通過一種複雜的演算法生成安裝序列號,在安裝過程中,安裝程式對使用者輸入的安裝序列號進行校驗來驗證該系統是否被合法,從而完成授權。

l 使用者名稱+序列號方式

即軟體系統的**商給使用者提供有效的使用者名稱和序列號,使用者在安裝過程或啟動過程中輸入有效的使用者名稱和序列號,系統通過演算法校驗通過後完成軟體授權。

l 啟用碼方式

使用者安裝系統後,軟體系統會根據使用者機器的關鍵資訊(例如:mac位址、cpu序列號、硬碟序列號等等)生成乙個註冊憑證(也可稱為註冊碼),使用者將這個註冊憑證傳送給軟體**商,**商通過註冊憑證生成乙個啟用碼。使用者輸入啟用碼,軟體系統完成授權。

不論是採用哪種方式來進行授權,理論上都是可以被破解的。只要破解者發現了軟體授權機制和原理則任何保護機制都將化為烏有。因此,只能夠通過選擇複雜的演算法和機制來增加破解者的破解難度,從而在在一定的時間內保證軟體不被盜用。通常在行業應用軟體領域,我們選用啟用碼方式進行軟體授權管理。

rsa演算法(非對稱加密演算法)是乙個廣泛用於加密和

數字簽名

的演算法,

是目前最有影響力的公鑰加密演算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被iso推薦為公鑰資料加密標準。rsa演算法基於乙個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰

可以適用使用者名稱+

rsa演算法實現啟用碼註冊方式的原理如下:

1. 生成一對公鑰

e和私鑰

d(供軟體註冊模板和序號產生器使用);

2. 使用者安裝軟體後,軟體註冊模板提取使用者機器指紋資訊(如:

mac位址、

cpu序列號、硬碟序列號等),並通過其它的編碼演算法(如

base64

)生成乙個申請碼c;

3. 使用者將申請碼

c發給軟體開發商。軟體開發商通過序號產生器採用私鑰

d加密申請碼

c後生成啟用碼

f。軟體**商將啟用碼

f發給使用者。

4. 使用者輸入啟用碼

f,軟體註冊模板採用公鑰

e對啟用碼

f解碼後生成

g(即:使用者機器特徵資訊

),然後軟體註冊模板提取使用者機器的特定資訊後進行編碼。將編碼的結果與

g進行比較,如果相等則使用者合法,完成授權,否則授權失敗。

封裝實現驗證碼驗證功能,以

dll(動態連線庫)的形式向應用程式提供驗證服務。如何處理授權驗證由應用程式本身來完成。

說明:

l 驗證動態庫封裝不同演算法策略和授權策略,提供金鑰驗證,生成、編、解碼功能。

l 應用程式需要開發乙個驗證模組,通過呼叫驗證動態庫中的函式來進行驗證。

l 驗證動態庫本身不會提供提示資訊展現和相關介面,因此,應用程式的驗證模組需要提供某些操作和提示介面(例如:註冊碼輸入框、提示資訊框等等)

說明:

l 驗證介面為一組winapi形式的api集,提供驗證相關的服務,由應用程式的驗證模組呼叫。

l 驗證功能模組實現了具體的功能,由驗證介面api呼叫,向外提供服務,其本身不向外暴露;

l rsa演算法模組提供rsa演算法實現,供驗證功能模組呼叫;

l md5演算法模組提供md5演算法實現,供驗證功能模組呼叫;

l base64演算法模組提供base64演算法實現,供驗證功能模組呼叫;

l 登錄檔操作模組提供登錄檔相關操作的實現,供驗證功能模組呼叫;

l 檔案操作模組提供檔案相關操作的實現,供驗證功能模組呼叫

授權解決程式版權問題,同時為了保障授權演算法的順利執行,必須對程式檔案進行保護,加大反編譯的難度。

一般軟體保護

是利用特殊的演算法,對exe、dll檔案裡的資源進行壓縮,改變其原來的特徵碼,隱藏一些字串等等,使一些資源編輯軟體不能正常開啟或者修改。

先將原來的主程式編譯成dll,再編寫乙個殼程式,編譯成exe,並將程式的執行入口(即main函式)移到殼中來,由殼開始執行整個程式。首先,可以用自編的加密工具,在軟體發布前將所有dll檔案分別進行加密(輸入特定的金鑰),在殼載入dll時臨時將其解密到記憶體中,並載入執行。由於解密dll的結果只存在於記憶體,所以

攻擊者無法獲得解密後的dll,除非他能找到dll的解密金鑰。同時,為了避免

攻擊者分析外殼程式的邏輯,從中尋找解密金鑰,還可以將殼編譯成exe檔案後,再用第三方軟體進行混淆,這樣

攻擊者將無法了解dll加密的演算法及處理邏輯。從而,更有效地保護主程式dll。

位元安索為軟體開發商提供基於

web的專業的軟體授權管理和保護系統

——位元平台。位元平台集軟體保護和授權的設計、開發整合、統計管理於一體,為軟體開發商及數字內容提供商提供企業級的加密保護及授權管理解決方案。

位元平台包含了對軟體和數字內容授權週期各個階段的支援,並可與企業內部的管理系統進行整合,以實現銷售過程或訂單過程的自動化,支援雲授權和本地授權。其優點如下:

l 隨時隨地登入。集設計、開發、管理、分析於一體。 

l 根據不同的市場和使用者群進行授權設計,同一套**滿足各種授權模式。 

l api

l 支援基於許可權管理的多使用者協作,滿足組織中不同角色的需要。 

驗證碼註冊功能的實現

作為隨便參考 分別寫入登入,驗證碼的介面 export const 事件名 data request.getdata sms center clearable label 簡訊驗證碼 placeholder 請輸入手機號 small type primary click senden 傳送驗證碼 v...

掃碼登入的實現原理

原理解釋 接下來就是對於這個服務的詳細實現。首先,大概說一下原理 使用者開啟 的登入頁面的時候,向瀏覽器的伺服器傳送獲取登入 的請求。伺服器收到請求後,隨機生成乙個uuid,將這個id作為key值存入redis伺服器,同時設定乙個過期時間,再過期後,使用者登入 需要進行重新整理重新獲取。同時,將這個...

cookie 實現驗證碼的原理

驗證碼技術用來解決網路中的惡意註冊或者 ddos 攻擊,主要原理是,讓使用者 輸入中的文字,如果通過了驗證,伺服器就在客戶端瀏覽器儲存乙個驗證 cookie,比如叫做 9hcxogjmhn5j7upmguya4abd 以後使用者訪問伺服器其他頁面的時候,伺服器先獲取這個 cookie,如果存在,說明...