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。