本发明属于应用授权认证,具体涉及一种基于国密算法对应用程序认证授权的方法。
背景技术:
1、随着互联网技术的高速发展,客观上对产品软件的要求越来越高,导致软件的开发成本不断增加。为了保护软件开发者的权益,同时也为了保障信息安全和软件安全,防止软件产品不被滥用、盗用等,促成了license技术的出现。作为商用软件的惯用模式,license被广泛集成到了各种软件中,作为软件使用前必须验证激活的先决条件。
2、目前,常规软件的license的生成一般是基于国际算法套件进行一层加密,没有过多的组合算法,验证过程只需根据加密算法的反向解析license,一般验证通过后即可完全使用软件,没有特殊的权限限制,最多只有有效期的限制,因此license文件的安全性较低,无法满足当前互联网技术对应用程序产品安全性的要求;并且license验证过程大多数都是在线版,需要联网与外部服务交互获取验证过程所需的数据,这样就限制了其无法在内网环境下进行使用。
技术实现思路
1、针对以上现有技术中存在的缺点和不足,本发明提出基于国密算法对应用程序认证授权的方法,通过加解密使用的国密标准算法,并组合使用多种不同的加密算法,显著提高了license文件的安全性。
2、为实现上述目的,本发明采用的技术方案为一种基于国密算法对应用程序认证授权的方法,包含以下步骤:
3、s1:授权签发,包括生成ecc密钥对、获取机器特征值和创建授权文件;
4、s2:验证授权文件。
5、上述步骤s1所述授权签发,具体包含以下步骤:
6、s11:读取公私钥文件,获取公钥p和私钥d;
7、s12:获取通过用户输入确认授权的开始时间st和结束时间et;
8、s13:通过hcinfo.conf文件获取签发机器的硬件信息hc;
9、s14:使用p+d对st&et&hc拼接数据计算sm2的签名值s1,以确保st、et和hc的完整性和正确性;
10、s15:对s1进行sm4_ecb加密,输出密文c1,密钥k1通过shamir秘密共享算法分散为三份写入到代码中,以防止攻击者同时伪造p,d,st,et,hc和s1数据;
11、s16:获取最后访问时间lt,并通过sm4_ecb加密输出密文c2,以防止用户通过修改系统时间攻击;
12、s17:将以上数据p&st&et&hc&c1&c2拼接,写入license作为最后的授权文件。
13、上述步骤s2所述验证授权文件,具体包含以下步骤:
14、s21:读取license中的对应数据p、st、et、hc、c1、c2;
15、s22:使用密钥k1对c1进行sm4_ecb解密,获得s1;
16、s23:将上述获取的st、et和hc拼接作为数据通过p和s1进行sm2验签;
17、s24:使用密钥k1对c2进行sm4_ecb解密,获得lt;
18、s25:获取当前系统时间ct进行判断,须满足ct、lt位于st和et之间,且ct大于等于lt;
19、s26:获取当前系统硬件信息与license中的hc进行比对;
20、s27:更新license中的c2并保存。
21、为了避免多个license共用一个密钥对的情况出现,每个license都有各自对应的密钥对,其中密钥对里的公钥是写入到license中公开的,而私钥需进行出口把控和安全维护。
22、前述生成ecc密钥对是通过密钥生成工具生成可用的ecc公私钥对。
23、通过所述密钥生成工具会将生成的公私钥对通过base64编码后输出到用户指定的文件夹中,生产两个文件sm2_priv.key和sm2_pub.key。
24、与现有技术相比,本发明具有以下的有益技术效果:
25、1,本发明通过加解密使用的国密标准算法,并组合使用多种不同的加密算法,大幅提高了license文件的安全性;
26、2,license认证过程所需数据皆可从license中获取,无需联网进行license认证,内、外网环境皆可进行认证license,因此使用环境广泛。
27、3,加密所使用的会话密钥通过shamir秘密共享算法进行保护;
28、4,每次认证license可实时更新记录最后时间,有效提高了安全性。
1.一种基于国密算法对应用程序认证授权的方法,其特征在于,包含以下步骤:
2.根据权利要求1所述的基于国密算法对应用程序认证授权的方法,其特征在于,步骤s1所述授权签发具体包含以下步骤:
3.根据权利要求2所述的基于国密算法对应用程序认证授权的方法,其特征在于,步骤s2所述验证授权文件具体包含以下步骤:
4.根据权利要求3所述的基于国密算法对应用程序认证授权的方法,其特征在于为避免多个license共用一个密钥对的情况出现,每个license都有各自对应的密钥对,其中密钥对里的公钥是写入到license中公开的,而私钥需进行出口把控和安全维护。
5.根据权利要求1所述的基于国密算法对应用程序认证授权的方法,其特征在于,所述生成ecc密钥对是通过密钥生成工具生成可用的ecc公私钥对。
6.根据权利要求5所述的基于国密算法对应用程序认证授权的方法,其特征在于,通过所述密钥生成工具会将生成的公私钥对通过base64编码后输出到用户指定的文件夹中,生产两个文件sm2_priv.key和sm2_pub.key。