smart-license 是一款用于安全加固的開源項目。 主要服務于非開源產品、商業軟件、具備試用功能的付費軟件等,為軟件提供授權制的使用方式。
名詞解釋:
- License:通過 smart-license 生成的授權文件,導入至要授權使用的軟件產品中。
- 源數據:需要進行 License 加工處理的基礎數據。例如,將軟件產品運行的配置文件作為源數據,經由 smart-license 授權處理后生成 License 文件。
- License源文件:生成 License 的同時,會自動產生一份文件用于記錄:源數據,授權時間,過期時間,秘鑰對等信息。由軟件授權方持有,當客戶遺失 License 文件之后可以根據License源文件重新生成 License。
更新說明:
雖然通過 smart-license 生成的 License 具備防篡改的能力, 但對于有著一定技術功底的用戶,依舊可以采用某些手段獲得 License 的源數據, 再通過 smart-license 偽造一份"合法"的 License 。
為此需要提供一種安全加固策略,防止某些不懷好意的人過于輕松的突破 License 的安全防線。
加固的原理如下圖所示,生成License階段采用非對稱加密方式對源數據進行預處理。 而在程序運行時從License中提取到的是密文形式的源數據,需要通過公鑰解密還原真實內容。
軟件提供商大可將公鑰硬編碼至程序中,即便通過反編譯獲得公鑰,也無法以此偽造 License。 再則可在程序中引入代碼混淆機制,增加反編譯的破解難度,強化軟件的安全系數。
適用場景:
- 非開源產品、商業軟件、收費軟件。
- 限制產品的傳播性,每個客戶擁有專屬 License。
- 同一款軟件發行包根據 License 的不同提供不同的服務能力。
- 限定軟件授權時效
產品特色:
- 開源,代碼完全公開,License的生成原理是透明的。
- 易用,提供二進制包,直接基于命令行生成 License。
- 安全,生成的 License 在一定程度上具備防篡改能力,破解難度大。
- 安全加固,采用非對稱加密方式對 License源數據進行預處理,防止偽造License。