複製鏈接
請複製以下鏈接發送給好友

電子授權

鎖定
電子授權是國際上使用最廣泛的應用程序和數字內容保護方案。因為不需要額外的安全硬件,電子授權可以節省大量的物流、庫存以及管理費用,並且具有更高的靈活性和穩定性。
電子授權的使用軟件用户客户端計算機軟、硬件指紋作為授權憑證。不同的電子授權方案和應用設置可能使用不同的指紋採集策略。
微軟、蘋果、Adobe、AutoDesk、Cisco、Sun等著名公司都是採用電子授權技術來保護其軟件或數字內容的知識產權。
中文名
電子授權
機    制
一次開發,多次授權
含    義
應用程序和數字內容保護方案
特    點
節省物流庫存及管理費用

電子授權授權模式

電子授權一般採用“一次開發,多次授權”的機制,將軟件代碼與授權方案區分開來。電子授權主要有雲授權和本地授權兩種模式。

電子授權雲授權

雲授權是完全由服務器進行授權存儲和驗證的強授權模式。它的獨特之處在於所有與授權相關的安全數據及運算都交由Internet服務器完成。客户端需要通過網絡連接調用服務器方法,並與服務器保持心跳連接。雲授權的優勢是安全性非常高,並且可以由服務器進行實時管理,但要求客户端具有長期在線的聯網能力。
雲授權在國外的遊戲軟件中應用比較廣泛。包括育碧(Ubisoft)和暴雪(Blizzard)在內的頂級遊戲軟件製作商都在最新產品中包含了類似雲授權的技術,並取得了很好的保護效果。國際上最大的在線遊戲銷售平台Steam也對雲授權提供了支持。

電子授權本地授權

是較為傳統的電子授權方式。當客户端應用程序連接服務器完成在線激活之後,服務器會在客户端生成一個與本地硬件指紋綁定的客户端許可文件,並記錄客户端的激活信息。開發商可以對本地授權設置“智能連接”和“強制認證”兩個服務器驗證屬性。在這種情況下,本地授權會自動(智能連接模式)或在指定週期內(強制認證週期,如15天)與服務器連接一次,完成授權的週期性驗證和升級。
本地授權支持以下幾種模式:
1、單機授權——授權用於一台或多台單獨的終端電腦。
2、集團授權——授權用於集團內部。集團授權需在局域網內安裝單獨的本地授權服務,併為集團管理員提供了本地管理工具界面。
3、試用授權——授權用於實現軟件的試用功能。試用授權使用相同的授權碼,可用於任意數量的客户端機器。每一個客户端都可在試用期內進行軟件試用。

電子授權安全設計

從安全角度考慮,電子授權的安全設計主要有下面幾個重點。
環境指紋的選取和採集
電子授權對應用環境的軟、硬件指紋的選取基於三個原則:
1、具有一定程度的唯一性。
2、不易被複制。
3、對不同指紋進行組合。
目今為止,一般用户的計算機上還不存在具有高度唯一性並且無法被修改的軟、硬件指紋特徵。可以採用下面的選取策略:
(1)選取一、兩種不可被修改且具有較好唯一性的指紋作為主硬件指紋,如CPU特徵。CPU特徵中包含了廠商信息、型號、批次、製程及出廠設置等眾多信息,不同客户端上重複的幾率很低。
(2)選取幾種輔助指紋信息,用於降低環境指紋重複率。如網卡、硬盤信息等。
(3)選取幾種參考指紋信息,不用於環境綁定判斷,但可用於軟件開發商進行人工識別和判斷參考。如機器名、用户名、IP地址和軟件版本等。
通過上面的策略,可以得到唯一性非常高的可靠的環境指紋信息。由於CPU等硬件信息是無法被修改的,因此安全性很高。
安全庫調用過程保護
前面提到,軟件破解的方法之一是監視客户端安全庫API調用過程,並偽造返回結果。相比基於專用硬件的保護方式,電子授權對API調用過程保護有自己的優勢和劣勢:
1、雲授權由互聯網上的授權服務器進行應用程序的授權和API調用的實現,客户端與服務器之間的通信使用隨機會話密鑰,具有很高的安全性。
2、基於本地環境指紋採集的API調用過程的通訊數據無法被完全加密。應用軟件與安全庫之間的通訊是安全的,但採集指紋必須基於標準的系統功能調用。
3、與系統功能有關的系統調用很難被篡改,而且修改過程容易給系統造成損害,影響用户的正常使用。
綜合來説,經過精心設計的電子授權API調用過程可以獲得很高的安全強度,迫使破解者必須通過分析或修改安全庫才能瞭解或繞過具體安全過程,使對API過程的破解失去意義。
逆向工程破解保護
一旦破解者採用對應用程序進行逆向工程的破解方法,其安全程度已經與底層授權機制無關,更多的取決於軟件開發商在集成授權模塊代碼時所應用的安全技巧。
最簡單有效的安全技巧包括在應用程序的多個關鍵位置進行授權驗證、API調用點與返回值判斷點的距離要遠、儘量讓API返回結果與應用程序運行狀態相關等等。
雙因素保護機制
客户端安全庫可以採用“雙因素保護”的安全機制。簡單的説,就是將本地授權機制與服務器驗證相結合。
雙因素保護不僅為客户端授權驗證增加了一重保護,而且因為在服務器驗證的同時對客户端信息作了記錄,為軟件破解提供了可追蹤和可補救的可行方案。
破解者完全移除應用程序代碼中的安全驗證比軟件破解本身要困難得多。
這是因為一般的軟件破解都以“軟件功能可用”為目的。這一方面是因為破解者希望減少破解時間;另一方面也是從技術上,破解總是以軟件運行時的出錯點或API調用點為基礎而進行的。
因此,絕大部分的破解版軟件都不能做到100%的破解。這對於傳統的本地授權方式(包括基於專用硬件的保護方式)沒有太大的影響,但對的雙因素機制來説,軟件開發商可以因此對破解行為進行追蹤,或對破解進行補救。
舉例來説,軟件開發商可以在軟件代碼的非關鍵路徑上調用客户端安全庫的Update函數,並根據返回值進行錯誤處理。每次調用Update函數時,如果客户端存在網絡連接,將會在服務器端留下相應的記錄,並同步開發商在管理系統中的設置。如果發生破解,開發商將會發現同樣的授權碼在不同的機器上的使用記錄,進而可以選擇禁用這些授權碼。應用程序將在下一次Update時對自身狀態進行更新。
開發商也可以針對破解程度,選擇快速發佈一個軟件的升級補丁,這個升級補丁對得到授權的用户將可以正常安裝,而非授權用户在安裝時將無法通過服務器驗證,必須再次實施破解過程或者繼續使用老的應用程序版本。