一种离线软件合法性的验证方法及系统技术方案

技术编号:30548866 阅读:14 留言:0更新日期:2021-10-30 13:28
本发明专利技术提供了一种离线软件合法性的验证方法及系统,所述验证方法包括:被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;通过license文件中的日期,判断license文件是否过期。本发明专利技术对于一个大型分布式软件而言,只需将软件的核心接入部分接入License验证,有效解耦,无需所有子系统都进行验证,既简化了软件设计,又减少了部署成本。成本。成本。

【技术实现步骤摘要】
一种离线软件合法性的验证方法及系统


[0001]本专利技术涉及软件验证
,具体而言,涉及一种离线软件合法性的验证方法及系统。

技术介绍

[0002]对于私有部署软件的一个核心模块,为保证部署软件的合法性和有效性,一般做法是颁发某种形式的软件秘钥,这种秘钥一般需要跟中心进行一定的验证,当软件本身跟中心网络不通时,这种校验就会失效。

技术实现思路

[0003]鉴于此,本专利技术的目的在于提高软件合法性的验证的健壮性,基于一种椭圆曲线数学模型,通过对软件license的设计,保证软件即使在离线情况下,依然能验证自身的合法性。
[0004]本专利技术提供一种离线软件合法性的验证方法,包括以下步骤;
[0005]S1、被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名,即是否是确定的椭圆曲线上的x,y点;
[0006]S2、获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
[0007]具体地,所述验证信息包括:有效期、生效日期、生成日期、颁发者、授予者、版本号、license字符串;
[0008]S3、通过license文件中的日期,判断license文件是否过期。
[0009]进一步地,在所述S1步骤之前包括以下步骤:
[0010]对于即将部署的客户端软件,由中心软件生成License文件,通过指定多个字段确定License的具体归属、有效时间以及License文件携带的自带验证信息,避免License被篡改。
[0011]进一步地,所述License文件的生成基于椭圆曲线加密算法ECC,所述椭圆曲线加密算法ECC包括椭圆曲线数字签名算法ECDSA。
[0012]进一步地,所述生成License文件的具体方法包括以下步骤:
[0013]S21、采用所述椭圆曲线数字签名算法ECDSA生成license字符串;
[0014]S22、填充license的几个字段,包括:有效期、生效日期、生成日期、颁发者、授予者、版本号;
[0015]S23、通过内置的混淆算法,得到整个license文件的hash,并写入license文件。
[0016]进一步地,所述License的具体归属包括:License所有方、颁发日期、截止日期。
[0017]本专利技术还提供一种离线软件合法性的验证系统,使用如上述所述的验证方法,包括:
[0018]验证license字符串模块:用于被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;
[0019]验证合法性模块:用于获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
[0020]验证日期模块:用于通过license文件中的日期,判断license文件是否过期。
[0021]与现有技术相比,本专利技术的有益效果是:
[0022]本专利技术对于一个大型分布式软件而言,只需将软件的核心接入部分接入License验证,有效解耦,无需所有子系统都进行验证,既简化了软件设计,又减少了部署成本;并且,ECDSA算法将DSA运用在椭圆曲线方程函数上,相比RSA算法,ECDSA在抗攻击性、CPU计算量、网络消耗、加密计算等方面,都有更好的表现。
附图说明
[0023]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。
[0024]在附图中:
[0025]图1是本专利技术一种离线软件合法性的验证方法的流程图;
[0026]图2是本专利技术实施例生成License文件的流程图;
[0027]图3是本专利技术实施例的客户端软件License验证示意图。
具体实施方式
[0028]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0029]在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0030]应当理解,尽管在本公开可能采用术语第一、第二、第三来描述各种信号,但这些信号不应限于这些术语。这些术语仅用来将同一类型的信号彼此区分开。例如,在不脱离本公开范围的情况下,第一信号也可以被称为第二信号,类似地,第二信号也可以被称为第一信号。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0031]本专利技术实施例基于一种椭圆曲线数学模型,通过对软件license的设计,保证软件即使在离线情况下,依然能验证自身的合法性。
[0032]本专利技术实施例提供一种离线软件合法性的验证方法,参见附图图1所示,包括以下步骤;
[0033]S1、被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取
license文件,验证license字符串是否符合ECDSA数字签名,即是否是确定的椭圆曲线上的x,y点;
[0034]S2、获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
[0035]具体地,所述验证信息包括:有效期、生效日期、生成日期、颁发者、授予者、版本号、license字符串;
[0036]S3、通过license文件中的日期,判断license文件是否过期
[0037]本专利技术实施例的客户端软件License验证如附图图3所示。
[0038]在所述S1步骤之前包括以下步骤:
[0039]对于即将部署的客户端软件,由中心软件生成License文件,通过指定多个字段确定License的具体归属、有效时间以及License文件携带的自带验证信息,避免License被篡改。
[0040]具体地,所述License文件的生成基于椭圆曲线加密算法ECC,所述椭圆曲线加密算法ECC包括椭圆曲线数字签本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种离线软件合法性的验证方法,其特征在于,包括以下步骤;S1、被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;S2、获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;S3、通过license文件中的日期,判断license文件是否过期。2.根据权利要求1所述的验证方法,其特征在于,在所述S1步骤之前包括以下步骤:对于即将部署的客户端软件,由中心软件生成License文件,通过指定多个字段确定License的具体归属、有效时间以及License文件携带的自带验证信息,避免License被篡改。3.根据权利要求2所述的验证方法,其特征在于,所述License文件的生成基于椭圆曲线加密算法ECC,所述椭圆曲线加密算法ECC包括椭圆曲线数字签名算法ECDSA。4.根据权利要求3所述的验证方法,其特征在于,所述生成License文件的具体方法包括以...

【专利技术属性】
技术研发人员:周逸灵蒋烁淼
申请(专利权)人:上海驻云信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1