smart-license v1.0.1 发布,为软件提供授权的工具

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。

案例

现有一款非开源项目已接入smart-license:《smart-proxy:信息通信网与公共网络单向数据传输解决方案》,诚邀各位技术极客前来破解。

猜你喜欢

转载自www.oschina.net/news/114434/smart-license-1-0-1-released